基于材料生成算法優化概率神經網絡PNN的分類預測 - 附代碼

基于材料生成算法優化概率神經網絡PNN的分類預測 - 附代碼

文章目錄

  • 基于材料生成算法優化概率神經網絡PNN的分類預測 - 附代碼
    • 1.PNN網絡概述
    • 2.變壓器故障診街系統相關背景
      • 2.1 模型建立
    • 3.基于材料生成優化的PNN網絡
    • 5.測試結果
    • 6.參考文獻
    • 7.Matlab代碼

摘要:針對PNN神經網絡的光滑因子選擇問題,利用材料生成算法優化PNN神經網絡的光滑因子的選擇,并應用于變壓器故障診斷。

1.PNN網絡概述

概率神經網絡( probabilistic neural networks , PNN )是 D. F. Specht 博士在 1 989 年首先提出的,是一種基于 Bayes 分類規則與 Parzen窗的概率密度面數估計方法發展而來的并行算 法。它是一類結胸簡單、訓練簡潔、應用廣泛的人工神經網絡 。在實際應用中,尤其是在解決分類問題的應用中, PNN 的優勢在于用線性學習算法來完成非線性學 習算法所傲的工作,同 時保持非線性算法的高精度等特性;這種網絡對應的權值就是模式樣本的分布,網絡不需要訓練,因而能夠滿足訓練上實時處理的要求。

PNN 網絡是由徑向基函數網絡發展而來的一種前饋型神經網絡,其理論依據是貝葉斯最小風險準則(即貝葉斯決策理論), PNN作為徑向基網絡的一種,適合于模式分類。當分布密度 SPREAD 的值接近于 0 時,它構成最鄰分類器; 當 SPREAD 的值較大時,它構成對幾個訓練樣本的臨近分類器 。 PNN 的層次模型,由輸入層、模式層、求和層、輸出層共 4 層組成 , 其基本結構如圖 1 所示。
f ( X , w i ) = e x p [ ? ( X ? w i ) T ( X ? W i ) / 2 δ ] (1) f(X,w_i)=exp[-(X-w_i)^T(X-W_i)/2\delta]\tag{1} f(X,wi?)=exp[?(X?wi?)T(X?Wi?)/2δ](1)
式中, w i w_i wi?為輸入層到模式層連接的權值 ; δ \delta δ為平滑因子,它對分類起著至關重要的作用。第 3 層是求和層,是將屬于某類的概率累計 ,按式(1)計算 ,從而得到故障模式的估計概率密度函數。每一類只有一個求和層單元,求和層單元與只屬于自己類的模式層單元相連接,而與模式層中的其他單元沒有連接。因此求和層單元簡單地將屬于自己類的模式層單元 的輸出相加,而與屬于其他類別的模式層單元的輸出無關。求和層單元的輸出與各類基于內 核的概率密度的估計成比例,通過輸出層的歸一化處理 , 就能得到各類的概率估計。網絡的輸 出決策層由簡單的闊值辨別器組成,其作用是在各個故障模式的估計概率密度中選擇一個具 有最大后驗概率密度的神經元作為整個系統的輸出。輸出層神經元是一種競爭神經元,每個神經元分別對應于一個數據類型即故障模式,輸出層神經元個數等于訓練樣本數據的種類個 數,它接收從求和層輸出的各類概率密度函數,概率密度函數最大的那個神經元輸出為 1 ,即 所對應的那一類為待識別的樣本模式類別,其他神經元的輸出全為 0 。

圖1.PNN網絡結構

2.變壓器故障診街系統相關背景

運行中的變壓器發生不同程度的故障時,會產生異常現象或信息。故障分析就是搜集變壓器的異常現象或信息,根據這些現象或信息進行分析 ,從而判斷故障的類型 、嚴重程度和故障部位 。 因此 , 變壓器故障診斷的目的首先是準確判斷運行設備當前處于正常狀態還是異常狀態。若變壓器處于異常狀態有故障,則判斷故障的性質、類型和原因 。 如是絕緣故障、過熱故障還是機械故障。若是絕緣故障,則是絕緣老化 、 受潮,還是放電性故障 ;若是放電性故障又 是哪種類型的放電等。變壓器故障診斷還要根據故障信息或根據信息處理結果,預測故障的可能發展即對故障的嚴重程度、發展趨勢做出診斷;提出控制故障的措施,防止和消除故障;提出設備維修的合理方法和相應的反事故措施;對設備的設計、制造、裝配等提出改進意見,為設備現代化管理提供科學依據和建議。

