梯度下降法和先前學習的演算法有著明顯的不同
他本身不是乙個機器學習的演算法,它既不是監督學習也不是非監督學習,其是一種基於搜尋的最優化的方法,作用是最小化乙個損失函式,相應的,我們想要最大化乙個效用函式的話,就要用梯度上公升法,最小化方面是很常用梯度下降法的
從二維平面上看,可以發現其本質就是尋找乙個引數使得損失函式最小,其中縱軸為損失函式j
對相應的點進行求導,其中導數代表著引數變化的時候,損失函式相應的變化,直線和曲線上導數都可代表斜率(高數基本的東西,不再贅述),其中,導數還可以代表方向,對應損失函式增大的方向,可以得到乙個數值
其中導數前的數值η是先確定好的
我們需要一直計算,直到導數等於0(即取極值),就像是乙個球一路滾落,直到最深處
其中這個速度是由學習率η決定的,其取值會影響到獲得最優解的速度,如果取值不合適的話,甚至有可能出現得不到最優解的情況,太小就會減慢學習速度,太大甚至有可能導致不收斂,η相當於是梯度下降法的超引數,因此我們可是使用調參的方式來調整到最好的情況
而在事實上,並不是所有的函式都有唯一的極值點,像是線性回歸這種損失函式就是具有唯一的最優解的,但是更多的時候,我們所找到的第乙個極值點並不是最終的最好的解,可能還存在更好的解,這樣我們稱第乙個點為區域性最優解,最小值點為全域性最優解
這樣的情況下也是有解決方案的,我們可以多次執行,對初始點進行隨機化,這樣每次執行結果比較一下,逐步嘗試,有可能找出全域性最優解
這樣我們發現,梯度下降法的初始點的位置一樣也是乙個超引數,其是非常重要的
筆記 梯度下降法
詳解機器學習中的梯度消失 原因及其解決方法 導數 方向導數和梯度 要了解梯度下降演算法是什麼首要知道梯度是什麼,導數和方向導數又是了解梯度的前提。導數導數反映的是函式y f x 在某一點處沿x軸正方向的變化率,如果f x 0,說明f x 的函式值在x點沿x軸正方向是趨於增加的 如果f x 0,說明f...
梯度下降法和隨機梯度下降法
批量梯度下降法 batch gradient descent 在更新引數時使用所有的樣本來進行更新 隨機梯度下降法 stochastic gradient descent 求梯度時沒有用所有的m個樣本的資料,而是僅僅選取乙個樣本j來求梯度。小批量梯度下降法 mini batch gradient d...
梯度下降法
梯度下降法 是乙個一階 最優化演算法 通常也稱為 最速下降法 我之前也沒有關注過這類演算法。最近,聽史丹福大學的機器學習課程時,碰到了用梯度下降演算法求解線性回歸問題,於是看了看這類演算法的思想。今天只寫了一些入門級的知識。我們知道,函式的曲線如下 程式設計實現 c code cpp view pl...