|
我們從下面四點(diǎn)認(rèn)識(shí)人工神經(jīng)網(wǎng)絡(luò)(ANN: Artificial Neutral Network):神經(jīng)元結(jié)構(gòu)、神經(jīng)元的激活函數(shù)、神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、神經(jīng)網(wǎng)絡(luò)選擇權(quán)值和學(xué)習(xí)算法。
1. 神經(jīng)元:
我們先來看一組對比圖就能了解是怎樣從生物神經(jīng)元建模為人工神經(jīng)元。
人工神經(jīng)元建模過程
下面分別講述:
生物神經(jīng)元的組成包括細(xì)胞體、樹突、軸突、突觸。樹突可以看作輸入端,接收從其他細(xì)胞傳遞過來的電信號(hào);軸突可以看作輸出端,傳遞電荷給其他細(xì)胞;突觸可以看作I/O接口,連接神經(jīng)元,單個(gè)神經(jīng)元可以和上千個(gè)神經(jīng)元連接。細(xì)胞體內(nèi)有膜電位,從外界傳遞過來的電流使膜電位發(fā)生變化,并且不斷累加,當(dāng)膜電位升高到超過一個(gè)閾值時(shí),神經(jīng)元被激活,產(chǎn)生一個(gè)脈沖,傳遞到下一個(gè)神經(jīng)元。
為了更形象理解神經(jīng)元傳遞信號(hào)過程,把一個(gè)神經(jīng)元比作一個(gè)水桶。水桶下側(cè)連著多根水管(樹突),水管既可以把桶里的水排出去(抑制性),又可以將其他水桶的水輸進(jìn)來(興奮性),水管的粗細(xì)不同,對桶中水的影響程度不同(權(quán)重),水管對水桶水位(膜電位)的改變就是水桶內(nèi)水位的改變,當(dāng)桶中水達(dá)到一定高度時(shí),就能通過另一條管道(軸突)排出去。
神經(jīng)元是多輸入單輸出的信息處理單元,具有空間整合性和閾值性,輸入分為興奮性輸入和抑制性輸入。
按照這個(gè)原理,科學(xué)家提出了M-P模型(取自兩個(gè)提出者的姓名首字母),M-P模型是對生物神經(jīng)元的建模,作為人工神經(jīng)網(wǎng)絡(luò)中的一個(gè)神經(jīng)元。
由MP模型的示意圖,我們可以看到與生物神經(jīng)元的相似之處,x_i表示多個(gè)輸入,W_ij表示每個(gè)輸入的權(quán)值,其正負(fù)模擬了生物神經(jīng)元中突出的興奮和抑制;sigma表示將全部輸入信號(hào)進(jìn)行累加整合,f為激活函數(shù),O為輸出。下圖可以看到生物神經(jīng)元和MP模型的類比:
往后誕生的各種神經(jīng)元模型都是由MP模型演變過來。
2. 激活函數(shù)
激活函數(shù)可以看作濾波器,接收外界各種各樣的信號(hào),通過調(diào)整函數(shù),輸出期望值。ANN通常采用三類激活函數(shù):閾值函數(shù)、分段函數(shù)、雙極性連續(xù)函數(shù)(sigmoid,tanh):
3. 學(xué)習(xí)算法
神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)也稱為訓(xùn)練,通過神經(jīng)網(wǎng)絡(luò)所在環(huán)境的刺激作用調(diào)整神經(jīng)網(wǎng)絡(luò)的自由參數(shù)(如連接權(quán)值),使神經(jīng)網(wǎng)絡(luò)以一種新的方式對外部環(huán)境做出反應(yīng)的一個(gè)過程。每個(gè)神經(jīng)網(wǎng)絡(luò)都有一個(gè)激活函數(shù)y=f(x),訓(xùn)練過程就是通過給定的海量x數(shù)據(jù)和y數(shù)據(jù),擬合出激活函數(shù)f。學(xué)習(xí)過程分為有導(dǎo)師學(xué)習(xí)和無導(dǎo)師學(xué)習(xí),有導(dǎo)師學(xué)習(xí)是給定期望輸出,通過對權(quán)值的調(diào)整使實(shí)際輸出逼近期望輸出;無導(dǎo)師學(xué)習(xí)給定表示方法質(zhì)量的測量尺度,根據(jù)該尺度來優(yōu)化參數(shù)。常見的有Hebb學(xué)習(xí)、糾錯(cuò)學(xué)習(xí)、基于記憶學(xué)習(xí)、隨機(jī)學(xué)習(xí)、競爭學(xué)習(xí)。
Hebb學(xué)習(xí):
(貼公式不方便,只簡述原理)這是最早提出的學(xué)習(xí)方法,原理是如果突觸(連接)兩邊的兩個(gè)神經(jīng)元被同時(shí)(同步)激活,則該突觸的能量(權(quán)重)就選擇性增加;如果被異步激活,則該突出能量減弱或消除。
糾錯(cuò)學(xué)習(xí):
計(jì)算實(shí)際輸出和期望輸出的誤差,再返回誤差,修改權(quán)值。原理簡單,用到最多,最小梯度下降法(LMS最小均方誤差算法)就是這種方法。
基于記憶的學(xué)習(xí):
主要用于模式分類,在基于記憶的學(xué)習(xí)中,過去的學(xué)習(xí)結(jié)果被存儲(chǔ)在一個(gè)大的存儲(chǔ)器中,當(dāng)輸入一個(gè)新的測試向量時(shí),學(xué)習(xí)過程就是把新向量歸到已存儲(chǔ)的某個(gè)類中。算法包括兩部分:一是用于定義測試向量局部領(lǐng)域的標(biāo)準(zhǔn);二是在局部領(lǐng)域訓(xùn)練樣本的學(xué)習(xí)規(guī)則。常用最近鄰規(guī)則。
隨機(jī)學(xué)習(xí)算法:
也叫Bolzmann學(xué)習(xí)規(guī)則,根據(jù)最大似然規(guī)則,通過調(diào)整權(quán)值,最小化似然函數(shù)或其對數(shù)。
模擬退火算法是從物理和化學(xué)退火過程類推過來,是“對物體加溫后再冷卻的處理過程”的數(shù)學(xué)建模。整個(gè)過程分為兩步:首先在高溫下進(jìn)行搜索,此時(shí)各狀態(tài)出現(xiàn)概率相差不大,可以很快進(jìn)入“熱平衡狀態(tài)”,這時(shí)進(jìn)行的是“粗搜索”,也就是大致找到系統(tǒng)的低能區(qū)區(qū)域;隨著溫度降低,各狀態(tài)出現(xiàn)的概率差距逐漸被擴(kuò)大,搜索精度不斷提高,這就可以越來越準(zhǔn)確地找到網(wǎng)絡(luò)能量函數(shù)的全局最小點(diǎn)。
競爭學(xué)習(xí):
神經(jīng)網(wǎng)絡(luò)的輸出神經(jīng)元之間相互競爭,在任一時(shí)間只能有一個(gè)輸出神經(jīng)元是活性的。
4. 神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
常見的拓?fù)浣Y(jié)構(gòu)有單層前向網(wǎng)絡(luò)、多層前向網(wǎng)絡(luò)、反饋網(wǎng)絡(luò),隨機(jī)神經(jīng)網(wǎng)絡(luò)、競爭神經(jīng)網(wǎng)絡(luò)。
5. 神經(jīng)網(wǎng)絡(luò)的發(fā)展單層感知器:
1958年提出,與MP模型不同處在于權(quán)值可變,這樣就可以進(jìn)行學(xué)習(xí)。它包含一個(gè)線性累加器和二值閾值元件(激活函數(shù)是閾值函數(shù)),還包括外部偏差b。單層感知器被設(shè)計(jì)用來對輸入進(jìn)行二分類,當(dāng)感知器輸出+1時(shí),輸入為一類;當(dāng)輸出為-1時(shí),輸入為另一類。之后還有應(yīng)用LMS算法的單層感知器。
單層感知器的缺陷是只能對線性問題分類。如下圖,左邊能用一根線分開,但右邊卻不能。
該缺陷來自激活函數(shù)。改進(jìn)思路就是修改激活函數(shù)(把分類線變成曲線,如橢圓線)、增加神經(jīng)網(wǎng)絡(luò)層數(shù)(讓兩條直線或多條直線來分類)。主流做法是增加層數(shù),于是有了多層感知器。
多層感知器:
在輸入層和輸出層之間增加隱含層(因?yàn)椴荒茉谟?xùn)練樣本中觀察到它們的值,所以叫隱含層)。
多層感知器分類能力如下:
隨著隱層層數(shù)的增多,凸域?qū)⒖梢孕纬扇我獾男螤睿虼丝梢越鉀Q任何復(fù)雜的分類問題。Kolmogorov理論指出:雙隱層感知器就足以解決任何復(fù)雜的分類問題。但層數(shù)的增多帶來隱含層的權(quán)值訓(xùn)練問題,對于各隱層的節(jié)點(diǎn)來說,它們并不存在期望輸出,所以也無法通過感知器的學(xué)習(xí)規(guī)則來訓(xùn)練多層感知器。1966年,Minisky和Papert在他們的《感知器》一書中提出了上述的感知器的研究瓶頸,指出理論上還不能證明將感知器模型擴(kuò)展到多層網(wǎng)絡(luò)是有意義的。人工神經(jīng)網(wǎng)絡(luò)進(jìn)入低谷期。直到出現(xiàn)誤差反向傳播算法(BP:ErrorBack Propagation),解決了多層感知器的學(xué)習(xí)問題。
BP神經(jīng)網(wǎng)絡(luò):BP神經(jīng)網(wǎng)絡(luò)存在兩條信號(hào)線,工作信號(hào)正向傳播,誤差信號(hào)反向傳播。反向傳播過程中,逐層修改連接權(quán)值。BP算法可以看作LMS算法的累加版,因?yàn)閷τ谳敵鰧拥膯蝹€(gè)神經(jīng)元,其學(xué)習(xí)算法為LMS算法。
(不能貼公式不好解釋啊 -_-!)sigma是誤差信號(hào),yita是學(xué)習(xí)率,net是輸入之和,V是輸入層到隱含層的權(quán)重矩陣,W是隱含層到輸出層的權(quán)重矩陣。
之后還有幾種徑向基網(wǎng)絡(luò)(RBF:Radial Basis Function):
RBF神經(jīng)網(wǎng)絡(luò)屬于多層前向神經(jīng)網(wǎng)絡(luò),它是一種三層前向網(wǎng)絡(luò)。輸入層由信號(hào)源節(jié)點(diǎn)組成;第二層為隱含層,隱單元個(gè)數(shù)由所描述的問題而定,隱單元的變換函數(shù)是對中心點(diǎn)徑向?qū)ΨQ且衰減的非負(fù)非線性函數(shù);第三層為輸出層。其基本思想是:用徑向基函數(shù)作為隱單元的“基”,構(gòu)成隱含層空間,隱含層對輸入矢量進(jìn)行變換,將低維的模式輸入數(shù)據(jù)變換到高維空間內(nèi),使得在低維空間內(nèi)的線性不可分問題在高維空間內(nèi)線性可分。RBF網(wǎng)絡(luò)分為正規(guī)化網(wǎng)絡(luò)和廣義網(wǎng)絡(luò)。區(qū)別在于隱含層的個(gè)數(shù)?;瘮?shù)一般選用格林函數(shù)。
左邊為正規(guī)化網(wǎng)絡(luò),右邊為廣義網(wǎng)絡(luò)RBF要學(xué)習(xí)的算法有三個(gè):基函數(shù)的中心、基函數(shù)的方差、權(quán)值。學(xué)習(xí)中心要用到聚類算法,常用K-均值聚類算法。確定中心后,可以用數(shù)學(xué)公式求出方差。學(xué)習(xí)權(quán)值可以用LMS算法。
RBF網(wǎng)絡(luò)與BP網(wǎng)絡(luò)比較:RBF能夠逼近任意非線性函數(shù)。BP網(wǎng)絡(luò)是對非線性映射的全局逼近,而RBF網(wǎng)絡(luò)使用局部指數(shù)衰減的非線性函數(shù)進(jìn)行局部逼近。要達(dá)到相同的精度,RBF網(wǎng)絡(luò)所需要的參數(shù)比BP網(wǎng)絡(luò)要少得多。支持向量機(jī)(SVM:Support Vector Machine):
之前的BP神經(jīng)網(wǎng)絡(luò)存在的幾個(gè)問題:
1、BP算法是用梯度法導(dǎo)出的,因此優(yōu)化過程可能陷入局部極值。
2、BP算法的目標(biāo)函數(shù)是經(jīng)驗(yàn)風(fēng)險(xiǎn),它只能保證分類誤差對于有限個(gè)樣本是極小,無法保證對所有可能的點(diǎn)達(dá)到極小。
3、神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)(如隱節(jié)點(diǎn)數(shù)目的選擇)依賴設(shè)計(jì)者的先驗(yàn)知識(shí),缺乏一種有理論依據(jù)的嚴(yán)格設(shè)計(jì)程序。
于是有了支持向量機(jī):
支持向量機(jī)拓?fù)浣Y(jié)構(gòu)其他:
還有Hopfield神經(jīng)網(wǎng)絡(luò)、隨機(jī)神經(jīng)網(wǎng)絡(luò)Boltzmann機(jī)、Hamming競爭神經(jīng)網(wǎng)絡(luò)等。
隨著計(jì)算機(jī)硬件計(jì)算能力越來越強(qiáng),用來訓(xùn)練的數(shù)據(jù)越來越多,神經(jīng)網(wǎng)絡(luò)變得越來越復(fù)雜。在人工智能領(lǐng)域常聽到DNN(深度神經(jīng)網(wǎng)絡(luò))、CNN(卷積神經(jīng)網(wǎng)絡(luò))、RNN(遞歸神經(jīng)網(wǎng)絡(luò))。其中,DNN是總稱,指層數(shù)非常多的網(wǎng)絡(luò),通常有二十幾層,具體可以是CNN或RNN等網(wǎng)絡(luò)結(jié)構(gòu)。
聯(lián)系客服