機器學習 梯度下降法

2022-03-22 01:36:53 字數 2012 閱讀 1568

1)梯度下降法的邏輯思路

η 的取值影響獲得最優解的速度;

η 取值不合適,甚至得不到最優解;

η 是梯度下降法的乙個超引數;一般需要調參找到最適合的 η;

η 太小,減慢收斂學習速度

η 太大,導致不收斂

2)梯度下降法的問題

3)其它1)具體實現

# 模擬損失函式:y = (x - 2.5)**2 - 1

# 資料集特徵值:plot_x = np.linspace(-1, 6, 141)

計算當前theta值對應的損失函式 j 的值時,要進行異常檢測

原因:當 eta 過大時,使得損失函式是不斷增大的,也就得不到滿足精度的損失函式值,就會報錯;
如何判斷theta是否來到了極值點?

方案:設定精度,當前的損失函式值 - 上一次的損失函式值之間的差 < 精度,此時停止迴圈,以為當前的損失函式值為區域性最優解;
問題:

①、一般判斷函式的極值點位置:導數 == 0
②、程式設計具體實現的時候,有可能由於eta設定的不合適,或者求導時有浮點精度,使得求取的損失函式最小值所對應的theta點,不是導數剛好等於 0 的點;
梯度下降,迴圈搜尋時,設定迴圈次數;

原因:如果不設定迴圈次數,程式出現死迴圈時會一直執行;
np.linspace(-1, 6, 141):將區間 [-1, 6] 等分成141個點,包含 -1 和 6;

abs(x):返回x的絕對值;

2)給定不同的學習率、初始值,檢視優化情況

現象:搜尋開始時 j 和 theta 變化都比較大,最後變化較小;(搜尋點的分布:由疏到密)

# 原因:theta的每次變化量 == eta * 2 * (theta-2.5),隨著theta的不斷減小,每次的變化量也會減小,因此水平方向上點的分布越來越密

另外,由j == (theta - 2.5) ** 2 - 1看出,每次的 j 的變化量也會減小,因此垂直方向上點的分布也會越來越密

# 變化量 == 學習率 x 導數,導數 == 2*(theta - 2.5),new_theta == last_theta  —  last_變化量

機器學習之梯度下降法 梯度下降法分析

梯度下降法的基本思想是函式沿著其梯度方向增加最快,反之,沿著其梯度反方向減小最快。在前面的線性回歸和邏輯回歸中,都採用了梯度下降法來求解。梯度下降的迭代公式為 j j j j 在回歸演算法的實驗中,梯度下降的步長 為0.01,當時也指出了該步長是通過多次時間找到的,且換一組資料後,演算法可能不收斂。...

機器學習 梯度下降法

梯度下降法,一般用來求解線性回歸方程,我的理解是根據一組形如 特徵1,特徵2.結果 的資料來找到這些對應的特徵和結果之間的聯絡 例如,我們利用一組 銷量的資料判斷乙個物品的銷量和 之間的關係 我們要求的線性回歸方程可以表示為 銷量 引數 實質上其實就是找到對應的 引數 而當影響乙個結果的特徵不只有乙...

機器學習 梯度下降法

機器學習中往往需要刻畫模型與真實值之間的誤差,即損失函式,通過最小化損失函式來獲得最優模型。這個最優化過程常使用梯度下降法完成。在求解損失函式的最小值時,可以通過梯度下降法來一步步的迭代求解,得到最小化的損失函式和模型引數值。解釋梯度之前需要解釋導數與偏導數。導數與偏導數的公式如下 導數與偏導數都是...