吳恩達機器學習系列25:隨機梯度降低算法

現在機器學習的數據集動則幾千萬或上億,若是運用咱們以前學過的 Batch 梯度降低算法,就會發現效率很低,由於在梯度降低時,每次循環都要對全部的數據進行求和,這會浪費大量的時間。有沒有更好的方法去處理大數據呢?答案是有的。咱們在處理大數據時,會選擇隨機梯度降低算法(Stochastic gradient descent)算法


下面是隨機梯度降低算法的代價函數:微信

未命名圖片.png

以後是隨機梯度降低算法:機器學習

未命名圖片.png

首先須要隨機打亂全部的數據集,而後就到了算法的核心,這個算法有兩層循環,外循環一般來講有 1-10 次,具體次數視問題而定;內循環遍歷全部的數據集一次,相比 Batch 梯度降低算法 ,它不須要每次循環都遍歷一遍數據集函數


咱們能夠把 Batch 梯度降低算法隨機梯度降低算法運行過程畫在一張圖上:學習

未命名圖片.png

紅色的路線爲 Batch 梯度降低算法的收斂路線粉色爲隨機梯度降低算法的收斂路線。能夠看到,隨機梯度降低算法不必定每次都會進行收斂,但整體會朝着收斂的方向進行,最終收斂到全局最小處。大數據




ps. 本篇文章是根據吳恩達機器學習課程整理的學習筆記。若是想要一塊兒學習機器學習,能夠關注微信公衆號「SuperFeng」,期待與你的相遇。spa

請關注公衆號.PNG

相關文章
相關標籤/搜索