網(wǎng)站目錄不能訪問百度站長工具網(wǎng)站提交
“Men pass away, but their deeds abide.”
人終有一死,但是他們的業(yè)績將永存。
——奧古斯坦-路易·柯西
目錄
前言
簡單函數(shù)求極值
復雜函數(shù)梯度法求極值
泰勒展開
梯度,Nabla算子
Cauchy-Schwarz不等式
梯度下降算法
算法流程?
梯度下降法優(yōu)缺點
前言
? ? ? ? 在學習和訓練過程中,需要根據(jù)訓練樣本來確定一組與分類器模型相關的參數(shù)。學習過程往往要首先定義某個準則函數(shù),用以描述參數(shù)的“合適性”,然后尋找一組“合適性”最大的參數(shù)作為學習的結果,也就是將學習問題轉化成針對某個準則函數(shù)的優(yōu)化問題
簡單函數(shù)求極值
? ? ? ? 對于簡單函數(shù),根據(jù)數(shù)學分析的知識可知:
?維矢量?
?是?
?的極值點的必要條件是:
- 將所有的偏導數(shù)寫成矢量形式:
- 函數(shù)?
?的極值點可以通過求解該矢量方程得到
? ? ? ? 但是,上述方程的解可能是極大值點,也可能是極小值點,也可能不是極值點,具體情況還需二階導數(shù)來判斷。?
? ? ? ? 如果希望求??的極大值或極小值點,可以通過比較所有的極大值或極小值得到。
復雜函數(shù)梯度法求極值
? ? ? ? 對于簡單的純凸函數(shù)或純凹函數(shù),由于只存在唯一的極值點,極值點即為最大值或最小值點,因此可以直接求解矢量方程??得到?
?的優(yōu)化解。
? ? ? ? 對于復雜函數(shù)來說,直接求解矢量方程得到優(yōu)化函數(shù)的極值點往往非常困難。在這種情況下,可以考慮采用迭代的方法從某個初始值開始,逐漸逼近極值點,即——梯度法
泰勒展開
- 如果給定了點?
?具有所有的前?
?階導數(shù)的函數(shù)?
,我們稱多項式:
為函數(shù)?
?在點?
?處的?
?階泰勒展開式
????????泰勒公式是高等數(shù)學中的一個非常重要的內容,它將一些復雜的函數(shù)逼近近似地表示為簡單的多項式函數(shù),泰勒公式這種化繁為簡的功能,使得它成為分析和研究許多數(shù)學問題的有力工具?
考慮到多元函數(shù)??在點?
?附近的一階泰勒展開式:
其中:
?????????為矢量增量
?????????為其第?
?維元素
?????????為展開式的余項
梯度,Nabla算子
接下來引入梯度的概念
?設二元函數(shù)?
?在平面區(qū)域?
?上具有一階連續(xù)偏導數(shù),則對于每一個點?
?都可以定出一個向量:
稱作函數(shù)?
?在點?
?的梯度,記作?
其中:
稱為(二維的)向量微分算子或Nabla算子
設?
?是方向?
?上的單位向量,則:
當?
?與梯度方向一致時,有:
此時方向導數(shù)?
?有最大值,值為梯度的模:
我們將其推廣到無窮維的情況:
設?
?維函數(shù)?
?在空間區(qū)域?
?內具有一階連續(xù)偏導數(shù),點?
,稱向量:
為函數(shù)???在點?
?處的導數(shù),記為?
?稍微集中一下注意力:
? ? ? ? ?注意到一階展開式中求和項?,改寫為:
? ? ? ? 不難發(fā)現(xiàn),該求和式實際上為??關于?
?的梯度矢量與矢量增量?
?之間的內積。
? ? ? ? 同時,令?,有
,于是有:
? ? ? ? 如果要求取??的極小值?
,可以從某個初始點?
?開始搜索,每次增加一個增量?
,雖然不能保證?
?直接達到極小值點,但如果能夠保證每次迭代過程中函數(shù)值逐漸減小:
? ? ? ? 那么經(jīng)過一定的迭代次數(shù)之后,函數(shù)值能夠逐漸逼近極小值?,這是一個逐漸下降的過程,因此稱為梯度下降法。
? ? ? ? 更進一步,如果希望下降過程越快越好,用盡可能少的迭代次數(shù)逼近極小值,達到對極小值更高精度的逼近,這種方法稱為最速下降法
Cauchy-Schwarz不等式
要使函數(shù)值下降的最快,就是要尋找一個矢量增量??使得?
?最小。
我們引入Cauchy-Schwarz不等式:
其向量形式(歐式空間):
這里不做嚴謹?shù)淖C明,且該結論對于大部分人來說非常顯然
? ? ? ? 由于上面我們只展開到一階近似,當??過大時,余項?
?便不能忽略,近似的精度會很差。因此不能直接尋找矢量增量,而是應該尋找使得函數(shù)值下降的最快的方向,也就是在約束?
?的條件下,尋找使得?
?最小的矢量增量。找到最速下降的方向后,在確定該方向上合適的矢量長度
? ? ? ? 根據(jù)柯西不等式:
? ? ? ? 令
????????有:
? ? ? ? 可以得到,當??為負的梯度方向時,不等式等號成立,
?取得最小值,函數(shù)值下降速度最快。
? ? ? ? 所以,最速下降法按照以下方式進行迭代:
? ? ? ? 其中??一般被稱為“學習率” ,用于控制矢量的長度。如果是要尋找極大值,則?
?應當沿梯度正方向。
梯度下降算法
因為代碼求梯度非常困難
,博主手搓不出來,這里只給算法流程
算法流程?
- 初始化:
- 循環(huán),直到
![]()
- 計算當前點的梯度矢量:
- 更新優(yōu)化解:
- 輸出優(yōu)化解
? ? ? ? 參數(shù)??為收斂精度,值越小,輸出解越接近極小值點,同時迭代次數(shù)越多。
梯度下降法優(yōu)缺點
優(yōu)點:
- 算法簡單,只要知道任意一點的梯度矢量就能進行迭代優(yōu)化?
- 在學習率合適的情況下,算法能很好的收斂到極小值點
缺點:
- 對于梯度值較小的區(qū)域,收斂速度很慢
- 收斂性依賴于學習率的設置,與初始值選擇無關,但目前對于某個具體問題來說,還沒有能夠直接確定學習率的方法
- 梯度下降只能保證收斂于一個極值點,無法一次計算出所有的極值點,具體收斂到哪個極值點依賴于初始值的設置
- 梯度下降不能保證求得的極小值是全局最小值?
參考文獻
【1】模式識別 -?劉家鋒
【2】數(shù)學分析(一)- 崔國輝