神經網絡
與學習落後的誤差傳播
Colin Fahey

生物神經網絡
1. 軟件
2. 導言
本文檔介紹了如何實施人工神經網絡是能夠被受過訓練的認識模式。
本文檔介紹了模型的神經網絡學習由一種算法,使用“落後的誤差傳播” 。
本文件包含了基本的示威學習“落後的誤差傳播” 。 本文件有一個鏈接到計算機代碼。 計算機代碼,包括示威遊行。 計算機代碼可以用來建立複雜的神經網絡。 然而,計算機代碼,只是為了示範目的。 另類的實施可以減少記憶體使用量,並可能增加的速度。
3. 替代學習落後的誤差傳播
本文檔介紹了模型的神經網絡學習算法由一個名為“落後的誤差傳播” 。 該算法可以需要很長的時間去學習各種經驗教訓。 此外,該算法可以隨機不學習各種經驗教訓,由於隨機初始狀態的神經網絡,方可接受訓練。
學習“締積極投入”是一個重要的替代學習“落後的誤差傳播” 。 學習締積極投入,根本聯營公司的投入,同時積極。 這樣的學習可以快速和可靠的。 但是,對於許多實際目的,有沒有明顯的方法,可使用的神經網絡,學會協會,而有一個明顯的方法,可使用的網絡學習落後的誤差傳播。
一些生物神經網絡是眾所周知的了解,由協會積極投入。 落後的誤差傳播尚未觀察到任何生物的神經網絡。
本文檔介紹了有趣的用途的神經網絡學習落後的誤差傳播。 然而,學習由協會是一個非常重要的替代算法學習。 設計一個神經網絡學會,由協會來解決一個特別的問題,可能會較為困難desgining另一種神經網絡學習落後的誤差傳播,但生物系統學習,協會,及學習能力的生物系統是顯而易見的。
4. 生物神經元
4.1 神經元細胞

生物神經元( “多極化的”類型, ~4 um細胞體)
神經元是類型的細胞有能力,用來接收和發送神經信號。
神經元的基礎上的神經系統,發現在動物,鳥類,魚類,昆蟲等。
大腦與記憶體和邏輯,以及簡單的反射系統,均安排為基礎的神經元。
神經元也可用來傳達信號的長距離,在動物的身體,例如從傳感器到腦部,或由大腦的肌肉。
行為的生物神經元是非常複雜的,但下面的簡化描述捕獲的基本原則:
神經元累積收到的信號從其他神經元,如果總信號的積累超過某一閾值,神經元傳遞自己的信號,其他神經元。
4.2 神經元的部分

部分生物神經元
|
索瑪
|
細胞體的神經元
|
|
樹突
|
纖維與化學受體(投入)延伸,從細胞體的神經元。一個神經細胞通常有許多樹突,樹突,往往有很多分支。
|
|
軸突
|
纖維與化學品排放(產出)在其端點延伸,從細胞體的神經元。神經元有一個單一的軸突,軸突通常有極少數分行。
|
|
突觸
|
配置這種軸突的神經元1和樹突的另一個神經元的分離,由一個很小的差距。在這樣的配置,化學品排放的一軸突的神經元的跨突觸,並收到由樹突其他神經元。這是如何影響其他神經元的神經元。
|
4.3 神經元發射
一個神經細胞積累的化學信號,從它的樹突,如果總的化學積累超過某一閾值,內部在一段時間內,神經元的“火災” ,發送自己的信號通過其軸突。
一些神經元有能力發射脈衝對秩序的100 Hz 。
信號通過神經元涉及囤積(Na)鈉,鉀(K) , (Cl)和氯離子,以及所造成的電化學電位(即電壓) 。
靜電壓(-70 mV)和著火電壓(+30 mV)可以衡量,甚至影響常規電氣電路。
以下是電壓記錄大鼠神經元的射擊率大約100 Hz時,一個單一的晶須是感動,舉行了其休息的位置是:

