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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

李宏毅机器学习课程9~~~深度学习技巧

發(fā)布時(shí)間:2023/12/13 pytorch 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 李宏毅机器学习课程9~~~深度学习技巧 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Recipe of Deep Learning



Overfitting


overfitting的判斷是要訓(xùn)練誤差與測試誤差做比較。這個(gè)56-layer的網(wǎng)絡(luò)在訓(xùn)練集上都沒有訓(xùn)練好,說白了就是有點(diǎn)欠擬合。所以僅僅依靠測試集上的結(jié)果來判斷56-layer比20-layer overfitting是不合理的。

更多理解見
Overfitting and Underfitting With Machine Learning Algorithms


各種改進(jìn)技巧



New activation function


RELU 

針對負(fù)向,提出了Leaky ReLU, Parametric ReLU

ReLU,P-ReLU, Leaky-ReLU

ReLU 簡單而粗暴,大于0的留下,否則一律為0。
因?yàn)樯窠?jīng)網(wǎng)絡(luò)的數(shù)學(xué)基礎(chǔ)是處處可微的,所以選取的激活函數(shù)要能保證數(shù)據(jù)輸入與輸出也是可微的。

Rectified linear unit(ReLU) 函數(shù)的激活函數(shù)可以表示為f(x)=max(0,x),它更加符合神經(jīng)元的激活原理。它的一個(gè)平滑解析函數(shù)為f(x)=ln(1+exp(x)),被稱為softplus function。softplus 的微分就是logistic函數(shù)f(x)=1/(1+exp(?x))。

可以看到,當(dāng)x<0時(shí),ReLU硬飽和,而當(dāng)x>0時(shí),則不存在飽和問題。所以,ReLU 能夠在x>0時(shí)保持梯度不衰減,從而緩解梯度消失問題。這讓我們能夠直接以監(jiān)督的方式訓(xùn)練深度神經(jīng)網(wǎng)絡(luò),而無需依賴無監(jiān)督的逐層預(yù)訓(xùn)練。

然而,隨著訓(xùn)練的推進(jìn),部分輸入會(huì)落入硬飽和區(qū),導(dǎo)致對應(yīng)權(quán)重?zé)o法更新。這種現(xiàn)象被稱為“神經(jīng)元死亡”。與sigmoid類似,ReLU的輸出均值也大于0,偏移現(xiàn)象和 神經(jīng)元死亡會(huì)共同影響網(wǎng)絡(luò)的收斂性。

針對在x<0的硬飽和問題,我們對ReLU做出相應(yīng)的改進(jìn),使得

sigmoid 和 tanh作為激活函數(shù)的話,一定要注意一定要對 input 進(jìn)行歸一話,否則激活后的值都會(huì)進(jìn)入平坦區(qū),使隱層的輸出全部趨同,但是 ReLU 并不需要輸入歸一化來防止它們達(dá)到飽和。

用ReLU代替了傳統(tǒng)的Tanh或者Logistic。好處有:

  • ReLU本質(zhì)上是分段線性模型,前向計(jì)算非常簡單,無需指數(shù)之類操作;
  • ReLU的偏導(dǎo)也很簡單,反向傳播梯度,無需指數(shù)或者除法之類操作;
  • ReLU不容易發(fā)生梯度發(fā)散問題,Tanh和Logistic激活函數(shù)在兩端的時(shí)候?qū)?shù)容易趨近于零,多級連乘后梯度更加約等于0;
  • ReLU關(guān)閉了右邊,從而會(huì)使得很多的隱層輸出為0,即網(wǎng)絡(luò)變得稀疏,起到了類似L1的正則化作用,可以在一定程度上緩解過擬合。

當(dāng)然,ReLU也是有缺點(diǎn)的,比如左邊全部關(guān)了很容易導(dǎo)致某些隱藏節(jié)點(diǎn)永無翻身之日,所以后來又出現(xiàn)pReLU、random ReLU等改進(jìn),而且ReLU會(huì)很容易改變數(shù)據(jù)的分布,因此ReLU后加Batch Normalization也是常用的改進(jìn)的方法。

使用了 ReLu 的 CNN 在 CIFAR-10數(shù)據(jù)集 batchsize 為100的訓(xùn)練中,epoch 5(2500次迭代)就把驗(yàn)證集錯(cuò)誤率降到了25%,而 Tanh 則要花上35個(gè)epoch,速度提升了六倍。

卷積神經(jīng)網(wǎng)絡(luò)推薦選擇的是 relu
循環(huán)神經(jīng)網(wǎng)絡(luò)推薦選擇的是 relu 或tanh

Leaky-ReLU

當(dāng)unit沒有被激活時(shí),允許小的非零的梯度。f(x)=x,x>0,f(x)=0.01x,x<=0。

Maxout

