『壹』 人工神經網路怎樣實現自組織,自適應,自學習
人工神經網路就像一個黑盒子,用於模擬任意函數。根據一定的訓練樣本(即所需模內擬函數已知的輸入和輸出關系)神經容網路可以改變其內部結構使其模型特性逼近訓練樣本。即所謂的自學習,自組織和自適應。並且,由於神經網路是採用整體逼近的方式,不會由於個別樣本誤差而影響整個模型特性,即所謂容錯特性。
其實用仿生的例子更容易理解,就像一個嬰兒,父母不斷教他說話,他最終能學習理解父母語言的意思,並且偶爾父母說錯一兩個字,孩子也能聽懂。
『貳』 為什麼BP神經網路是有限自適應的
演算法都是有自身的缺陷的吧,要不也不會出現這么多的神經網路改進的演算法回,但是BP神經答網路對大多數的問題都是有一定的處理能力的,只是處理的精度不一定能夠達到要求。
優化初始權值,傳遞函數,以及減小誤差的方法都能夠針對具體的問題有所改進。
個人的一點見解,共同進步哈!
『叄』 MATLAB神經網路工具箱中訓練函數和自適應學習函數區別
訓練函數和自適應學習函數區別:
從范圍上:
訓練函數包含學習專函數,學習函數是屬於訓練函數的一部屬分;
從誤差上:
訓練函數對整體來說誤差是最小,學習函數對於單個神經元來說誤差是最小;
從服裝整體上:
訓練函數是全局調整權值和閾值,學習函數是局部調整權值和閾值。
1. 學習函數
learnp 感知器學習函數
learnpn 標准感知器學習函數
learnwh Widrow_Hoff學習規則
learngd BP學習規則
learngdm 帶動量項的BP學習規則
learnk Kohonen權學習函數
learncon Conscience閾值學習函數
learnsom 自組織映射權學習函數
2. 訓練函數
trainwb 網路權與閾值的訓練函數
traingd 梯度下降的BP演算法訓練函數
traingdm 梯度下降w/動量的BP演算法訓練函數
traingda 梯度下降w/自適應lr的BP演算法訓練函數
traingdx 梯度下降w/動量和自適應lr的BP演算法訓練函數
trainlm Levenberg_Marquardt的BP演算法訓練函數
trainwbl 每個訓練周期用一個權值矢量或偏差矢量的訓練函數
『肆』 BP神經網路的原理的BP什麼意思
Back Propagation
BP (Back Propagation)神經網路,即誤差反傳誤差反向傳播演算法的學習過程,由信息的正向版傳播和誤差的反向傳播兩個權過程組成。輸入層各神經元負責接收來自外界的輸入信息,並傳遞給中間層各神經元;中間層是內部信息處理層,負責信息變換,根據信息變化能力的需求,中間層(隱含層)可以設計為單隱層或者多隱層結構;最後一個隱層傳遞到輸出層各神經元的信息,經進一步處理後,完成一次學習的正向傳播處理過程,由輸出層向外界輸出信息處理結果。
神經網路很多種,BP神經網路最常用。
『伍』 神經網路中自適應的梯度下降優化演算法(二)
Adagrad演算法可以針對不同的參數自適應的採用不同的更新頻率,對低頻出現的特徵採用低的更新率,對高頻出現的特徵採用高的更新率,因此,對於稀疏的數據它表現的很好,很好的提升了SGD的魯棒性,在Google的通過Youtube視頻識別貓的神經網路訓練中有很好的表現。
梯度更新規則:
g(t,i)表示在t時刻目標函數對θ(i)的偏導數。SGD的每個參數的更新過程如下:
Adagrad的每個參數更新過程如下:
G(t)是一個對角矩陣,對角線上的每個元素是t時刻前所有θ(i)的梯度的平方和。ε通常取值在1e-8量級,它的存在是為了避免除數為0。一個有趣的現象是,如果沒有平方根操作,演算法的表現就非常糟糕。
Adagrad的主要缺點是,它的分母是平方梯度的累積,它的值會一直增加,最終導致學習率衰減到非常小,從而使得學習演算法無法進行下去。
TensorFlow實現:
tf.train.AdagradOptimizer(learning_rate, initial_accumulator_value=0.1, use_locking=False, name='Adagrad')
Adadelta演算法主要解決Adagrad的缺陷,它不再累加過去所有的梯度,而是僅累積過去固定個數的梯度。
Adadelta不是採用平方梯度的簡單累加,而是採用 歷史 平方梯度的衰減的平均。
γ通常等於0.9
分母相當於梯度的均方根(root mean squared, RMS),即將所有值平方求和,求其均值,再開平方,就得到均方根值。
梯度更新規則:
將學習率η設置為
,我們就不需要提前設定學習率。
RMSprop是Geoff Hinton提出的一種自適應學習率的方法,它與Adadelta方法都是為了解決Adagrad學習率急劇下降問題的。它與Adadelta方法是一致的。
梯度更新規則
超參數設定值:
Hinton建議設定γ=0.9, 學習率η=0.001。
TensorFlow實現:
tf.train.RMSPropOptimizer.__init__(learning_rate, decay, momentum=0.0, epsilon=1e-10, use_locking=False, name='RMSProp')
Adam也是對不同的參數自適應設置不同的學習率。它對 歷史 梯度和 歷史 平方梯度同時採用指數梯度衰減(exponentially decaying average)。
梯度更新規則
Adam作者觀察到,如果m(t)和v(t)初始化為零向量,並且衰減率很小時(比如β1和β2都非常接近於1時),在開始的迭代中,m(t)和v(t)總是向零偏移,所以需要做偏移校正。
然後用校正後的值進行梯度更新:
Adam作者建議β1=0.9,β2=0.999,ε=10^{-8}
,在實踐中,Adam比其它演算法的效果要好。
TensorFlow實現:
tf.train.AdamOptimizer(learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08, use_locking=False, name='Adam')
Adam更新規則中的梯度縮放與 歷史 梯度的L2范數成反比。
我們可以把這個規則泛化到Lp范數。
當p值增大的時候,Lp的值往往會變得不穩定,所以在實踐中L1和L2使用的比較普遍。但是Adamax作者發現L∞可以收斂到一個穩定值。
然後我們可以採用u(t)代替
來更新Adam中的梯度。
同時u(t)不需要做零偏校正。默認取值建議:
『陸』 神經網路中的訓練、學習和自適應有什麼區別
神經網路中自適應,應該是指在一些訓練演算法中,學習速率可以自動調整的自適應過程 查看原帖>>