自學筆記 梯度下降

2021-10-06 12:44:39 字數 1613 閱讀 8424

假設函式

乙個簡單的線性回歸擬合函式可以表示為:hθ(x) = θ0 + θ1·x

當然xi 可以有很多通常也用矩陣來表示,但為了方便理解後面均用簡單的線性函式

損失函式

又稱為代價函式,對於線性回歸的損失函式可以表示為:

j(θ) = 1/(2 *n) * ∑ ( hθ(xi) − yi )2 (其中n表示樣本數量)

梯度

損失函式的梯度,即對 θi 求偏導

下降過程

(1) 學習得到損失函式 j(θ) 及樣本點xi 的損失:

例如,對於線性回歸模型的假設函式為: hθ(x) = θ0 + θ1·x1 + θ2·x2 ,則損失函式為:j(θ) = 1/(2 *n) * σ(θ0 + θ1·x1 + θ2·x2 - y)2;我們為樣本新增乙個維度x0 ,x0 恆等於 1。則,我們可以變損失函式表示為:j(θ) = 1/(2 *n) * σ(θ0·x0 + θ1·x1 + θ2·x2 - y)2

為了便於自己理解,我只取乙個樣本點進行計算。對於樣本點 x1 = (x0 = 1,x1 = 1,x2 = 2),對應的目標變數 y1 = 10,的損失為:j(θ)1 = 1/2 (θ0 + θ1+ 2θ2 - 10)

(2) 求出樣本點 xi 損失函式的梯度向量:(求偏導)

根據 j(θ)1 ,求出樣本點 x1 對應的梯度▽j(θ) =

(3) 初始化假設函式的參

對 θ 進行隨機取值,假設θi 第一次全部取0,θ = < 0,0,0>;

將θ0 帶入 j(θ)1 ,得到 取 θ0 時的損失為 j(θ) = 1/2 (0 + 0+ 20 - 10)2 = 50

將θ0 帶入▽j(θ)1 ,得到 θ0 處的梯度向量為 ▽j(θ) = < -10,-10,-20 >

(4)設定學習率,其實根據上面的可檢視,可以理解為步長:

設立步長 α = 0.1 ,對 θ 進行梯度下降,得到 θ1

第一次梯度下降:

θ1 = θ0 - α * ▽j(θ)01 = < 0,0,0 > - 0.1 * < -10,-10,-20 > = < 1,1,2 >

將θ1 帶入 j(θ)1 ,得到 取 θ0 時的損失為 j(θ)01 = 1/2 (1 + 1+ 22 - 10)2 = 8

將θ1 帶入▽j(θ)1 ,得到 θ0 處的梯度向量為 ▽j(θ)01 = < -4,-4,-8 > ;

第二次梯度下降:

θ2 = < 1,1,2 > - 0.1 * < -4,-4,-8 > = < 0.4,0.4,1.2 >    

j(θ)01 = 1/2 (0.4 + 0.4+ 21.2 - 10)2 = 23.12  

此時我們發現,θ2 處的損失為23.12,大於 θ1 處的損失8,說明,我們可能步子邁的大了,跨過了最低點,我們重新設定α = 0.05,重複上述過程:

重新設立步長 α = 0.05

通過重複這個過程,會將步長逐漸變小,取出最合適的學習率

特徵縮放使得運用梯度下降時,能更快找到最低點

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

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

筆記 梯度下降法

詳解機器學習中的梯度消失 原因及其解決方法 導數 方向導數和梯度 要了解梯度下降演算法是什麼首要知道梯度是什麼,導數和方向導數又是了解梯度的前提。導數導數反映的是函式y f x 在某一點處沿x軸正方向的變化率,如果f x 0,說明f x 的函式值在x點沿x軸正方向是趨於增加的 如果f x 0,說明f...

梯度下降 隨機梯度下降和批量梯度下降

對比梯度下降和隨機梯度下降和批量梯度下降 之前看的知識比較零散,沒有乙個系統的解釋說明,看了一些網上的博主的分析,總結了一下自己的理解。例子這裡我參照其他博主的例子做了一些修改,首先是梯度下降 coding utf 8 import random this is a sample to simula...