天天看點

神經網絡專題 (一) 感覺器

人工神經網絡,簡稱神經網絡,它是一種算法,來源是模拟人的生物神經元工作機制。其實不需要去詳細了解生物神經網絡的細節原理,大概知道些關鍵名詞即可,對以後神經網絡的了解沒什麼影響。神經網絡算法的主要功能是預測、分類、識别。神經網絡有:感覺器、線性神經網絡、BP神經網絡、RBF神經網絡、Hopfield神經網絡、CNN卷積神經網絡等。感覺器是最簡單的神經網絡,線性神經網絡線上性處理上很有用,BP神經網絡是應用最廣泛的網絡,Hopfield神經網絡是回報型神經網絡,RNN卷積神經網絡在人工智能研究領域新興起來的網絡。

感覺器一般指單層感覺器,它是指隻含有輸入層和輸出層的神經網絡,模型如下:

神經網絡專題 (一) 感覺器

輸入層為p1、p2、... 、pn個神經元輸入和對應的權值w1、w2、... 、wn。輸入層用向量表示為:

神經網絡專題 (一) 感覺器

,

神經網絡專題 (一) 感覺器

。輸出層包含一個求和操作和函數f映射,其中y為感覺器的輸出(多輸入,單輸出),a為輸入權重求和的結果,b為偏置,f為一種對a的傳遞函數,對于感覺器來說,f一般為符号函數,即輸出結果隻有-1和1(每次輸入,對應一個單值的輸出;多次輸入,得到輸出向量),輸出層可以表示為:

神經網絡專題 (一) 感覺器
神經網絡專題 (一) 感覺器

了解了神經網絡的基本結構和計算流程之後,再對其工作原理進行分析。

首先是感覺器的學習規則(梯度下降法):對于輸入為P,輸出為y,目标輸出為T的感覺器,誤差為e=T-y。則感覺器的權值和偏置的修正公式為:

神經網絡專題 (一) 感覺器
神經網絡專題 (一) 感覺器

公式說明:P為多次輸入的向量,y為多次輸入對應的輸出向量,T為期望結果(目标向量),e為網絡誤差。i表示輸出向量的維數(i=1,2,...,D),j為神經元的個數(j=1,2,...,n)。

 更新之後的權值:

神經網絡專題 (一) 感覺器
神經網絡專題 (一) 感覺器

接下來就是利用感覺器的學習規則進行訓練:

      step1:  初始化網絡,計算實際輸出和目标輸出之間的誤差,利用學習規則修正權值和偏置。

      step2:計算在新的權值和偏置下的誤差,繼續修正權值和偏置。

      step3:當達到一定的誤差要求或者滿足最大疊代次數時,訓練結束,得到感覺器模型。

下面介紹matlab神經網絡工具箱中的關于感覺器的相關函數:

     newp:  建立一個感覺器

     sim: 仿真函數

     train:訓練函數

     plotpc: 在感覺器向量中繪制分界線

     plotpv:  繪制感覺器的輸入向量和目标向量

     mae:計算平均絕對誤差

下面簡單舉例說明各種函數的用法:

   例1:利用單層感覺器實作與門電路的邏輯功能

P=[0 0 1 1;0 1 0 1];
T=[0 0 0 1];
figure(1)
plotpv(P,T)
net=newp(minmax(P),1);
y=sim(net,P);
net.trainParam.epochs=50;
net=train(net,P,T);
Y=sim(net,P);
perf=mae(Y-T);
plotpc(net.IW{1,1},net.b{1})
           

輸出Y=[0 0 0 1]

輸入向量P為4個輸入向量:[0 0],[0 1],[1 0],[1 1],目标輸出:[0]、[0]、[0]、[1]

newp函數:net=newp(pr,ps,tf,lf),pr為輸入向量每行的最大最小值組成的多行兩列的矩陣,ps為感覺器的層數,tf為傳遞函數,預設是hardlim還有hardlims,lf為學習函數,預設是learnp還有learnpn。

minmax函數:求矩陣每行的最大最小值,傳回一個多行兩列的矩陣。

sim函數:對模型進行仿真。

train函數:根據網絡、輸入、目标輸出,訓練網絡得到輸出。

感覺器主要是實作簡單的線性可分的分類問題,在實際應用中應當根據面對的問題,轉化為感覺器能夠處理的情況。

另外,多層感覺器在機器學習、人工智能方面有着非常重要的作用,感覺器的研究在人工智能領域具有很多的研究意義。

繼續閱讀