'2019/Jan/18/Fri 17:48:26'
機(jī)器學(xué)習(xí)100天——第5天:梯度下降(Gradient descent)
求最優(yōu)解的一個(gè)過程
梯度下降是一個(gè)用來求函數(shù)最小值的算法,我們將使用梯度下降算法來求出代價(jià)函數(shù)??(??0, ??1) 的最小值。
梯度下降背后的思想是:開始時(shí)我們隨機(jī)選擇一個(gè)參數(shù)的組合(??0,??1, . . . . . . , ????),計(jì)算代價(jià)函數(shù),然后我們尋找下一個(gè)能讓代價(jià)函數(shù)值下降最多的參數(shù)組合。我們持續(xù)這么做直到得到一個(gè)局部最小值(local minimum),因?yàn)槲覀儾]有嘗試完所有的參數(shù)組合,所以不能確定我們得到的局部最小值是否便是全局最小值(global minimum),選擇不同的初始參數(shù)組合,可能會找到不同的局部最小值
α 學(xué)習(xí)率
梯度下降算法通常指的是同步更新所有參數(shù)
導(dǎo)數(shù),切線斜率,反方向,最優(yōu)點(diǎn)
α太小,要很久才能達(dá)到,浪費(fèi)時(shí)間
太大,可能超過,永遠(yuǎn)到不了,導(dǎo)致無法收斂,甚至發(fā)散
假設(shè)你將??1初始化在局部最低點(diǎn),在這兒,它已經(jīng)在一個(gè)局部的最優(yōu)處或局部最低點(diǎn)。
結(jié)果是局部最優(yōu)點(diǎn)的導(dǎo)數(shù)將等于零,因?yàn)樗悄菞l切線的斜率。這意味著你已經(jīng)在局部最優(yōu)
點(diǎn),它使得??1不再改變,也就是新的??1等于原來的??1,因此,如果你的參數(shù)已經(jīng)處于局部最
低點(diǎn),那么梯度下降法更新其實(shí)什么都沒做,它不會改變參數(shù)的值。這也解釋了為什么即使
學(xué)習(xí)速率??保持不變時(shí),梯度下降也可以收斂到局部最低點(diǎn)。
在梯度下降法中,當(dāng)我們接近局部最低點(diǎn)時(shí),梯度下降法會自動(dòng)采取更小的
幅度,這是因?yàn)楫?dāng)我們接近局部最低點(diǎn)時(shí),很顯然在局部最低時(shí)導(dǎo)數(shù)等于零,所以當(dāng)我們接
近局部最低時(shí),導(dǎo)數(shù)值會自動(dòng)變得越來越小,所以梯度下降將自動(dòng)采取較小的幅度,這就是
梯度下降的做法。所以實(shí)際上沒有必要再另外減小α.
batch gradient descent
批量梯度下降
每次都是使用整個(gè)數(shù)據(jù)集
梯度下降,重在理解,使用時(shí)可直接調(diào)用.