日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Elman神经网络原理

發布時間:2023/12/9 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Elman神经网络原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Elman神經網絡

近期開題,閱讀到了一篇文章關于故障診斷的,其中用到了Elman神經網絡,具體是結合EMD、PCA-SOM的Elman的性能評估/預測故障診斷,對Elman神經網絡有點陌生,網上資源也講的特別雜,來做個匯總Introduction吧!

介紹

Elman神經網絡 是 J. L. Elman于1990年首先針對語音處理問題而提出來的,是一種典型的局部回歸網絡( global feed forward local recurrent)。Elman網絡可以看作是一個具有局部記憶單元局部反饋連接遞歸神經網絡

Elman網絡具有與多層前向網絡相似的多層結構。

它的主要結構是前饋連接, 包括輸入層、 隱含層、 輸出層, 其連接權可以進行學習修正;反饋連接由一組“結構 ” 單元構成,用來記憶前一時刻的輸出值, 其連接權值是固定的。在這種網絡中, 除了普通的隱含層外, 還有一個特別的隱含層,稱為關聯層 (或聯系單元層 ) ;該層從隱含層接收反饋信號, 每一個隱含層節點都有一個與之對應的關聯層節點連接。關聯層的作用是通過聯接記憶將上一個時刻的隱層狀態連同當前時刻的網絡輸入一起作為隱層的輸入, 相當于狀態反饋。隱層的傳遞函數仍為某種非線性函數, 一般為 Sigmoid函數, 輸出層為線性函數, 關聯層也為線性函數。

----詞條來自于百度百科

Elman組成

Elman神經網絡是一種典型的動態神經網絡,通常有四層:輸入層、中間層(隱含層)、 承接層和輸出層。

  • 輸入層、隱含層和輸出層的連接類似于前饋網絡

  • 輸入層的單元只傳輸信號,輸出層的單元具有線性加權的功能。

  • 隱層細胞的傳遞函數可以是線性函數,也可以是非線性函數。

  • 承接層又稱為上下文層或狀態層,用于記憶隱層的前一個時間步長輸出,因此可以看作是一步時間延遲算子。

  • Elman網絡結構

帶反饋的的BP網絡
行程遲滯具有短期記憶功能

Figure來自于網絡)

Elman神經網絡的特點是通過受體層的延遲和存儲,隱層的輸出與隱層的輸入本身相連。這種自連接對其歷史狀態的數據非常敏感,內部反饋網絡也增加了動態信息處理的能力,從而達到動態建模的目的。

選擇用歷史訓練的Elman神經網絡同步預測,數據流程圖如下圖所示。

  • Elman網絡學習算法

用BP算法進行權值修正,指標函數為誤差平方和


Matlab實例代碼

本實例是引用的《Matlab神經網絡30個案例分析》中的一個,覺得很不錯,就更新一下下!~

內容較為古老,直接附上了,請多擔待。

電力負荷預測概述

模型建立


電力系統負荷數據


具體數據及其源代碼在我的GitHub上可下載:
https://github.com/YurBro/Project-Code/tree/main/ElmanNN

Matlab Code:

