最近在學習得過程中感悟很大,即通過OKR的方法來形成自己學習內容中最小的閉環。另外對所謂學過的知識經常忘有了新的認識,所要做的不是以前的那套–所謂和遺忘作鬥爭不斷去重複,而是思考清楚爲什麼會遺忘,一是自己沒有真正理解,二是沒有將知識點相互關聯串起來。
一定要找到所學習內容中最小的閉環,然後,慢下來
Q: 解釋梯度下降法和牛頓法原理:
梯度下降法:泰勒展開到一次項,忽略二次以上的項,用一次函數來線性代替,最後通過移項來得到迭代式;
牛頓法:把函數展開未二次,忽略二次以上的項,用二次函數來近似代替,最後通過對二次的函數求梯度,讓梯度爲0來得到迭代式;
Q: 一句話解釋下梯度下降及牛頓法:
梯度下降法是沿初始點梯度向量的反方向進行迭代,進而得到函數的極值點,參數迭代公式爲:
牛頓法是直接使用駐點處導數爲零,推導處參數迭代公式:
Q: 梯度下降法的優缺點,如何改進?
-
梯度下降沿着負梯度方向走,向目標函數梯度爲零的點收斂,因此迭代可能停止在鞍點處;
什麼是鞍點?->目標函數在此點上的梯度(一階導數)值爲 0,但從該點出發的一個方向是函數的極大值點,而在另一個方向是函數的極小值點。
判斷鞍點標準:函數在一階導數爲0處(駐點)的海森矩陣爲不定矩陣;
判斷矩陣正定:對於n階矩陣A,若有任意的非0向量X: $ X^{T} A X > 0 $
-
梯度下降法只會收斂到極小值點,而不一定是最小值點。當目標函數存在多個極小值點時,初始點的選擇就非常重要;
-
梯度下降法的學習率是人爲設置的一個參數,當學習率較小時,達到收斂的迭代次數比較大。當學習率較大時,會存在極小值點處震盪無法收斂的情況。
改進方法:初始值的設定,步長的選擇,迭代終止的判定規則;
Q: 梯度下降法中,爲什麼要沿着負梯度方向走?
由多元函數的泰勒公式:
當x在的鄰域內,則可以將高階無窮小忽略,得到:
因爲目的是從找更小的f(x),所以小於等於0,即:小於等於0;
解釋一:湊法
可以看作是兩個向量做內積,我們可以令,
代入得:
,其一定小於等於0,故
解釋二:向量內積
根據向量得內積公式,得:
當爲鈍角時即可保證函數是往降低得方向來進行移動,當取負方向時,即是梯度下降的最快的方向。
從原理解釋,梯度下降中步長的作用?
梯度下降優化的基本理論是採用迭代法近似求解,逐步求精。
在近似求解的過程中,我們把無窮小量忽略掉了,而忽略了無窮小量的前提是x與離得充分近,才能忽略泰勒展開中一次以上的項。而步長的作用就是和的梯度相乘後,控制讓x與離得充分近。
Q: 牛頓法的優缺點,如何改進?
- 牛頓法不能保證每次迭代時函數值都下降,故當步長的值沒取好的話可能會不收斂。所以解決的方法是直線搜索,即搜索最優步長,具體的做法是讓步長取一些離散值:如->0.0001,0.001,0.01等,比較取哪個值時函數值下降最快,作爲最優步長;
- 牛頓法的推導中,要求Hessian矩陣可逆,所以當Hessian矩陣不可逆時,牛頓法會失效;
- 當變量個數多,海森矩陣的規模大時,求解方程組會很消耗時間;(擬牛頓法對此進行了優化)
- 局部極小值和鞍點問題;
Q: 爲什麼說目標函數是二次函數時,無論初始點在什麼位置,牛頓法就可以一步到位?
牛頓法的基本方法仍然是採用迭代法近似求解,逐步求精。和梯度下降法不同的是,其直接找
等於0,採用迭代法向着梯度爲0的點靠近。
多元函數的泰勒展開公式展開到二階得到:
如果x在的鄰域內,可以將無窮小給忽略掉,得到:
在這裏我們爲了湊出,對兩邊的x分別求梯度,由兩個推導公式推得:
令梯度值爲0,得:
因爲已知,記爲g,那麼:,如果海森矩陣可逆,則兩邊同時乘上,有:
同樣,因爲X需要在的鄰域內,所以也給加上步長,得:
所以,當目標函數爲二次函數時,海森矩陣爲一個數,當步長爲1時,可以直接得到最優的X
Q: 牛頓法中要求Hessian矩陣可逆在哪一步中體現?
在令後,需要對兩邊化簡得出X時;