讀這篇文章有感。
我來總結(jié)一下,便于記憶。
- 最小二乘法(Least Square Method)適用于二維空間默穴,用直線 y=ax+b 對二維空間(平面)的數(shù)據(jù)進(jìn)行擬合怔檩。將true label與直線評測出的值的偏差的平方和作為最小條件來選擇參數(shù)a,b蓄诽。
- 線性回歸(Linear Regression)將最小二乘法拓展到多維空間薛训,用超平面 y=Wx+b 對多維空間的數(shù)據(jù)進(jìn)行擬合。 與最小二乘法類似仑氛,將true label與超平面評測出的值的偏差的平方和作為最小條件來選擇參數(shù)W乙埃,b。
- 邏輯回歸(Logistics Regression)僅僅是在線性回歸模型外面加了一層映射函數(shù)(sigmoid函數(shù))锯岖。邏輯回歸其實是一種分類模型!
sigmoid函數(shù)其中介袜,z=Wx+b(線性回歸模型),若z很大出吹,則f(z) ≈1遇伞;若z很小,則f(z)≈0捶牢。
二分類問題中使用sigmoid函數(shù)鸠珠,多分類問題中使用softmax函數(shù)。
邏輯回歸模型詳解
邏輯回歸模型的成本函數(shù)推導(dǎo):
可以看到秋麸,此處用了交叉熵?fù)p失函數(shù)來作為成本函數(shù)渐排。
那么為什么使用交叉熵而不是二次代價函數(shù)(最小二乘法)來定義呢?
原因如下:
-
為什么不用二次代價函數(shù)灸蟆?
- 對于多元函數(shù)驯耻,由于變量過多,用最小二乘法定義的成本函數(shù)(損失函數(shù))并不是在整個集合上都是凸函數(shù)次乓,很難進(jìn)行優(yōu)化吓歇。
- 由于邏輯回歸模型使用了sigmoid函數(shù)作為激活函數(shù)孽水,根據(jù)sigmoid函數(shù)的性質(zhì)票腰,函數(shù)值趨近于0和1的時候梯度值過小,會導(dǎo)致在后續(xù)梯度下降算法中參數(shù)收斂速度過慢女气。
-
為什么用交叉熵?fù)p失函數(shù)杏慰?
- 交叉熵代價函數(shù)的兩個性質(zhì)
- 非負(fù)性(所以我們的目標(biāo)就是最小化代價函數(shù))
- 當(dāng)true label與預(yù)測值接近時,代價函數(shù)接近于0
- 可以克服二次代價函數(shù)更新過慢的問題炼鞠。根據(jù)梯度下降算法可知缘滥,當(dāng)誤差大的時候參數(shù)更新越快;誤差小的時候參數(shù)更新越慢谒主。
- 交叉熵代價函數(shù)的兩個性質(zhì)
優(yōu)化算法(成本函數(shù)最小化方法):
采用隨機梯度下降方法來最小化交叉熵成本函數(shù)朝扼。
梯度下降(Gradient Descent):朝著梯度的反方向迭代地調(diào)整參數(shù)直到收斂。
Note:
梯度下降的幾何意義描述:梯度下降實際上是一個“下坡”的過程霎肯。在每一個點上擎颖,我們希望往下走一步(假設(shè)一步為固定值0.5米)榛斯,使得下降的高度最大,那么我們就要選擇坡度變化率最大的方向往下走搂捧,這個方向就是成本函數(shù)在這一點梯度的反方向驮俗。每走一步,我們都要重新計算函數(shù)在當(dāng)前點的梯度允跑,然后選擇梯度的反方向作為走下去的方向王凑。隨著每一步迭代,梯度不斷地減小聋丝,到最后減小為零索烹。
梯度的反方向是函數(shù)值下降最快的方向,故用梯度下降法尋找局部最小值潮针,梯度的方向是函數(shù)值上升最快的方向术荤,故用梯度上升法尋找局部最大值。
梯度下降圖解:
參數(shù)的更新公式為
梯度下降法詳解
隨機梯度下降(Stochastic Gradient Descent):
最小化每條樣本的損失函數(shù)每篷。優(yōu)點:收斂速度快瓣戚。雖然不是每次迭代得到的損失函數(shù)都向著全局最優(yōu)方向, 但是大的整體的方向是向全局最優(yōu)解的焦读,最終的結(jié)果往往是在全局最優(yōu)解附近子库。
缺點:因為計算得到的并不是準(zhǔn)確的一個梯度,容易陷入到局部最優(yōu)解中矗晃。
批量梯度下降(Batch Gradient Descent)
最小化所有訓(xùn)練樣本的損失函數(shù)仑嗅,使得最終求解的是全局的最優(yōu)解,即求解的參數(shù)是使得風(fēng)險函數(shù)最小张症。優(yōu)點:得到的是一個全局最優(yōu)解
缺點:每迭代一步仓技,都要用到訓(xùn)練集所有的數(shù)據(jù),如果數(shù)據(jù)集很大俗他,這種方法的迭代速度會很慢脖捻。
對比: 隨機梯度下降是通過每個樣本來迭代更新一次,如果樣本量很大的情況(例如幾十萬)兆衅,那么可能只用其中幾萬條或者幾千條的樣本地沮,就已經(jīng)將theta迭代到最優(yōu)解了,對比批量梯度下降羡亩,迭代一次需要用到幾十萬訓(xùn)練樣本摩疑,一次迭代不可能最優(yōu),如果迭代10次的話就需要遍歷訓(xùn)練樣本10次畏铆。但是雷袋,SGD伴隨的一個問題是噪音較BGD要多,使得SGD并不是每次迭代都向著整體最優(yōu)化方向辞居。
Mini-batch梯度下降
這是介于BSD和SGD之間的一種優(yōu)化算法楷怒。每次選取一定量的訓(xùn)練樣本進(jìn)行迭代寨腔。此算法是將批量梯度下降法中m替換成mini-batch,將mini-bach的size設(shè)置為遠(yuǎn)小于m的大小率寡。
在吳恩達(dá)的機器學(xué)習(xí)課程中講到可以將m使用b來代替迫卢,循環(huán)m/b次直到收斂或是循環(huán)次數(shù)達(dá)到。優(yōu)點:得到的是一個局部近似解冶共,但是其所計算的時間和效果要比隨機梯度下降法的好乾蛤。
缺點:但是在計算時候多了一個參數(shù) b (即每批的大小)需要去調(diào)試捅僵。
帶Mini-batch的隨機梯度下降
- 選擇n個訓(xùn)練樣本(n<m家卖,m為總訓(xùn)練集樣本數(shù))
- 在這n個樣本中進(jìn)行n次迭代,即每次使用1個樣本
- 對n次迭代得出的n個gradient進(jìn)行加權(quán)平均再并求和庙楚,作為這一次mini-batch下降梯度
- 不斷在訓(xùn)練集中重復(fù)以上步驟上荡,直到收斂。