第四章主要研究的是優化問題。我們機器學習的目標常常是使某個目標函數(objective function)或損失函數(cost function)盡量小,即找到一個 . 對於有的問題我們可能可以得到解析解,但對於大多數問題,我們可能無法得到解析解,這時候就需要一些數值計算的方法使我們逐漸逼近最優解,這一章裏就主要講了利用一階導數的梯度下降演算法和利用二階導數的牛頓方法,另外還有研究在給定某些限制條件下的條件極值的解法,Ian在這一章有些解釋可能略過了,在這裡我加入了自己的理解使其更易懂。
梯度下降演算法
首先,回顧一下基本概念,對於函數 ,我們通常用 或 來表示其導數。導數代表了f(x)在x處的斜率,即假如我們將x改變一個小量 ,則 。
而梯度下降演算法(gradient descent)就是我們想要尋找f(x)的最小值,假設我們初始位置是 ,那我們下一次想要找的新的x的位置為 ,其中 。由此我們可以得到 f(x)相對於f(x)是變小的,所以我們可以通過這種更新方式逐步逼近f(x)的最小值。比如對於一個簡單的二次函數 ,其導數為 , 在x>0時,f(x)也大於零,所以新的位置應往左邊走,使f(x)更小,對於x<0時,f(x)小於零,因此新的位置應往右邊走,最終我們會得到在x=0時有最小值f(x)=0。