1. 소개
1986 년 Rumelhart와 McCelland가 이끄는 과학자 그룹이 제안한 BP 네트워크 (Back Propagation)는 오류 역 전파 알고리즘으로 훈련 된 다층 피드 포워드 네트워크이며 현재 가장 널리 사용되는 신경망 모델 중 하나입니다. BP 네트워크는 사전에 매핑 관계를 설명하는 수학적 방정식을 공개하지 않고도 많은 입출력 패턴 매핑 관계를 학습하고 저장할 수 있습니다.
인공 신경망 개발 역사상 은닉층의 연결 가중치를 조정하는 효과적인 알고리즘은 오랫동안 발견되지 않았다. BP 알고리즘 (Error Back Propagation Algorithm)이 제안 될 때까지 비선형 연속 함수를 해결하기위한 다층 피드 포워드 신경망의 가중치 조정 문제가 성공적으로 해결되었습니다.
오류 역 전파 알고리즘의 학습 과정 인 BP (Back Propagation) 신경망은 정보의 순 전파와 오류의 역전 파라는 두 가지 프로세스로 구성됩니다. 입력 계층의 각 뉴런은 외부에서 입력 정보를 받아 중간 계층의 각 뉴런으로 전송하는 역할을하고, 중간 계층은 내부 정보 처리 계층이며 정보 변환을 담당합니다. 정보 변경 능력에 대한 요구에 따라 , 중간 계층은 단일 히든 계층 또는 다중 히든 계층 구조로 설계 될 수 있습니다. 마지막 히든 계층은 추가 처리 후 출력 계층에있는 각 뉴런의 정보를 전송하고 학습 순방향 전파 프로세스를 완료하고 출력 계층이 출력합니다. 정보 처리 결과를 외부 세계로 전달합니다. 실제 출력이 예상 출력과 일치하지 않으면 오류 역 전파 단계로 들어갑니다. 오류는 출력 계층을 통과하여 오류 경사 하강 법으로 각 계층의 가중치를 수정 한 다음 계층별로 은닉 계층과 입력 계층으로 다시 전송합니다. 정보의 순방향 전파와 오류의 역 전파가 반복되는 과정은 각 계층의 가중치를 지속적으로 조정하는 과정과 신경망 학습 및 훈련 과정입니다.이 과정은 네트워크 출력의 오류가 줄어들 때까지 계속됩니다. 허용 수준으로 또는 사전 설정되어 있습니다. 설정된 검사 수까지.
BP 신경망 모델 BP 네트워크 모델에는 입력 및 출력 모델, 행동 함수 모델, 오류 계산 모델 및자가 학습 모델이 포함됩니다.
2 BP 신경망 모델 및 기본 원리
3 BP_PID 알고리즘 흐름
둘째, 소스 코드
%BP based PID Control
clc,clear,close all
warning off
xite=0.25; % 学习因子
alfa=0.05; % 惯量因子
S=1; %Signal type
%NN Structure
IN=4; % 输入层个数
H=5; % 隐藏层个数
Out=3; % 输出层个数
if S==1 %Step Signal
wi=[-0.6394 -0.2696 -0.3756 -0.7023;
-0.8603 -0.2013 -0.5024 -0.2596;
-1.0749 0.5543 -1.6820 -0.5437;
-0.3625 -0.0724 -0.6463 -0.2859;
0.1425 0.0279 -0.5406 -0.7660];
%wi=0.50*rands(H,IN);
wi_1=wi;wi_2=wi;wi_3=wi;
wo=[0.7576 0.2616 0.5820 -0.1416 -0.1325;
-0.1146 0.2949 0.8352 0.2205 0.4508;
0.7201 0.4566 0.7672 0.4962 0.3632];
%wo=0.50*rands(Out,H);
wo_1=wo;wo_2=wo;wo_3=wo;
end
if S==2 %Sine Signal
wi=[-0.2846 0.2193 -0.5097 -1.0668;
-0.7484 -0.1210 -0.4708 0.0988;
-0.7176 0.8297 -1.6000 0.2049;
-0.0858 0.1925 -0.6346 0.0347;
0.4358 0.2369 -0.4564 -0.1324];
%wi=0.50*rands(H,IN);
wi_1=wi;wi_2=wi;wi_3=wi;
wo=[1.0438 0.5478 0.8682 0.1446 0.1537;
0.1716 0.5811 1.1214 0.5067 0.7370;
1.0063 0.7428 1.0534 0.7824 0.6494];
%wo=0.50*rands(Out,H);
wo_1=wo;wo_2=wo;wo_3=wo;
end
x=[0,0,0];
u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;
y_1=0;y_2=0;y_3=0;
% 初始化
Oh=zeros(H,1); %从隐藏层到输出层
I=Oh; %从输入层到隐藏层
error_2=0;
error_1=0;
ts=0.001;
for k=1:1:500
time(k)=k*ts;
if S==1
rin(k)=1.0;
elseif S==2
rin(k)=sin(1*2*pi*k*ts);
end
%非线性模型
a(k)=1.2*(1-0.8*exp(-0.1*k));
yout(k)=a(k)*y_1/(1+y_1^2)+u_1; % 输出
error(k)=rin(k)-yout(k); % 误差
xi=[rin(k),yout(k),error(k),1];
x(1)=error(k)-error_1;
x(2)=error(k);
x(3)=error(k)-2*error_1+error_2;
epid=[x(1);x(2);x(3)];
I=xi*wi';
for j=1:1:H
Oh(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j))); %Middle Layer
end
K=wo*Oh; %Output Layer
for l=1:1:Out
K(l)=exp(K(l))/(exp(K(l))+exp(-K(l))); %Getting kp,ki,kd
end
kp(k)=K(1);ki(k)=K(2);kd(k)=K(3);
Kpid=[kp(k),ki(k),kd(k)];
du(k)=Kpid*epid;
u(k)=u_1+du(k);
% 饱和限制
if u(k)>=10
u(k)=10;
end
if u(k)<=-10
u(k)=-10;
end
dyu(k)=sign((yout(k)-y_1)/(u(k)-u_1+0.0000001));
%Output layer
for j=1:1:Out
dK(j)=2/(exp(K(j))+exp(-K(j)))^2;
end
for l=1:1:Out
delta3(l)=error(k)*dyu(k)*epid(l)*dK(l);
end
세, 실행 결과
네, 비고
완전한 코드 또는 쓰기 추가 QQ1564658423 과거 검토
>>>>>>
[예측 모델] matlab 입자 군집을 기반으로 한 lssvm 예측 [Matlab 소스 코드 103 포함]
[lSSVM 예측] matlab 고래 최적화 알고리즘을 기반으로 한 lSSVM 데이터 예측 [Matlab 소스 코드 포함] 104]
[lstm 예측] matlab 고래 최적화 알고리즘 기반 lstm 예측 개선 [Matlab 소스 코드 105 포함]
[SVM 예측] matlab bat 알고리즘 기반 SVM 예측 개선 (1) [Matlab 소스 코드 106 포함]
[ SVM 예측】 matlab grey wolf 알고리즘은 svm 지원 벡터 머신 예측을 최적화하기 위해 [Matlab 소스 코드 107 포함]
[예측 모델] matlab BP 신경망 예측 기반 [Matlab 소스 코드 108 포함]
[lssvm 예측 모델] 박쥐 알고리즘을 기반으로 개선 된 최소 제곱 지원 벡터 머신 lssvm 예측 [Matlab 109 이슈]
[lssvm 예측] 나방 소화 알고리즘 기반의 최소 제곱 지원 벡터 머신 lssvm 예측 개선 [Matlab 110]
[SVM 예측] matlab bat 알고리즘 기반 SVM 예측 개선 (2 개) [Matlab 소스 코드 141 포함 기간]
[Lssvm 예측] matlab 나방 소방 알고리즘을 기반으로하는 벡터 머신 lssvm 예측 개선 [Matlab 소스 코드 142 포함]
[ANN 예측 모델] matlab 차이 알고리즘 기반으로 ANN 네트워크 예측 개선 [Matlab 소스 코드 151 포함]
[예측 모델] matlab RBF 신경망 예측 모델 기반 [Matlab 소스 코드 177주기 포함]
[예측 모델] matlab SVM 회귀 예측 알고리즘 기반으로 주식 동향을 예측 [Matlab 소스 코드 180주기 포함]