-
大小: 11KB文件類型: .rar金幣: 2下載: 1 次發(fā)布日期: 2021-06-03
- 語言: 其他
- 標(biāo)簽:
資源簡介
自己編寫的模糊神經(jīng)網(wǎng)絡(luò)模型,自測試能用,優(yōu)化效果比較不錯?;贐P神經(jīng)網(wǎng)絡(luò)進行修改后的模型。

代碼片段和文件信息
import?java.io.File;
import?java.util.ArrayList;
import?java.util.List;
import?java.util.Random;
/*
?*?創(chuàng)建日期?2015-04-12
?*
?*?三層BP神經(jīng)網(wǎng)絡(luò),輸入,輸出,隱含層數(shù)量可以設(shè)定
?*?輸入層數(shù)量?InputNum?隱含層數(shù)量?MiddleNum?輸出層數(shù)量?OutputNum?
?*?
?*?總程序入口為:public?void?TrainBP(String?inputFileName?String?outputFileName?int?fNum?MainNN?bpnn)
?*?TrainBPByADCQGA?和?BPRunByADCQGA?為兩種訓(xùn)練學(xué)習(xí)方式??梢苑謩e調(diào)用
?*?
?*?@author?Hap?Kong
?*/
public?class?MainNN?{
//*****************變量定義********???i對應(yīng)輸入層的索引,j對應(yīng)隱含層的索引,k對應(yīng)輸出層的索引???********//
public??int?InputNum=3MiddleNum=4OutputNum=1;?????????????????//輸入層,隱含層,輸出層神經(jīng)元數(shù)量
public??double?arf=0.8land=0.25thita=0.6;??????????????????????//thita?閾值?land學(xué)習(xí)因子?arf動量因子
public??double?wji[][]=new?double[MiddleNum][];?????????????????//輸入層到中間隱含層的權(quán)重
public??double?wji_b[][]=new?double[MiddleNum][];???????????????//輸入層到中間隱含層的權(quán)重(上次值)
public??double?wkj[][]=new?double[OutputNum][];?????????????????//中間隱含層到輸出層的權(quán)重
public??double?wkj_b[][]=new?double[OutputNum][];???????????????//中間隱含層到輸出層的權(quán)重(上次值)
public??double?xigk[]=new?double[OutputNum];???????????????????//神經(jīng)元輸出對輸入的導(dǎo)數(shù)
public??double?xigj[]=new?double[MiddleNum];???????????????????//神經(jīng)元中間層對輸入的導(dǎo)數(shù)
public??double?aj[]=new?double[MiddleNum];?????????????????????//隱含層神經(jīng)元的輸出
public??double?ak[]=new?double[OutputNum];?????????????????????//輸出層神經(jīng)元的輸出
List?inputName?=?new?ArrayList();??????????????//訓(xùn)練數(shù)據(jù)?自變量的名稱
List?outputName?=?new?ArrayList();?????????????//訓(xùn)練數(shù)據(jù)?輸出變量的名稱
List?inputData?=?new?ArrayList();??????????//訓(xùn)練數(shù)據(jù)?自變量的數(shù)據(jù)
List?outputData?=?new?ArrayList();?????????//訓(xùn)練數(shù)據(jù)?輸出變量的數(shù)據(jù)
public?int?fuzzyNum?=?0;???????????????????????????????????????//輸入為隸屬度網(wǎng)絡(luò)的個數(shù);BP主神經(jīng)網(wǎng)絡(luò)的前fuzzyNum個位隸屬度輸入
public?double[]?fuzzyobjectiveOutput;??????????????????????????//隸屬度網(wǎng)絡(luò)的期望輸出,即所優(yōu)化的輸入
public?List?msnnList?=?new?ArrayList();????????????//存儲隸屬度網(wǎng)絡(luò)
public?int?MaxTrainNum?=?100000;
public?double?deltaMSNNOutputRange?=?0.050;?????????????????????//MSNN輸出的調(diào)整范圍
/////********************************初始化神經(jīng)網(wǎng)絡(luò)**************************************////
public?void?InitializeBPNNWithTrainFile(String?inputFileName?String?outputFileName)
{
this.InputNum?=?ReadInputTrainDataFromFile(inputFileName);
this.MiddleNum?=?this.InputNum+1;
this.OutputNum?=?ReadOutputTrainDataFromFile(outputFileName);
this.wji?=new?double[MiddleNum][];?????????????????//輸入層到中間隱含層的權(quán)重
this.wji_b?=new?double[MiddleNum][];???????????????//輸入層到中間隱含層的權(quán)重(上次值)
this.wkj?=new?double[OutputNum][];?????????????????//中間隱含層到輸出層的權(quán)重
this.wkj_b?=new?double[OutputNum][];???????????????//中間隱含層到輸出層的權(quán)重(上次值)
this.xigk?=new?double[OutputNum];???????????????????//神經(jīng)元輸出對輸入的導(dǎo)數(shù)
this.xigj?=new?double[MiddleNum];???????????????????//神經(jīng)元中間層對輸入的導(dǎo)數(shù)
this.aj?=new?double[MiddleNum];?????????????????????//隱含層神經(jīng)元的輸出
this.ak?=new?double[OutputNum];?????????????????????//輸出層神經(jīng)元的輸出
this.InitializeWeight();
msnnList.clear();
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3309??2015-05-01?09:31??TestSAMMNN.java
?????文件??????40001??2015-05-01?09:41??MainNN.java
?????文件??????31819??2015-04-30?19:53??MSNN.java
-----------?---------??----------?-----??----
????????????????75129????????????????????3
評論
共有 條評論