日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

(一)神经网络训练不起来怎么办:局部最小值(local minia)与鞍点(saddle point)

發(fā)布時(shí)間:2023/11/27 生活经验 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (一)神经网络训练不起来怎么办:局部最小值(local minia)与鞍点(saddle point) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Optimization的時(shí)候,怎么把gradient descent做的更好?

1、局部最小值(Local minima)與鞍點(diǎn)(saddle point)

所謂的saddle point其實(shí)就是gradient是零,但是不是local minima,也不是local maxima;比如下面的saddle point,他在左右方向上是比較高的,前后的方向上是比較高的,他是一個(gè)馬鞍的形狀,所以叫做saddle point;

?像saddle point這種地方,他也是gradient為零,但他不是local minima,像這種gradient為0的點(diǎn)統(tǒng)稱為critical point,所以你可以說(shuō)你的loss沒有辦法再下降,也許是因?yàn)榭ㄔ诹薱ritical point,但你不能說(shuō)是卡在了local minima,因?yàn)閟addle point也是微分為零的點(diǎn);

所以當(dāng)gradient為0的時(shí)候,我們就要搞清楚是卡在了local minima上還是saddle point上,如果是卡在了local minima上的話,因?yàn)樗闹芏急容^高,你現(xiàn)在所在的位置已經(jīng)是loss最低點(diǎn),往四周走loss都比較高,你會(huì)不知道怎么走到其他的地方去;但是saddle point就比較沒有這個(gè)問題,如果你是卡在saddle point上的話,saddle point旁邊還是有路可以讓你的loss更低,只要逃離saddle point,就有可能讓你的loss更低,所以當(dāng)你走到critical point的時(shí)候,我們到底是在local minima上還是saddle point上,是一個(gè)值得去探討的問題;

?判斷該點(diǎn)到底是local minima還是saddle point,需要用到數(shù)學(xué)的微積分和線性代數(shù):

?

?

When gradient is small

Critical Point

Training Fails because

? 現(xiàn)在我們要講的是Optimization的部分,所以我們要講的東西基本上跟Overfitting沒有什麼太大的關(guān)聯(lián),我們只討論Optimization的時(shí)候,怎麼把gradient descent做得更好,那為什麼Optimization會(huì)失敗呢?

? 你常常在做Optimization的時(shí)候,你會(huì)發(fā)現(xiàn),隨著你的參數(shù)不斷的update,你的training的loss不會(huì)再下降,但是你對(duì)這個(gè)loss仍然不滿意,就像我剛才說(shuō)的,你可以把deep的network,跟linear的model,或比較shallow network 比較,發(fā)現(xiàn)說(shuō)它沒有做得更好,所以你覺得deepnetwork,沒有發(fā)揮它完整的力量,所以O(shè)ptimization顯然是有問題的

? 但有時(shí)候你會(huì)甚至發(fā)現(xiàn),一開始你的model就train不起來(lái),一開始你不管怎麼update你的參數(shù),你的loss通通都掉不下去,那這個(gè)時(shí)候到底發(fā)生了什麼事情呢?

? 過(guò)去常見的一個(gè)猜想,是因?yàn)槲覀儸F(xiàn)在走到了一個(gè)地方,這個(gè)地方參數(shù)對(duì)loss的微分為零,當(dāng)你的參數(shù)對(duì)loss微分為零的時(shí)候,gradient descent就沒有辦法再update參數(shù)了,這個(gè)時(shí)候training就停下來(lái)了,loss當(dāng)然就不會(huì)再下降了。

? 講到gradient為零的時(shí)候,大家通常腦海中最先浮現(xiàn)的,可能就是local minima,所以常有人說(shuō)做deep learning,用gradient descent會(huì)卡在local minima,然后所以gradient descent不work,所以deep learning不work。

? 但是如果有一天你要寫,跟deep learning相關(guān)paper的時(shí)候,你千萬(wàn)不要講卡在local minima這種事情,別人會(huì)覺得你非常沒有水準(zhǔn),為什麼

? 因?yàn)?strong>不是只有l(wèi)ocal minima的gradient是零,還有其他可能會(huì)讓gradient是零,比如說(shuō)?saddle point,所謂的saddle point,其實(shí)就是gradient是零,但是不是local minima,也不是local maxima的地方,像在右邊這個(gè)例子裡面 紅色的這個(gè)點(diǎn),它在左右這個(gè)方向是比較高的,前后這個(gè)方向是比較低的,它就像是一個(gè)馬鞍的形狀,所以叫做saddle point,那中文就翻成鞍點(diǎn)

