【轉(zhuǎn)】什么是神經(jīng)網(wǎng)絡(luò)?(IBM)
什么是神經(jīng)網(wǎng)絡(luò)?
神經(jīng)網(wǎng)絡(luò)又稱人工神經(jīng)網(wǎng)絡(luò)?(ANN)?或模擬神經(jīng)網(wǎng)絡(luò)?(SNN),是機(jī)器學(xué)習(xí)的子集,同時(shí)也是深度學(xué)習(xí)算法的核心。? 其名稱和結(jié)構(gòu)均受到人腦的啟發(fā),可模仿生物神經(jīng)元相互傳遞信號(hào)的方式。
人工神經(jīng)網(wǎng)絡(luò) (ANN) 由節(jié)點(diǎn)層組成,包含一個(gè)輸入層、一個(gè)或多個(gè)隱藏層和一個(gè)輸出層。 每個(gè)節(jié)點(diǎn)也稱為一個(gè)人工神經(jīng)元,它們連接到另一個(gè)節(jié)點(diǎn),具有相關(guān)的權(quán)重和閾值。 如果任何單個(gè)節(jié)點(diǎn)的輸出高于指定的閾值,那么會(huì)激活該節(jié)點(diǎn),并將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)的下一層。 否則,不會(huì)將數(shù)據(jù)傳遞到網(wǎng)絡(luò)的下一層。
神經(jīng)網(wǎng)絡(luò)依靠訓(xùn)練數(shù)據(jù)來(lái)學(xué)習(xí),并隨時(shí)間推移提高自身準(zhǔn)確性。 而一旦這些學(xué)習(xí)算法經(jīng)過(guò)了調(diào)優(yōu),提高了準(zhǔn)確性,它們就會(huì)成為計(jì)算機(jī)科學(xué)和人工智能領(lǐng)域的強(qiáng)大工具,使我們能夠快速對(duì)數(shù)據(jù)進(jìn)行分類和聚類。? 與由人類專家進(jìn)行的人工識(shí)別相比,語(yǔ)音識(shí)別或圖像識(shí)別任務(wù)可能只需要幾分鐘而不是數(shù)小時(shí)。 Google 的搜索算法就是最著名的神經(jīng)網(wǎng)絡(luò)之一。

