谷歌機器學習課程筆記(4)——降低損失
一、迭代方法
為了訓練模型,需要一種可降低模型損失的好方法。迭代方法是一種廣泛用於降低損失的方法,而且使用起來簡單有效。迭代策略在機器學習中的應用非常普遍,這主要是因為它們可以很好地擴充套件到大型資料集。
下圖顯示了機器學習演算法用於訓練模型的迭代試錯過程:
“模型”部分將一個或多個特徵作為輸入,然後返回一個預測 (y') 作為輸出。
圖中的“計算損失”部分是模型將要使用的損失函式。
機器學習系統就是在圖中的“計算引數更新”部分根據所有標籤評估所有特徵,為損失函式生成一個新值,而該值又產生新的引數值。這種學習過程會持續迭代,直到該演算法發現損失可能最低的模型引數。通常需要不斷迭代直到總體損失不再變化或至少變化極其緩慢為止。這時候,可以說該模型已收斂。
二、梯度下降法
現在,將詳細說明“計算引數更新”部分的演算法。
假設我們有時間和計算資源來計算 w1 的所有可能值的損失。對於我們一直在研究的迴歸問題,所產生的損失與 w1 的圖形始終是凸形。
凸形問題只有一個最低點;即只存在一個斜率正好為 0 的位置。這個最小值就是損失函式收斂之處。
通過計算整個資料集中 w1每個可能值的損失函式來找到收斂點這種方法效率太低。我們來研究一種更好的機制,這種機制在機器學習領域非常熱門,稱為梯度下降法。
梯度下降法的第一個階段是為 w1選擇一個起始值(起點)。
然後,梯度下降法演算法會計算損失曲線在起點處的梯度。簡而言之,梯度是偏導數的向量;它可以讓您瞭解哪個方向距離目標“更近”或“更遠”。
梯度始終指向損失函式中增長最為迅猛的方向。梯度下降法演算法會沿著負梯度的方向走一步,以便儘快降低損失。
為了確定損失函式曲線上的下一個點,梯度下降法演算法會將梯度大小的一部分與起點相加。
然後,梯度下降法會重複此過程,逐漸接近最低點。
三、學習速率
正如之前所述,梯度向量具有方向和大小。梯度下降法演算法用梯度乘以一個稱為學習速率(有時也稱為步長)的標量,以確定下一個點的位置。
超引數是程式設計人員在機器學習演算法中用於調整的旋鈕,在梯度下降法中,學習速率就是一個超引數。大多數機器學習程式設計人員會花費相當多的時間來調整學習速率。
如果學習速率過小,就會花費太長的學習時間。
相反,如果學習速率過大,下一個點將永遠在左右彈跳而無法到達最低點。
每個迴歸問題都存在一個正好合適的學習速率。這個值與損失函式的平坦程度相關。如果損失函式的梯度較小,則可以採用更大的學習速率,以補償較小的梯度並獲得更大的步長。
四、隨機梯度下降法
在梯度下降法中,批量指的是用於在單次迭代中計算梯度的樣本總數。一個批量可能相當巨大。如果是超大批量,則單次迭代就可能要花費很長時間進行計算。
通過從資料集中隨機選擇樣本,可以從小得多的資料集估算(儘管過程非常雜亂)出較大批量的平均值。隨機梯度下降法(SGD) 將這種想法運用到極致,它每次迭代只使用一個樣本(批量大小為 1)。如果進行足夠的迭代,SGD 也可以發揮作用,但過程會非常雜亂。“隨機”這一術語表示構成各個批量的一個樣本都是隨機選擇的。
小批量隨機梯度下降法(小批量 SGD)是介於全批量迭代與 SGD 之間的折衷方案。小批量通常包含 10-1000 個隨機選擇的樣本。小批量 SGD 可以減少 SGD 中的雜亂樣本數量,但仍然比全批量更高效。
相關文章
- 機器學習課程筆記機器學習筆記
- Stanford機器學習課程筆記——SVM機器學習筆記
- 李巨集毅機器學習課程筆記-1.機器學習概論機器學習筆記
- 林軒田機器學習基石課程學習筆記4 — Feasibility of Learning機器學習筆記
- Andrew Ng機器學習課程筆記(四)之神經網路機器學習筆記神經網路
- 林軒田機器學習技法課程學習筆記4 — Soft-Margin Support Vector Machine機器學習筆記Mac
- 吳恩達《構建機器學習專案》課程筆記(1)– 機器學習策略(上)吳恩達機器學習筆記
- 吳恩達《構建機器學習專案》課程筆記(2)– 機器學習策略(下)吳恩達機器學習筆記
- 林軒田機器學習基石課程學習筆記14 — Regularization機器學習筆記
- Stanford機器學習課程筆記——神經網路的表示機器學習筆記神經網路
- Stanford機器學習課程筆記——神經網路學習機器學習筆記神經網路
- 吳恩達機器學習課程 筆記5 神經網路吳恩達機器學習筆記神經網路
- 課堂筆記4筆記
- 林軒田機器學習基石課程學習筆記15 — Validation機器學習筆記
- 林軒田機器學習基石課程學習筆記6 — Theory of Generalization機器學習筆記
- 林軒田機器學習基石課程學習筆記7 — The VC Dimension機器學習筆記
- 林軒田機器學習基石課程學習筆記8 — Noise and Error機器學習筆記Error
- 林軒田機器學習技法課程學習筆記9 — Decision Tree機器學習筆記
- 林軒田機器學習技法課程學習筆記15 — Matrix Factorization機器學習筆記
- 李巨集毅機器學習課程筆記-3.梯度下降精講機器學習筆記梯度
- React簡書開發實戰課程筆記——4React筆記
- python課程筆記Python筆記
- 史丹佛機器學習公開課筆記機器學習筆記
- 林軒田機器學習基石課程學習筆記3 — Types of Learning機器學習筆記
- 林軒田機器學習技法課程學習筆記13 — Deep Learning機器學習筆記
- 林軒田機器學習技法課程學習筆記10 — Random Forest機器學習筆記randomREST
- 林軒田機器學習技法課程學習筆記12 — Neural Network機器學習筆記
- 林軒田機器學習技法課程學習筆記6 — Support Vector Regression機器學習筆記
- 林軒田機器學習基石課程學習筆記10 — Logistic Regression機器學習筆記
- 臺灣大學林軒田機器學習基石課程學習筆記14 -- Regularization機器學習筆記
- Stanford機器學習課程筆記——多變數線性迴歸模型機器學習筆記變數模型
- 會計學課程筆記筆記
- 王道C短期課程筆記筆記
- 物聯網課程筆記筆記
- lua課程學習筆記筆記
- 林軒田機器學習基石課程學習筆記2 — Learning to Answer Yes/No機器學習筆記
- 林軒田機器學習技法課程學習筆記16(完結) — Finale機器學習筆記
- 林軒田機器學習技法課程學習筆記8 — Adaptive Boosting機器學習筆記APT