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

歡迎訪問 生活随笔!

生活随笔

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

pytorch

吴恩达深度学习课程要点和概念记录一(神经网络及其优化)

發(fā)布時(shí)間:2023/12/31 pytorch 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 吴恩达深度学习课程要点和概念记录一(神经网络及其优化) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近正在學(xué)習(xí)吳恩達(dá)老師的深度學(xué)習(xí)課程,學(xué)習(xí)這些課程使我對(duì)博士期間讀論文遇到的各種深度學(xué)習(xí)概念有了更深入的理解,本博客希望對(duì)于吳老師課程中主要概念進(jìn)行整體性地記錄,并加入自身研究中的一些認(rèn)識(shí),以便在以后工作中查閱以及復(fù)習(xí)之用。

神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)

  • 線性擬合,參數(shù)w,bw, bw,b,結(jié)果zzzwww維度對(duì)應(yīng)輸入向量xxx的維度
  • 邏輯回歸以及SigmoidSigmoidSigmoid函數(shù),結(jié)果aaa
  • 理解線性組合函數(shù)與非線性激活函數(shù)g(z)g(z)g(z)結(jié)合構(gòu)成神經(jīng)元
    z=wx+ba=g(z)z=wx + b \\ a=g(z)z=wx+ba=g(z)
  • 損失函數(shù)loss=?(yloga+(1?y)log(1?a))loss = -(yloga + (1-y)log(1-a))loss=?(yloga+(1?y)log(1?a))
  • 梯度下降:基于dw,dbdw, dbdw,db更新w,bw, bw,b,參數(shù):學(xué)習(xí)率α\alphaα
  • 鏈?zhǔn)椒▌t,計(jì)算圖,反向傳播
    如何計(jì)算dz,da,dw,db
  • 結(jié)構(gòu)化數(shù)據(jù)以及非結(jié)構(gòu)化數(shù)據(jù),人類與機(jī)器處理這兩種數(shù)據(jù)的不同
  • 向量化與廣播(從一個(gè)向量到一組向量)
  • 深度神經(jīng)網(wǎng)絡(luò)中,第lll層神經(jīng)網(wǎng)絡(luò)有n[l]n^{[l]}n[l]個(gè)神經(jīng)元,計(jì)算每一層參數(shù)的維度:
    W:(n[l],n[l?1])W: (n^{[l]}, n^{[l-1]})W:(n[l],n[l?1])b:(n[l],1)b: (n^{[l]}, 1)b:(n[l],1)
    可以理解為前一層神經(jīng)元輸出,正好是下一層的輸入向量,對(duì)于下一層每個(gè)神經(jīng)元,w維度與前一層神經(jīng)元數(shù)量相同。
  • 每一層結(jié)果的維度:Z,A:(n[l],m)Z, A: (n^{[l]}, m)Z,A:(n[l],m)
    每一列代表一個(gè)數(shù)據(jù)實(shí)例
  • 不同的激活函數(shù): sigmoidsigmoidsigmoidtanhtanhtanhrelurelurelureluleakyrelu_{leaky}reluleaky?
    如果使用線性激活函數(shù),多層神經(jīng)網(wǎng)絡(luò)等價(jià)于一層神經(jīng)網(wǎng)絡(luò)
  • 隨機(jī)初始化:如果全部初始化為0,那么每層中每個(gè)神經(jīng)元都是對(duì)稱的,它們對(duì)應(yīng)的參數(shù)在梯度下降計(jì)算中也是相同的。
  • 為什么需要深度?減少神經(jīng)元數(shù)量,每一層逐漸進(jìn)行特征抽象
  • 參數(shù)與超參數(shù)。參數(shù)可以學(xué)習(xí),超參數(shù)需要人工設(shè)置。

優(yōu)化深度神經(jīng)網(wǎng)絡(luò)

  • 訓(xùn)練集、驗(yàn)證集、測(cè)試集
  • 偏差與方差。偏差大是指Training Error 與 Bayes Error相差大,方差大是指Test Error與Training Error相差大。偏差和方差的比較是相對(duì)的。偏差大表示訓(xùn)練不充分或者網(wǎng)絡(luò)結(jié)構(gòu)太簡(jiǎn)單,方差大表示存在過擬合問題
  • 解決偏差大:使用更復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)、更多神經(jīng)元、更多層,訓(xùn)練更長(zhǎng)時(shí)間
  • 解決方差大:增加訓(xùn)練數(shù)據(jù)、正則化、Early Stopping
  • 正則化:L2、L1、Dropout
    為什么正則化能夠解決方差大的問題:避免某個(gè)特征權(quán)重過高,避免學(xué)習(xí)離群點(diǎn)的特征,使網(wǎng)絡(luò)更簡(jiǎn)單。
  • Dropout應(yīng)用時(shí):訓(xùn)練時(shí)對(duì)每一層采用一定的概率隨機(jī)dropout神經(jīng)元,測(cè)試和應(yīng)用時(shí)不dropout神經(jīng)元
  • Normalization Input: 將原始數(shù)據(jù)減去均值μ\muμ,再除以方差σ2\sigma^{2}σ2
    μ=1mΣxx:=x?μσ2=1mΣx2x:=x/σ2\mu = \frac{1}{m}\Sigma x \\ x:=x-\mu \\ \sigma^{2} = \frac{1}{m}\Sigma x^2 \\ x:= x / \sigma ^ 2μ=m1?Σxx:=x?μσ2=m1?Σx2x:=x/σ2