%% 基于Elman神經網絡的電力負荷預測模型研究 % % % <html> % <table border="0" width="600px" id="table1"> <tr> <td><b><font size="2">該案例作者申明:</font></b></td> </tr> <tr> <td><span class="comment"><font size="2">1:本人長期駐扎在此<a target="_blank" href="http://www.ilovematlab.cn/forum-158-1.html"><font color="#0000FF">板塊</font></a>里,對<a target="_blank" href="http://www.ilovematlab.cn/thread-48362-1-1.html"><font color="#0000FF">該案例</font></a>提問,做到有問必答。</font></span></td></tr><tr> <td><span class="comment"><font size="2">2:此案例有配套的教學視頻,配套的完整可運行Matlab程序。</font></span></td> </tr> <tr> <td><span class="comment"><font size="2"> 3:以下內容為該案例的部分內容(約占該案例完整內容的1/10)。</font></span></td> </tr> <tr> <td><span class="comment"><font size="2"> 4:此案例為原創案例,轉載請注明出處(<a target="_blank" href="http://www.ilovematlab.cn/">Matlab中文論壇</a><a target="_blank" href="http://www.ilovematlab.cn/forum-158-1.html">《Matlab神經網絡30個案例分析》</a>)。</font></span></td> </tr> <tr> <td><span class="comment"><font size="2"> 5:若此案例碰巧與您的研究有關聯,我們歡迎您提意見,要求等,我們考慮后可以加在案例里。</font></span></td> </tr> <tr> <td><span class="comment"><font size="2"> 6:您看到的以下內容為初稿,書籍的實際內容可能有少許出入,以書籍實際發行內容為準。</font></span></td> </tr><tr> <td><span class="comment"><font size="2"> 7:此書其他常見問題、預定方式等,<a target="_blank" href="http://www.ilovematlab.cn/thread-47939-1-1.html">請點擊這里</a></font></span></td> </tr></table> % </html> % %% 清空環境變量clc; clear all close all nntwarn off;%% 數據載入load data; a=data;%% 選取訓練數據和測試數據for i=1:6p(i,:)=[a(i,:),a(i+1,:),a(i+2,:)]; end % 訓練數據輸入 p_train=p(1:5,:); % 訓練數據輸出 t_train=a(4:8,:); % 測試數據輸入 p_test=p(6,:); % 測試數據輸出 t_test=a(9,:);% 為適應網絡結構 做轉置p_train=p_train'; t_train=t_train'; p_test=p_test';%% 網絡的建立和訓練 % 利用循環,設置不同的隱藏層神經元個數 nn=[7 11 14 18]; for i=1:4threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1];% 建立Elman神經網絡 隱藏層為nn(i)個神經元net=newelm(threshold,[nn(i),3],{'tansig','purelin'});% 設置網絡訓練參數net.trainparam.epochs=1000;net.trainparam.show=20;% 初始化網絡net=init(net);% Elman網絡訓練net=train(net,p_train,t_train);% 預測數據y=sim(net,p_test);% 計算誤差error(i,:)=y'-t_test; end%% 通過作圖 觀察不同隱藏層神經元個數時,網絡的預測效果plot(1:1:3,error(1,:),'-ro','linewidth',2); hold on; plot(1:1:3,error(2,:),'b:x','linewidth',2); hold on; plot(1:1:3,error(3,:),'k-.s','linewidth',2); hold on; plot(1:1:3,error(4,:),'c--d','linewidth',2); title('Elman預測誤差圖') set(gca,'Xtick',[1:3]) legend('7','11','14','18','location','best') xlabel('時間點') ylabel('誤差') hold off;web browser http://www.ilovematlab.cn/viewthread.php?tid=63640 %% % % <html> % <table align="center" > <tr> <td align="center"><font size="2">版權所有:</font><a % href="http://www.ilovematlab.cn/">Matlab中文論壇</a>&nbsp;&nbsp; <script % src="http://s3.cnzz.com/stat.php?id=971931&web_id=971931&show=pic" language="JavaScript" ></script>&nbsp;</td> </tr></table> % </html> %

目前知道的關于Elman神經網絡的內容就這么多,還需要再多讀讀Paper。
~
有新的相關內容知識,?必更新?!
~
待研究透徹之后,定給出?Python代碼?!


-更新日志-
(2021.8.19只更新了個MATLAB的程序,著實丟人!!!)
~
?堅持讀Paper,堅持做筆記寫Blog!?

?( ′・?・` )

?


我相信所有被我遺忘的美好,一定還在這世上的某個角落,也相信總有一天,走過很長的生命,遇見美好,春暖花開

總結

以上是生活随笔為你收集整理的Elman神经网络原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。