1、邏輯迴歸模型
關於邏輯迴歸,可以看做是感知機的加強版本,感知機是線性的分類器,邏輯迴歸在感知機的基礎上加上了一個sigmoid函數,將其變成了一個非線性的分類器,其效果要優於感知機。邏輯迴歸公式如下
\[ f(x) = \frac {1} {1 + \exp -(wx+b)} \tag{1}
\]
其中\(w\)和\(x\)均爲向量。\(f(x)\)可以理解爲範圍在[0,1]的概率值,若\(f(x) > 0.5\)那麼可以將這個類歸爲正類,若\(f(x) < 0.5\)那麼,將這個類歸爲負類。
2、邏輯迴歸策略
那麼邏輯迴歸的損失函數是什麼呢?邏輯迴歸公式如下
\[ \prod_{i=1}^{n} f(x_{i}) ^ {y_{i}} (1 - f(x_{i}))^{1-y_{i}} \tag{2}
\]
其中\(f(x_{i})\)爲預測值,\(y_{i}\)爲真實值,當真實值爲\(y_{i} = 1\)時,我們就最大化\(f(x_{i})\),即我們希望這個輸出值變大,當真實值爲\(y_{i} = 0\)時,我們希望最大化\(1 - f(x_{i})\),即我們希望將\(f(x_{i})\)的輸出值儘可能變小。
3、邏輯迴歸算法
我們的目標是最大化式子(2),那麼我們可以對他進行轉換,最小化式子(2)的負數,並取\(\log\)
\[ L(w,b) = - \log \prod_{i=1}^{n} f(x_{i}) ^ {y_{i}} (1 - f(x_{i}))^{1-y_{i}} \\
= - \log \sum\limits_{i=1}^{n} y_{i} f(x_{i}) + (1-y_{i})(1-f(x_{i})) \tag{3}
\]
首先給出sigmoid的求導公式
\[ \frac {\partial sigmoid (x)}{\partial x} = sigmoid (x) * (1- sigmoid (x)) \tag{4}
\]
接下來,我們利用優化公式對\(L(w,b)\)進行求導,首先對\(w\)進行求導
\[ \frac {\partial L(w,b)}{\partial w} = \sum\limits_{i=1}^{n} y_{i} * \frac {1}{f(x_{i})} * f(x_{i}) * (1 - f(x_{i})) * x_{i} - (1-y_{i}) * \frac {1} {1-f(x_{i})} * f(x_{i}) * (1 - f(x_{i})) * x_{i} \\
= \sum\limits_{i=1}^{n} x_{i}y_{i}(1-f(x_{i})) - x_{i}(1-y_{i})*f(x_{i}) \\
= \sum\limits_{i=1}^{n} x_{i}y_{i} - x_{i}y_{i}f(x_{i}) - x_{i}f(x_{i}) + x_{i}y_{i}f(x_{i}) \\
= \sum\limits_{i=1}^{n} (y_{i} - f(x_{i})) * x_{i} \tag{5}
\]
接下來對\(b\)求導,公式基本上和(5)相類似,這裏,我們直接給出結果。
\[ \frac {\partial L(w,b)}{\partial b} = \sum\limits_{i=1}^{n} y_{i} - f(x_{i}) \tag{6}
\]
最後,我們可以進行參數更新。
\[ w^{*} = w - \alpha \frac {\partial L(w,b)}{\partial w} \\
b^{*} = b - \alpha \frac {\partial L(w,b)}{\partial b}
\]