老鼠神經元發射(100 Hz)由於持有晶須。
雖然刺激不斷,神經元的信號是快速脈動。
4.4 神經網絡
人腦有大約10^11 ( 100億元)的神經元。
每個神經元在小腦收到的投入多達10^4 (10000)突觸。
雖然軸突和樹突的神經元,往往延長,只有幾微米遠離細胞體,有些軸突是對秩序的一米的長度。
一腦的神經元軸突相對較短的分組在地區或集群。
大腦也有捆綁的神經元比較長的軸突連接的地區分隔厘米。
因此,一個層次化網絡的處理單元組成的。
4.5 神經網絡的地位
的地位,網絡的神經元,既是方式,神經元連接和信號在所有的突觸。
目前還不清楚有多少狀態信息將會消失,如果腦tranquilized在總閒置的任何數量的時間。
可以想見的資料,只有通過持續的信號,通過移動網絡,而不是通過網絡連接本身一樣,元胞自動機的模擬像Conway's “Game of Life” ,簡單Dynamic Random Access Memory (DRAM)芯片,迴聲在一個會議廳。
4.6 神經網絡學習
傳統的學習時發生的屬性改變樹突在突觸成為更多或更少有效率在接受化學信號從一個軸突。
原因這種變化是複雜的,但結果是一個神經細胞需要不同的組合突觸的投入,觸發輸出信號。
5. 人工神經元
5.1 定義
一個“人工神經元”是一種算法或物理裝置,實現了一個數學模型,靈感的基本行為的生物神經元。
一個神經細胞積聚所收到的信號從其他神經元或投入(例如,傳感器) ,如果總信號的積累超過某一閾值,神經元傳遞一個信號,其他神經元或產出(例如,效應) 。
任何數學模型結合的思想,積累了多種投入和高產一個單一的輸出(即加劇的相對強度的投入相對一些象徵性的水平) ,可用於模式識別。
這種模型可以根據一個人工神經元。
如果影響每個輸入可以進行修改,那麼,該模型可以支持學習。
5.2 激活函數
1 “激活函數”是一種數學函數轉換輸入值低於某一特定的價值相對較低的產值,並將其轉換為輸入值以上,特別是價值相對較高的產值。
1 “激活功能”是用來轉換的加權總和,輸入值的一個神經元的價值,代表的輸出神經元。
1 “sigmoid”功能,是一種通用類別的順利職能漸近的做法,下限為輸入值接近負至無限遠,並漸近的做法,上限輸入值接近積極至無限遠。
一個具體的sigmoid職能是“logistic sigmoid”功能:

該“Logistic Sigmoid”功能: 1 / ( 1 + Exp( -x ) )
該“logistic sigmoid”功能可以被用來作為“激活函數”為數學模型的神經元。
數學衍生的“logistic sigmoid”可以計算為一個公式,因此很容易計算相關的學習公式。
5.3 神經網絡的輸入
“神經網絡的輸入”代表輸入到一個神經網絡。

神經網絡的輸入
“Input”是數值的投入。
5.4 神經網絡的輸出
“神經網絡的輸出”代表一個輸出的神經網絡。

神經網絡的輸出
“Output”是數值的輸出。
“Error”是一個數值代表之間的差額,產值和“Desired”值:
Error = (Output - Desired); // Derived from: Output = Desired + Error;
該“Desired”價值,代表一個理想值,或是一個理想值,或是正確的價值觀,即神經網絡的應出示作為輸出在回應具體的投入。
誤差值是計算和分配給“Error”由訓練算法。
誤差值是反饋給神經網絡。
神經網絡能夠適應,以減少差異,其產出和理想的價值觀;也就是說,神經網絡可以借鑒,因此,可以減少今後的錯誤。
5.5 神經元體
一個“神經細胞組織,”代表機構的一個神經細胞,累積投入的貢獻,並增加了一個偏見,和變換所產生的價值是由“激活函數”產生的產值。

神經元體
“InputAccumulator”是一種價值,代表的累積投入,從神經元的聯繫,其產出是連接到神經元的機構。
“Bias”是一個可調的價值是結合累積的輸入值。
“Output”是一個數值代表產值神經元。
產值計算使用下列公式:
Output = ActivationFunction( Bias + InputAccumulator );
“ErrorAccumulator”是一個數值代表累積誤差。
由於特定的產值神經元的機構,並賦予一個特定的輸出誤差值,累積誤差值是調整根據下列公式:
ErrorAccumulator += Output * (1 - Output) * OutputError;
“Rate”是一個價值的影響如何“Bias”價值的變化,為了回應“ErrorAccumulator”值:
Bias += (-1) * Rate * ErrorAccumulator;
5.6 神經元鏈接
一個“神經細胞連接”代表之間的聯繫:
( 1 )輸入的神經網絡和投入的一個神經細胞體;
或,
( 2 )一個輸出一個神經元的身體和投入的另一個神經元的機構;
或,
( 3 )輸出一個神經元的身體和一個輸出的神經網絡。

神經元鏈接
“Input”是一個高速緩存的輸入到該連結。
“Weight”是一個可調的價值,如何影響信號的價值觀和錯誤價值觀的宣傳,通過聯繫匯率制度。
“Output”是一個高速緩存的輸出鏈接。
該值是計算使用下列公式:
Output = Weight * Input;
“Error”是一個高速緩存的誤差聯繫匯率制度。
“WeightedError”是一個緩存的錯誤連結,加權重量因素:
WeightedError = Weight * Error;
“Rate”是一個價值的影響如何“Weight”價值的變化,為了回應“Error”價值和“Input”價值。
在神經網絡學習, “Weight”的價值是在調整方式如下:
Weight += (-1) * Rate * Input * Error;
5.7 神經網絡
“神經網絡”包含了投入,產出,神經元的機構,和鏈接。
下面的圖像,描繪一個簡單的神經網絡,有兩個投入,以及兩個機構的神經元在第一層,和一個單一的神經元在第二層,和一個輸出。

