梯度下降原理
????直觀解釋:比如我們?cè)谝蛔笊缴系哪程幬恢镁烙溃捎谖覀儾恢涝趺聪律搅耄谑菦Q定走一步算一步核蘸,也就是在每走到一個(gè)位置的時(shí)候,求解當(dāng)前位置的梯度啸驯,沿著梯度的負(fù)方向客扎,也就是當(dāng)前最陡峭的位置向下走一步,然后繼續(xù)求解當(dāng)前位置梯度罚斗,向這一步所在位置沿著最陡峭最易下山的位置走一步徙鱼。這樣一步步的走下去,一直走到覺(jué)得我們已經(jīng)到了山腳。當(dāng)然這樣走下去袱吆,有可能我們不能走到山腳厌衙,而是到了某一個(gè)局部的山峰低處。
????從上面的解釋可以看出绞绒,梯度下降不一定能夠找到全局的最優(yōu)解婶希,有可能是一個(gè)局部最優(yōu)解。當(dāng)然蓬衡,如果損失函數(shù)是凸函數(shù)喻杈,梯度下降法得到的解就一定是全局最優(yōu)解。
梯度法思想的三要素:出發(fā)點(diǎn)撤蟆、下降方向奕塑、下降步長(zhǎng)。
引入:當(dāng)我們得到一個(gè)目標(biāo)函數(shù)后家肯,如何進(jìn)行求解龄砰?
直接求解?(并不一定可解讨衣,線性回歸可以當(dāng)做是一個(gè)特例)
常規(guī)套路:機(jī)器學(xué)習(xí)的套路就是我交給機(jī)器一堆數(shù)據(jù)换棚,然后告訴它什么樣的學(xué)習(xí)方式是正確的(目標(biāo)函數(shù)),然后讓它朝著這個(gè)方向去做
如何優(yōu)化:一口吃不成個(gè)胖子反镇,我們要靜悄悄的一步一步完成迭代
舉個(gè)栗子:
????目標(biāo)函數(shù):
?目的:尋找山谷的最低點(diǎn)固蚤,也就是我們的目標(biāo)函數(shù)終點(diǎn)(什么樣的參數(shù)能使得目標(biāo)函數(shù)達(dá)到極值點(diǎn))
下山分幾步走呢?(更新參數(shù))
(1)找到當(dāng)前最合適的方向
???? (2)走那么一小步歹茶,求解當(dāng)前位置梯度
(3)按照方向與步伐去更新我們的參數(shù)
梯度下降方法對(duì)比
梯度下降夕玩,目標(biāo)函數(shù):
批量梯度下降:
參數(shù)θ的每次更新,需要 計(jì)算全部數(shù)據(jù)集的樣本的負(fù)梯度方向惊豺,取均值作為下一次梯度下降的方向燎孟。
????
特點(diǎn):
????計(jì)算量大,參數(shù)更新慢尸昧,對(duì)內(nèi)存的要求很高揩页,不能以在線的形式訓(xùn)練模型,也就是運(yùn)行時(shí)不能加入新樣本
????理論上講烹俗,可以得到全局最優(yōu)解爆侣,參數(shù)更新比較穩(wěn)定,收斂方向穩(wěn)定
隨機(jī)梯度下降:
每次只選擇一個(gè)樣本來(lái)求得偏導(dǎo)幢妄,進(jìn)行參數(shù)θ的更新兔仰。
特點(diǎn):
????運(yùn)算速度很快,同時(shí)能夠在線學(xué)習(xí)
????隨機(jī)梯度下降參數(shù)更新的過(guò)程震蕩很大蕉鸳,目標(biāo)函數(shù)波動(dòng)劇烈斋陪,參數(shù)更新方向有很大的波動(dòng)
????其較大的波動(dòng)可能收斂到比批量梯度下降更小的局部極小值,因?yàn)闀?huì)從一個(gè)極小值跳出來(lái)
小批量梯度下降法:
該方法集合了批量梯度下降和隨機(jī)梯度下降兩者的優(yōu)勢(shì),每次的參數(shù)更新利用一小批數(shù)據(jù)來(lái)完成无虚。
特點(diǎn):
????降低了更新參數(shù)的方差缔赠,使得收斂過(guò)程更加的穩(wěn)定
????能夠利用高度優(yōu)化的矩陣運(yùn)算,很高效的求得每小批數(shù)據(jù)的梯度
學(xué)習(xí)率對(duì)結(jié)果的影響
學(xué)習(xí)率(步長(zhǎng)):對(duì)結(jié)果產(chǎn)生巨大的影響友题,一般要小一些嗤堰。學(xué)習(xí)速率的選擇,可以嘗試0.001度宦、0.01踢匣、0.1、1戈抄。選擇一個(gè)最大的學(xué)習(xí)速率离唬,然后選擇一個(gè)比它小一點(diǎn)點(diǎn)的學(xué)習(xí)率,通常能夠找到最合適的學(xué)習(xí)速率來(lái)解決我們的問(wèn)題划鸽。
批處理數(shù)量:32,64,128都可以输莺,一般還要考慮內(nèi)存和效率。