神經網路入門 第一部分
【原文:http://blog.sina.com.cn/s/blog_6a67b5c50100tspb.html】
英文原文連結:http://www.codeproject.com/KB/recipes/NeuralNetwork_1.aspx
作者:Sacha Barber
翻譯:本站(http://hi.baidu.com/ebfok)原創
說明:翻譯力求保持原貌,刪去了一些無關緊要的內容;水平有限,錯誤難免;轉載請註明出處。
-------------------------------------------------------------------------------------
說明
本文是我發表的三篇文章之一。內容如下:
- 第一部分:介紹感知器(單層神經網路)
- 第二部分:介紹多層神經網路,使用反向傳播訓練方法來解決一個非線性分類問題,即XOR邏輯閘問題。這類問題是不能用感知器解決的
- 第三部分:介紹使用遺傳演算法來訓練一個多層神經網路,解決某些邏輯問題
從一些生物知識說起
大腦中的神經細胞被稱為神經元。人類大腦中大約含有10^10至10^13個神經元。每個神經元都能與其他幾千個神經元聯絡起來。神經元是大腦用來處理資訊的基本單元。
神經元是什麼樣子
神經元由細胞體以及從細胞體中延伸出來的各種擴充套件物組成。其中大部分呈枝狀被稱為樹突。有一根特別長的叫做軸突。圖中的虛線處就是軸突小丘,也就是訊號傳輸開始的地方。如下圖所示
圖一 神經元
細胞的外部是細胞膜。膜的內部和外部之間存在電勢差(膜電位)。
如果輸入足夠大,就會產生一個動作電位。接著,這個動作電位(神經衝動)沿著軸突離開細胞體。
圖二 神經衝動
突觸
兩個神經元相互聯接的部位稱為突觸。資訊總是經由軸突(見圖一)離開一個神經元,然後越過突觸到達接收神經元。
神經元啟用
神經元只有在輸入大於某一閾值時才會啟用。It should, however, be noted that firing doesn't get bigger as the stimulus increases, its an all or nothing arrangement.
圖三 神經元啟用
神經元通過脈衝訊號來通訊。傳送的資訊是以來編碼的。
神經元的輸入
突觸分為興奮性的和抑制性的。
到達興奮性突觸的脈衝訊號往往啟用接收神經元。到達抑制性突觸的脈衝訊號則往往抑制接收神經元。
細胞體和突觸計算(通過一個複雜的化學/電過程)接收的的興奮性輸入和抑制性輸入(時空總和)之間的差值。
當這一差值足夠大(相對於該神經元的閾值)時,神經元就啟用了。
粗略地說,興奮性脈衝越快到達突觸,神經元就啟用得越快(抑制性脈衝相類似)。
什麼是人工神經網路
假設每個神經元都有一個啟用率。也假設一個神經元與其他m個神經元聯接起來,所以接受m個輸入"x1 …. … xm",如下圖所示:
圖四 人工神經元的結構
該結構實際上被稱為感知器。感知器(由Rosenblatt [1962]發明)是最早的人工神經網路模型。感知器對單個神經元建模,如果輸入的加權和大於某個可調整的閾值就輸出1(否則輸出0,此即上文提到的生物脈衝)。
圖四中,輸入訊號(x1,x2,x3..xm)和聯接權值(w1,w2,w3..wm)通常是實數值,可正可負。若xi趨向於使感知器啟用,則權值wi為正值,反之為負值。
感知器本身由權值,加法器,啟用函式以及可調閾值(以下稱 偏置)組成。
通常為了方便起見,將偏置也作為一個輸入訊號,如下圖所示
圖五 將偏置作為附加輸入的人工神經元結構
偏置可以被看作是感知器的與其輸入無關的啟用傾向。圖五所示的感知器將被啟用,如果加權和>0
啟用函式
通常採用以下啟用函式。
Sigmoid函式(S函式)
輸入越強,神經元啟用得越快(啟用率越高)。Sigmoid函式在多層網路中同樣十分有用,因為S曲線是可微分的(這在多層網路的反向傳播訓練中是必要的)。
階躍函式
是一個開關函式, 若 0 > x 則 0, 若 x >= 0 則 1
學習
在開始討論感知器的學習前先來考慮一個實際生活中的例子:
你是怎麼教小孩識別椅子的?你給他看實物,告訴他,“這是椅子,那不是椅子”,直到他學會了椅子的概念。在這一階段,當被問及“那東西是椅子嗎?”,小孩能給出正確的答案。
只要給讓孩子接觸足夠多的正的反的例子訓練,那麼當他看到一個以前從未見過的新東西時就能正確的識別了。
這就是感知器背後的思想。
感知器學習
感知器的學習就是修改權值和偏置的過程。感知器計算其輸入的二值函式。
“感知器是一種能學習概念的程式,即,通過重複地‘學習’提交的例子,它就能對我們提呈的例子做出響應,1或者0。
感知器是是單層神經網路,其權值和偏置能被訓練,當輸入一個向量,就能得到一個相應的正確的目標向量。用來訓練的技術稱為感知器學習規則。感知器工作在隨機分佈的聯接之上,具有泛化能力,特別適用於簡單的模式分類問題”——英國Warwick大學,科學計算中心,Jianfeng feng教授。
學習規則
訓練感知器,對每一個輸入向量做出響應,輸出0或1.當解存在時,該學習規則被證明是能在有限時間內收斂到某個解的。
b = b + [ T - A ]
W(i) = W(i) + [ T - A ] * P(i)
式中, W 是權值向量, P輸入向量, T是期望輸出, A 是實際輸出, b是偏置.
訓練
訓練集中的向量是一個接一個的提交到感知器的.
若感知器的輸出是正確的則不做改變.
否則,權值和偏置按上面的學習規則進行更新。當每個epoch(所有輸入向量的一次完整遍歷稱為一個epoch)都沒有誤差,訓練就結束。
此時,對訓練集中的每個向量,感知器都能得到正確的輸出向量。如果輸入一個不在訓練集中的向量P,感知器將輸出這樣一個向量,該向量與訓練集中類似P的那個向量的輸出向量相似,即表現出一定的泛化能力。
神經網路能做什麼
單層神經網路
單層神經網路(感知器網路)的輸出單元是相互獨立的-每個權值僅影響一個輸出。感知器網路能用來解決線性分類問題。函式如下圖所示(假設網路有2個輸入一個輸出)
這等價於 AND / OR 邏輯閘, 如下圖所示。
圖六 分類問題
這就是一個關於感知器能做什麼的簡單例子,但是若把幾個感知器連起來會怎麼樣呢?那樣就能得到一些十分複雜的功能。最基本的,能建造一個電路的等價物。
然而感知器確實有許多限制。如果向量不是線性可分的,學習將不會收斂,即不能合適地分類向量。感知器不能解決線性不可分的最著名的例子是XOR問題。
多層神經網路
使用多層神經網路就能解決類似上面的XOR問題的線性不可分問題。後面將會提到使用反向傳播演算法解決XOR問題。
轉載:http://hi.baidu.com/ebfok/blog/item/730cbbdee2f1ae5394ee3787.html相關文章
- 神經網路入門神經網路
- 神經網路入門 第二部分神經網路
- 圖神經網路入門神經網路
- 迴圈神經網路入門神經網路
- 【深度學習】神經網路入門深度學習神經網路
- (五)神經網路入門之構建多層網路神經網路
- 神經網路的菜鳥入門祕籍神經網路
- PyTorch入門-殘差卷積神經網路PyTorch卷積神經網路
- 從頭開始實現神經網路:入門神經網路
- 深度學習、神經網路最好的入門級教程深度學習神經網路
- CNN-卷積神經網路簡單入門(2)CNN卷積神經網路
- (三)神經網路入門之隱藏層設計神經網路
- 吳恩達神經網路-第一週吳恩達神經網路
- 神經網路基礎及Keras入門神經網路Keras
- 通俗易懂:圖卷積神經網路入門詳解卷積神經網路
- 手把手 | 神經網路的菜鳥入門祕籍神經網路
- 神經網路入門(二)卷積網路在影像識別的應用神經網路卷積
- 神經網路:numpy實現神經網路框架神經網路框架
- 初識卷積神經網路第一講!卷積神經網路
- 神經網路神經網路
- 神經網路程式設計入門【轉】神經網路程式設計
- 深度學習入門筆記(十八):卷積神經網路(一)深度學習筆記卷積神經網路
- 一小時神經網路從入門到精通(放棄)神經網路
- 如何入門Pytorch之四:搭建神經網路訓練MNISTPyTorch神經網路
- 機器學習從入門到放棄:卷積神經網路CNN(二)機器學習卷積神經網路CNN
- 神經網路入門篇之深層神經網路:詳解前向傳播和反向傳播(Forward and backward propagation)神經網路反向傳播Forward
- LSTM神經網路神經網路
- 8、神經網路神經網路
- BP神經網路神經網路
- 模糊神經網路神經網路
- (二)神經網路入門之Logistic迴歸(分類問題)神經網路
- 1.4 神經網路入門-資料處理與模型圖構建神經網路模型
- 聊聊從腦神經到神經網路神經網路
- 圖神經網路GNN 庫,液體神經網路LNN/LFM神經網路GNN
- 貝葉斯神經網路(系列)第一篇神經網路
- 入門 | Tensorflow實戰講解神經網路搭建詳細過程神經網路
- 神經網路入門篇:詳解隨機初始化(Random+Initialization)神經網路隨機random
- 神經網路篇——從程式碼出發理解BP神經網路神經網路