機器學習涉及到較多的數學知識,在工程應用領域,這些數學知識不是必要的,其實很多算法都是數值運算專家寫好了的。然而知其然知其所以然,了解這些數學公式的來龍去脈是幫助理解算法的關鍵。本文直接給出常用的微分運算法則,並運用這些法則來計算分類回歸算法 (Logistic Regression) 預測模型 Sigmoid Function 的微分公式。
冪函數法則
$$\begin{align} \frac{d}{dx} x^n = nx^{n-1} \end{align}$$
指數函數法則
$$\begin{align} \frac{d}{dx} e^x = e^x \end{align}$$
$$\begin{align} \frac{d}{dx} a^x = ln(a)a^x \end{align}$$
對數函數法則
$$\begin{align} \frac{d}{dx} ln(x) = \frac{1}{x} \end{align}$$
$$\begin{align} \frac{d}{dx} log_a(x) = \frac{1}{xln(a)} \end{align}$$
三角函數法則
$$\begin{align} \frac{d}{dx} sin(x) = cos(x) \end{align}$$
$$\begin{align} \frac{d}{dx} cos(x) = -sin(x) \end{align}$$
$$\begin{align} \frac{d}{dx} tan(x) = sin^2(x) = \frac{1}{cos^2(x)} = 1 + tan^2(x) \end{align}$$
反三角函數法則
$$\begin{align} \frac{d}{dx} arcsin(x) = \frac{1}{\sqrt{1-x^2}}, -1 < x < 1 \end{align}$$
$$\begin{align} \frac{d}{dx} arccos(x) = -\frac{1}{\sqrt{1-x^2}}, -1 < x < 1 \end{align}$$
$$\begin{align} \frac{d}{dx} arctan(x) = \frac{1}{1+x^2} \end{align}$$
常數法則:如果 $f(x) = n$,n 是常數,則
$$\begin{align} f' = 0 \end{align}$$
加法法則
$$\begin{align} (\alpha f + \beta g)' = \alpha f' + \beta g' \end{align}$$
乘法法則
$$\begin{align} (fg)' = f'g + fg' \end{align}$$
除法法則
$$\begin{align} \left( \frac{f}{g} \right)' = \frac{f'g - fg'}{g^2} \end{align}$$
根據除法法則和指數法則,可以得出推論
$$\frac{d}{dx} e^{-x} = \frac{d}{dx} \frac{1}{e^x} = \frac{0-ex}{e{2x}} = -\frac{1}{e^x} = -e^{-x}$$
連結法則:如果 $f(x) = h(g(x))$,則
$$\begin{align} f'(x) = h'(g(x)) g'(x) \end{align}$$
$g(x) = \frac{1}{1+e^{-x}}$ 是分類算法的預測函數,也稱為 Sigmoid Function 或 Logistic Function。我們利用上文介紹的微分運算法則來證明 Sigmoid Function 的一個特性:
$$
\frac{d}{dx} g(x) = g(x) (1 - g(x))
$$
假設 $f(x) = \frac{1}{x}$,則 $f(g(x)) = \frac{1}{g(x)}$,根據除法法則得到
$$
\begin{align}
f'(g(x)) & = \left( \frac{1}{g(x)} \right)' = \frac{1' g(x) - 1 g'(x)}{g(x)^2} \\
& = - \frac{g'(x)}{g(x)^2}
\end{align}
$$
其中 (17) 是根據除法法則得出的結論,除數是常數函數 1,被除數是 $g(x)$。(18) 是根據常數法則得出的結論。
另一方面,$f(g(x)) = \frac{1}{g(x)} = 1 + e^{-x}$,根據指數法則直接計算微分得到
$$
\begin{align}
f'(g(x)) & = \frac{d}{dx} (1 + e^{-x}) \\
& = -e^{-x} \\
& = 1 - \frac{1}{g(x)} \\
& = \frac{g(x) - 1}{g(x)}
\end{align}
$$
(18) 和 (22) 兩式是相等的,即
$$
\begin{align}
這樣就得到了我們的結果。
方法二由 $g(x) = \frac{1}{1+e^{-x}}$ 的定義可知
$$
\begin{align}
& (1+e^{-x})g(x) = 1 \\
\Rightarrow & \frac{d}{dx} \left( (1+e^{-x})g(x) \right) = 0 \\
\Rightarrow & -e^{-x}g(x) + (1+e^{-x})\frac{d}{dx}g(x) = 0 \\
\Rightarrow & \frac{d}{dx}g(x) = g(x) \frac{e{-x}}{1+e{-x}} \\
\Rightarrow & \frac{d}{dx}g(x) = g(x) \frac{(1 + e^{-x}) - 1}{1+e^{-x}} \\
\Rightarrow & \frac{d}{dx}g(x) = g(x) \left[ 1 - \frac{1}{1+e^{-x}}\right] \\
\Rightarrow & \frac{d}{dx}g(x) = g(x) (1 - g(x)) \\
\end{align}
$$
(26) 兩邊取微分;(27) 根據微分的乘法法則。
方法三根據除法法則直接計算微分:
$$
\begin{align}
\frac{d}{dx} g(x) & = \frac{d}{dx} \left( \frac{1}{1 + e^{-x}} \right) \\
& = \frac{0 - (- e^{-x})}{(1 + e{-x})2} \\
& = \frac{e^{-x}}{(1 + e{-x})2} \\
& = \frac{1}{(1 + e^{-x})} \frac{e^{-x}}{(1 + e^{-x})} \\
& = \frac{1}{(1 + e^{-x})} \frac{(1 + e^{-x}) - 1}{(1 + e^{-x})} \\
& = \frac{1}{(1 + e^{-x})} \left[1 - \frac{1}{(1 + e^{-x})} \right] \\
& = g(x) (1 - g(x)) \\
\end{align}
$$
(33) 是根據除法法則得出的,其中除數是常數 1,被除數是 $1 + e^{-x}$。
參考資料(連結:https://www.jianshu.com/p/f69a25d34499)
全國高校程式設計師都在關注的公眾號
這裡一定有你需要的!