例如一個神經網絡
在模擬神經網絡,輸入值宣傳著通過鏈接和神經元的機構,並最終到達的產出。

例如前進,繁殖在一個神經網絡
培訓期間,錯誤的價值觀所提供的產出,這些錯誤宣傳倒退,通過神經網絡,從而在改造度量衡和偏見,在神經元的機構和聯繫。

例如落後的誤差傳播在一個神經網絡
5.8 神經網絡模擬
定義:
“網絡仿真”程序是用來宣傳網絡的投入,通過鏈接和神經元的機構,直至達到網絡的產出。
網絡仿真涉及模擬,其所有的組成環節和神經元的機構。
模擬沒有循環或時間:
有很多可能的網絡配置,涉及循環。
有許多神經元模型,依賴於時間。
但一些最常見的應用人工神經元涉及既不循環也不是時間。
以下是數學模型的一個神經細胞團體:
Output = ActivationFunction( Bias + InputAccumulator );
與此神經元模型,以及網絡“環路” ,我們只是從外部投入,產出計算的第一層神經元,以及供應這些產出的投入到下一層,計算產出為層,並繼續透過層層神經元,直到最後的產出計算。
循環:
一個網絡可以有聯繫,在形式的迴路(或“週期” ) 。
舉例來說,輸出一個神經細胞可以直接連接到一投入相同的神經元,造成“的反饋意見” 。
另一個例子是輸出神經元# 1被連接到輸入神經元# 2 ,輸出神經元# 2被連接到輸入神經元# 1 。
如果您就可以開始從一些點,在一個網絡和微量元素的路徑,通過神經元和連接,服從一個雙向流動的信號,並最終到達相同的起點,那麼,路徑是一個循環。
循環介紹有趣的可能性,信號流圍繞網絡無限期的一段時間。
一些簡單的模型假設,它需要的具體數額的時間信號,通過個體神經元。
在這樣的模式,通過信號的流通循環,只有少數神經元速度比信號分發通過循環與許多神經元。
一個神經細胞連接到本身將有最快的信號流通速度。
如果一個神經元有一個輸入X ,重量W ,偏見B ,和一個非負輸出Y (例如, 0.0 -> 1.0 ) ,那麼我們可以形成一個振盪器,只要設置W = (-8)和B = +4和連接Y ,以X ;
我們每一次模擬神經元,信號將切換到對面的國家。
網絡環路,可繁忙的活動,甚至當它不接受外部信號(刺激)的投入。
元胞自動機的規則Conway's “Game of Life”可以實施在一個神經網絡,讓你一個小提示的多樣性活動,可以發生在一個神經網絡與循環。
有限狀態機(FSM) ,振盪器,揮發性記憶體(在對比的學習模式,通過不斷變化的權重) ,是可能的循環。
如果一個網絡環路,我們不能更新任何產出,直到我們計算的所有產出,因此,我們需要一個臨時的緩衝區來存儲計算的產出,直到我們計算的所有產出,然後我們可以承諾,新的輸出值向神經元網絡。
任何方法更新的產出在實際的網絡在一個漸進的方式,而不是一個全在一次的方式,介紹了一個任意訂購的時間,導致混亂。
物理模擬涉及加上實體,如行星與恆星的引力勢力相互之間的所有機構,要求相同的種方法:計算的淨勢力對所有機構,然後再更新任何速度和立場。
時間相關性:
一個簡單的網絡仿真通常涉及的投入,造成了預期的產出後,一個單一的模擬時間步。
在這樣一個模擬,我們認為在條件“迭代次數” ,而不是“在幾秒鐘的時間” 。
不必有任何書信來往迭代和時間尺度。
一個制度的設計可能會做網絡仿真(迭代)只有當新的輸入是可用的,這可能是發生在不規則的間隔時間。
不過,考慮的數學模型,一個神經細胞,試圖模擬脈衝輸出方面的生物神經元。
脈衝可能的特點是在時間的條款,如脈衝在某一特定頻率或有脈衝,其曲線延伸為某一大量的時間。
我們可以有其他時間依賴的要素在一個數學模型,一個神經細胞,例如作為一項投入,蓄電池,其價值得到捐款的投入,但有一個洩漏成正比,其目前的價值。
一般而言,我們可以找到一個類比電路的內容,遵守一定的數學方程,因此可以把神經元作為電路的電阻,電容,和一個非線性放大器。
正如一位電路可以展示複雜的時間依賴的行為,輸出一個神經細胞,可被視為一個功能取決於其投入和時間,在一個複雜的方式。
5.9 落後的誤差傳播
定義:
“落後的誤差傳播”是一種數學程序,開始與錯誤的輸出的神經網絡和宣傳這個錯誤倒退,通過網絡,以收益率的輸出誤差值為所有神經元網絡。
落後的誤差傳播公式:
誤差值在神經網絡的產出計算,使用下列公式:
Error = (Output - Desired); // Derived from: Output = Desired + Error;
錯誤的積累在一個神經元的機構調整,根據輸出神經元的機構和輸出誤差(所指定的鏈接連接到神經元的機構) 。
每個輸出的誤差值,有助於錯誤蓄能器在下列方式:
ErrorAccumulator += Output * (1 - Output) * OutputError;
在某種意義上說,所有的輸出誤差在下次層洩漏倒退,通過投入的權重和積累,在輸出的神經元在先前的層。
這積累的價值乘以一個值,該值是最大的,當電流輸出的神經元是最中性的(最“未定” ) ,並至少當輸出神經元是最極端的(很“某些” ) 。
體重變化和偏見的變化公式:
基礎學習是調整權重和偏差的價值觀,企圖以減少未來的輸出錯誤。
學習“率”是一個數值,基本上表明,如何迅速的神經元調整重量和偏見,價值觀,根據錯誤的價值觀。
下列公式表明,如何變更的權重的神經元與特定的輸入值和其輸出誤差值:
Weight += (-1) * Rate * Input * Error;
下列公式表明,如何改變偏見的一個神經細胞鑑於目前的輸出誤差為神經元:
Bias += (-1) * Rate * Error;
6. 訓練一個神經網絡
6.1 培訓程序
一就可以開始與受過訓練的網絡,並繼續以減少輸出誤差進一步的培訓,但往往一開始與一個未受過訓練的網絡。
前培訓,隨機選擇的價值觀為所有的重量都在神經元網絡。
我注意到的問題,當我隨機挑選的價值觀,在間隔[ -1.0, +1.0 ] ,和我沒有問題,當我選定的隨機值從區間[ +0.1, +1.0 ] 。
我提到這些意見,但他們可能是由於我的失誤。
目的是隨機的重量減輕的可能性,任何病理情況,在一個網絡。
如果所有神經元網絡開始使用相同的重量,該網絡將有就沒有了基礎,增加分化的神經元之間。
我曾指出,設置的所有偏見,價值觀,以零(0.0)是可以接受的。
培訓會議涉及經歷一個訓練集了很多次,也許是數百或數千次。
為每個通過訓練集,我們認為每一個項目,訓練集。
培訓設置項目都有一套的投入,和一套理想的產出。
我們模擬網絡,使用一套投入所指定的培訓項目。
仿真產量產值。
我們宣傳的錯誤思想倒退的神經網絡計算的輸出誤差的所有神經元。
我們更新所有的權重和偏見。
注意事項:一學術討論的文本神經網絡的主張經歷整個訓練集和總結,只有體重變化和偏見。
經歷了整個訓練集,我們有一整套的款項,體重的變化和偏見的變化。
我們採取這些款項,並更新所有的權重和偏見。
這樣的總結可以為龐大的大型訓練集-和由此產生的跳轉,體重空間會受到不合理的大。
所以,我覺得劃分的人數,通過培訓項目,獲得的平均體重改變的價值觀和平均偏差的價值觀改變,將是合理的。
有一些東西,呼籲有關計算一個單一的體重變化矢量有點需要整個訓練集在審議。
我不知道如果我只是犯了一個錯誤,在執行的想法,但我幾乎完全放棄了對神經網絡,因為如何不好的東西被轉出。
然後,當我嘗試天真替代,即使更新後,每一個培訓項目,工作完美的東西。
考慮到整個訓練集之前,做一個有一些更新的優點和缺點:
優勢:
單一的訓練項目,訓練集與極端錯誤(即壞的培訓項目)將不會作出大的貢獻,以更新的,因為這將被壓倒的影響, “良好”的數據;
缺點:
如果N是項目的數量在您的訓練集,你的進展速度,以最優權重向量將劃分由N 。
或者,對於給定的距離,您將有只有一小部分的提示方向在前進的道路上比較天真的做法;
也許這種技術將為您工作,但嘗試了天真的做法,之前你放棄對神經網絡在極大的挫折!
6.2 失敗,以減少錯誤
訓練可能會失敗,以減低整體的錯誤為訓練集。
這是很重要的檢測失敗,以減少錯誤。
以下列表說明了失敗的原因,以減少錯誤,以及可能的解決辦法。
該項目在名單中列出的近似命令的概率,與第一個項目正在最有可能的。
( 1 )權重組合已達到當地最低限度的錯誤,表面上是“堅持” ;
解決方法 :啟動一個新的仿真與新的隨機的權重。
( 2 )該網絡已太少神經元或層進行編碼,所有的模式,在您的訓練集;
解決方案 :謹慎受理的可能性,加入層或神經元。
( 3 )一個或多個項目在您的訓練集的矛盾,或是極不符合您的其他培訓項目;
解決方法 :檢查您的數據集的違規行為。
找到測試的項目收益率最誤差為您的受過訓練的網絡。
看看在以技術,以平均體重的變化,超過整個數據集,以減少影響的任何壞的案件。
( 4 )學習率過高(超過任何1.0可能是過度) ,以及更新總是過的目標;
解決辦法 :減少學習率。
( 5 )學習率過低(低於0.01任何可能太小) ,以及網絡真的是收斂對理想的權重組合-但速度太慢;
解決方案 :增加學習率。
培訓1 2層, 3 -神經網絡,以配合專用或(xor)功能,可以,儘管簡單的功能,無法銜接。
這可以令人驚訝和沮喪。
不過,解決的辦法是簡單地設置所有神經元的連接權重,以新的隨機值,然後嘗試列車網絡。
在該案件的培訓網絡,以配合專用或(xor)功能,隨機積極的權重似乎導致成功學習的每一次,而某些組合的正面和負面的權重,有時會導致培訓失敗的急劇變化。
需要選擇新的隨機初始權值,以收回從一個失敗的銜接,是一個不幸的後果相結合的學習程序。
學習的程序,主要是尋找一個全球最低速下降,由上表面,並有潛力為在場的“當地最低”在其中搜索可以成為被困。
6.3 整體訓練誤差
整體誤差網絡的特點是可以通過的平方根的平均平方錯誤,或“的均方根” (RMS) 。
錯誤在任何特定的網絡輸出是由下列公式:
Error = (Output - Desired);
總和的平方誤差為一個單一的培訓項目是由下列公式:
double squaredError = 0.0;
foreach (NeuralNetworkOutput output in ListOfOutputs)
{
squaredError += (output.Error * output.Error);
}
總和的平方誤差的整套項目,在訓練集是總結的平方誤差的個別項目。下面的代碼顯示了如何平方誤差的整套培訓項目,可以計算:
double squaredError = 0.0;
for
(
int trainingItemIndex = 0;
trainingItemIndex < totalTrainingItems;
trainingItemIndex++
)
{
trainingSet.SetAllInputNodeValues( trainingItemIndex );
Simulate( propagationIterations );
trainingSet.SetAllOutputNodeErrorValues( trainingItemIndex );
PropagateErrors( propagationIterations );
UpdateWeightsAndBiases();
foreach (NeuralNetworkOutput output in ListOfOutputs)
{
squaredError += (output.Error * output.Error);
}
}
整體的均方根(RMS)的錯誤是給予的平方根的平均平方錯誤:
double rmsError = Math.Sqrt( squaredError / (double)totalTrainingItems );
這個值是其中一個方法的特點整體誤差的一個網絡在考慮所有的訓練情況。
7. 學習
學習時發生的重量和偏見的價值觀神經元和神經元的聯繫機構調整,按照指定的網絡輸入和輸出錯誤的價值觀。
考慮神經網絡與二投入( x1和x2 ) ,以及兩個環節(與度量衡w1和w2 ) ,和一神經元的身體,一個輸出(y) 。

