人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,簡(jiǎn)稱(chēng)ANNs)-1
(1)人工神經(jīng)網(wǎng)絡(luò)的魯棒性和應(yīng)用:
人工神經(jīng)網(wǎng)絡(luò)(ANN)對(duì)訓(xùn)練數(shù)據(jù)中的錯(cuò)誤具有魯棒性,并且已經(jīng)成功應(yīng)用于學(xué)習(xí)各種函數(shù),包括解釋視覺(jué)場(chǎng)景、語(yǔ)音識(shí)別和學(xué)習(xí)機(jī)器人控制策略等問(wèn)題。
(2)生物神經(jīng)網(wǎng)絡(luò)與人工神經(jīng)網(wǎng)絡(luò)的靈感來(lái)源:
人工神經(jīng)網(wǎng)絡(luò)的研究部分受到大腦中復(fù)雜交織的神經(jīng)元網(wǎng)絡(luò)的啟發(fā)。人腦包含大約10^11到10^12個(gè)神經(jīng)元,每個(gè)神經(jīng)元平均連接到10^4到10^5個(gè)其他神經(jīng)元。因此,人腦平均需要大約10^-1秒的時(shí)間來(lái)做出復(fù)雜的決策。
(3)人工神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu):
人工神經(jīng)網(wǎng)絡(luò)通常由大量簡(jiǎn)單單元組成,這些單元密集地相互連接。每個(gè)單元接收多個(gè)實(shí)值輸入并產(chǎn)生單個(gè)實(shí)值輸出。盡管如此,人工神經(jīng)網(wǎng)絡(luò)并不完全模仿生物神經(jīng)系統(tǒng)的復(fù)雜性。
(4)生物神經(jīng)元與人工神經(jīng)元的差異:
生物神經(jīng)元的主要組成部分包括軸突、樹(shù)突和突觸。
人工神經(jīng)元?jiǎng)t通過(guò)權(quán)重來(lái)模擬這些生物組成部分的功能。
生物神經(jīng)元 |
人工神經(jīng)元 |
主要成分:軸突、樹(shù)突、突觸 |
主要成分:軸突、樹(shù)突、突觸 |
來(lái)自其他神經(jīng)元的信息以電脈沖的形式進(jìn)入樹(shù)突,通過(guò)稱(chēng)為突觸的連接點(diǎn)接收。信息從樹(shù)突流向細(xì)胞進(jìn)行處理。輸出信號(hào)(脈沖的序列)隨后沿著軸突傳送到其他神經(jīng)元的突觸。 |
神經(jīng)元的排列和連接組成網(wǎng)絡(luò),共有三層。第一層稱(chēng)為輸入層,是唯一暴露于外部信號(hào)的層。輸入層將信號(hào)傳遞給下一層的神經(jīng)元,該層稱(chēng)為隱藏層。隱藏層從接收的信號(hào)中提取相關(guān)特征或模式。這些被認(rèn)為重要的特征或模式隨后被轉(zhuǎn)發(fā)到輸出層,輸出層是網(wǎng)絡(luò)的最后一層。 |
突觸能夠增強(qiáng)或減弱連接的強(qiáng)度。這是信息存儲(chǔ)的地方。 |
人工信號(hào)可以通過(guò)權(quán)重進(jìn)行改變,類(lèi)似于突觸中發(fā)生的物理變化。 |
約有10^11個(gè)神經(jīng)元。 |
當(dāng)前技術(shù)下有10^2到10^4個(gè)神經(jīng)元。 |
(5)人腦與計(jì)算機(jī)處理信息的差異:
人腦(生物神經(jīng)網(wǎng)絡(luò)) |
計(jì)算機(jī)(人工神經(jīng)網(wǎng)絡(luò)) |
人腦是異步工作的 |
計(jì)算機(jī)(ANN)是同步工作的 |
生物神經(jīng)元計(jì)算速度較慢(每次計(jì)算幾毫秒) |
人工神經(jīng)元計(jì)算速度較快(每次計(jì)算少于1納秒) |
大腦以分布式方式表示信息,因?yàn)樯窠?jīng)元是不可靠的,可能隨時(shí)會(huì)死(失效) |
在計(jì)算機(jī)程序中,每一位必須按預(yù)期功能工作,否則程序會(huì)崩潰 |
我們的大腦會(huì)隨著時(shí)間的推移改變連接性,以表示新的信息和對(duì)我們施加的要求 |
計(jì)算機(jī)中的電子組件連接性不會(huì)改變,除非替換組件 |
生物神經(jīng)網(wǎng)絡(luò)具有復(fù)雜的拓?fù)浣Y(jié)構(gòu) |
人工神經(jīng)網(wǎng)絡(luò)通常采用樹(shù)形結(jié)構(gòu) |
研究人員仍在探索大腦是如何學(xué)習(xí)的 |
人工神經(jīng)網(wǎng)絡(luò)使用梯度下降法進(jìn)行學(xué)習(xí) |
(6)人工神經(jīng)網(wǎng)絡(luò)的優(yōu)勢(shì):
ANN可以處理由多個(gè)屬性-值對(duì)表示的實(shí)例。
ANN用于目標(biāo)函數(shù)輸出可能是離散值、實(shí)值或多個(gè)實(shí)值或離散值向量的問(wèn)題。
ANN學(xué)習(xí)方法對(duì)訓(xùn)練數(shù)據(jù)中的噪聲非常魯棒。訓(xùn)練示例可能包含錯(cuò)誤,但這不會(huì)影響最終輸出。
通常在需要快速評(píng)估學(xué)習(xí)目標(biāo)函數(shù)的情況下使用ANN。
ANN可以承受長(zhǎng)時(shí)間的訓(xùn)練,這取決于網(wǎng)絡(luò)中的權(quán)重?cái)?shù)量、考慮的訓(xùn)練示例數(shù)量以及各種學(xué)習(xí)算法參數(shù)的設(shè)置。
(7)McCulloch-Pitts神經(jīng)元模型:
這是由Warren McCulloch和Walter Pitts在1943年提出的人工神經(jīng)元的早期模型,也稱(chēng)為線性閾值門(mén)。這些神經(jīng)元通過(guò)直接加權(quán)路徑連接。連接路徑可以是興奮性的和抑制性的。

