close all;
clear all;
clc;%%
%%%%
%%%%
%%%%
%%%%
%%%%
%%%%
%% bp學習演算法的matlab例程 %%%
%%%%
%%%%
%%%%
%%%%
%%%%
%%%%
%%%%說明:取k為學習步長,n為輸入樣本數,cells為神經元個數,times為學習次數,e為均方誤差 %
% 取神經元激勵函式f
(x)=1/
(1+e^(
-x))
,y=sinx為bp網路學習函式 %%*
****
****
****
****
****
****
****
****
*** 初始化各引數 ***
****
****
****
****
****
****
***%
k=0.05
;%取學習步長為0.05
n=30
;%輸入樣本數n
cells=6;
%取6個神經元
times=
3000
;%設定總學習次數
%選取樣本點x=(
linspace(0
,2*pi,n));
t=sin
(x);
%樣本需要學習的函式t
w1=rand
(cells,1)
*k;%取第一層連線權係數初始值為隨機量
w2=rand(1
,cells)
*k;%取第二層連線權係數初始值為隨機量
yw1=
rand
(cells,1)
*k;%取第一層閾值初始值為隨機量
yw2=rand*k;
%取第二層閾值初始值為隨機量
y=rand(1
,n)*k;
%取輸出值初始值為隨機量
counts=1;
%計數值初始化
e=zeros(1
,times)
;%均方差初始值設為0%*
****
****
****
****
****
****
****
****
*** 學習過程 ***
****
****
****
****
****
****
****
**%for i=
1:times
ei=0;
for a=1:n
net1=w1*
x(a)
-yw1;
out=
logsig
(net1)
; net2=w2*out-yw2;
y(a)
=net2;
det2=
t(a)-y
(a);
det1=
((det2*
(w2)')
.*out).*
(1-out)
; w1=w1+det1*
x(a)
*k; w2=w2+
(det2*out)'*k;
yw1=
-det1*k+yw1;
yw2=
-det2*k+yw2;
ei=ei+det2^2/
2;e(i)
=ei;
endif ei<
0.008
%設定學習要求:均方差小於0.008
break
; end
counts=counts+1;
end%**
****
****
****
****
****
****
****
*** 逼近學習曲線 ***
****
****
****
****
****
****
****
*%%逼近曲線
for a=1:n
net1=w1*
x(a)
-yw1;
out=
logsig
(net1)
; net2=w2*out-yw2;
y(a)
=net2;
endsubplot(2
,1,1
);plot
(x,t,
'b-'
,x,y,
'k*-');
legend
('y=sinx曲線'
,'學習曲線');
grid on;
title
('bp學習方法逼近y=sinx**曲線圖');
xlabel
('x軸');
ylabel
('y=sinx');
%誤差曲線
if(countscount=
1:counts;
sum=counts;
else
count=
1:times;
sum=times;
endsubplot(2
,1,2
);plot
(count,e(
1:sum));
grid on;
title
('bp演算法的學習曲線');
xlabel
('迭代次數');
ylabel
('均方誤差'
);
BP演算法解決XOR異或問題MATLAB版
from 用神經網路解決異或問題 clear clcclose ms 4 設定4個樣本 a 0 0 0 1 1 0 1 1 設定輸入向量 y 0,1,1,0 設定輸出向量 n 2 輸入量的個數 m 3 隱層量的個數 k 1 輸出層的個數 w rand n,m 為輸入層到隱層的權值賦初值 v rand...
BP演算法的推導
bp演算法步驟 1 正向傳播 輸入樣本 輸入層 各隱層 處理 輸出層 注1 若輸出層實際輸出與期望輸出 教師訊號 不符,則轉入2 誤差反向傳播過程 2 誤差反向傳播 輸出誤差 某種形式 隱層 逐層 輸入層 其主要目的是通過將輸出誤差反傳,將誤差分攤給各層所有單元,從而獲得各層單元的誤差訊號,進而修正...
BP演算法的理解
目標 通過計算輸出層和期望值之間的誤差 損失函式 來調整網路引數,從而達到誤差最小。bp演算法的本質 就是通過梯度下降法來優化網路引數。梯度下降法的本質 通過迭代的形式,計算目標函式的最小值對應的引數。目標函式在深度學習和機器學習中就是對應的誤差函式 梯度下降法的形式 泰勒公式 泰勒公式一階導數的形...