神經(jīng)網(wǎng)絡(luò)類似于人類的神經(jīng)細(xì)胞,電信號(hào)在神經(jīng)元上傳遞,類似于數(shù)值在神經(jīng)網(wǎng)絡(luò)中傳遞的過(guò)程。?

在這個(gè)神經(jīng)網(wǎng)絡(luò)里面,一個(gè)神經(jīng)元就相當(dāng)于一個(gè)邏輯回歸函數(shù),所以上圖中有很多邏輯回歸函數(shù),其中每個(gè)邏輯回歸都有自己的權(quán)重和自己的偏差,這些權(quán)重和偏差就是參數(shù)。

圖中紅框表示的就是神經(jīng)元,多個(gè)神經(jīng)元以不同的方式進(jìn)行連接,就會(huì)構(gòu)成不同結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)。神經(jīng)元的連接方式是由人工設(shè)計(jì)的。

  1. 每個(gè)輸入乘以其對(duì)應(yīng)的權(quán)重,將結(jié)果求和,得到??;
  2. 將和代入激活函數(shù),得到結(jié)果??。

全連接前饋神經(jīng)網(wǎng)絡(luò)

全連接:每一個(gè)神經(jīng)元的輸出都連接到下一層神經(jīng)元的每一個(gè)神經(jīng)元,每一個(gè)神經(jīng)元的輸入都來(lái)自上一層的每一個(gè)神經(jīng)元。

前饋:前饋(feedforward)也可以稱為前向,從信號(hào)流向來(lái)理解就是輸入信號(hào)進(jìn)入網(wǎng)絡(luò)后,信號(hào)流動(dòng)是單向的,即信號(hào)從前一層流向后一層,一直到輸出層,其中任意兩層之間的連接并沒(méi)有反饋(feedback),亦即信號(hào)沒(méi)有從后一層又返回到前一層。

如圖所示,這是一個(gè)4層的全連接神經(jīng)網(wǎng)絡(luò),每一層有兩個(gè)神經(jīng)元,每個(gè)神經(jīng)元的激活函數(shù)都是sigmoid。

網(wǎng)絡(luò)輸入為(1, -1),激活函數(shù)為sigmoid:

網(wǎng)絡(luò)輸入為(0, 0),激活函數(shù)為sigmoid:

神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu):

Input Layer:網(wǎng)絡(luò)的輸入層,Layer的size和真實(shí)輸入大小匹配。

Hidden Layers:處于輸入層和輸出層之間的網(wǎng)絡(luò)層。

Output Layer:網(wǎng)絡(luò)的最后一層,神經(jīng)元計(jì)算產(chǎn)生的結(jié)果直接輸出,作為模型的輸出。

一些疑問(wèn)

神經(jīng)網(wǎng)絡(luò)的連接方式由人工設(shè)計(jì),所以可以堆疊很多層神經(jīng)元構(gòu)成很“深”網(wǎng)絡(luò),如上圖所示2015年提出的ResNet就達(dá)到了152層的深度。

深度神經(jīng)需要特殊的訓(xùn)練技巧

隨著層數(shù)變多,網(wǎng)絡(luò)參數(shù)增多,隨之運(yùn)算量增大,通常都是超過(guò)億萬(wàn)級(jí)的計(jì)算。對(duì)于這樣復(fù)雜的結(jié)構(gòu),我們一定不會(huì)一個(gè)一個(gè)的計(jì)算,對(duì)于億萬(wàn)級(jí)的計(jì)算,使用loop循環(huán)效率很低。

網(wǎng)絡(luò)的運(yùn)算過(guò)程如圖所示:

上圖中,網(wǎng)絡(luò)的運(yùn)算過(guò)程可看作是矩陣的運(yùn)算。

網(wǎng)絡(luò)的計(jì)算方法就像是嵌套,所以整個(gè)神經(jīng)網(wǎng)絡(luò)運(yùn)算就相當(dāng)于一連串的矩陣運(yùn)算。

從結(jié)構(gòu)上看每一層的計(jì)算都是一樣的,也就是用計(jì)算機(jī)進(jìn)行并行矩陣運(yùn)算。這樣寫(xiě)成矩陣運(yùn)算的好處是,你可以使用GPU加速,GPU核心多,可以并行做大量的矩陣運(yùn)算。

神經(jīng)網(wǎng)絡(luò)的本質(zhì):通過(guò)隱藏層進(jìn)行特征轉(zhuǎn)換

隱藏層可以看作是對(duì)網(wǎng)絡(luò)輸入層輸入特征進(jìn)行特征處理,在最后一層隱藏層進(jìn)行輸出,這時(shí)的輸出可以看作一組全新的特征,將其輸出給輸出層,輸出層對(duì)這組全新的特征進(jìn)行分類。