這部分指的是從節(jié)點(diǎn)x1到x2,一直到xn的連接權(quán)重是興奮性的(exhibitory),用符號(hào)‘w’來(lái)表示。興奮性連接意味著當(dāng)這些節(jié)點(diǎn)被激活時(shí),它們會(huì)增強(qiáng)下一個(gè)節(jié)點(diǎn)的激活狀態(tài)。節(jié)點(diǎn)Xn+1到Xn+2,一直到Xn+m的連接權(quán)重是抑制性的(inhibitory),用符號(hào)‘-p’來(lái)表示。抑制性連接意味著當(dāng)這些節(jié)點(diǎn)被激活時(shí),它們會(huì)減少下一個(gè)節(jié)點(diǎn)的激活狀態(tài)。
McCulloch-Pitts神經(jīng)元模型和單層神經(jīng)網(wǎng)絡(luò)(感知器)。
1.McCulloch-Pitts神經(jīng)元模型:
這個(gè)模型是最早的人工神經(jīng)元模型之一,由Warren McCulloch和Walter Pitts在1943年提出。
該模型的激活函數(shù)定義如下:
? 當(dāng)神經(jīng)元Y的總凈輸入信號(hào)(yin)大于或等于閾值(Θ)時(shí),激活函數(shù)f(yin)的輸出為1。
? 當(dāng)神經(jīng)元Y的總凈輸入信號(hào)(yin)小于閾值(Θ)時(shí),激活函數(shù)f(yin)的輸出為0。
總凈輸入信號(hào)(yin)是所有輸入信號(hào)(xi)與其對(duì)應(yīng)權(quán)重(wi)的乘積之和。
f(yin) = 1 if yin >= Θ 輸入yin = Σxiwi 0 if yin < Θ |
McCulloch-Pitts神經(jīng)元會(huì)在接收到k個(gè)或更多興奮性輸入且沒(méi)有抑制性輸入時(shí)被激活,其中k是某個(gè)閾值,w是輸入權(quán)重。
Kw >= Θ > (K-1)w |
3. 單層神經(jīng)網(wǎng)絡(luò)(感知器):
輸入是多維的,可以是一個(gè)向量,例如:x = (I1,I2,...,In)。
輸入節(jié)點(diǎn)(或單元)通常完全連接到下一層的一個(gè)節(jié)點(diǎn)(或多個(gè)節(jié)點(diǎn))。
下一層的節(jié)點(diǎn)會(huì)計(jì)算所有輸入的加權(quán)和,即:SummedInput = ∑iwiIi。
輸出節(jié)點(diǎn)有一個(gè)“閾值”t。如果加權(quán)和大于或等于閾值t,則輸出y為1(“激活”或“激發(fā)”);如果加權(quán)和小于閾值t,則輸出y為0(不激活)。
用數(shù)學(xué)表達(dá)式表示為:
? 如果∑iwiIi ≥ t,則y = 1。
? 否則(如果∑iwiIi < t),則y = 0。
這些概念是人工神經(jīng)網(wǎng)絡(luò)的基礎(chǔ),它們幫助我們理解神經(jīng)元如何處理信息并做出決策。McCulloch-Pitts模型和感知器都是線性分類(lèi)器,意味著它們只能處理線性可分的數(shù)據(jù)集。對(duì)于更復(fù)雜的非線性問(wèn)題,需要使用多層神經(jīng)網(wǎng)絡(luò)。

