最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【課程筆記】神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)與學(xué)習(xí)

2022-09-30 15:18 作者:梅狄威爾  | 我要投稿


1. 多層感知機

a. 能夠進行復(fù)雜的表示

b. 權(quán)重設(shè)定的工作需要人工來執(zhí)行 → 解決方法,利用神經(jīng)網(wǎng)絡(luò)自動地從數(shù)據(jù)中學(xué)習(xí)到合適的權(quán)重參數(shù)

2. 前饋神經(jīng)網(wǎng)絡(luò)

a. 神經(jīng)元之間的連接只能單向連接,不能反饋(連成一個回環(huán))

b. 層與層之間是全連接

3. 激活函數(shù)

a. sigmoid函數(shù):階躍函數(shù)的平滑版本,定義域上處處可導(dǎo) → 為神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)提供了數(shù)學(xué)上的便利

i. 缺點,在x很大時,導(dǎo)數(shù)趨近于0。這在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時是不希望看到的(w←w-eta(dL/dw),梯度下降法),如果梯度變到0,意味著w一直固定在這里,訓(xùn)練不動了。

ii. 深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練:涉及到大量梯度的連乘。而對于大量梯度的連乘來說,很可能出現(xiàn)中間有很小的梯度導(dǎo)數(shù),導(dǎo)致網(wǎng)絡(luò)訓(xùn)練不動了。這也是以前深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練不出來的原因之一。

b. ReLU函數(shù)(Rectified Linear Unit):缺點,有一個點不可導(dǎo);優(yōu)點,>0時導(dǎo)數(shù)恒為1

i. 非線性激活函數(shù),大量使用

ii. 斷點問題,Tensorflow或者Pytorch都處理好了。早期還有人考慮不同的激活函數(shù),現(xiàn)在基本上沒有人考慮這方面的問題了。

c. 輸出層的非線性激活函數(shù),一般不用ReLU函數(shù)

i. 回歸函數(shù):identity函數(shù),恒等函數(shù)y=sigma(x)=x

ii. 分類問題:softmax函數(shù),y=sigma(x)=exp(ak)/sum_i(exp(ai));取值范圍,0<y<1,sum(yi)=1;意味著輸出了離散的概率分布【←概率化的輸出的解釋,不意味著得到了數(shù)據(jù)的分布?。?!】

4. 符號約定:

a. 輸入:x1,x2,…

b. 層:

i. 凈輸入a:a^(1)_(2),上標(biāo)是層級,下標(biāo)是層級下的索引號

ii. 權(quán)重w:w^(1)_(12),下標(biāo)前一個表示輸入,后一個表示輸出作用于的神經(jīng)元

iii. 非線性輸出z:z^(2)_(1)=h(a^(2)_1),凈輸入經(jīng)過非線性激活函數(shù)激活之后,得到了非線性輸出

c. 輸出層:

非線性激活函數(shù)需要根據(jù)需求來設(shè)計


1. 神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)

a. 向量nabla(y)所指示的方向,是函數(shù)增長最快的方向;反之,往nabla(y)的反方向走,則是函數(shù)減小最快的方向

i. 注意,nabla(y)不一定是歸一化的?。?!

b. w' ← w-lambda·(dL/dw),其中d表示partial(偏導(dǎo)數(shù))

i. L:損失函數(shù),定義為預(yù)測值和真實值的某種差距,L(y,t),其中y表示預(yù)測量,t表示真實量

ii. -(dL/dw),負梯度方向在w軸上的投影系數(shù)

iii. lambda,步長

2. 理解學(xué)習(xí)概念的三個角度:數(shù)據(jù)驅(qū)動的學(xué)習(xí);基于數(shù)值微分的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí);基于反向傳播的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)(BP,神經(jīng)網(wǎng)絡(luò)中最重要的算法)

a. 數(shù)據(jù)驅(qū)動的學(xué)習(xí):網(wǎng)絡(luò)架構(gòu)非常成熟(模型到處都是,model zoo);數(shù)據(jù)是制約瓶頸(找不到足夠能夠把網(wǎng)絡(luò)訓(xùn)練出來的合適的數(shù)據(jù))

i. 數(shù)據(jù)→人想到的算法→答案

ii. 數(shù)據(jù)→人想到的特征量(SIFT、HOG等)→機器學(xué)習(xí)(SVM,KNN等)→答案 (2012年以前的范式)

iii. 數(shù)據(jù)→神經(jīng)網(wǎng)絡(luò)(深度學(xué)習(xí))→答案 (2012年以后,不再去區(qū)分哪個部分是特征提取器,哪個部分是分類器;也被稱為端到端機器學(xué)習(xí)end-to-end machine learning)

b. 基于數(shù)值微分的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí):(劃分mini-batch→計算梯度→更新參數(shù)→重復(fù))

i. 沿著網(wǎng)絡(luò)的方向,以負梯度方向更新網(wǎng)絡(luò)

ii. 初始的參數(shù)分布:

1) 一種方式:隨機猜出來的 → 很可能導(dǎo)致較大的Loss → 利用梯度更新參數(shù)分布

iii. 神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)中所用的指標(biāo)稱為損失函數(shù),L=L(y,t)

1) 損失函數(shù)可以使用任意函數(shù),但一般用均方誤差和交叉熵誤差等等

a) 均方誤差:回歸問題(輸出是一個實數(shù),有大小之分)常用!!

b) 交叉熵誤差:E=-sum(tk·logyk)