舉例:手寫(xiě)數(shù)字識(shí)別

舉一個(gè)手寫(xiě)數(shù)字體識(shí)別的例子:

輸入:一個(gè)16*16=256維的向量,每個(gè)pixel對(duì)應(yīng)一個(gè)dimension,有顏色用(ink)用1表示,沒(méi)有顏色(no ink)用0表示,將圖片展平為一個(gè)256維的向量作為網(wǎng)絡(luò)輸入。

輸出:10個(gè)維度,每個(gè)維度代表一個(gè)數(shù)字的置信度(可理解為是該數(shù)字的概率有多大)

從輸出結(jié)果來(lái)看,每一個(gè)維度對(duì)應(yīng)輸出一個(gè)數(shù)字,代表模型輸出為當(dāng)前分類數(shù)字的概率。說(shuō)明這張圖片是2的可能性就是最大的。

在這個(gè)問(wèn)題中,唯一確定的就是,輸入是256維的向量,輸出是10維的向量,我們所需要找的函數(shù)就是輸入和輸出之間的神經(jīng)網(wǎng)絡(luò)這個(gè)函數(shù)。

從上圖看神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)決定了函數(shù)集(function set),通常來(lái)講函數(shù)集中的函數(shù)越多越復(fù)雜,網(wǎng)絡(luò)的表達(dá)空間就越大,越能handle復(fù)雜的模式,所以說(shuō)網(wǎng)絡(luò)結(jié)構(gòu)(network structured)很關(guān)鍵。

接下來(lái)有幾個(gè)問(wèn)題:

Step2:模型評(píng)估

損失示例

對(duì)于模型的評(píng)估,我們一般采用損失函數(shù)來(lái)反應(yīng)模型的優(yōu)劣,所以對(duì)于神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō),我們可以采用交叉熵(cross entropy)函數(shù)來(lái)對(duì) ?? 和 ??? 的損失進(jìn)行計(jì)算,接下來(lái)我們就通過(guò)調(diào)整參數(shù),讓交叉熵越小越好。

總體損失

對(duì)于損失,我們不單單要計(jì)算一筆數(shù)據(jù)的,而是要計(jì)算整體所有訓(xùn)練數(shù)據(jù)的損失,然后把所有的訓(xùn)練數(shù)據(jù)的損失都加起來(lái),得到一個(gè)總體損失??。接下來(lái)就是在functon set里面找到一組函數(shù)能最小化這個(gè)總體損失??,或者是找一組神經(jīng)網(wǎng)絡(luò)的參數(shù)??,來(lái)最小化總體損失??。

Step3:選擇最優(yōu)函數(shù)

如何找到最優(yōu)的函數(shù)和最好的一組參數(shù)?——使用梯度下降。具體流程:??是一組包含權(quán)重和偏差的參數(shù)集合,隨機(jī)找一個(gè)初始值,接下來(lái)計(jì)算一下每個(gè)參數(shù)對(duì)應(yīng)的偏微分,得到的一個(gè)偏微分的集合???就是梯度,有了這些偏微分,我們就可以更新梯度得到新的參數(shù),這樣不斷反復(fù)進(jìn)行,就能得到一組參數(shù)使得損失函數(shù)的值最小。


反向傳播

神經(jīng)網(wǎng)絡(luò)訓(xùn)練中,我們需要將計(jì)算得到的損失向前傳遞,以計(jì)算各個(gè)神經(jīng)元連接的權(quán)重對(duì)損失的影響大小,這里用到的方法就是反向傳播。我們可以用很多框架來(lái)進(jìn)行計(jì)算損失,比如說(shuō)TensorFlow,Pytorch,theano等。

思考題

為什么要用深度學(xué)習(xí),深層架構(gòu)帶來(lái)哪些好處?那是不是隱藏層越多越好?

隱藏層越多越好?

從圖中展示的結(jié)果看,毫無(wú)疑問(wèn),理論上網(wǎng)絡(luò)的層次越深效果越好,但現(xiàn)實(shí)中是這樣嗎?

普遍性定理

參數(shù)更多的模型擬合數(shù)據(jù)效果更好是很正常的。

有一個(gè)通用的理論:對(duì)于任何一個(gè)連續(xù)的函數(shù),都可以用足夠多的神經(jīng)元來(lái)表示。那為什么我們還需要深度(Deep)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)呢,是不是直接用一層包含很多神經(jīng)元的網(wǎng)絡(luò)(Fat)來(lái)表示就可以了?

文章轉(zhuǎn)自微信公眾號(hào)@Datawhale

上一篇:

從0到1:如何設(shè)計(jì)與實(shí)現(xiàn)AI大模型應(yīng)用平臺(tái)

下一篇:

深度 | 深度學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)全局概覽:核心技術(shù)的發(fā)展歷程
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)