機器學習近年來已經獲得迅速發展,而機器學習的本質就是對問題進行抽象建模,使得乙個學習問題變為乙個可求解的優化問題,歸納起來就是把乙個學習問題轉化為優化問題.我們需要尋找輸入特徵與標籤之間的對映關係,有一條重要的原則就是使得尋找到的對映結果與原始標籤之間的誤差最小.
最優化演算法從最基本的梯度下降法到一些啟發式演算法,如遺傳演算法(ga),差分演化演算法(de),粒子群演算法(pso)和人工蜂群演算法(abc).
梯度下降法又稱為最速下降法,是一種最優化求解演算法,可被應用到線性回歸演算法中,當然還有其他機器學習演算法,如邏輯斯蒂回歸和神經網路.
擬合函式
以線性回歸作為演算法例項,擬合函式為: h
(x)=
θ0+θ
1x1+
θ2x2
+...
+θnx
n 其中,θ0
,θ1,
θn為引數,x1
,x2,
xn為特徵.
代價函式
為求得模型最優化解,需要找到合適的引數使得擬合函式能更好的適合模型,然後使用梯度下降法最小化代價函式j(
θ),這裡採用平方差作為代價函式. j
(θ)=
12m∑
i=1m
(hθ(
x(i)
)−y(
i))2
m表示訓練集的數目, x(
i)表示第i個訓練樣本的所有特徵, hθ
(x(i
))表示依據擬合函式第i個訓練樣本的擬合值, y(
i)為第i個樣本的實際結果值.
代價函式的用途:對假設的函式進行評價,代價函式(誤差)越小的擬合函式說明擬合訓練資料擬合的越好.
舉例說明
: 給定訓練資料集: (1,1),(2,2),(3,3),共有3個訓練樣本,每個訓練樣本包含乙個特徵值及對應的結果值,只有乙個特徵,所以擬合函式為h(
x)=θ
0+θ1
x . 如果**θ0
=0,θ
1=0.5
,則擬合函式h(
x)=0.5x
,代價函式為j(
θ)=1
6[(h
(1)−
1)2+
(h(2
)−2)
2+(h
(3)−
3)2]
=0.58 .
如果**θ0
=0 ,
θ1=1
,則擬合函式h(
x)=x
,代價函式為j(
θ)=1
6[(h
(1)−
1)2+
(h(2
)−2)
2+(h
(3)−
3)2]
=0 .
因此第二種**的代價函式較小,擬合程度較高.
對於大量訓練資料,我們可以採用梯度下降法求得使代價函式最小的最優解.
基本概念
梯度下降法的理論基礎是梯度,梯度與方向導數的關係為:梯度的方向與取得最大方向導數值的方向一致,梯度的模就是函式在該點的方向導數的最大值.
梯度本意是乙個向量,當某一函式在某點處沿著該方向的方向導數取得該點處的最大值,即函式在該點處沿該方向變化最快,變化率最大,那麼這個方向就是梯度的方向,變化率為梯度的模.
想象我們站在一座山上,要去往山下,現在要決定那個方向是下降最快的方向,這個方向就是梯度的方向.
求解過程
以線性回歸為例應用梯度下降:
首先我們給
θ 乙個初值,然後讓j(
θ)向著變化最大的方向更新
θ 的取值,如此迭代. θ
j:=θj
−α∂∂
θjj(
θ)
α 為學習速率,即每一步的大小,它控制θ
每次向j(θ
) 變小的方向迭代時的變化幅度.取較小的值意味著迭代速度慢,反之迭代速度快,但反而有可能使得走到更高的地方. ∂∂
θjj(
θ) 為
j(θ)
對θ 的偏導
,表示j(θ
) 變化最快的方向. hθ
(x)
為線性回歸的擬合函式. ∂∂
θjj(
θ)=∂
∂θj1
2(hθ
(x)−
y)2=
2⋅12
(hθ(
x)−y
)⋅∂∂
θj(h
θ(x)
−y)=
(hθ(
x)−y
)⋅∂∂
θj(∑
i=0n
θixi
−y)=
(hθ(
x)−y
)⋅xj
(hθ(x)
−y)⋅
xj就是代價函式j(
θ)的梯度.
j表示訓練樣本的特徵數目. 那麼θ
的迭代公式變為θj
:=θj+
α⋅1m
∑i=1
m(y(
i)−h
θ(x(
i)))
x(i)
j 基於如何使用資料計算代價函式的導數,梯度下降法可定義為不同的形式.即根據使用資料量的大小,時間複雜度和演算法的精確度,梯度下降法可分為:
批量梯度下降法 bgd
使用整個資料集計算代價函式的梯度,每次使用全部資料計算梯度來更新引數,對於大型資料集很難載入記憶體,存在磁碟讀寫i/o瓶頸,需要較長時間才能收斂.優點是可以得到較準確的代價函式最優值.
隨機初始化引數
θ 並按如下方式更新引數
θ :
repeat until convergence }
其中,n為樣本特徵數量,m為訓練樣本數量.
從公式可以看到批量梯度下降法每迭代一次都要計算所有的訓練資料,能保證得到的結果為全域性最優,但我們需要對每個引數
θ 求偏導,且在對每個引數求偏導過程中還需要對所有訓練資料遍歷一次,所以收斂時間長.
隨機梯度下降法 sgd
隨機梯度下降法是為了解決批量梯度下降的弊端而產生的,不同於批量梯度下降法每次計算所有訓練資料,隨機梯度下降法的第一步是隨機化整個資料集,在每次迭代時只選擇乙個訓練樣本去計算代價函式的梯度,然後更新引數,所以訓練速度大大提公升,缺點是準確度會下降,得到的結果並不是全域性最優,而是在全域性最優解附近.
repeat until convergence }}
可以看到隨機梯度下降法不必計算所有訓練資料,通過每個樣本來迭代更新一次,如果樣本量很大,可能使用其中一部分訓練樣本就已經將引數迭代到最優解了,但是隨機梯度下降法並不是每次迭代都朝著最優化方向,在最優解的搜尋過程中看起來很盲目.從迭代次數上看,隨機梯度下降法迭代次數較多,它最終會遊走到全域性最小值附近的區域停止.
小批量梯度下降法 mbgd
每次迭代時考慮一小部分樣本,假設這一部分樣本數為k:
repeat until convergence }}
m同樣表示訓練樣本數.
參考文章
優化演算法-梯度下降演算法
純乾貨 | 機器學習中梯度下降法的分類及對比分析(附原始碼)
機器學習入門:線性回歸及梯度下降
深度學習筆記(五) 代價函式的梯度求解過程和方法
隨機梯度下降和批量梯度下降的公式對比,實現對比
梯度下降法的三種形式 bgd,sgd以及mbgd
機器學習之梯度下降法 梯度下降法分析
梯度下降法的基本思想是函式沿著其梯度方向增加最快,反之,沿著其梯度反方向減小最快。在前面的線性回歸和邏輯回歸中,都採用了梯度下降法來求解。梯度下降的迭代公式為 j j j j 在回歸演算法的實驗中,梯度下降的步長 為0.01,當時也指出了該步長是通過多次時間找到的,且換一組資料後,演算法可能不收斂。...
機器學習 梯度下降法
梯度下降法,一般用來求解線性回歸方程,我的理解是根據一組形如 特徵1,特徵2.結果 的資料來找到這些對應的特徵和結果之間的聯絡 例如,我們利用一組 銷量的資料判斷乙個物品的銷量和 之間的關係 我們要求的線性回歸方程可以表示為 銷量 引數 實質上其實就是找到對應的 引數 而當影響乙個結果的特徵不只有乙...
機器學習 梯度下降法
1 梯度下降法的邏輯思路 的取值影響獲得最優解的速度 取值不合適,甚至得不到最優解 是梯度下降法的乙個超引數 一般需要調參找到最適合的 太小,減慢收斂學習速度 太大,導致不收斂 2 梯度下降法的問題 3 其它1 具體實現 模擬損失函式 y x 2.5 2 1 資料集特徵值 plot x np.lin...