在機器學(xué)習(xí)中 我們要訓(xùn)練得到的模型,其實 是一個【 學(xué)習(xí)擬合 自變量和因變量 關(guān)系】的一個過程,關(guān)于 到底 是怎么擬合 學(xué)習(xí)的呢先鱼,分兩種俭正,一種是通曉了公式秘籍 一步到位的,一種是 以迭代方式 步步為營 不斷逼近的方式型型。不論哪種方式 都可以有效抵達 最優(yōu)點 段审,或許是局部最優(yōu)點。
那我們說 現(xiàn)實意義上 模型終歸只是一個模型而已 他是抽象的一個黑盒子的參數(shù)集合闹蒜,他是 現(xiàn)實世界 在抽象計算機上的一個映射寺枉。哪怕可以解釋 ,他只是 無限 接近 無限 擬合绷落,哪怕 Predict 是 100%姥闪。
只要 模型存在 ,那么就會有誤差存在砌烁,如果Predict是100% 正確筐喳,我們就說 誤差 為0,自然 Predict 很難 100%函喉,對于回歸問題避归,每一條 rawdata 向量化feature 對應(yīng)y target 的都有誤差,那么誤差 的 匯總【不一定是 誤差值求和管呵,也可能是 誤差絕對值 求和梳毙,也可能是誤差平方和 相加】就是 這個模型的損失,一個模型 要從大局上來看損失捐下,這個損失程度就是 這個模型評估優(yōu)劣的一項標(biāo)準(zhǔn)账锹。模型越好 損失越小,模型越差 損失越大坷襟。
那么怎么評價損失呢奸柬,樸素來說我們 期待試用 擬合的殘差來作為 損失 ,但是 擬合來說有正有負婴程,最后匯總起來廓奕,假如一個很爛的模型,有一半殘差都是正值很大排抬,有一半殘差都是負值也很大懂从,但是假如有可能匯總相加在一起就是0了,也可能是負值蹲蒲,我們能說這個模型超級棒嘛番甩,當(dāng)然是有問題的。那我們再來考慮使用 絕對值届搁,絕對值總體上來說 不會出現(xiàn) 負值缘薛,但是 計算起來不夠友好窍育,另外對模型 的真正擬合程度反映不夠直觀,不能 突出異常值存在宴胧。好 就剩 平方和了漱抓,平方和的優(yōu)點在于 能夠體現(xiàn) 放大 模型的 擬合效果,如果 殘差有一個很大恕齐,就會被無限放大乞娄,影響模型的擬合效果,模型就不算是最優(yōu)的显歧,需要繼續(xù)訓(xùn)練找到最佳的仪或。所以來說 平方和的損失函數(shù) 更對異常值 敏感∈恐瑁∑(y^ --y)^2
所以在回歸問題上 我們大對數(shù)的損失函數(shù)都是 平方和 形式的累加和范删。
好了既然我們 確定了 損失函數(shù)了,那我們 最關(guān)鍵的一步就是 模型的參數(shù)估計拷肌。
拿線性回歸函數(shù)來說 y= ?1.X1+?2.X2+?3.X3+....+?n..Xn+b
我們 如何 去 估計 ?1 ?2 ?3 的取值呢到旦。
這個從源函數(shù)是不容易找打答案的,我們來看損失函數(shù)
L(f)=∑(?1.X1+?2.X2+?3.X3+....+?n..Xn+b--y^),
想要求得參數(shù) 就得 求? i 的偏導(dǎo)
?L(f)/??i=?∑(?1.X1+?2.X2+?3.X3+....+?n..Xn+b--y^)/??i
當(dāng)其值為0時求得 ? i的 最優(yōu)解巨缘。
這樣一來 由公式就可以各個擊破 添忘,每個參數(shù)的值了。這個是一部到位
下面來看梯度下降 若锁,
所謂的梯度下降昔汉,我們優(yōu)先考慮三維數(shù)據(jù),在三位數(shù)據(jù)中 我們得到的函數(shù)所映射的面可能不是一個平面拴清,可能是多個光滑的曲面,可能會非常的有沒会通。那么 我們的損失函數(shù)有時候 就是代表這么的一個多個曲面的集合口予。我們想要找到損失函數(shù)的最小值,可能就是這個 曲面集合的【低洼地帶】 有的時候 低洼地帶可能只是一個局部最小值涕侈,所以需要謹慎沪停,那我們是怎么去逼近這個低洼地帶的呢,就是 靠著梯度下降裳涛,我們假設(shè)低洼地帶的梯度為0木张,從任一點開始,只要 梯度是不斷下降的趨勢我們就像做電梯一樣往下走端三,當(dāng)然找到梯度下降最快的方向舷礼,我們 迭代的次數(shù)就越少,就越省力郊闯。
梯度下降法的缺點是到最小點的時候收斂速度變慢妻献,并且對初始點的選擇極為敏感蛛株,其改進大多是在這兩方面下功夫
什么是梯度方向 就是 某一維數(shù)據(jù)的偏導(dǎo) 的導(dǎo)數(shù),等于是求二次導(dǎo)數(shù)育拨,對每個 偏導(dǎo)的導(dǎo)數(shù) 做比較谨履,查看 到底是哪一維 下降是最多的, 這樣一來 梯度下降很難是一條直線熬丧,碰碰撞撞下就達到了低洼地帶笋粟。
導(dǎo)數(shù)與梯度
梯度的定義如下:
梯度的提出只為回答一個問題:
函數(shù)在變量空間的某一點處,沿著哪一個方向有最大的變化率析蝴?
梯度定義如下:
函數(shù)在某一點的梯度是這樣一個向量害捕,它的方向與取得最大方向?qū)?shù)的方向一致,而它的模為方向?qū)?shù)的最大值嫌变。
這里注意三點:
1)梯度是一個向量吨艇,即有方向有大小腾啥;
2)梯度的方向是最大方向?qū)?shù)的方向东涡;
3)梯度的值是最大方向?qū)?shù)的值。
導(dǎo)數(shù)與向量
提問:導(dǎo)數(shù)與偏導(dǎo)數(shù)與方向?qū)?shù)是向量么倘待?
向量的定義是有方向(direction)有大写堋(magnitude)的量。
從前面的定義可以這樣看出凸舵,偏導(dǎo)數(shù)和方向?qū)?shù)表達的是函數(shù)在某一點沿某一方向的變化率祖娘,也是具有方向和大小的。因此從這個角度來理解啊奄,我們也可以把偏導(dǎo)數(shù)和方向?qū)?shù)看作是一個向量渐苏,向量的方向就是變化率的方向,向量的模菇夸,就是變化率的大小琼富。
那么沿著這樣一種思路,就可以如下理解梯度:
梯度即函數(shù)在某一點最大的方向?qū)?shù)庄新,函數(shù)沿梯度方向函數(shù)有最大的變化率鞠眉。
梯度下降法
既然在變量空間的某一點處,函數(shù)沿梯度方向具有最大的變化率择诈,那么在優(yōu)化目標(biāo)函數(shù)的時候械蹋,自然是沿著負梯度方向去減小函數(shù)值,以此達到我們的優(yōu)化目標(biāo)羞芍。
如何沿著負梯度方向減小函數(shù)值呢哗戈?既然梯度是偏導(dǎo)數(shù)的集合,如下:
同時梯度和偏導(dǎo)數(shù)都是向量涩金,那么參考向量運算法則谱醇,我們在每個變量軸上減小對應(yīng)變量值即可暇仲,梯度下降法可以描述如下:
以上就是梯度下降法的由來,大部分的機器學(xué)習(xí)任務(wù)副渴,都可以利用Gradient Descent來進行優(yōu)化奈附。
其中 α 就是 機器學(xué)習(xí)中的學(xué)習(xí)率 ,超參數(shù) 煮剧,一般來說斥滤,α 剛開始 稍微大點,容易較快逼近勉盅,越到最后 α 越小 佑颇,不然容易震蕩,無法找到最優(yōu)點
參考資料
https://blog.csdn.net/walilk/article/details/50978864
參考書:
《高等數(shù)學(xué)》
《簡明微積分》
參考鏈接:
梯度
https://zh.wikipedia.org/zh-cn/%E5%81%8F%E5%AF%BC%E6%95%B0
方向?qū)?shù)和梯度
http://blog.csdn.net/wolenski/article/details/8030654