梯度下降(Gradient Descent)法

本文參考 https://www.cnblogs.com/pinard/p/5970503.html 的文章,轉(zhuǎn)載需注明原作者蝶涩。

這一節(jié)我們?yōu)樘荻认陆捣ń议_神秘的面紗饥漫。

在求解機器學習算法的模型參數(shù)皆撩,即無約束優(yōu)化問題時捍壤,梯度下降法(Gradient Descent)是最常用的方法之一。另外常用的是最小二乘法栈妆。

1. 梯度

首先我們來認識一下什么叫做梯度胁编。
在微積分中,對多元函數(shù)的參數(shù)求偏導數(shù)鳞尔,把求得的各個參數(shù)的偏導數(shù)以向量的形式寫出來嬉橙,就是梯度。如f(x,y)寥假,其梯度向量就是(?f/?x, ?f/?y)T市框,簡稱grad f(x,y)。
梯度向量的幾何意義糕韧,就是代表了函數(shù)變化最快的方向枫振。這里可以這樣理解喻圃,一個函數(shù)在某一個方向上的方向向量為 grad*cos?,于是梯度就代表了其變化最快的方向粪滤。
即沿著梯度向量的方向斧拍,就是函數(shù)增加最快的方向,更容易找到函數(shù)的最大值杖小。這是整個梯度下降法的基本思想肆汹。

2. 梯度下降與梯度上升

在機器學習中,我們需要對損失函數(shù)求最小化予权,這時候我們通過梯度下降法來一步步迭代求解昂勉。同樣的,做一個變化可以反過來求解損失函數(shù) -f(θ) 的最大值扫腺,這時候就轉(zhuǎn)化為了梯度上升法岗照。
簡單來說,就是上山和下山的關系笆环。

3. 梯度下降法詳解

3.1 梯度下降的直觀理解

這里的一個直觀解釋攒至,就是理解成為下山問題。
我們在一座大山的某個位置咧织,這個時候不知道下山的路線,只能“走一步算一步”籍救,每一步都按照當前最陡的方向下山习绢,即梯度負方向;然后在下一個點繼續(xù)計算當前梯度調(diào)整方向蝙昙,繼續(xù)走下一步闪萄,直到我們覺得已經(jīng)走下了山。
當然這樣的方法奇颠,有可能使得我們沒有走下山败去,而是走到了某個山谷處。這就是局部最優(yōu)解和全局最優(yōu)解之間的關系烈拒。

梯度下降法的直觀表示

3.2 梯度下降的相關概念

在詳細了解之前圆裕,我們需要了解一些概念。

  1. 步長(Learning Rate):步長即為我們通常理解的步長荆几。其決定了沿著梯度負方向與移動的長度吓妆。對應上面下山的例子就是每一步走多少。
  2. 特征(Feature):指的是樣本的輸入吨铸,即屬性行拢。
  3. 假設函數(shù)(Hypothesis Function):監(jiān)督學習中,用于擬合輸入樣本而假設的擬合函數(shù)诞吱。比如在線性模型中舟奠,假設函數(shù)就是輸入屬性的線性組合函數(shù)竭缝。例如:f(x)=w_1x_1+w_2x_2+...+
  4. 損失函數(shù)(Loss Function):線性模型中的損失函數(shù):


3.3 梯度下降的詳細計算

詳細計算有兩種表示:代數(shù)法和矩陣法。代數(shù)法更加容易理解沼瘫,但是在單屬性樣本時更加實用抬纸;遇到多屬性樣本時候,矩陣法更加實用而且好計算晕鹊。

3.3.1 梯度下降法的代數(shù)描述
  1. 先決條件:確定待優(yōu)化模型的假設函數(shù)和損失函數(shù)松却。
    拿線性回歸為例子,假設函數(shù)為(θi是參數(shù)模型):

    增加一個特征 x_0=1,則有:

    對應上面的假設函數(shù)溅话,損失函數(shù)為(這里的2m就是求一下平均而已):
  2. 參數(shù)初始化:主要是初始化模型參數(shù)θi晓锻,算法終止距離ε ,步長α飞几。
    在沒有任何先驗知識的情況下砚哆,我們可以把θi初始化為0,將步長初始化為1屑墨,然后在調(diào)優(yōu)的時候再優(yōu)化躁锁。
  3. 算法過程

這里是對于損失函數(shù)求最值,所以是針對損失函數(shù)來做梯度下降

(1) 確定損失函數(shù)的梯度 卵史,即對θi求偏導:


(2) 用步長乘以損失函數(shù)的梯度战转,就是當前位置下降的距離,對應于下山例子中的一步以躯。
(3) 考察停止條件槐秧。對于所有的參數(shù)θi,是否梯度下降的距離都小于 算法終止距離ε忧设,滿足則停止迭代刁标。反之進入下一步
(4) 更新所有的 θi,然后轉(zhuǎn)到第一步址晕。

需要注意的是:當前點的梯度是由所有樣本決定的膀懈。至于樣本的選擇,下面會介紹到谨垃。

3.3.2 矩陣描述

只是把上面的換成了矩陣表示启搂。其中涉及矩陣運算。具體見原帖中推導刘陶。