好處:能夠選擇更大的學(xué)習(xí)率,如果權(quán)重之間差距過大,那么學(xué)習(xí)率只能選擇較小的值,否則無法保證cost函數(shù)經(jīng)過一輪之后是下降的

  • 梯度消失和梯度爆炸:W取值大于1或者小于1,在深度過高時(shí),其計(jì)算的值要么趨于無窮大,要么趨于0.
  • 選擇合適的W初始值。前一層神經(jīng)元越多(即下一層輸入數(shù)據(jù)的特征越多,每個(gè)神經(jīng)元權(quán)重分量越多),為了確保下一層神經(jīng)元計(jì)算的Z值不要太大,選擇w越小。
    [文章](https://blog.csdn.net/red_stone1/article/details/78208851])有講解
  • 梯度檢查:可以采用導(dǎo)數(shù)的定義查看梯度計(jì)算是否正確
  • batch梯度下降:在整個(gè)訓(xùn)練集上進(jìn)行訓(xùn)練,每次進(jìn)行一次梯度下降
  • mini-batch 梯度下降:將訓(xùn)練集進(jìn)行劃分成若干等份,每份子集進(jìn)行一次梯度下降。
    適用于訓(xùn)練集過大的情況。
  • Epoch:在訓(xùn)練集上完整地訓(xùn)練一次被稱為一次epoch
  • SGD:每次針對(duì)一個(gè)測(cè)試實(shí)例進(jìn)行梯度下降
  • 不同訓(xùn)練場(chǎng)景下,cost函數(shù)變化:Batch 平穩(wěn)下降,mini-batch震蕩下降
  • 怎樣減小震蕩下降的幅度? 在梯度下降基礎(chǔ)上,引入新的優(yōu)化算法
  • 動(dòng)量梯度下降算法:基于指數(shù)加權(quán)平均,使W、b變化盡可能平滑
  • RMSprop:也是使W,b并盡可能平滑,每次梯度下降時(shí)dwd_wdw?要除以Sw\sqrt{S_{w}}Sw??
    Sw=βSdw+(1?β)dw2S_{w} = \beta S_{dw} + (1-\beta)d_w^2Sw?=βSdw?+(1?β)dw2?
  • Adam優(yōu)化算法:動(dòng)量梯度下降與RMSprop結(jié)合
  • 學(xué)習(xí)率遞減:隨著epoch增加,α\alphaα逐漸減小
  • 局部最小值問題鞍點(diǎn)
  • 隨機(jī)化選擇超參數(shù)進(jìn)行Tuning:嘗試更多的超參數(shù)組合,避免網(wǎng)格化超參數(shù)tuning
    不同種類超參數(shù)的重要性不同,對(duì)于每個(gè)超參數(shù)都要盡量嘗試更多的取值,并在tuning過程中逐步縮小范圍
  • linear scale vs log scale 進(jìn)行超參數(shù)取值
  • Batch Normalization:在神經(jīng)網(wǎng)絡(luò)每一層,對(duì)ZZZ進(jìn)行標(biāo)準(zhǔn)化處理后,通過兩個(gè)可以訓(xùn)練的參數(shù)γ\gammaγβ\betaβ來自由設(shè)置ZZZ的方差和均值。
    從原論文中有以下公式:

μ:=1mΣxiσ2:=1mΣ(xi?μ)2x^:=x?μσ2+?y^:=γx^+β\mu := \frac{1}{m}\Sigma x_i \\ \sigma^2 := \frac{1}{m}\Sigma(x_i-\mu)^2 \\ \hat{x} := \frac{x-\mu}{\sqrt{\sigma^2 + \epsilon}} \\ \hat{y} := \gamma\hat{x} + \beta μ:=m1?Σxi?σ2:=m1?Σ(xi??μ)2x^:=σ2+??x?μ?y^?:=γx^+β

好處:Z的方差和均值可以控制,那么每一層神經(jīng)元參數(shù)相對(duì)獨(dú)立的,那么前面一層神經(jīng)元參數(shù)變化太大不會(huì)影響到后面的神經(jīng)元參數(shù)。因此能夠加速神經(jīng)網(wǎng)絡(luò)訓(xùn)練。Batch Normalization還有輕微正則化效果。

  • 對(duì)單個(gè)測(cè)試實(shí)例使用batch normalization:基于指數(shù)加權(quán)平均估計(jì)測(cè)試實(shí)例的μ\muμσ\sigmaσ

  • 多分類問題:softmax分類器,假設(shè)是三分類問題,z1z^1z1,z2z^2z2, z3z^3z3分別代表三個(gè)神經(jīng)元的線性組合函數(shù)結(jié)果,并基于以下公式計(jì)算對(duì)應(yīng)分類的概率
    y1^=ez1ez1+ez2+ez3\hat{y^1} = \frac{e^{z^{1}}}{e^{z^{1}} + e^{z^{2}} + e^{z^{3}}}y1^?=ez1+ez2+ez3ez1?

  • 多分類問題的loss函數(shù)
    loss=?1mΣyilogyi^loss = -\frac{1}{m}\Sigma y_ilog\hat{y_i}loss=?m1?Σyi?logyi?^?

  • 深度學(xué)習(xí)框架

總結(jié)

以上是生活随笔為你收集整理的吴恩达深度学习课程要点和概念记录一(神经网络及其优化)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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