2.1 模型建立

本案例在對油中溶解氣體分 析法進行深入分析后,以改良三比值法為基礎,建立基于概率神經網絡的故障診斷模型。案例數據中的 data. mat 是 33 × 4 維的矩陣,前3列為改良三比值法數值,第 4 列為分類的輸出,也就是故障的類別 。 使用前 23 個樣本作為 PNN 訓練樣本,后10個樣本作為驗證樣本 。

3.基于材料生成優化的PNN網絡

材料生成算法原理請參考:https://blog.csdn.net/u011835903/article/details/124221652

利用材料生成算法對PNN網絡的光滑因子進行優化。適應度函數設計為訓練集與測試集的分類錯誤率:
f i t n e s s = a r g m i n { T r a i n E r r o r R a t e + P r e d i c t E r r o r R a t e } (2) fitness = argmin\{TrainErrorRate + PredictErrorRate\}\tag{2} fitness=argmin{TrainErrorRate+PredictErrorRate}(2)

適應度函數表明,如果網絡的分類錯誤率越低越好。

5.測試結果

材料生成參數設置如下:

%% 材料生成參數
pop=20; %種群數量
Max_iteration=20; %  設定最大迭代次數
dim = 1;%維度,即權值與閾值的個數
lb = 0.01;%下邊界
ub = 5;%上邊界

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

從結果來看,材料生成-pnn能夠獲得好的分類結果。

6.參考文獻

書籍《MATLAB神經網絡43個案例分析》,PNN原理部分均來自該書籍

7.Matlab代碼

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/160640.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/160640.shtml
英文地址,請注明出處:http://en.pswp.cn/news/160640.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JDK命令使用總結

目錄 javacjava javac 將源碼(*.java)編譯成字節碼(*.class) javac HelloWorld.javajava 運行字節碼(*.class) 不能加后綴名 java HelloWorld直接運行單文件源碼(*.java) Java11以上才支持 java HelloWorld.java

ROSNS3(一)

https://github.com/malintha/rosns3 第一步:clone和構建rosns3客戶端 第二步:運行 最詳細的ubuntu 安裝 docker教程 - 知乎 1. unable to find source space /home/muta/src 解決方法: 將副將將碰到的bug,解決方法_#include &…

【C++ Primer Plus學習記錄】遞增運算符(++)和遞減運算符(--)

遞增運算符()和遞減運算符(--):前綴版本位于操作數前面,如x;后綴版本位于操作數后面,如x。兩個版本對操作數的影響是一樣的,但是影響的時間不同。這就像吃飯前買單和吃飯…

Python從零開始快速搭建一個語音對話機器人

文章目錄 01-初心緣由02-準備工作03-語音機器人的搭建思路04-語音生成音頻文件05-音頻文件轉文字STT06-與圖靈機器人對話07-文字轉語音08-語音對話機器人的完整代碼09-結束語10-有問必答關于Python技術儲備一、Python所有方向的學習路線二、Python基礎學習視頻三、精品Python學…

SSH連接遠程服務器報錯:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED 解決方法

一.錯誤描述 報錯信息里提示了路徑信息/root/.ssh/known_hosts:20 二.解決方案 方法一 輸入以下指令: ssh-keygen -R XXX(需要連接遠程服務器的ip) 按照我的例子ip:10.165.7.136,會返回以下信息: 重新嘗試連接: 輸…

C++學習 --set

目錄 1, 什么是set 2, 創建set 2-1, 標準數據類型 2-2, 自定義數據類型 2-3, 其他創建方式 3, 操作set 3-1, 賦值 3-2, 添加元素(insert) 3-2-1&…

MySQL的樂觀鎖和悲觀鎖

1、樂觀鎖: 樂觀鎖在操作數據的時候,是保持一種樂觀的狀態,認為別的線程是不會同時修改數據的,所以是不會上鎖的,但是在更新的時候,會判斷一下在這個期間內是否有別的線程修改過數據。 主要的流程&#x…