i) 由于t是獨熱向量(正確的是1,不對的都是0),因此最小化交叉熵損失函數(shù),等價于極大似然

ii) 分類問題(輸出是一個標(biāo)簽,沒有大小之分)常用??!

2) 通常不使用識別的精度作為損失函數(shù):(相對于參數(shù)的變化)不敏感,有跳躍

3) Mini-batch學(xué)習(xí)

a) 如果以全部數(shù)據(jù)為對象求損失函數(shù)的和,耗時長甚至算不了

b) 受到計算電視節(jié)目收視率的啟發(fā),取mini-batch進行計算

c) 分批次進行訓(xùn)練、更新參數(shù)。batch的規(guī)模取決于顯卡(顯存的大小決定了一個batch有多大)

d) 一個epoch:把所有的batch過了一遍

i) 不同的epoch,batch的劃分通常會不一樣

iv. 計算梯度的方法:前項差分,后向差分,中心差分

c. 基于反向傳播的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí):可以用反向傳播方法對神經(jīng)網(wǎng)絡(luò)進行學(xué)習(xí),也可以用數(shù)值微分方法進行學(xué)習(xí)。但是反向傳播方法效率高很多

i. 符號約定:連接權(quán),偏置(激活閾值)→凈輸入,非線性輸出

ii. BP算法:

1) 前向計算:Forward Calculation,輸入樣本x,沿著網(wǎng)絡(luò)一直計算到輸出y(預(yù)測值)

2) (獲得損失函數(shù))

3) 反向傳播:Back Propagation

a) 如何算損失函數(shù)J相對于模型參數(shù)的導(dǎo)數(shù)?【兩層網(wǎng)絡(luò)示例】

i) J對w的導(dǎo)數(shù):鏈?zhǔn)椒▌t(復(fù)合函數(shù)求導(dǎo))

One. 先考慮輸出層對應(yīng)的w:w變化,首先影響的是輸出層節(jié)點的凈輸入beta;輸出層節(jié)點的凈輸入beta變化,影響的是輸出層非線性輸出y^hat;輸出層非線性輸出y^hat變化,導(dǎo)致?lián)p失函數(shù)J變化

First. dJ/dy^hat:根據(jù)J的表達式,可以給出來(用當(dāng)前已有的值即可,可以不需要數(shù)值的微分)

Second. dy^hat/dbeta:根據(jù)激勵函數(shù)的表達式,可以給出來(用當(dāng)前已有的值即可,可以不需要數(shù)值的微分)

Third. dbeta/domega:根據(jù)線性求和函數(shù)(仿射變換)的表達式,可以給出來(用當(dāng)前已有的值即可,可以不需要數(shù)值的微分)

Two. 再考慮隱藏層-輸入層的權(quán)重v:v變化,首先影響的是隱藏層的凈輸入alpha;alpha變化,影響的是隱藏層非線性輸出b;b變化,影響的是輸出層每一個節(jié)點的凈輸入beta;beta變化,y^hat變化,導(dǎo)致導(dǎo)致J變化

First. 注意,dJ/db=sum(dJ/dbeta·dbeta/db),這里有sum的原因在于,不止一個變量跟b有函數(shù)關(guān)系

Three. 再考慮激活閾值的更新量:很簡單,可以直接寫出來

First. 可以直接從J對權(quán)重的導(dǎo)數(shù),給出J相對于激活閾值的導(dǎo)數(shù)

Second. 原因在于,theta也可以認為是和-1相乘的連接權(quán),它更新的公式應(yīng)該和權(quán)重更新的公式結(jié)構(gòu)一樣,只不過需要把輸入取成-1

ii) 注意,在推導(dǎo)BP算法的時候,是基于一個樣本輸入的推導(dǎo)。

One. 實際過程中,往往是算一個batch對應(yīng)的一個損失值(推導(dǎo)時不這么做,是為了避免角標(biāo)復(fù)雜)

b) 缺點:鏈?zhǔn)椒▌t公式的乘子數(shù)擴張速度特別大,網(wǎng)絡(luò)深了之后,上述求導(dǎo)的分析方法非人力可為

i) 怎么解決?采用計算圖

One. 計算圖解題的一般流程:構(gòu)建計算圖;在計算圖上,從左向右進行計算(類似于正向傳播)

First. 正向傳播:從左向右進行計算;反向傳播:從右向左進行計算

Second. 計算圖的好處:屏蔽一些很復(fù)雜的計算,只需要計算輸出的結(jié)果就可以了;在各個計算節(jié)點上,只有一些簡單的計算

1. 消耗:中間計算的結(jié)果需要保存下來:“快”的實質(zhì)——用空間換時間

Third. 如何用計算圖求導(dǎo)數(shù)?(示例)


【課程筆記】神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)與學(xué)習(xí)的評論 (共 條)

分享到微博請遵守國家法律
辽阳市| 双辽市| 景泰县| 榆林市| 南平市| 门源| 磐安县| 泰顺县| 司法| 西乌珠穆沁旗| 方山县| 莫力| 棋牌| 介休市| 台北县| 濮阳县| 鄂温| 瓮安县| 上虞市| 八宿县| 凭祥市| 乡宁县| 万源市| 七台河市| 光山县| 重庆市| 武威市| 秀山| 乌拉特后旗| 吉首市| 广德县| 盐城市| 桃源县| 鄄城县| 威信县| 赫章县| 松滋市| 新蔡县| 丰城市| 岑溪市| 南靖县|