二 梯度下降

2021-07-23 21:05:17 字數 2041 閱讀 9136

第二講正式開始介紹機器學習中的監督學習,首先宣告了以下約定:對於m組訓練樣本,x表示其輸入(input feature),y表示其輸出(target variable),m是乙個正整數(表示個數的嘛),x和y可是是向量也可以是標量,不過入門而言一般y為標量,(x(i),y(i))表示訓練樣本,表示訓練集

我們的目標是得到乙個函式h:x->y,使對映結果與資料更為接近,方程h稱為假設(hypothesis),其過程如下圖所示。

當我們希望得到的y(輸出)是連續值時,我們稱之為回歸問題(regression problem),為離散值時,我們稱之為分類問題(classification problem)。

以下形式稱為線性回歸:

h(x;θ) = θ0+θ1*x1+θ2*x2+...+θn*xn

= θ0*x0+θ1*x1+θ2*x2+...+θn*xn

= (θ^t)*x

即假設方程可視為引數向量和輸入向量的乘積,上式中第二行x0為intercept term,其值為1,用於統一格式,由此可見上式中乘以的x與實際的輸入向量x是有差別的,差別在於增加了x0=1這一項

由此可定義損失方程,用於表示估計值與實際值之間的差距,顯然差距越小越好,即估計與實際越接近越好,儘管在入門時y常為標量,但考慮到對後來的相容,我們將其視為向量進行考慮,因此兩個向量之間的差異可以視為兩個點之間的距離,自然地,損失方程可定義如下形式:

j(θ) = 1/2*sum(i=1 to m)[(h(x;θ)-y)]^2)

為了求得使損失方程取得最小值的引數θ,我們使用梯度下降法,其思想可簡化如下:

在初始化初始狀態後,我們選擇初始狀態下梯度下降最大(負數指示下降、絕對值最大表示下降最快)的方向作為對θ迭代的方向。

這是一種貪心的演算法,假想我們只有一座正常的平滑的那種山峰,顯然我們通過這種方法可以找到最小值;但如果我們的山峰頂端有個坑(比如是個火山),而且恰好在坑旁邊的梯度更大,那麼這種演算法只能找到坑的最低點,並認為這就是全域性的最低點,這種情況實際上稱為區域性最優,而我們希望找到的點稱為全域性最優。

但梯度下降法之所以可以成功用於損失方程的計算,在於已經證明,對於凸函式,梯度下降法所求的的解正是全域性最優解,典型的損失方程影象如下圖所示。圖中圓形的線可以理解為等高線,藍色的折線即梯度下降的方向。

由此,我們可以得到關於th迭代更新的方程

θj = θj - α(δ/δθ)j(θ)

上始終α表示學習速度,即每一次更新的步長,其後就是該點處的導數

最小均方誤差演算法與損失方程具有近似的思想,其更新方程如下:

θj = θj + α*(y(i)-h(x;θ))*x(i)j

可見,這是一種對θ的各個引數分開調優的演算法,所以根據調優的順序可分為下面兩種演算法

repeat until convergence
這一演算法在每一次更新是更新所有的引數,因此其值較準確,但顯然其使用的計算資源更多

loop

}
這一演算法更適用於訓練集較大的情況。

每一次進行一次梯度下降法所需要的計算資源太大了,因此考慮到矩陣的的特殊性質,科學家將這一辦法化簡為乙個一般化方程,此時,每次計算時只需使用方程計算即可,化簡的思想在於函式的極值取於導數為0的點,其具體表示為

θ = [((x^t)*x)^(-1)]*x^t*y

上述的x為訓練集的集合,即是乙個矩陣,y為乙個向量,是各個標量的集合。

這一形式十分簡潔,但其推導過程比較複雜,如下

//這裡是分割線~

Pytorch 二 梯度下降

一 梯度下降的作用 乙個神經網路的典型訓練過程如下 定義包含一些可學習引數 或者叫權重 的神經網路 在輸入資料集上迭代 通過網路處理輸入 計算損失 輸出和正確答案的距離 將梯度反向傳播給網路的引數 更新網路的權重,一般使用乙個簡單的規則 weight weight learning rate gra...

090001 梯度下降

本講ng大牛講解了梯度下降 gradient descent 方法 首先以波特蘭奧勒岡的房屋面積和售價關係為例,講解了監督學習的一般模式,通過乙個訓練集,利用學習演算法,得到乙個假設 歷史原因造成的叫法,就是乙個 模型 當輸入值x進入,通過假設,得到乙個 值y,如圖所示 當只有乙個變數即面積時,其關...

17 梯度下降

import numpy as np import matplotlib.pyplot as plt 構造一元二次方程 x np.linspace 1,6,141 y x 2.5 2 1 繪圖 目標函式 def j theta try return theta 2.5 2 1 except retu...