圖 3布爾函數(shù)和感知器

圖 4單層感知器
在神經(jīng)網(wǎng)絡(luò)中,響應(yīng)單元接收的輸入數(shù)據(jù)是由前一個(gè)單元(關(guān)聯(lián)器單元)處理后的結(jié)果,這個(gè)結(jié)果通常是一個(gè)二進(jìn)制形式的向量。
輸入層由多個(gè)輸入神經(jīng)元組成,每個(gè)神經(jīng)元對(duì)應(yīng)一個(gè)輸入變量(如x1,x2,...,xi,...,xn)。此外,通常還會(huì)加入一個(gè)常數(shù)偏置神經(jīng)元,其值固定為1,這是為了在計(jì)算中引入偏置項(xiàng),以便網(wǎng)絡(luò)能夠?qū)W習(xí)到數(shù)據(jù)中的偏差。
在神經(jīng)網(wǎng)絡(luò)中,輸入神經(jīng)元與輸出神經(jīng)元之間通過(guò)一系列的權(quán)重連接。這些權(quán)重決定了輸入信號(hào)對(duì)輸出信號(hào)的影響程度,是神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過(guò)程中需要調(diào)整的參數(shù)。通過(guò)改變這些權(quán)重,網(wǎng)絡(luò)可以學(xué)習(xí)到如何從輸入數(shù)據(jù)中提取特征并做出預(yù)測(cè)。
(8)Artificial Neural Networks算法
下面是對(duì)這個(gè)算法步驟的解釋?zhuān)?/p>
第1步:
初始化權(quán)重和偏置:在開(kāi)始訓(xùn)練之前,需要設(shè)置網(wǎng)絡(luò)中每個(gè)連接的權(quán)重(wi)和每個(gè)神經(jīng)元的偏置(b)。同時(shí),需要設(shè)定一個(gè)學(xué)習(xí)率α,這是一個(gè)介于0和1之間的數(shù)值,用于控制權(quán)重更新的步長(zhǎng)。
第2步:
循環(huán)直到滿足停止條件:算法會(huì)持續(xù)迭代,直到達(dá)到某個(gè)停止條件,比如達(dá)到最大迭代次數(shù)或者網(wǎng)絡(luò)輸出的錯(cuò)誤率低于某個(gè)閾值。
第3步:
對(duì)每對(duì)訓(xùn)練數(shù)據(jù)執(zhí)行以下步驟:對(duì)于每對(duì)輸入和目標(biāo)輸出(通常稱(chēng)為訓(xùn)練樣本或訓(xùn)練對(duì)),執(zhí)行以下步驟。
第4步:
設(shè)置輸入單元的激活值:將輸入數(shù)據(jù)賦值給輸入單元,這里用Xi表示第i個(gè)輸入單元的激活值,Sj表示輸入數(shù)據(jù)。
Xi =Sj for 1 to n |
第5步:
計(jì)算輸出單元的響應(yīng):計(jì)算輸出單元的凈輸入值(yin),這是通過(guò)將輸入單元的激活值與對(duì)應(yīng)的權(quán)重相乘后求和,再加上偏置b得到的。然后使用激活函數(shù)來(lái)確定輸出單元的輸出值y。
y=f(yin) = 1 if yin > Θ 0 if -Θ<= yin <= Θ 1 if yin < -Θ |
第6步:
更新權(quán)重和偏置:如果輸出單元的實(shí)際輸出y與目標(biāo)輸出t不一致,并且輸入單元的激活值xi不為零,則根據(jù)誤差和學(xué)習(xí)率更新權(quán)重和偏置。如果一致,則保持權(quán)重和偏置不變。
if t ≠ y并且xi非零 wi(new) = wi(old) + αtxi b(new) = b(old) + αt else wi(new) = wi(old) b(new) = b(old) |
第7步:
測(cè)試停止條件:檢查是否滿足停止條件,如果滿足,則停止訓(xùn)練;如果不滿足,則返回步驟3繼續(xù)訓(xùn)練。
(9)Perceptron的限制
1.由于硬極限傳遞函數(shù),感知器的輸出值只能采用兩個(gè)值(0 或 1)中的一個(gè)。
2.Perceptron 只能對(duì)線性可分的向量集進(jìn)行分類(lèi)。如果可以繪制一條直線或平面來(lái)將輸入向量分成正確的類(lèi)別,則輸入向量是線性可分的。如果向量不是線性可分的,則學(xué)習(xí)將永遠(yuǎn)不會(huì)達(dá)到所有向量都正確分類(lèi)的點(diǎn)。布爾函數(shù) XOR 不是線性可分的(它的正實(shí)例和負(fù)實(shí)例不能用線或超平面分隔)。因此,單層感知器永遠(yuǎn)無(wú)法計(jì)算 XOR 函數(shù)。這是一個(gè)很大的缺點(diǎn),曾經(jīng)導(dǎo)致神經(jīng)網(wǎng)絡(luò)領(lǐng)域停滯不前。但這已經(jīng)通過(guò)多層解決了。
(10)什么是多層網(wǎng)絡(luò)
多層神經(jīng)網(wǎng)絡(luò):多層感知器(MLP)或多層神經(jīng)網(wǎng)絡(luò)包含一個(gè)或多個(gè)隱藏層(除了一個(gè)輸入層和一個(gè)輸出層)。雖然單層感知器只能學(xué)習(xí)線性函數(shù),但多層感知器也可以學(xué)習(xí)非線性函數(shù)。該神經(jīng)元將 x1,x2,....,x3(和+1偏置項(xiàng))作為輸入,并輸出f(總輸入量+偏置),其中f(.)稱(chēng)為激活函數(shù)。Bias 的主要功能是為每個(gè)節(jié)點(diǎn)提供一個(gè)可訓(xùn)練的常量值(除了節(jié)點(diǎn)接收的正常輸入之外)。每個(gè)激活函數(shù)(或非線性)都采用一個(gè)數(shù)字并對(duì)其執(zhí)行某個(gè)固定的數(shù)學(xué)運(yùn)算。在實(shí)踐中可能會(huì)遇到幾種激活函數(shù):

