梯度下降理解

2021-08-20 22:23:28 字數 1097 閱讀 9505

第二天系統學習。

1.設損失函式為j(θ),希望將這個函式最小化,通過梯度下降方法找到最優解。這裡應該有些假設,這個函式是凸函式。

以兩個引數為例,隨機乙個點開始,開始下山,對於這個點到最底部,最好的方式就是切線方向,這個方向下降最快,就像圖中紅色×,每次按照藍色切線箭頭以一定的長度往下走,當走到最低點是停止。對每乙個θ求偏導數,合方向為最終方向。

θj = θj - a(j(θ)對每個θj的偏導)

這裡的a是learning rate 學習速率,代表了下降的步長,就是每一次下降多麼遠的距離,這個a的選擇需要調整。

2.將梯度下降和線性回歸演算法結合

對於線性回歸演算法,在上乙個部落格中推導了標準方程法,但是這種方法有缺陷,下面用梯度下降推導一下。這裡用兩個引數為例,對於損失函式j來自於上個部落格中的最小二乘法方程,這裡多了乙個m,對m的解釋:如果沒有m整個損失函式j將是樣本偏差的和,這個和除以m就是平均偏差,這樣就和樣本數量沒有太大關係了。

設定好a之後,不斷更新θ的值,直到θ值沒有變化,這裡可以設定乙個很小的數。此時可以認為已經到了最低點,此時的θ為最優解。

3.推廣到多元線性回歸。

首先設定**函式h,將x0置為1,把x和θ轉為向量,h就可以用向量表示。

後面基本一樣,只是多個式子合併為乙個。

4.a 學習率的選擇

太大太小都不好,太大的話容易越過最低點;太小的話時間太長,每次只能走很小一步所以整體時間會很慢,這個一般來說可以乙個乙個的試,0.01,0.001,0.0001,0.05等等,如果發現j原來越大說明跳過了最低點,a太大了應該調低,如果j變化很**明a太小了,應該調大一點。

5.梯度下降方式

理解梯度下降法

梯度下降法是求解無約束最優問題中常用到的一種學習方法,形式簡單,屬於一階收斂,在空間進行線性搜尋。在前面講到的邏輯斯蒂回歸模型中,就常用到梯度下降法來學習引數。首先給出問題定義 統計學習方法附錄a 假設f x 是rn 上具有一階連續偏導的函式,求解的目標問題如下 mi nx r nf x x 表示目...

梯度下降 隨機梯度下降 批梯度下降

下面的h x 是要擬合的函式,j 損失函式,theta是引數,要迭代求解的值,theta求解出來了那最終要擬合的函式h 就出來了。其中m是訓練集的記錄條數,j是引數的個數。梯度下降法流程 1 先對 隨機賦值,可以是乙個全零的向量。2 改變 的值,使j 按梯度下降的方向減少。以上式為例 1 對於我們的...

具體例項理解梯度下降

2次函式通過梯度下降法不斷逼近臨界值 coding utf 8 created on wed dec 27 16 46 06 2017 author administrator import numpy as np import matplotlib.pyplot as plt import sym...