吳琳
一、多層感知機簡介
人工智能如今已經(jīng)成為大街小巷的熱議話題,已經(jīng)深刻的改變了許許多多的行業(yè),人工智能與機器學習在醫(yī)療、神經(jīng)科學、農業(yè)、信息安全、監(jiān)控等領域的應用數(shù)不勝數(shù),已經(jīng)成為我們生活中不可或缺的一部分,而這一切的開端,都要從感知機[1]剛被發(fā)明出來說起。1960年,Pedro首次使用Delta學習規(guī)則用于感知器的訓練步驟,這種方法后來被稱為最小二乘方法,這兩者的結合創(chuàng)造了一個良好的線性分類器,這個發(fā)現(xiàn)引起了第一波的AI浪潮,因為人們認為簡單的感知機可以實現(xiàn)分類功能,那通過組合可以實現(xiàn)更復雜的功能,但是后面發(fā)現(xiàn)感知機無法模擬異或問題、無法處理非線性問題,第一波浪潮就這樣沉入了低谷。但是依然有人在研究,2006年,Hinton提出了DBN,解決了更深層次的網(wǎng)絡是可以通過一些策略更好的訓練來實現(xiàn),引起了深度學習的第三波浪潮。神經(jīng)網(wǎng)絡深度學習的發(fā)展加快了,越來越多的人開始研究這個領域,并且成果頗豐。
二、MLP算法描述
生物神經(jīng)元主要由細胞體(神經(jīng)元主體)、樹突(神經(jīng)元輸入信息)、軸突(神經(jīng)元輸出信息)和突觸(神經(jīng)元之間輸入輸出信息的連接)組成。
2.1神經(jīng)元模型。人工神經(jīng)網(wǎng)絡的基本成分是人工神經(jīng)元,將許多個這樣的神經(jīng)元按一定層次連接起來,就得到神經(jīng)網(wǎng)絡。1943年,心理學家W.S.McCulloch和數(shù)理邏輯學家W.Pitts基于神經(jīng)元的生理特征建立的單個神經(jīng)元的數(shù)學模型(MP模型)是大多數(shù)神經(jīng)網(wǎng)絡的基礎。
2.2感知機模型。感知機是一種早期的神經(jīng)網(wǎng)絡模型,也是作為神經(jīng)網(wǎng)絡的起源的算法,是一種前饋神經(jīng)網(wǎng)絡。感知器是通過模擬人的視覺,接受各種環(huán)境的信息,并能進行信息傳遞的神經(jīng)網(wǎng)絡。
2.2.1單層感知機。感知機由兩層神經(jīng)元組成,輸入層接受外界輸入信號后傳遞給輸出層,感知機接受多個輸入信號,輸出一個信號,輸入信號被送往神經(jīng)元時,會被分別乘以固定的權重,神經(jīng)元會計算傳出過來的信息的總和,只有這個總和超過了某個界限值時,才會輸出1,這就被稱之為“神經(jīng)元激活”,這個界限值被稱為閾值。
2.2.2多層感知機。多層感知器是對單層感知器的推廣,它能夠成功解決單層感知器所不能解決的非線性可分問題(例如,異或(XOR)問題)。多層感知機在輸入層與輸出層之間多了隱藏層,每層神經(jīng)元與下一層神經(jīng)元全互連,隱藏層也有激活功能的神經(jīng)元。
多層感知器與單層感知器相比具有2個突出的特點:(1)多層感知器含有一層或多層隱含神經(jīng)元。隱含神經(jīng)元逐步從輸入模式中獲得了更多有用的信息,可以使網(wǎng)絡可以完成更復雜的任務。(2)多層感知器的多個突觸使得網(wǎng)絡更具連通性。網(wǎng)絡連接的改變通過改變其突觸連接數(shù)量或者其權值實現(xiàn)。
2.3反向傳播運算
反向傳播算法的核心是代價函數(shù)也稱損失函數(shù)對網(wǎng)絡中參數(shù)(各層的權重w和偏置b)的偏導表達式和。這些表達式描述了代價函數(shù)值C隨權重w或偏置b變化而變化的程度。反向傳播算法的思路比較容易容易理解:如果當前代價函數(shù)值距離預期值較遠,那么我們通過調整w和b的值使新的代價函數(shù)值更接近預期值(和預期值相差越大,則w和b調整的幅度就越大)。一直重復該過程,直到最終的代價函數(shù)值在誤差范圍內,則算法停止。BP算法可以告訴我們神經(jīng)網(wǎng)絡在每次迭代中,網(wǎng)絡的參數(shù)是如何變化的。
2.3.3算法總結
輸入:訓練集;
學習率
過程:
1:隨機初始化網(wǎng)絡所有連接權值和閾值
2:repeat:
3:for all do
4:根據(jù)當前參數(shù)(權值和閾值)和公式(2.10)計算出當前樣本輸出
5:根據(jù)公式(2.12~2.17)計算出梯度項
6:根據(jù)步驟5求的梯度,公式(2.18~2.21)計算出更新的權值和閾值
7:end for
8:until 達到停止條件
輸出:連接權值與閾值確定的多層前饋神經(jīng)網(wǎng)絡
三、MLP多層感知機算法實現(xiàn)
下面將通過兩個具體的例子,也是最經(jīng)典的Mnist數(shù)據(jù)集和IRIS數(shù)據(jù)集的分類問題來說明這個算法的實驗過程。
3.1實例
3.1.1準備數(shù)據(jù)集。使用數(shù)據(jù)集有MNIST數(shù)據(jù)集,它包含10類(對應手寫數(shù)字:1,2,3,4,5,6,7,8,9,10)共60000張手寫數(shù)字信息,以及對應的60000個標簽分類,每條記錄784項特征。數(shù)據(jù)集被劃分為用于訓練的50000張手寫數(shù)字信息,和10000張用于測試的手寫數(shù)字信息。
IRIS數(shù)據(jù)集,它包含3類共150條記錄,每類記錄都有4個特征(花萼長度、花萼寬度、花瓣長度、花瓣寬度)。
3.1.2數(shù)據(jù)預處理。首先對數(shù)據(jù)進行歸一化處理,例如MNST是圖片像素0-255映射和為0-1范圍。最后輸出通過判斷概率大小,進而判斷當前圖片屬于哪一類,為此針對每一個標簽都重新構造以對應輸出的10種情況。
3.1.3構建三層神經(jīng)網(wǎng)絡。構建神經(jīng)網(wǎng)絡對數(shù)據(jù)集進行訓練,對測試集進行預測,查看分類后的精度和誤差以反饋此訓練模型的泛化能力。同時通過可視化的圖像反映出學習率不同、迭代次數(shù)不同、隱藏節(jié)點不同情況下的效果對比。
3.1.4訓練網(wǎng)絡。選擇學習率,導入訓練數(shù)據(jù)集,定義好訓練的次數(shù)和最小誤差,直到訓練達到理想狀況,就結束。
3.1.5測試網(wǎng)絡。根據(jù)測試數(shù)據(jù)集輸出的結果來判斷此網(wǎng)絡的好壞,也就是最后的分類準確率來評價它的泛化能力。
3.2算法的實現(xiàn)結果
在對訓練好的模型進行數(shù)據(jù)測試時,通過調節(jié)迭代次數(shù),學習率,隱含層節(jié)點個數(shù),權值初始化值等參數(shù),獲得不同的神經(jīng)網(wǎng)絡訓練結果。通過圖像對比結果。
3.2.1迭代次數(shù)的影響。一般來說,在一定范圍類,迭代次數(shù)越多,模型訓練越充分,分類精度就越高;由以下對學習率的實驗結果來看,迭代次數(shù)越高,精度也會趨于一個穩(wěn)定的狀態(tài)。
3.2.2學習率的影響。學習率是控制每次更新參數(shù)的幅度的,也稱為學習步長,是很重要的模型超參。過高和過低的學習率都可能對模型結果帶來不好的影響,合適的學習率可以加快模型的訓練速度。
3.2.3隱含層節(jié)點個數(shù)的影響。輸入由輸入向量維數(shù)決定,輸出由類別決定,而中間的隱藏層數(shù)及其節(jié)點個數(shù)并沒有統(tǒng)一的結論。隱藏層單元的個數(shù)決定了網(wǎng)絡的表達能力。一般隱藏層單元個數(shù)越多,網(wǎng)絡學習到的東西就越多。
綜上所述,一個實驗的數(shù)據(jù)集預測精確度是受迭代次數(shù)(迭代次數(shù)不夠,不能收斂,迭代次數(shù)太多,浪費時間)、學習率、隱含層節(jié)點個數(shù)多方面的因素影響的,并且目前沒有一個統(tǒng)一的定論如何調參更優(yōu),都需要經(jīng)過多次重復實驗。
參考文獻:
[1]張?zhí)煨?感知機理論研究綜述[J].電子技術與軟件工程,2017(22):257-258.
[2]周志華.機器學習[M].北京:清華大學出版社,2016.1.
[3]機器學習及其算法和發(fā)展研究[J].張潤,王永濱.中國傳媒大學學報(自然科學版).2016(02)
[4]Zhiyuan Ma, Wei Zhang, Zhongbing Luo等. Ultrasonic characterization of thermal barrier coatings porosity through BP neural network optimizing Gaussian process regression algorithm[J]. Ultrasonics,2020,100.
[5]孫即祥.現(xiàn)代模式識別(第二版).高等教育出版社.2008.10.
(西華大學 四川省成都市 610039)