首先,它提到了一個(gè)神經(jīng)元接收輸入x1,x2,…,x3(以及一個(gè)+1的偏置項(xiàng)),然后輸出f(summed inputs+bias),其中f是激活函數(shù)。這里的“偏置”(bias)的主要作用是為每個(gè)節(jié)點(diǎn)提供一個(gè)可訓(xùn)練的常數(shù)值,這個(gè)值是除了節(jié)點(diǎn)接收的正常輸入之外的。
幾種在實(shí)踐中可能遇到的激活函數(shù):
1.Sigmoid函數(shù):它接受一個(gè)實(shí)數(shù)值作為輸入,并將輸出壓縮到0和1之間。Sigmoid函數(shù)的數(shù)學(xué)表達(dá)式是:

這個(gè)函數(shù)在二分類(lèi)問(wèn)題中常用作輸出層的激活函數(shù)。
2.tanh函數(shù):它也接受一個(gè)實(shí)數(shù)值作為輸入,并將輸出壓縮到-1和1之間。tanh函數(shù)的數(shù)學(xué)表達(dá)式是:

這個(gè)函數(shù)的形狀類(lèi)似于Sigmoid,但是輸出值的范圍是-1到1,這使得它在某些情況下比Sigmoid函數(shù)更受歡迎。
3.ReLU函數(shù):ReLU代表修正線性單元。它接受一個(gè)實(shí)數(shù)值作為輸入,并將所有負(fù)值替換為0。ReLU函數(shù)的數(shù)學(xué)表達(dá)式是:

這個(gè)函數(shù)在隱藏層中非常流行,因?yàn)樗軌蚣铀偕窠?jīng)網(wǎng)絡(luò)的訓(xùn)練,并且減輕梯度消失問(wèn)題。
這些激活函數(shù)都是非線性的,它們使得神經(jīng)網(wǎng)絡(luò)能夠?qū)W習(xí)和執(zhí)行復(fù)雜的任務(wù)。在構(gòu)建神經(jīng)網(wǎng)絡(luò)時(shí),選擇正確的激活函數(shù)對(duì)于網(wǎng)絡(luò)的性能至關(guān)重要。
工程師必備
- 項(xiàng)目客服
- 培訓(xùn)客服
- 平臺(tái)客服
TOP




