神經網絡與兩個投入,一個神經元和機構,以及一個輸出
我們的列車,這是由供應神經元的投入,計算輸出,計算錯誤,計算重量和偏見的變化,和更新的權重和偏見,到達新的度量衡( w1', w2' ) 。
有一個很有趣的方式可視化這一進程。
我們可以把一套度量衡作為一個向量在多維空間。例如,對於兩個砝碼,我們有矢量W = (w1, w2)在一個兩維“空間的重量” 。
時權重調整,我們有一個新的權重向量W' = (w1',w2') 。
我們可以設想,這作為一個出發點W移動到一個新的點W'作為一個進程的一部分,以減少輸出誤差。
通常一將不會計算輸出誤差為所有可能的重量組合,因為希望的是重量的調整過程,將有效地走向的最佳結合。
不過,讓我們的陰謀,表面上說,基本上顯示了如何以及神經元滿足所有項目的訓練定為功能,它的兩個砝碼:

總結的平方誤差為指定訓練集作為一個功能的兩個砝碼(w1, w2)
基本上,學習的目標是要下降到最低水平,這表面看來,那裡的錯誤減至最低。
一旦我們找到點W = (w1, w2)認為,殖利率最低的價值,這表面看來,學習是成品,然後我們可以簡單地使用受過訓練的神經元。
以下圖表顯示的輸出受過訓練的神經元作為一個函數的所有可能的投入X = (x1, x2) :

