機器學習模型之邏輯迴歸

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} \]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章