自适应lasso_线性回归模型优化算法(Lasso)
學習最好的時間是十年前,其次就是現在。算法?好難啊,機器學習的,那來看看,啥,線性回歸,沒意思。所以我也不打算講什么是目標: 找出
使得
最小。
后來在此基礎上引入最小二乘、
與 真實值
盡可能接近。提一下邏輯回歸的sigmoid函數把預測的值強行轉換為[0,1]范圍內大小的值,巧的是概率的值也是[0,1]的大小。
2.優化:解決目標的過程,目標是求最值,最值的問題怎么能少了求導。
,初中生用公式就算出來,咱先把它看成一個優化問題,找出最好的
,使得
最小。Gradient Descent(梯度下降法),Gradient Descent
、
(學習率|步長);
如果目標函數可收斂(如凸函數),就一定可以找到這個最優值。前輩們可不單單只滿足于可以求出這個最優解,還需要快。為什么慢呢,大互聯網之下樣本的個數是很大的,GD全部樣本喂進去可想而知有多慢。隨機梯度下降SGD(stochastic Gradient Descent)作用就體現出來了,隨機選取一個樣本進行梯度下降,更新到最優輸入下一個樣本,不需要全部樣本也可以得到很好的解,加快速度的同時也節約內存,最重要的效果還和GD差不多。mini-batch SGD:隨機一些(20~50個樣本)進行梯度下降,完了接著下一個batch。有點兩者結合的感覺:GD+SGD=mini-batch SGD。按吳恩達老師所說的,梯度下降(Gradient Descent)就好比一個人想從高山上奔跑到山谷最低點,用最快的方式(步長)奔向最低的位置(minimum)。
有前輩們依舊不滿足,深度學習的到來不得不要求更快,動量(Momentum)主要針對步長,慣性的增大
值。前后梯度變化很大時
增加的多,反之增加的少;
是一個超參數,回到上面更新過程,學習率為0.1,如果變更小,那
是算不出最優解的,還得多寫幾步;如果大,就自然加快了,但也很大可能過大導致解會在最優值附近來回震蕩。RMSProp( Root Mean Square Prop)在上面的Momentum優化算法中,雖然初步解決了優化中擺動幅度大的問題。但并沒有解決過大的問題。RMSProp算法對梯度計算了微分平方加權平均數,所以
變小。Adam(Adaptive Moment Estimation)是Momentum+RMSProp結合自然水到渠成。
小結下,GD慢,SGD上,但缺點是可能會在溝壑的兩邊持續震蕩,在最小值附近波動。Adam(Adaptive Moment Estimation)的出現提出自適應學習的方法去解決了學習率過大過小的問題。雖然比SGD快,但極大或極小的學習率都會導致較差的收斂行為,也就是說泛化能力、穩定性相對而言還沒有比他慢的SGD好。具體公式細節我就不展開了,感興趣的看看這篇論文
3.
)為什么趨于正無窮大?知道它為啥趨于無窮大也就好理解為啥要加L1&L2正則去約束
的大小。標題是講優化算法,我就也不去多說什么是Ridge回歸(嶺回歸)
優化L2(Ridge回歸)的方法就用我之前講的那些SGD等就可以了,畢竟加的『懲罰』是可以求導的。
我想講的重點是L1正則化(Lasso回歸):
這里的優化SGD就不管用了,畢竟
不可導(圖像不光滑)。這里就就得引入Coordinate Descent(坐標下降法),當然它不單單優化這個Lasso算法,和GD(梯度下降法)目的一樣,都是為了找到最優解。
,D為所求
參數的維度,GD拿過來所有維度更新一遍,CD不是這樣的,一次只更新一個維度,其它的當維度做常數處理。第一次我更新
,
,第二次我更新
,
,直到第D次更新
,
。可以看到更新其中一個維度,其他維度都不參與跟新,當然更新
可以是隨機的,不一定
順序。
對
展開:
,
為第i個樣本的第j特征
,
這里就把j
D與j=D分開求導計算。
,別看它那么長,其實就一常數。
,
則是對D維度求導的那個,且
恒成立。
,簡化到這里得對這個
分情況討論了。
根據
導數情況分為(1)、(2)、(3),令(1)=0、(2)=0、(3)=0,再加上
這個條件,就可以求出最優的參數
的值(我就不給解的過程了~累)。到此我想要說的優化算法算是結束了,通過剛才的手推的結論,L1正則帶來的稀疏性不難被發現,只要滿足(3),統統給強行轉為0。機器學習中數據的特征一般是特別多的,甚至有時候特征的維數都會大于樣本的個數,Lasso是不是幫我解決了一大問題,讓特征維數變稀疏,同時又不缺特征可解釋行。
參考:
2、李航,統計學習方法,清華大學出版社,2012
總結
以上是生活随笔為你收集整理的自适应lasso_线性回归模型优化算法(Lasso)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mybatis insert 返回主键_
- 下一篇: 繁星屠龙软件下载_历时72小时,测试5个