看了coursea的機(jī)器學(xué)習(xí)課,知道了梯度下降法。一開(kāi)始只是對(duì)其做了下簡(jiǎn)單的了解。隨著內(nèi)容的深入,發(fā)現(xiàn)梯度下降法在很多算法中都用的到,除了之前看到的用來(lái)處理線性模型,還有BP神經(jīng)網(wǎng)絡(luò)等。于是就有了這篇文章。
本文主要講了梯度下降法的兩種迭代思路,隨機(jī)梯度下降(Stochastic gradient descent)和批量梯度下降(Batch gradient descent)。以及他們?cè)趐ython中的實(shí)現(xiàn)。
梯度下降法
梯度下降是一個(gè)最優(yōu)化算法,通俗的來(lái)講也就是沿著梯度下降的方向來(lái)求出一個(gè)函數(shù)的極小值。那么我們?cè)诟叩葦?shù)學(xué)中學(xué)過(guò),對(duì)于一些我們了解的函數(shù)方程,我們可以對(duì)其求一階導(dǎo)和二階導(dǎo),比如說(shuō)二次函數(shù)。可是我們?cè)谔幚韱?wèn)題的時(shí)候遇到的并不都是我們熟悉的函數(shù),并且既然是機(jī)器學(xué)習(xí)就應(yīng)該讓機(jī)器自己去學(xué)習(xí)如何對(duì)其進(jìn)行求解,顯然我們需要換一個(gè)思路。因此我們采用梯度下降,不斷迭代,沿著梯度下降的方向來(lái)移動(dòng),求出極小值。
此處我們還是用coursea的機(jī)器學(xué)習(xí)課中的案例,假設(shè)我們從中介那里拿到了一個(gè)地區(qū)的房屋售價(jià)表,那么在已知房子面積的情況下,如何得知房子的銷售價(jià)格。顯然,這是一個(gè)線性模型,房子面積是自變量x,銷售價(jià)格是因變量y。我們可以用給出的數(shù)據(jù)畫(huà)一張圖。然后,給出房子的面積,就可以從圖中得知房子的售價(jià)了。
現(xiàn)在我們的問(wèn)題就是,針對(duì)給出的數(shù)據(jù),如何得到一條最擬合的直線。
對(duì)于線性模型,如下。
網(wǎng)友評(píng)論