神經元的輸出作為一個功能的兩個投入(x1, x2)為權重組合,盡量減少誤差平方
即使加權總和,為這兩個輸入神經元只不過是(w1*x1 + w2*x2) ,激活函數輪流一個簡單的旋轉飛機在一個懸崖。
這表面上具有正確的輸出值為所有輸入組合(x1, x2)指定我們的訓練集。
但你可以想像是如何的輸入向量X = (x1, x2)類似的訓練價值觀,也將導致適當的輸出值;此功能的神經網絡是所謂的“概括”和是主要的價值,神經網絡。
正如我們試圖“降落”表面平方誤差,我們必須“跨越式之前,我們期待” !
我們更新權重向量和偏見,然後我們評價的“高度” ,表面上在我們的新位置。
後果之一,這是我們可能移動到一個點一個更極端的錯誤。
另一個後果是,它可能需要一段時間才能降回的深度,我們先前的位置。
的可能性, “跨越式發展” ,以更極端的高峰和低谷的錯誤表面上是直接關係到“學習率” ,因為學習率的確定有多少影響,錯誤的價值觀對我們的重量和偏見的變化。
以下圖表顯示如何增加學習率,加速我們到達較低的位置上平方誤差表面,那裡的錯誤減至最低。
該圖還表明,增加學習率還介紹了有可能作出壞的步驟:

短期趨勢均方根(RMS)誤差為整個訓練集數重複訓練,學習率0.1 , 0.5 , 1.0 , 2.0 。
這裡是一個圖形的均方根輸出誤差的一個多層網絡與訓練集與19386項目經歷了很多不好的步驟,路徑的最佳權向量:

培訓有時遇到尖峰,在均方根(RMS)錯誤,當錯誤增加一些重複的,然後才恢復下降趨勢。
有時趨勢是簡單地順利銜接,以理想的一套度量衡:

趨勢均方根(RMS)誤差為整個訓練集數重複訓練,學習率0.1 , 0.5 , 1.0 , 2.0 。
8. 例如:專用或(xor)
“獨家-或” (xor)是一個函數接受兩個布爾的投入和產量的一個單一的布爾輸出根據如下表:
|
X1
|
X2
|
Y = xor ( X1 , X2 )
|
|
0
|
0
|
0
|
|
0
|
1
|
1
|
|
1
|
0
|
1
|
|
1
|
1
|
0
|
在一般來說,一個單一的神經元已投入{x1, x2, ...} ,進入鏈接,通過與度量衡{w1, w2, ...} 。
神經元計算的中間量d = bias + (w1*x1 + w2*x2 + ...) ,它可以被視為確定哪些飛機,在一個無限的一套平行平面,包含一個指定的點與坐標{x1, x2, ...} 。
神經元計算產值, y = ActivationFunction( d ) ,這已影響分裂無限的一套平行平面,以兩套,其中一套生產低產值,和另一套生產高產值。
因此,一個單一的神經元的分裂多維空間,在兩個地區,並以逗號分隔飛機bias + w1*x1 + w2*x2 + ... = 0 ,並指派低產出的價值點在該地區的一個方面,飛機,並指派高產值,以點在該地區的對岸的飛機。
因此,如果兩套點在多維空間有明顯的分類和可完全分開,由飛機,然後一個單一的神經元,可以用來正確分類點從那些套屬於一組或其他。
獨家-或(xor)功能劃分點在兩維空間(坐標(x1, x2) )等認為,分在一套{ (0,0), (1,1) }被列為生產的產量“為0” ,並指出在設定{ (0,1), (1,0) }被列為生產的產量“1” 。
有沒有一個單一的“平面” (在這種情況下,一條線) ,可以分開的四點在以兩套。
因此,一個單一的神經元不能用來區分點,根據獨家-或(xor)功能。
一個單一的神經元只可以分裂一個空間點在兩個地區。
獨家-或(xor)功能劃分點,以某種方式基本上分為兩維空間中,以三個地區(或者,或者, 四個地區) 。
兩個神經元的可以分裂的兩維空間中,以三個地區(例如,由兩個截然不同的平行線) ,因此可以用來區分點,根據獨家-或(xor)功能。
第三個神經元,可以用來結合起來,產出的其他兩個神經元在一個單一的輸出。
下面的神經網絡,有兩個投入,以及兩個機構的神經元在第一層,和一個單一的神經元在第二層,和一個單一的輸出,可以用來區分點,根據獨家-或(xor)功能。
以下神經網絡可以是受過訓練的計算專用或(xor)功能,或神經網絡可以簡單地有其重量和偏見的價值觀指派的方式,產生預期的行為。

