1、如何理解神經(jīng)網(wǎng)絡里面的反向傳播算法
反向傳播算法(Backpropagation)是目前用來訓練人工神經(jīng)網(wǎng)絡(Artificial Neural Network,ANN)的最常用且最有效的算法。其主要思想是:
(1)將訓練集數(shù)據(jù)輸入到ANN的輸入層,經(jīng)過隱藏層,最后達到輸出層并輸出結果,這是ANN的前向傳播過程;
(2)由于ANN的輸出結果與實際結果有誤差,則計算估計值與實際值之間的誤差,并將該誤差從輸出層向隱藏層反向傳播,直至傳播到輸入層;
(3)在反向傳播的過程中,根據(jù)誤差調整各種參數(shù)的值;不斷迭代上述過程,直至收斂。
反向傳播算法的思想比較容易理解,但具體的公式則要一步步推導,因此本文著重介紹公式的推導過程。
1. 變量定義
上圖是一個三層人工神經(jīng)網(wǎng)絡,layer1至layer3分別是輸入層、隱藏層和輸出層。如圖,先定義一些變量:
表示第層的第個神經(jīng)元連接到第層的第個神經(jīng)元的權重;
表示第層的第個神經(jīng)元的偏置;
表示第層的第個神經(jīng)元的輸入,即:
表示第層的第個神經(jīng)元的輸出,即:
其中表示激活函數(shù)。
2. 代價函數(shù)
代價函數(shù)被用來計算ANN輸出值與實際值之間的誤差。常用的代價函數(shù)是二次代價函數(shù)(Quadratic cost function):
其中,表示輸入的樣本,表示實際的分類,表示預測的輸出,表示神經(jīng)網(wǎng)絡的最大層數(shù)。
3. 公式及其推導
本節(jié)將介紹反向傳播算法用到的4個公式,并進行推導。如果不想了解公式推導過程,請直接看第4節(jié)的算法步驟。
首先,將第層第個神經(jīng)元中產(chǎn)生的錯誤(即實際值與預測值之間的誤差)定義為:
本文將以一個輸入樣本為例進行說明,此時代價函數(shù)表示為:
公式1(計算最后一層神經(jīng)網(wǎng)絡產(chǎn)生的錯誤):
其中,表示Hadamard乘積,用于矩陣或向量之間點對點的乘法運算。公式1的推導過程如下:
公式2(由后往前,計算每一層神經(jīng)網(wǎng)絡產(chǎn)生的錯誤):
推導過程:
公式3(計算權重的梯度):
推導過程:
公式4(計算偏置的梯度):
推導過程:
4. 反向傳播算法偽代碼
輸入訓練集
對于訓練集中的每個樣本x,設置輸入層(Input layer)對應的激活值:
前向傳播:
,
計算輸出層產(chǎn)生的錯誤:
反向傳播錯誤:
谷歌人工智能寫作項目:小發(fā)貓
2、我現(xiàn)在在做RBF神經(jīng)網(wǎng)絡k-means算法與RLS遞歸二乘法結合訓練,求哪位大神能給個RLS的算法的MTALAB程序 20
直接用廣義RBF網(wǎng)絡我感覺比較方便,而且可以直接用newgrnn(P,T,spread)函數(shù)神經(jīng)網(wǎng)絡訓練乘法運算。
RLS算法的MATLAB程序在附件,你可以參考下。文章來源:http://www.zghlxwxcb.cn/news/detail-403036.html
最小二乘大約是1795年高斯在他那星體運動軌道預報工作中提出的[1]。后來,最小二乘法就成了估計理論的奠基石。由于最小二乘法結構簡單,編制程序也不困難,所以它頗受人們重視,應用相當廣泛。
如用標準符號,最小二乘估計可被表示為:
AX=B (2-43)
上式中的解是最小化 ,通過下式中的偽逆可求得:
A'AX=A'B (2-44)
(A'A)^(-1)A'AX=(A'A文章來源地址http://www.zghlxwxcb.cn/news/detail-403036.html
到了這里,關于神經(jīng)網(wǎng)絡訓練算法的調用,神經(jīng)網(wǎng)絡中的矩陣運算的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!