神經(jīng)網(wǎng)絡(luò)如何運(yùn)作?
將各個(gè)節(jié)點(diǎn)當(dāng)成自己的線性回歸模型,由輸入數(shù)據(jù)、權(quán)重、偏差(或閾值)和輸出組成。?該公式與以下類似:
∑wixi + bias = w1x1 + w2x2 + w3x3 + bias
output = f(x) = 1 if ∑w1x1 + b>= 0; 0 if ∑w1x1 + b < 0
確定輸入層后,即可分配權(quán)重。 這些權(quán)重有助于確定任何給定變量的重要性,與其他輸入相比,較大的權(quán)重對(duì)輸出的貢獻(xiàn)更大。 將所有輸入乘以其各自的權(quán)重,然后求和。 之后,通過(guò)一個(gè)激活函數(shù)傳遞輸出,該函數(shù)決定了輸出結(jié)果。 如果該輸出超出給定閾值,那么它將“觸發(fā)”(或激活)節(jié)點(diǎn),將數(shù)據(jù)傳遞到網(wǎng)絡(luò)中的下一層。 這會(huì)導(dǎo)致一個(gè)節(jié)點(diǎn)的輸出變成下一個(gè)節(jié)點(diǎn)的輸入。 這個(gè)將數(shù)據(jù)從一層傳遞至下一層的過(guò)程可將此神經(jīng)網(wǎng)絡(luò)定義為前饋網(wǎng)絡(luò)。
我們利用二進(jìn)制值來(lái)解析單個(gè)節(jié)點(diǎn)的外觀。 我們可以將這個(gè)概念應(yīng)用到更具體的例子,比如您是否應(yīng)該去沖浪(是為 1,否為 0)。 決定去還是不去是我們預(yù)測(cè)的結(jié)果,即 y-hat。 我們假設(shè)有三個(gè)因素影響您的決定:
海浪好不好? (是:1,否:0)
需要排隊(duì)嗎? (是:1,否:0)
最近是否發(fā)生過(guò)鯊魚襲擊事件? (是:0,否:1)
然后,我們假設(shè)以下內(nèi)容作為輸入:
X1 = 1,因?yàn)楹@嗽诜?/p>
X2 = 0,因?yàn)槿巳阂焉⑷?/p>
X3 = 1,因?yàn)樽罱鼪]有發(fā)生過(guò)鯊魚襲擊事件
現(xiàn)在,我們需要分配一些權(quán)重來(lái)確定重要性。 較大的權(quán)重表示特定變量對(duì)決策或結(jié)果較為重要。
W1 = 5,因?yàn)檩^大的涌浪不太常出現(xiàn)
W2 = 2,因?yàn)槟呀?jīng)習(xí)慣了人多
W3 = 4,因?yàn)閷?duì)鯊魚感到恐懼
最后,我們還假設(shè)一個(gè)閾值 3,這將轉(zhuǎn)換為偏差值 -3。 所有輸入到位后,我們就可以開始將值插入公式,得出期望的輸出。
Y-hat = (1*5) + (0*2) + (1*4) – 3 = 6
如果我們從本節(jié)開始使用激活函數(shù),那么可以確定此節(jié)點(diǎn)的輸出為 1,因?yàn)?6 大于 0。 在此情況下,您會(huì)去沖浪;但如果我們調(diào)整權(quán)重或閾值,就會(huì)從模型中得出不同的結(jié)果。 當(dāng)我們觀察一個(gè)決策時(shí),比如在上述示例中,我們可以看到,神經(jīng)網(wǎng)絡(luò)制定日益復(fù)雜決策的方式取決于之前決策或之前層的輸出。
在上述示例中,我們使用了感知器來(lái)說(shuō)明一些數(shù)學(xué)運(yùn)算,而神經(jīng)網(wǎng)絡(luò)則利用 sigmoid 神經(jīng)元,這些神經(jīng)元的取值為 0 和 1。 由于神經(jīng)網(wǎng)絡(luò)的行為類似于決策樹,將數(shù)據(jù)從一個(gè)節(jié)點(diǎn)級(jí)聯(lián)到另一個(gè)節(jié)點(diǎn),因此 x 值取 0 和 1 將減少單個(gè)變量的任何指定更改對(duì)任何指定節(jié)點(diǎn)輸出的影響,并因此減少對(duì)神經(jīng)網(wǎng)絡(luò)輸出的影響。
開始思考神經(jīng)網(wǎng)絡(luò)的更實(shí)際用例時(shí),比如圖像識(shí)別或分類,我們將利用監(jiān)督學(xué)習(xí)或標(biāo)記的數(shù)據(jù)集來(lái)訓(xùn)練算法。 在訓(xùn)練模型時(shí),我們將使用成本(或損失)函數(shù)來(lái)評(píng)估其準(zhǔn)確性。 這通常也稱為均方誤差 (MSE)。 在以下方程中:
i?代表樣本的索引
y-hat 是預(yù)測(cè)結(jié)果
y 是實(shí)際值
m?是樣本數(shù)
= =1/2 ∑129_(=1)^?(??^(() )?^(() ) )^2
最終,目標(biāo)是最大程度減小成本函數(shù),確保任何指定觀察的正確擬合。 當(dāng)模型調(diào)整其權(quán)重和偏差時(shí),它使用成本函數(shù)和強(qiáng)化學(xué)習(xí)來(lái)達(dá)到收斂點(diǎn)或局部最小值。 算法通過(guò)梯度下降調(diào)整權(quán)重,這使模型可以確定減少錯(cuò)誤(或使成本函數(shù)最小化)的方向。 在每個(gè)訓(xùn)練示例中,模型參數(shù)都會(huì)進(jìn)行調(diào)整,以逐步收斂至最小值。??
閱讀此篇?IBM Developer 文章,其中較為深入地解釋了神經(jīng)網(wǎng)絡(luò)中涉及的定量概念。
大多數(shù)的深度神經(jīng)網(wǎng)絡(luò)都是前饋網(wǎng)絡(luò),這意味著它們只在一個(gè)方向上流動(dòng),即從輸入到輸出。 但是,您也可以通過(guò)反向傳播訓(xùn)練模型;也就是說(shuō),從輸出到輸入反向移動(dòng)。 通過(guò)反向傳播,我們能夠計(jì)算和歸因與每個(gè)神經(jīng)元關(guān)聯(lián)的錯(cuò)誤,并相應(yīng)地調(diào)整和擬合模型的參數(shù)。

