1. 程式人生 > 其它 >tensorflow學習004——梯度下降演算法

tensorflow學習004——梯度下降演算法

梯度下降演算法是機器學習的一個核心演算法

梯度下降法是一種致力於找到函式極值點的演算法。機器學習的“學習”便是改進模型引數,以便通過大量訓練步驟將損失最小化。而梯度下降法就是應用於尋找損失函式的極值點便構成了依據輸入資料的模型學習。

前兩小節的損失函式loss=(f(x)-y)^2/n=(ax+b-y)^2/n, 現在就是找到一個合適的a,b使得loss最小。我們可以畫一個關於loss,a,b的三維立體圖形。

隨機初始化a,b找到它的梯度,按照梯度方向改變a,b使得loss減少,每次改變a,b的多少,取決於其學習速率的多少。學習速率過小,我們需要迭代很多輪才能找到正確的結果,使得效率降低;如果速率過大,則演算法可能會“跳過”極小值點並且因週期性的“跳躍”而永遠無法找到極小值點。

這裡介紹的梯度下降演算法,看似因為初始化的位置,可能只能找到區域性極值點,但是實際上其並不是這麼簡單,是可以找到全域性極值點的,不過整體演算法比較複雜,這裡就只簡單介紹一下


作者:孫建釗
出處:http://www.cnblogs.com/sunjianzhao/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。