Elman神經網絡


Elman神經網絡是由Jeffrey L. Elman  於1990年提出,是一種反饋神經網絡

 

網絡原型

 

 

 

 網絡計算步驟:

 

 

Matlab中  關於Elman神經網絡的重要函數:

newelm()---生成一個Elman神經網絡

trains()---根據已設定的權值和閾值對網絡進行順序訓練

traingdx()---自適應學習速率動量梯度下降反向傳播訓練函數

learngdm()---動量梯度下降權值和閾值學習函數

 

一個簡單的例子:

 

% 初始化
clear ; close all; clc
p=[0.4413 0.4707 0.6953 0.8133 0.4379 0.4677 0.6981 0.8002 0.4517 0.4725 0.7006 0.8201;...
    0.4379 0.4677 0.6981 0.8002 0.4517 0.4725 0.7006 0.8201 0.4557 0.4790 0.7019 0.8211;...
    0.4517 0.4725 0.7006 0.8201 0.4557 0.4790 0.7019 0.8211 0.4601 0.4811 0.7101 0.8298]'; 
%擬合輸入函數矩陣,3個樣本  每個樣本12個變量
t=[0.4557 0.4790 0.719 0.8211;0.4601 0.4811 0.7101 0.8298; 0.4612 0.4845 0.7188 0.8312]'; %擬合目標函數矩陣
P_check=[0.4557 0.4790 0.719 0.8211 0.4601 0.4811 0.7101 0.8298  0.4612 0.4845 0.7188 0.8312]';%測試網絡穩定性的數據矩陣
t1=[0.4615 0.4891 0.7201 0.8330]';%測試網絡穩定性的目標矩陣;
threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1];%設置每個變量的取值范圍

P_check;
net=newelm(threshold,[17,4],{'tansig','purelin'});%建立網絡模型
net.trainparam.epochs=3000;%最大迭代次數3000
net.trainparam.goal=0.0001;%迭代目標誤差值
net=init(net);%初始化網絡
[net,tr]=train(net,p,t);%訓練網絡
PN=sim(net,P_check);%仿真
figure(1);%打開新窗口作圖
X=[1,2,3,4];

plot(X,PN,'r*',X,t1,'bo');
title('o為真實值,*為預測值');%作圖

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM