轉梯度演算法的理解

2021-08-08 13:23:40 字數 1417 閱讀 7245

梯度

從數學的角度理解:就是

對多元函式進行分別的求偏導數,把各個的引數對應的偏導數一起以向量的形式表示出來。向量即(x,y),幾何上就是有一定的方向也(假設在二維平面上)。沿著這個方向上的函式是變化最快的。

特例:梯度下降

換**話就是:比如我們正在山頂上,我要以最快的速度走到山底去,咋辦?肯定是找向下的一步一步的走下坡路且是下降最厲害的那個方向下去,才能是最快到達山底。

這裡的下坡路就是梯度為負值,而且上面說了梯度的特點就是函式變化最快的。所以我們每走一步,就重新定位到當前的梯度方向,沿著梯度這個方向走最陡,也會是下降的高度最大,這樣每一步都是下降最快的方向下降,最終累加起來肯定是最快到達最低點的。有點像區域性最優解,最終導致總體最優解的貪心演算法。

但是有時候你也可能到不了山底,為什麼?如右圖,因為你沿著梯度方向走沒錯,是最陡的方向下降也最快,可是因為你起點不同,起點地方的梯度也就不同了,這樣一步步按照梯度方向走,最終實際上確找不到最底點。而是乙個區域性的最底點,而我們是要走到整個大山的最底點啊,對的,有時候梯度下降方法理論沒錯,但有時候也還是走不到真正的最底點。

總結:利用梯度法不一定能找的到整體最優解。但是如果此函式是凸函式(即只有乙個山峰)那就還是能夠找到最優解。然後影響因素還有你的起點,你起點不同,用的梯度下降法,最終也可能導致找不到最底點,這就有點看運氣了。還有就是,你的步長大小,在左一圖中,如果你邁開步子比較大的話,在快接近最低點的時候,正好被你跨過去了,所以錯失了最低點。

在深層學習裡面,為了使得loss函式最小,會用梯度演算法來找最底點。但是有時候找到的可能是區域性最底點,不一定是整體最低點。沒關係,舉吳恩達統計說,其實最終2著相差不大,所以可以忽略不計。

所以在反向傳播時候,就是用梯度下降法,來使得loss函式最小,loss函式就是山的最底點。每經過反向傳播到達一層網路,就像是在山頂向下走了一步,然後又往前面一層傳播用梯度下降法,又相當於在當前腳下沿著最陡方向下降了一步。所以影響loss函式的因素就是:你邁開步子的大小(即學習率),太大會錯過最底點,太小走的慢費時間。還有,就是你的初始值(即你的起始點),前面分析了。梯度下降法,保證了你就是沿著最陡的方向走,每一步當前最陡的方向,所以你不用擔心每個地方的最陡方向不同。梯度下降法就是找當前腳下最陡的那個方向,你沿著那個方向走下去就沒事的。

梯度下降演算法理解(梯度的含義)

梯度 梯度的本意是乙個向量 向量 表示某一函式在該點處的方向導數沿著該方向取得最大值,即函式在該點處沿著該方向 此梯度的方向 變化最快,變化率最大 為該梯度的模 參考這個部落格 1 梯度下降 gradient descent 3 梯度下降法的基本思想可以模擬為乙個下山的過程。假設這樣乙個場景 乙個人...

數學 梯度的理解

函式 z f x,y 表示空間曲面 s,則點 p x0,y0,z0 在 s 上,過點 p 和 p0 的 u 方向的垂直平面交 s 於曲線 c,f 沿方向 u 的變化率是 c 在點 p 的切線的斜率,觀察下面動畫 當 u 與 f 同方向時,函式 f 增加最快,類似,反方向減少最快.而正交於梯度的方向 ...

理解GBDT演算法(三) 基於梯度的版本

這篇博文主要從下面這幾個方面來說基於梯度的gbdt演算法 1 演算法的基本步驟 2 其中的學數學推導 3 基於梯度的版本和基於殘差的版本之間的聯絡 在講解演算法的詳細步驟之前,我們可以先明確乙個思路,就是梯度版本的gbdt是用多類分類multi class classification 的思想來實現...