規劃類3d全景線上云展館幫助企業輕松拓展海外市場

科技3D線上云展館作為一種基于VR虛擬現實和互聯網技術的新一代展覽平臺。可以在線上虛擬空間中模擬真實的展館,讓觀眾無需親自到場,即可獲得沉浸式的參觀體驗。通過這個展館,您可以充分、全面、立體展示您的產品、服務以及各種創意作品&#…

python運算符重載之成員關系和屬性運算

1 python運算符重載之成員關系和屬性運算 1.1 重載成員關系運算符 1.1.1 contains,iter,getitem python使用成員關系運算符in時, 按優先級調用方法:contains>iter>getitem; class MyIters:def __init__(self,value):self.datavalu…

2023年【安全生產監管人員】考試題及安全生產監管人員找解析

題庫來源:安全生產模擬考試一點通公眾號小程序 安全生產監管人員考試題參考答案及安全生產監管人員考試試題解析是安全生產模擬考試一點通題庫老師及安全生產監管人員操作證已考過的學員匯總,相對有效幫助安全生產監管人員找解析學員順利通過考試。 1、…

【樹莓派】Camera Module 使用

工具 RPI4RPI Camera Module 2 硬件安裝 直接插到板子的相機帶子插口上即可 使用前提 libcamera-hello運行這個命令能夠成功,否則需要裝相應的包 在 RPI4 上測試 libcamera-jpeg -o 00001.jpg -t 2000 --width 640 --height 480t 表示程序運行(預…

SA8255 Q+A android 登錄QNX

需要工具busybox 130|gen4_gvm:/ # cd /data/ gen4_gvm:/data # ./busybox telnet 192.168.1.1Entering character mode Escape character is ^].QNX Neutrino (localhost) (ttyp0)login: root No home directory. Logging in with home "/". # 用戶名&#xff1a…

數據結構-棧的實現

1.棧的概念及結構 棧:一種特殊的線性表,其只允許在固定的一端進行插入和刪除元素操作。進行數據插入和刪除操作的一端稱為棧頂,另一端稱為棧底。棧中的數據元素遵守后進先出LIFO(Last In First Out)的原則。 壓棧&…

Matlab群體智能優化算法之海象優化算法(WO)

文章目錄 一、靈感來源二、算法的初始化三、GTO的數學模型Phase1:危險信號和安全信號Phase2:遷移(探索)Phase3:繁殖(開發) 四、流程圖五、偽代碼六、算法復雜度七、WO搜索示意圖八、實驗分析和結…

FreeRTOS列表和列表項

FreeRTOS內核調度使用了大量的列表(list)和列表項(listitem)數據結構。它的源碼中涉及到很多列表的操作,對于FreeRTOS來說,列表就是它最基礎的一部分,列表被用作FreeRTOS調度器使用,…

力扣.面試題 04.06. 后繼者(java 樹的中序遍歷)

Problem: 面試題 04.06. 后繼者 文章目錄 題目描述思路解題方法復雜度Code 題目描述 設計一個算法,找出二叉搜索樹中指定節點的“下一個”節點(也即中序后繼)。 如果指定節點沒有對應的“下一個”節點,則返回null。 思路 由于題…

lombok @Slf4j注解啥作用

Logger logger Logger.getLogger(Test.class); logger.debug("這是一個調試信息"); logger.info("這是一個info信息");log4j 使用分兩步 第一步:private final Logger logger LoggerFactory.getLogger(當前類名.class); 第二步:記…

Python開發運維:Celery連接Redis

目錄 一、理論 1.Celery 二、實驗 1.Windows11安裝Redis 2.Python3.8環境中配置Celery 三、問題 1.Celery命令報錯 2.執行Celery命令報錯 3.Win11啟動Celery報ValueErro錯誤 一、理論 1.Celery (1) 概念 Celery是一個基于python開發的分布式系統,它是簡單…

Linux 命令: cut 和 tr

1. 寫在前面 本文主要介紹:Linux "cut "和 “tr” 命令行實用程序概述; 公眾號: 滑翔的紙飛機 2. Linux 命令: cut “cut” 命令是一種命令行工具,允許我們剪切指定文件或管道數據的部分內容,并…