? 像saddle point這種地方,它也是gradient為零,但它不是local minima,那像這種gradient為零的點(diǎn),統(tǒng)稱為critical point,所以你可以說(shuō)你的loss,沒有辦法再下降,也許是因?yàn)榭ㄔ诹薱ritical point,但你不能說(shuō)是卡在local minima,因?yàn)閟addle point也是微分為零的點(diǎn)

? 但是今天如果你發(fā)現(xiàn)你的gradient,真的很靠近零,卡在了某個(gè)critical point,我們有沒有辦法知道,到底是local minima,還是saddle point?其實(shí)是有辦法的

??為什麼我們想要知道到底是卡在local minima,還是卡在saddle point呢

  • 因?yàn)槿绻?strong>卡在local minima,那可能就沒有路可以走了,因?yàn)樗闹芏急容^高,你現(xiàn)在所在的位置已經(jīng)是最低的點(diǎn),loss最低的點(diǎn)了,往四周走 loss都會(huì)比較高,你會(huì)不知道怎麼走到其他的地方去
  • 但saddle point就比較沒有這個(gè)問題,如果你今天是**卡在saddle point的話,saddle point旁邊還是有路可以走的,**還是有路可以讓你的loss更低的,你只要逃離saddle point,你就有可能讓你的loss更低

? 所以鑒別今天我們走到,critical point的時(shí)候,到底是local minima,還是saddle point,是一個(gè)值得去探討的問題,那怎麼知道今天一個(gè)critical point,到底是屬於local minima,還是saddle point呢?

Warning of Math

? 這邊需要用到一點(diǎn)數(shù)學(xué),以下這段其實(shí)沒有很難的數(shù)學(xué),就只是微積分跟線性代數(shù),但如果你沒有聽懂的話,以下這段skip掉是沒有關(guān)係的

? 那怎麼知道說(shuō)一個(gè)點(diǎn),到底是local minima,還是saddle point呢?

? 你要知道我們loss function的形狀,可是我們?cè)觞N知道,loss function的形狀呢,network本身很復(fù)雜,用復(fù)雜network算出來(lái)的loss function,顯然也很復(fù)雜,我們?cè)觞N知道loss function,長(zhǎng)什麼樣子,雖然我們沒有辦法完整知道,整個(gè)loss function的樣子

Tayler Series Approximation

但是如果給定某一組參數(shù),比如說(shuō)藍(lán)色的這個(gè)θ ′ ,在θ ′ 附近的loss function,是有辦法被寫出來(lái)的,它寫出來(lái)就像是這個(gè)樣子

? 所以這個(gè)L ( θ ) 完整的樣子寫不出來(lái),但是它在θ ′ 附近,你可以用這個(gè)式子來(lái)表示它,這個(gè)式子是,Tayler Series Appoximation泰勒級(jí)數(shù)展開,這個(gè)假設(shè)你在微積分的時(shí)候,已經(jīng)學(xué)過(guò)了,所以我就不會(huì)細(xì)講這一串是怎麼來(lái)的,但我們就只講一下它的概念,這一串裡面包含什麼東西呢?

  • 第一項(xiàng)是L ( θ ′ ) ,就告訴我們說(shuō),當(dāng)θ跟θ ′ 很近的時(shí)候,L ( θ ) 應(yīng)該跟L ( θ ′ ) 還蠻靠近的

  • 第二項(xiàng)是

?

  • g是一個(gè)向量,這個(gè)g就是我們的gradient,我們用綠色的這個(gè)g來(lái)代表gradient,這個(gè)gradient會(huì)來(lái)彌補(bǔ),θ ′ 跟θ 之間的差距,我們雖然剛才說(shuō)θ ′ 跟θ ,它們應(yīng)該很接近,但是中間還是有一些差距的,那這個(gè)差距,第一項(xiàng)我們用這個(gè)gradient,來(lái)表示他們之間的差距,有時(shí)候gradient會(huì)寫成? L ( θ ′ ) ,這個(gè)地方的g 是一個(gè)向量,它的第i個(gè)component,就是θ的第i個(gè)component對(duì)L的微分,光是看g還是沒有辦法,完整的描述L(θ),你還要看第三項(xiàng)

  • 第三項(xiàng)跟Hessian有關(guān),這邊有一個(gè)$H $

https://www.bilibili.com/video/BV1Wv411h7kN?p=11

筆記:

https://blog.csdn.net/pigpigpig64/article/details/119061752

https://zhuanlan.zhihu.com/p/437609102

泰勒展開式:https://www.zhihu.com/question/25627482/answer/313088784

總結(jié)

以上是生活随笔為你收集整理的(一)神经网络训练不起来怎么办:局部最小值(local minia)与鞍点(saddle point)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。