Learnable activation function [Ian J. Goodfellow, ICML’s 13]


Adaptive Learning Rate


RMSProp

Momentum


慣性的計(jì)算可以發(fā)現(xiàn)慣性與之前所有的梯度是有關(guān)的。通俗的理解為對梯度的平均,使得縱向的擺動(dòng)變小了,橫向的運(yùn)動(dòng)更快了。可加快梯度下降。

Adam

RMSProp + Momentum


Early Stopping


Early Stopping 是用來確定Epochs,合理的是用validation set 和training set 的誤差曲線來確定。

Early Stopping
減少參數(shù)的更新次數(shù),最終目的也是為了不要讓參數(shù)離零太遠(yuǎn)。
降低神經(jīng)網(wǎng)絡(luò)中的方差。
優(yōu)點(diǎn):只運(yùn)行一次梯度下降,可以找出W的較小值,中間值和較大值。而L2正則化需要超級參數(shù)lamb
缺點(diǎn):提前停止了優(yōu)化代價(jià)函數(shù)J,可能代價(jià)函數(shù)值不夠小。


Regularization


加正則項(xiàng)的目的是為了讓目標(biāo)函數(shù)更平滑。而bias與函數(shù)的平滑沒有關(guān)系,所有加正則項(xiàng)時(shí)不用考慮bias項(xiàng),只需考慮權(quán)重項(xiàng)。

權(quán)重參數(shù)初始化時(shí),盡可能的靠近零。在做參數(shù)更新的時(shí)候,是為了離零越來越遠(yuǎn)。做正則化的時(shí)候,是為了不要讓權(quán)重參數(shù)離零太遠(yuǎn)。

L2 正則化

被稱為權(quán)重衰減,這是因?yàn)闄?quán)重乘以了一個(gè)小于的數(shù)。
權(quán)重衰減項(xiàng)來源L2,這是因?yàn)闄?quán)重乘以了一個(gè)小于1的參數(shù)。

L2 Regularization

w并不會(huì)變成零,最終會(huì)達(dá)到平衡,而且保證w的平滑性。

L1 Regularization

L1, L2 都是為了使得權(quán)重參數(shù)不要太大。 L1是減去一個(gè)固定的值,L2是乘以一個(gè)小于1的值。這樣L1很少會(huì)出現(xiàn)很小的值,但是有可能得到比較大的值,也就是說L1得到的值是稀疏的。L2可以保留得到很多很小的值。

Regularization 與Early Early Stopping功能類似。如果使用了Early Early Stopping后,有時(shí)候可能沒必要使用Regularization

Early Stopping
減少參數(shù)的更新次數(shù),最終目的也是為了不要讓參數(shù)離零太遠(yuǎn)。
降低神經(jīng)網(wǎng)絡(luò)中的方差。
優(yōu)點(diǎn):只運(yùn)行一次梯度下降,可以找出W的較小值,中間值和較大值。而L2正則化需要超級參數(shù)lamb
缺點(diǎn):提前停止了優(yōu)化代價(jià)函數(shù)J,可能代價(jià)函數(shù)值不夠小。


Dropout


Training 使用Dropout,比如p%,而Testing不用Dropout. 但是Testing時(shí)權(quán)值需要乘以(1-p%)

Dropout直觀理解,訓(xùn)練的時(shí)候需要加重,測試的時(shí)候需要去重。

Dropout的直觀理解。但是partner可能會(huì)擺爛,所以訓(xùn)練要好好的做。但是測試階段是沒有人擺爛。

Dropout的直觀理解。訓(xùn)練的時(shí)候有Dropout,測試的時(shí)候也需要相應(yīng)縮減。

雖然有Dropout,在訓(xùn)練階段,有minbatchsize,每個(gè)神經(jīng)元點(diǎn)的權(quán)值訓(xùn)練相當(dāng)于多個(gè)網(wǎng)絡(luò)dropout的網(wǎng)絡(luò)依次訓(xùn)練。說白了就是第一個(gè)minbatch,訓(xùn)練確定的某個(gè)神經(jīng)元的權(quán)值,會(huì)在第二個(gè)minbatch的時(shí)候繼續(xù)訓(xùn)練(前提是該神經(jīng)元沒有被dropout), 這類似于多個(gè)網(wǎng)絡(luò)依次訓(xùn)練確定神經(jīng)元的權(quán)值。


重點(diǎn)閱讀。
深度學(xué)習(xí)(Deep Learning)讀書思考三:正則化

機(jī)器學(xué)習(xí)中防止過擬合的處理方法


參考文獻(xiàn)


http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17.html

機(jī)器學(xué)習(xí)中防止過擬合的處理方法

總結(jié)

以上是生活随笔為你收集整理的李宏毅机器学习课程9~~~深度学习技巧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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