资源简介
自己编写的模糊神经网络模型,自测试能用,优化效果比较不错。基于BP神经网络进行修改后的模型。
代码片段和文件信息
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
/*
* 创建日期 2015-04-12
*
* 三层BP神经网络,输入,输出,隐含层数量可以设定
* 输入层数量 InputNum 隐含层数量 MiddleNum 输出层数量 OutputNum
*
* 总程序入口为:public void TrainBP(String inputFileName String outputFileName int fNum MainNN bpnn)
* TrainBPByADCQGA 和 BPRunByADCQGA 为两种训练学习方式。可以分别调用
*
* @author Hap Kong
*/
public class MainNN {
//*****************变量定义******** i对应输入层的索引,j对应隐含层的索引,k对应输出层的索引 ********//
public int InputNum=3MiddleNum=4OutputNum=1; //输入层,隐含层,输出层神经元数量
public double arf=0.8land=0.25thita=0.6; //thita 阈值 land学习因子 arf动量因子
public double wji[][]=new double[MiddleNum][]; //输入层到中间隐含层的权重
public double wji_b[][]=new double[MiddleNum][]; //输入层到中间隐含层的权重(上次值)
public double wkj[][]=new double[OutputNum][]; //中间隐含层到输出层的权重
public double wkj_b[][]=new double[OutputNum][]; //中间隐含层到输出层的权重(上次值)
public double xigk[]=new double[OutputNum]; //神经元输出对输入的导数
public double xigj[]=new double[MiddleNum]; //神经元中间层对输入的导数
public double aj[]=new double[MiddleNum]; //隐含层神经元的输出
public double ak[]=new double[OutputNum]; //输出层神经元的输出
List inputName = new ArrayList(); //训练数据 自变量的名称
List outputName = new ArrayList(); //训练数据 输出变量的名称
List inputData = new ArrayList(); //训练数据 自变量的数据
List outputData = new ArrayList(); //训练数据 输出变量的数据
public int fuzzyNum = 0; //输入为隶属度网络的个数;BP主神经网络的前fuzzyNum个位隶属度输入
public double[] fuzzyobjectiveOutput; //隶属度网络的期望输出,即所优化的输入
public List msnnList = new ArrayList(); //存储隶属度网络
public int MaxTrainNum = 100000;
public double deltaMSNNOutputRange = 0.050; //MSNN输出的调整范围
/////********************************初始化神经网络**************************************////
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][]; //输入层到中间隐含层的权重
this.wji_b =new double[MiddleNum][]; //输入层到中间隐含层的权重(上次值)
this.wkj =new double[OutputNum][]; //中间隐含层到输出层的权重
this.wkj_b =new double[OutputNum][]; //中间隐含层到输出层的权重(上次值)
this.xigk =new double[OutputNum]; //神经元输出对输入的导数
this.xigj =new double[MiddleNum]; //神经元中间层对输入的导数
this.aj =new double[MiddleNum]; //隐含层神经元的输出
this.ak =new double[OutputNum]; //输出层神经元的输出
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
相关资源
- 基于ARIMA、BP神经网络与GM的组合模型
- 基于双隐含层BP神经网络的预测
- 基于PSO优化BP神经网络的水质预测研究
- BP神经网络算法逼近一个正弦函数
- 基于主成分分析与BP神经网络的雾天能
- 基于BP神经网络的挖掘机液压系统故障
- BP神经网络在手机评价中的应用
- 基于因素分析与BP神经网络的上市公司
- BP神经网络计算过程详解
- 基于BP神经网络电力系统短期负荷预测
- BP神经网络用于两类图片识别分类
- 各种优化BP神经网络算法
- 基于BP神经网络的车牌识别技术
- 基于LabVIEW的BP神经网络算法的设计实
- bp神经网络图像识别
- 基于BP神经网络的人脸识别的源代码
- BP神经网络在GPS高程拟合中的应用
- bp神经网络轴承故障诊断系统
- 基于遗传算法的BP神经网络在多目标优
- 论文:基于BP神经网络和GM1,1模型的
- BP神经网络详解与
- 车牌识别课程设计,能运行,模板匹
- BP数字识别代码——了解和测试BP神经
- BP神经网络实现函数拟合
- BP预测温度模型_2019.10.14.rar
- 基于PCA和BP神经网络的人脸识别
- excel版BP神经网络,公式运算
- BP神经网络的算法改进及应用
- 基于BP神经网络的无刷直流电机PID控制
- 用BP神经网络实现minist手写数字识别
评论
共有 条评论