【自己动手写神经网络】小白入门连载(二)--机器人时代必须得有人工神经(不是神经病)...
2019獨角獸企業重金招聘Python工程師標準>>>
【自己動手寫神經網絡】小白入門連載(一)
? ? 在上一章中,我們已經介紹了神經網絡的基本概念、思想,并提及了有關人工神經元模型的部分內容。在本章中,將對人工神經元模型做更多的介紹。
圖2.1?多輸入生物神經元示意圖
在上一章中提到了一個簡單的神經元模型,并且該模型只有一個輸入p。這意味著只能有一個額外的神經元與之相連接,這顯然是不夠的。因此,一個實用的神經元必須是可以接受多個輸入的,如圖2.1所示,神經元擁有3個輸入p1、p2和p3。其中,w和b是根據網絡情況不斷進行調整的,而傳入函數s和傳輸函數f是事先選定,那究竟有哪些函數可以選擇呢?傳入函數比較簡單,最常用的只有按照權重求和,在本例中,s處的輸出(凈輸入n)就是:
p1*w1+p2*w2+p3*w3+b*1
????將該輸出會作為參數傳入輸出函數f,并作為該神經元的最終輸出。一般來說,常用的傳輸函數如表2.1所示。
表2.1?常用傳輸函數列表
函數名稱 | 映射關系 | 圖像 | 縮寫 | 說明 |
階梯函數 | a=0, n<=0 a=1, n>0 | Step | n大于等于0時,輸出1,否則輸出0 | |
符號函數 | a=-1, n<=0 a=1, n>0 | Sgn | n大于等于0時,輸出1,否則輸出-1 | |
線性函數 | a=n | Linear | n本身就是神經元的輸出 | |
飽和線性函數 | a=0, n<0 a=n, 0<=n<=1 a=1, n>1? | Ramp | n小于0時,輸出0,n在0到1區間時,輸出n,n大于1時,輸出1 | |
對數S形函數 | a=1/(1+exp(-n)) | Sigmoid | 有界函數,無論n如何,輸出永遠在(0,1)的開區間。 | |
雙曲正切S形函數 | Tanh | 有界函數,無論n如何,輸出永遠在(-1,1)的開區間。 |
在圖2.1中,假設p1=1,p2=0,p3=2,w1=1,w2=-1,w3=1,b=-1,則神經元的凈輸入為:p1*w1+p2*w2+p3*w3+b*1
=1*1+0*-1+2*1-1
=2
此時,傳輸函數與神經元輸出的關系如表2.1所示。
表2.1?傳輸函數輸出值
Step | Sgn | Linear | Ramp | Sigmoid | Tanh |
1 | 1 | 2 | 1 | 0.881 | 0.964 |
傳輸函數在神經元模型中非常重要,通常會選擇特定的傳輸函數來解決特定的問題。這里再強調3類函數。首先值得注意的是Step函數,它非常簡單,當輸入小于0時,函數輸出0,大于0時,輸出1。該函數可以把輸入簡單得分為2類。在后續講到的感知機中,就使用了該函數。
其次,另外一個值得注意的函數是Linear線性函數,它總是簡單的返回輸入值。在一個Adaline網絡中,會使用該函數。Adaline類似于感知機,但是因為使用線性函數和其對應的改良學習算法,Adaline相比感知機,可以更好的處理網絡噪聲。
最后一個值得注意的函數是Sigmoid函數,它接收任意實數輸入,并將結果對應到0和1之間。該函數是可導的。因此,在BP神經網絡中使用該函數(BP神經網絡學習過程中,需要對傳輸函數求導)。
單個神經元就可以構成一個最簡單的神經網絡——感知機。感知機可以處理簡單的分類問題。比如,現在有2類水果,蘋果和香蕉,人們通過識別蘋果和香蕉的形狀和顏色差別,來區分蘋果和香蕉兩種水果。剛出生的嬰兒無法區分蘋果和香蕉,因為在他們的大腦里,沒有對應的分類信息。但通過不斷地訓練和外部刺激,告訴他們紅色的圓形的是蘋果,黃色的彎形的是香蕉,不需要多久,嬰兒就可以分區這兩類水果。用類似的方法也可以讓感知機正確得對蘋果和香蕉分類。具體的分類過程和原理,將在下一章節介紹。
【自己動手寫神經網絡】小白入門連載(一)
轉載請注明出處,感謝大家的支持!
本文來自優優碼:http://www.uucode.net/201406/artificial-neuron-model
轉載于:https://my.oschina.net/u/1011494/blog/284827
總結
以上是生活随笔為你收集整理的【自己动手写神经网络】小白入门连载(二)--机器人时代必须得有人工神经(不是神经病)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jdk 日志框架-
- 下一篇: linux 字符驱动阻塞型 等待队列