2019/11/19 Caesar
前言
??根據(jù)之前的學習,我們可以這樣簡單的解釋機器學習,機器學習就是需找一種函數(shù)f(x)并進行優(yōu)化, 且這種函數(shù)能夠做預測、分類、生成等工作。那么我們可以總結出機器學習的三部曲:
- 第一步:定義一個函數(shù)集合(define a function set)
- 第二步:判斷函數(shù)的好壞(goodness of a function)
- 第三步:選擇最好的函數(shù)(pick the best one)
??我們之前已經(jīng)在線性回歸一節(jié)中大致介紹了如何找到一個函數(shù),以及如何判斷損失函數(shù)的好壞,這節(jié)我將重點放在如何選擇最好的函數(shù)。這就引出了本節(jié)將要介紹的梯度下降,梯度下降是當前機器學習、深度學習解決最優(yōu)化問題算法中應用最廣的方法。
1. 最優(yōu)化方法
??所謂最優(yōu)化方法,即尋找函數(shù)極值點的數(shù)值方法。通常采用的是迭代法,它從一個初始點x0開始,反復使用某種規(guī)則從xk移動到下一個點xk+1,直至到達函數(shù)的極值點。這些規(guī)則一般會利用一階導數(shù)信息即梯度;或者二階導數(shù)信息即 Hessian 矩陣。算法的依據(jù)是尋找梯度值為0的點,因為根據(jù)極值定理,在極值點處函數(shù)的梯度必須為0。但是需要注意,梯度為0是函數(shù)取得極值的必要條件而非充分條件。因此,即使找到了梯度為0的點,也可能不是極值點。
??我們將最優(yōu)化問題統(tǒng)一表述為求解函數(shù)的極小值問題,即
其中, x 稱為優(yōu)化變量, f 稱為目標函數(shù)。極大值問題可以轉換成極小值問題,只需將目標函數(shù)加上負號即可。
2. 梯度
??多元函數(shù)的導數(shù)(derivative)就是梯度(gradient),分別對每個變量進行微分,然后用逗號分割開,梯度是用括號包括起來,說明梯度其實一個向量,我們說損失函數(shù)L的梯度為:
設二元函數(shù) 在平面區(qū)域 D 上具有一階連續(xù)偏導數(shù),則對于每一個點 P(x,y)都可定出一個向量
,該函數(shù)就稱為函數(shù) z = f(x, y) 在點 P(x, y) 的梯度,記作 gradf(x,y)或 ,
即有:
其中
稱為(二維的)向量微分算子或Nabla算子。