神經網絡有能力進行分類分據獨家-或(xor)
計算機代碼與此相關的文件表明,訓練神經網絡所顯示的圖以上,以配合專用或(xor)功能。
神經網絡有時不能了解的功能,但該軟件可以簡單地重新啟動嘗試與學習一套新的初始權重。
如果軟件成功地學會了獨家-或(xor)功能,然後輸出類似以下內容:
x1 = 0.0000 x2 = 0.0000 y = 0.0172 error = 0.0172
x1 = 1.0000 x2 = 0.0000 y = 0.9802 error = -0.0198
x1 = 0.0000 x2 = 1.0000 y = 0.9839 error = -0.0161
x1 = 1.0000 x2 = 1.0000 y = 0.0154 error = 0.0154
輸出(y)是2 %的預期值為每四個組合的變數(x1, x2) 。
雖然網絡是受過訓練的學習輸出值為只有4個組合的變數(與價值觀0.0和1.0 ,代表布爾值) ,投入人工神經網絡可以設置為任意浮動點值。
以下圖片顯示的輸出訓練神經網絡的許多組合的輸入值:

神經網絡有能力進行分類分據獨家-或(xor)
表面上代表了輸出的神經網絡為所有可能的輸入組合(x1, x2)在範圍[ -2.0, +2.0 ] 。
輸出是接近0.0在降低的領域,表面上和輸出接近1.0在最高地區的表面。
請注意,表面上是低為上,使該點{ (0,0), (1,1) } ,表面上是在高點{ (0,1), (1,0) } 。
網絡只是訓練產生預期的產出為四個具體的組合,輸入變量,但神經網絡也生產產出的所有其他可能的組合的輸入值。
的能力,神經網絡,以產生合理的反應,一般案件後,正在接受培訓,具體的案件,應可視為“泛化” 。
任何進程相適應的數據點到一個模型,如擬合點,一條線或其他曲線,也產生一個“泛化”作用,所以事實,即擬合的神經網絡,以產生理想的產出,具體的教訓,結果在一個種的泛化,是不是不平凡的,但它仍然是有趣的觀察能力,一概而論,從具體案例。
9. 例如: Tic-tac-toe ( “naughts和十字架” )
9.1 導言
Tic-tac-toe ( “naughts和十字架” )是一個簡單的遊戲就一3 * 3網格的幹細胞能顯著與“O”或“X” 。
球員交替的地方, “O”和“X”馬克在無人居住的細胞,直到其中一個球員完成行,列,或對角。
因為有3行, 3欄,和2對角線上,有8個獲獎模式,每個玩家。

Tic-Tac-Toe局,打贏模式
這是小事寫一遞歸函數的探索一切可能的Tic-Tac-Toe遊戲,因為最長期限為遊戲是9舉動。
在每一個點在遊戲中我們只是研究的結果,提出在每個其餘空置的細胞。
這種功能可以肯定地說,一Tic-Tac-Toe遊戲與“完美的球員”最後將沒有贏家。
9.2 訓練一個神經網絡,以顯示最佳動作
1遞歸函數可以探索一切可能的遊戲及確定最佳的舉措,各委員會的配置。
我們添加每個委員會的配置(投入) ,和最佳動作(預期產出) ,以列表的培訓項目。
然後,我們的列車網絡,以產生預期的產出為每套投入。
該網絡將有9投入相應的每一個細胞的網格,並輸入值將只限於以下值:
0 :空置細胞
+1 :主角播放器
-1 :對手的球員
該網絡將有9產出相應的每一個細胞的網格,並輸出值將只限於以下值:
0 :不要在這裡動議
1 :移至這裡
八產出將設置為“0” ,和一個輸出將被設置為“1” 。
因此,訓練後的神經網絡,一個董事會的配置可以指定為投入,神經網絡將表明,最好的動議。
輸出最接近的“一”將表明,最好的動議,和所有其他的產出應接近“零” 。
一般而言,只要功能與布爾參數和布爾輸出可以代表了一個神經網絡的兩層神經元。
第一層神經元可以鴻溝的多維空間的地區,和第二層相結合的地區分類,產生適當的輸出值。
該Tic-Tac-Toe神經網絡產生的布爾產出,雖然投入的有三個國家( -1, 0, +1 ) ,我們可以在原理,轉換為這幾個離散的輸入值,以一套布爾的投入。
因此,兩層的神經元,應足以了解Tic-Tac-Toe 。
因為網絡有9個產出,有9個神經元的團體在最後的(第二)層。
剩下的唯一神經網絡的設計決策,是決定神經元的數目機構向在第一層的神經網絡。
作出這一決定,計算機代碼可以生成和培養神經網絡與N神經元在第一層。
的能力,神經網絡,以了解完整的訓練集為Tic-Tac-Toe可以繪製成圖表。
以下圖表顯示整體訓練集的誤差在訓練中的每48不同的神經網絡,與N = 1,2,...,48神經元在第一層。

