損失函數(shù)與梯度下降
針對實際問題,要使用不同模型進行擬合,其中最簡單的就是線性函數(shù)擬合模型。在監(jiān)督學習當中,數(shù)據(jù)集被劃分為訓練集和測試集,其中用m來表示訓練集中訓練樣本的個數(shù),x表示輸入特征,y表示輸出目標,一組(x,y)就表示一個訓練樣例。
監(jiān)督學習的過程類似于向訓練集提供一個學習算法,由這個學習算法來得到一個假設函數(shù),這個假設函數(shù)處理輸入的特征信息x,輸出預測的結果,以單元房價信息預測為例,輸入房間的大小,輸出預測的價格。這個函數(shù)只能時假設函數(shù),通常情況下并不合適,也無法完成精準預測,是針對輸入特征x的函數(shù)。
對于假設函數(shù)的表示方面,初始使用單一變量來簡化問題,如下所示

假設函數(shù)由不同的參數(shù)來確定,需要進行評估和調(diào)整,參數(shù)好壞的評估由代價函數(shù)來確定,代價函數(shù)Cost是針對參數(shù)的函數(shù),在本模型中選擇采用預測值與準確值的方差作為整個模型的代價函數(shù)。學習目標也就是讓代價函數(shù)達到最小,整個過程就是通過計算預測值,計算代價函數(shù),再調(diào)整假設函數(shù)的參數(shù)來實現(xiàn)。
參數(shù)調(diào)整過程中最經(jīng)典的做法是梯度下降法Batch Gradient Descent。

在上例中的三維圖像上,首先是給出參數(shù)的初始值,也就是在圖像上任意取一點,分別確定初始參數(shù)值在x軸和y軸上的位置,也就確定了初始的代價函數(shù)的大小,不同的初始值可能最后得到的不同的局部最優(yōu)解。
目標是實現(xiàn)快速下山達到局部最低的谷底,也就是讓代價函數(shù)達到局部最優(yōu)解,一般就是采用求偏導數(shù)的做法來實現(xiàn)以最快的方向——斜率的反方向來實現(xiàn)最快的找到局部最優(yōu)解。

其中計算函數(shù)里面的α表示學習率,也就是下山過程中的速度大小,控制參數(shù)沿此方向每輪移動的步幅,如果α太小會導致收斂的計算過程耗時太長,影響模型的效率;如果α太大會導致結果在局部最優(yōu)解附近反復橫跳,甚至可能會逐漸遠離導致無法收斂。

在假設函數(shù)中存在多個參數(shù),也就是代價函數(shù)存在多個自變量時,需要保證在梯度下降算法中同時更新,在一輪計算過程中確保所使用的偏導數(shù)的值唯一,沒有發(fā)生變化,下山的步驟順序不能變化。
隨著計算收斂過程的進行,斜率在不斷的降低,收斂速度也在不斷地下降,無需把初始的α設置的過于小。在到達局部最優(yōu)解后,導數(shù)值為零,但此時可能并不是最后的最小的代價值,梯度下降法不在運行,參數(shù)不會發(fā)生變化。
整體的學習過程也就是,為了使得代價函數(shù)的值最小,不斷地調(diào)整出最合適的參數(shù),得到預測效果最好的擬合函數(shù)。