從零開始學習邏輯迴歸

gaishilaji發表於2018-11-23

寫邏輯迴歸的文章不少建議看以下兩個,先看理論然後實操,發現問題了來這找找有沒有解答。
https://blog.csdn.net/han_xiaoyang/article/details/49123419 學理論
https://blog.csdn.net/kt513226724/article/details/79956850 實操

實際學習過程中,問題很多。

**問題一:**梯度下降法為什麼能找到最小值

y=x^2以及點(4,16)處的斜率
上圖為一個二次函式和這個函式上的一個點(4,16)處的斜率
根據梯度下降,我們迭代這個式子 w = w - Alpha * d
設Alpha為0.2
d是x^2的導數即2x 得到下式
即第一次: w = 4 - 0.2 * 2 * 4 = 2.4 迴圈十次
2.4
1.44
0.864
0.5184
0.31104
0.18662399999999998
0.11197439999999999
0.06718463999999999
0.04031078399999999
0.024186470399999993
不難發現不斷接近最小值0
數學上的證明可以看這裡
https://blog.csdn.net/ljyt2/article/details/78672826
我沒看懂

形象點的理解
在(4,16)這一點我們想象是一個人他現在要走路走到最低點(0,0)
我們首先要給他一個方向和一個速度,
這個速度就是斜率(或者在更高的維度我們叫他梯度),然後Alpha就是行走時間
那麼Alpha * d 我們可以理解為速度乘以時間,也就是路程
好那麼速度有了,還缺一個運動方向,那麼方向是誰決定的?
負號決定的,
我們知道在梯度下降裡的公式是:w = w - Alpha * d
而上升中的公式是:w = w + Alpha * d
好,其實你不應該理解為加減
而應該理解成都是加一個路程只是運動的方向不一樣
也就是 w = w + (- Alpha * d) <-- 梯度下降
再回顧一下上面迭代十次的過程,
我們從4首先走到了2.4
然後在2.4的地方再次確定好我們的方向和速度
然後走到了1.44
****好,我們再想像一種情況
如果我們的Alpha很大一下子走到了y軸的左邊,
比如說走到了-2這個地方,那麼x= -2時候的斜率是 -4,
然後取負值變成了4
我們不難發現即使他到了左邊他也會自己找到對的方向往右邊移動,
也就是說我們可以這麼理解無論梯度下降還是上升,他永遠再往最值出移動,每到一個地方,他會重新找速度,重新找方向,使得他在不斷的接近最值而不會亂跑到其他地方。
*注意只有凸函式才能這麼做

問題二:損失函式或者成本函式是什麼?

對小白來說,所有東西都是陌生的,有些小白克服了重重阻礙最終變成了大佬,而很多小白都在追求知識路上被高大上的術語壓死了。
在這裡插入圖片描述
這個Loss Function或者Cost Function有很多形式
那麼它的作用是什麼呢?
作用很簡單,就是度量我的當前設定的權重完美不完美,
在這裡插入圖片描述
在這裡插入圖片描述
我們看一下這個比較好理解的公式
Jw就是cost函式,他累加每個樣本預測值和真實值的偏差然後平方後求和,那通過這個cost函式我們就能知道有沒有沒有做出最佳決策,比如上圖中的紫線cost值肯定比黑線要小,
再通俗點說就是這個函式告訴了我們你決策面畫的行不行,不行就給我繼續畫。
(當這個找到這個函式最小值的時候,也就是說你這個決策面畫的棒棒的)
(**但是如果使用梯度下降我們並不能使用這個最小平方差的方法去求解)

問題三:平方差求和的函式影象究竟是怎樣的?不用交叉熵作為損失函式會發生什麼?

學習理論知識的時候可以知道,我們要找到損失函式的最小值使用了梯度下降去不斷逼近最小值,而梯度下降必須建立在損失函式是凸函式的基礎上,如果我們使用平方差就會產生下圖。
在這裡插入圖片描述
別的部落格看到的,當時沒細究。
顯然這幅圖想告訴我們的事實是對的,這個函式我們沒法用梯度下降求解,但是圖好像草率了點,大佬肯定是大佬畫的,隨手一畫蘊含無限的資訊。
在這裡插入圖片描述
根據樣本不同,圖也千奇百怪,但大概其實是這麼個樣子的
平方差求和
如果使用梯度下降,如果第一輪權重預設值沒有取好,就可能陷入區域性最優解。
使用了交叉熵以後變成了這麼個樣子
交叉熵
這張圖的橫座標是第一個權重值,縱座標為cost函式值,看圖就很形象,
我們需要的就是最佳決策面時的權重值,
找到函式最小值時的x座標就是我們要的權重了。

歡迎討論交流,糾正我的錯誤。

相關文章