整體訓練集的誤差在訓練中, N = 1,2,...,48神經元在第一層( N = 1是在最上方,並N = 48是在底部,和最中間曲線是較低的更高的價值觀N )
另一種方法,可視化的趨勢,這是形成一個表面,從序列的曲線:

整體訓練集的誤差在訓練中, N = 1,2,...,48神經元在第一層( N = 1是在背部,和N = 48是在前面)
因此,我們看到,由於我們的做法N = 48神經元在第一層,網絡似乎是可以接受的所有訓練的個案。
任何少於48個神經元的水平似乎不足,學習一套完整的案件。
低的數目神經元,每增加神經元顯著減少整體的錯誤。
但是,當神經元數是接近的人數須了解整套的經驗教訓,每增加神經元不僅降低了錯誤,由一個相對小的數額。
以下圖片顯示的神經網絡與九月投入, 48個神經元和機構在第一層,神經元和9機構在第二層,和第9的產出。

神經網絡能夠學習,以發揮tic-tac-toe
計算機代碼與此相關的文件包括代碼建立和訓練神經網絡如上所示。
訓練集有4520培訓項目。
在200訓練迭代(涉及3繁殖的步驟,共200 * 4520 * 3 = 2712000仿真的步驟和相同數目的誤差傳播步驟) ,整體的錯誤,下降至1.520 ,以0.153 。
(這些數字可以依隨機初始條件) 。
培訓所需的好幾分鐘。
以下是兩個例子指定的投入和生產產出的受過訓練的神經網絡:
Scenario #1:
Input:
1.0000 -1.0000 0.0000
0.0000 1.0000 -1.0000
-1.0000 0.0000 0.0000
Best move:
0.0001 0.0000 0.0676
0.0001 0.0000 0.0000
0.0000 0.0000 0.9870
Scenario #2:
Input:
-1.0000 -1.0000 0.0000
1.0000 1.0000 0.0000
0.0000 0.0000 0.0000
Best move:
0.0000 0.0000 0.0859
0.0000 0.0000 0.9819
0.0000 0.0000 0.0000
該網絡的訓練,產生最佳的動作為播放器的馬克相當於“1” 。
最好的動議,為對手的球員,其對應的馬克“-1” ,可以發現乘以所有投入由(-1)之前,模擬神經網絡。
10. 訓練神經網絡
以下是引用“Artificial Intelligence” (3rd edition; Addison Wesley; 1993) ,由Patrick Henry Winston ,第22章, Learning by Training Neural Nets , p. 468 。
神經網絡的訓練是一門藝術
你現在知道你面臨著許多選擇後,您決定要工作,一個問題由訓練神經網絡使用反向傳播:
*你如何能代表信息在神經網絡的條款呢?
你如何能利用神經網絡的投入,表達什麼你知道嗎?
你如何能利用神經網絡的產出,以確定是什麼你想知道嗎?
*有多少神經元,如果您有在您的神經網絡?
有多少投入?
有多少產出?
有多少的重量?
有多少隱層?
*什麼率參數應使用在反向傳播公式?
*如果您訓練您的神經網絡,分階段或同時?
錯誤的選擇,導致業績不佳。
一個小神經網絡可能不會了解什麼您想要了解。
一個大網將學習緩慢,可能會碰到困難,對局部極大值,並有可能展出過擬合。
一個小率參數可能促進不穩定或提供窮人的預測。
不幸的是,適當的選擇取決於性質的樣本。
在數學上,您可以查看樣品作為代表一窺一個隱藏的功能,與一維為每個輸入。
如果有很多投入,功能的多層面性質,使功能,努力思考和不可能的可視化。
因此,最好的指南,您的選擇是審判和錯誤,支撐,如果可能的話,參考的選擇,運作良好,在類似的問題。
因此,成功地部署神經網絡技術需要時間和經驗。
神經網絡專家是藝術家,他們不是單純的用戶手冊。
11. 使輸入值和輸出值適合的神經網絡
數學模型的一個神經細胞體在本文件中產生一個產值使用“後勤Sigmoid函數” (即, ( 1 / (1 + Exp(-x)) ) ) 。
因此,產出是有限的,以範圍從0.0 ,以1.0 。