3.4 梯度下降的算法調(diào)優(yōu)

使用梯度下降法時狐血,需要進行調(diào)優(yōu)。
1. 步長選擇易核。
前面的計算中匈织,我們默認取步長為1,但是實際上步長的選取和實際樣本取值有關。我們需要多取幾個步長缀匕,運行梯度下降纳决,如果損失函數(shù)在減小就說明這個步長是有效的。
步長太大導致可能錯過最優(yōu)解乡小,太小收斂太慢阔加。
2. 參數(shù)的初始值選擇
由于可能陷入局部最優(yōu)解,之前也說過满钟,一個可行的做法就是多試集中初始值胜榔。就好像剛剛下山問題中,從不同的地方開始下山湃番。
3. 歸一化
不同特征的取值量綱不同夭织,導致迭代速度慢,我們可以對特征取值進行歸一化吠撮。對于每個特征x尊惰,求出他的期望 和 標準差,轉(zhuǎn)化為:


這樣特征的新的期望為0泥兰,新的方差為1弄屡,迭代次數(shù)可以大大加快。


4. 梯度下降法大家族(BGD鞋诗,SGD膀捷,MBGD)

這里需要注意的是,所有梯度下降法的基本思想和步驟都是一樣的削彬,不同之處在于不同形式的GD如何選取樣本全庸。

4.1 批量梯度下降法(Batch Gradient Descent)

批量梯度下降法,是梯度下降法中最常用的形式吃警。具體做法就是在更新參數(shù)時 使用所有的樣本來進行更新糕篇。

4.2 隨機梯度下降法(Stochastic Gradient Descent)

隨機梯度下降法啄育,在求梯度時沒有用所有m個樣本數(shù)據(jù)酌心,而是選取了一個樣本 j 來求梯度,對應的更新公式:



這里可以看出挑豌,隨機梯度下降法SGD和BGD是兩個極端安券,一個選擇了一個樣本,另外一個選擇了所有的樣本氓英。各自的優(yōu)缺點都很突出侯勉,從訓練速度和訓練精度上面可以很好的區(qū)分。
那么有沒有一種比較折中的辦法呢铝阐?有

4.3 小批量梯度下降法(Mini-batch Gradient Descent)

對于m個樣本址貌,我們采用x個子樣本來迭代,1<x<m。一般可以取x=10练对,需要根據(jù)具體的樣本數(shù)量來調(diào)整取得樣本數(shù)量遍蟋,對應的更新公式:



5. 梯度下降法和其他無約束優(yōu)化算法的比較

機器學習中的無約束優(yōu)化算法,有梯度下降法螟凭、最小二乘法虚青、牛頓法、擬牛頓法螺男。
梯度下降法和最小二乘法相比棒厘,梯度下降法需要選擇步長,而最小二乘法不需要下隧。梯度下降法是計算迭代解奢人,最小二乘法是計算解析解。如果樣本量不大而且存在解析解汪拥,最小二乘法是更加具有優(yōu)勢的达传,計算速度快。但是如果樣本量很大迫筑,用最小二乘法需要計算一個超級大的逆矩陣宪赶,這時候就很慢,很難求解脯燃。
梯度下降法和牛頓法/擬牛頓法相比搂妻,兩者都是迭代求解,不過梯度下降法是梯度求解辕棚,而牛頓法/擬牛頓法是用二階的海森矩陣的逆矩陣或偽逆矩陣求解欲主。相對而言,使用牛頓法/擬牛頓法收斂更快逝嚎。但是每次迭代的時間比梯度下降法長扁瓢。

牛頓法不懂

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市补君,隨后出現(xiàn)的幾起案子赁濒,更是在濱河造成了極大的恐慌渗钉,老刑警劉巖荤西,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件祠饺,死亡現(xiàn)場離奇詭異,居然都是意外死亡叽掘,警方通過查閱死者的電腦和手機楣铁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來更扁,“玉大人盖腕,你說我怎么就攤上這事赫冬。” “怎么了溃列?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵面殖,是天一觀的道長。 經(jīng)常有香客問我哭廉,道長脊僚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任遵绰,我火速辦了婚禮辽幌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘椿访。我一直安慰自己乌企,他們只是感情好,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布成玫。 她就那樣靜靜地躺著加酵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪哭当。 梳的紋絲不亂的頭發(fā)上猪腕,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天,我揣著相機與錄音钦勘,去河邊找鬼陋葡。 笑死,一個胖子當著我的面吹牛彻采,可吹牛的內(nèi)容都是我干的腐缤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼肛响,長吁一口氣:“原來是場噩夢啊……” “哼岭粤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起特笋,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤剃浇,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后雹有,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體偿渡,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡臼寄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年霸奕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吉拳。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡质帅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情煤惩,我是刑警寧澤嫉嘀,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站魄揉,受9級特大地震影響剪侮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜洛退,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一瓣俯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧兵怯,春花似錦彩匕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至袜漩,卻和暖如春绪爸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宙攻。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工毡泻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人粘优。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓仇味,卻偏偏與公主長得像,于是被迫代替她去往敵國和親雹顺。 傳聞我的和親對象是個殘疾皇子丹墨,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容