神經(jīng)網(wǎng)絡(luò)的類型
神經(jīng)網(wǎng)絡(luò)可分類為不同的類型,分別用于不同的目的。 盡管此類型列表并不全面,但以下代表了最常見的神經(jīng)網(wǎng)絡(luò)類型,您可能會(huì)遇到其常見用例:
感知器是最古老的神經(jīng)網(wǎng)絡(luò),由 Frank Rosenblatt 于 1958 年創(chuàng)建。
我們?cè)诒疚闹兄饕懻摰氖乔梆伾窠?jīng)網(wǎng)絡(luò),或稱多層感知器 (MLP)。 它們由輸入層、一個(gè)或多個(gè)隱藏層以及輸出層組成。 雖然這些神經(jīng)網(wǎng)絡(luò)通常也被稱為 MLP,但值得注意的是,它們實(shí)際上是由 sigmoid 神經(jīng)元而不是感知器組成的,因?yàn)榇蠖鄶?shù)現(xiàn)實(shí)問(wèn)題都是非線性的。 通常將數(shù)據(jù)饋送到這些模型進(jìn)行訓(xùn)練,這些數(shù)據(jù)便是計(jì)算機(jī)視覺處理、自然語(yǔ)言處理和其他神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)。
卷積神經(jīng)網(wǎng)絡(luò) (CNN) 類似于前饋網(wǎng)絡(luò),但它們通常用于圖像識(shí)別、模式識(shí)別和/或計(jì)算機(jī)視覺處理。 這些網(wǎng)絡(luò)利用線性代數(shù)中的原理(尤其是矩陣乘法)來(lái)識(shí)別圖像中的模式。
循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN)?由其反饋回路來(lái)識(shí)別。 利用時(shí)間序列數(shù)據(jù)預(yù)測(cè)未來(lái)結(jié)果時(shí),主要使用這些學(xué)習(xí)算法,比如股市預(yù)測(cè)或銷量預(yù)測(cè)。
?

神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)
在對(duì)話交談中,深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)往往會(huì)互換使用,這可能會(huì)造成混淆。 因此,值得注意的是,深度學(xué)習(xí)中的“深度”只是指神經(jīng)網(wǎng)絡(luò)中層的深度。 由三個(gè)以上的層組成的神經(jīng)網(wǎng)絡(luò)(包含輸入和輸出)即可視為深度學(xué)習(xí)算法。 只有兩層或三層的神經(jīng)網(wǎng)絡(luò)只是基本神經(jīng)網(wǎng)絡(luò)。
要詳細(xì)了解神經(jīng)網(wǎng)絡(luò)和其他人工智能形式(如機(jī)器學(xué)習(xí))之間的差異,請(qǐng)閱讀博客文章“人工智能、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò):有何區(qū)別?”
?
神經(jīng)網(wǎng)絡(luò)的歷史
神經(jīng)網(wǎng)絡(luò)的歷史比大多數(shù)人想象的都要長(zhǎng)。 “會(huì)思考的機(jī)器”這一想法最早可以追溯到古希臘時(shí)期,但我們將著重關(guān)注一些重要事件,這些事件促使人們圍繞神經(jīng)網(wǎng)絡(luò)的思考不斷演進(jìn),這些年來(lái),神經(jīng)網(wǎng)絡(luò)的熱度也是時(shí)消時(shí)漲:
1943 年:Warren S. McCulloch 和 Walter Pitts 發(fā)表了“A logical calculus of the ideas immanent in nervous activity?(PDF, 1 MB)(鏈接位于 ibm.com 外部)”,本研究旨在了解人腦如何通過(guò)互相連接的腦細(xì)胞或神經(jīng)元形成復(fù)雜模式。 本文中的主要想法之一是將具有二進(jìn)制閾值的神經(jīng)元與布爾邏輯(即,0/1 或 true/false 語(yǔ)句)進(jìn)行對(duì)比。? ?
1958 年:Frank Rosenblatt 開發(fā)出感知器,這一創(chuàng)新記錄在他的以下研究論文中:“The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain”(鏈接位于 ibm.com 外部)。 他通過(guò)在方程中引入權(quán)重,進(jìn)一步鞏固了 McCulloch 和 Pitt 的研究成果。 Rosenblatt 能夠利用 IBM 704,讓計(jì)算機(jī)學(xué)會(huì)如何區(qū)分左側(cè)標(biāo)記的卡片和右側(cè)標(biāo)記的卡片。
1974 年:雖然許多研究人員都對(duì)反向傳播的概念做出了貢獻(xiàn),但 Paul Werbos 作為美國(guó)第一人,首次在其博士論文?(PDF, 8.1 MB)(鏈接位于 ibm.com 外部)中提到了反向傳播在神經(jīng)網(wǎng)絡(luò)中的應(yīng)用。
1989 年:Yann LeCun 發(fā)表了一篇論文?(PDF, 5.7 MB)(鏈接位于 ibm.com 外部),說(shuō)明了反向傳播中使用的約束及其與神經(jīng)網(wǎng)絡(luò)架構(gòu)的集成如何用于訓(xùn)練算法。 本研究成功利用神經(jīng)網(wǎng)絡(luò)識(shí)別出美國(guó)郵政總局提供的手寫郵政編碼。