神经网络算法代码java 神经网络算法代码实现( 四 )


}
}
rbf神经网络在java中如何实现原代码rbf神经网络有多种学习策略 , 首先选取中心,可以随机?。部刹捎肒均值聚类 , 然后学习权值 , 可采用伪逆法(涉及矩阵的奇异值分解) , 也可以采用最小均方误差法,或者进化算法,上述方法中心是固定的,也可采用梯度下降法同时学习中心、宽度、权值,这个比较复杂 。具体参考《神经网络原理》 。
你用Java写可以参考Weka , 其完全开源,不过我没有看过源码,不知其用何种学习策略 。最近用C++写了一个简单的rbf,即固定中心、最小均方误差法学习权值,但我发现采用K均值聚类选中心跟随机选没有什么区别,不知二者有何区别?自己写伪逆法对于我来说基本不可能,及其复杂,我看到过某人写了个天书般的程序,一个函数500行 。
希望对你有帮助,如果你有新发现,欢迎与我探讨,国内估计没多少人真正自己写过RBF,都用MATLAB代入了事 。
你好,想跟你要一下神经网络的代码,看到你之前解答过问题,谢谢了// BP.cpp : Defines the entry point for the console application.
//该程序实现神经网络神经网络算法代码java的BP算法神经网络算法代码java,输入节点数,输出节点数,隐层数,隐层节点数任意,由用户决定 。
//其中隐层数指神经网络算法代码java的是总共层数包含输出层 , 比如说异或算法为2层,第一层节点数为2,第二层也即输出层节点数为1,输入点数为2。
//但是该程序对异或算法实现并不理想,对多层多节点神经网络算法代码java的神经网络有较好的结果
#include "stdafx.h"
#include "iostream.h"
#include time.h
#include stdlib.h
#include fstream
#include math.h
#include "stdio.h "
#define MAXCOUNT 1e5 //迭代训练次数上限 1的10的正5次幂
//精度0.001的随机浮点数,范围在-0.5——0.5
//rand()取0到32767,最大为2147483647. %模运算表示余数为0到1000之间 , 所以乘上浮点数0 。001f就是0-1之间的数,再减去0.5,就是-0.5到+0.5
float randf()
{
return (float)((rand() % 1001) * 0.001f-0.5);
}
//高斯随机数产生函数
//这样生成的高斯分布随机数序列的期望为0.0,方差为1.0 。若指定期望为E,方差为V,则只需增加:X = X * V + E;
double gaussrand()
{
static double V1, V2, S;
static int phase = 0;
double X;
if(phase == 0) {
do {
double U1 = (double)rand() / RAND_MAX;
double U2 = (double)rand() / RAND_MAX;
V1 = 2 * U1 - 1;
V2 = 2 * U2 - 1;
S = V1 * V1 + V2 * V2;
} while(S = 1 || S == 0);
X = V1 * sqrt(-2 * log(S) / S);
} else
X = V2 * sqrt(-2 * log(S) / S );
phase = 1 - phase;
return X;
}
//定义一个多层前向BP网络
class BP
{
public:
double ***p;//记录所有的权值
double ***ddp;//记录所有的权值增量
int *pnode;//记录每一层的节点数
double **pnodey;//记录每组每一层的节点的输出值
double **ddlj;//记录每组每一层的节点的ddlj
double **pX; //记录输入样本
double **pY; //记录输入理想输出值
int Sidenum; //隐层数目
int Inputnodenum;
int outputnodenum;
int yangbenzushu;
BP()
{
Sidenum=0;
Inputnodenum=0;
outputnodenum=0;
yangbenzushu=0;
}
~BP()
{
for(int m=0;mSidenum;m++)
{
for(int n=0;npnode[m+1];n++)
{
delete[] p[m][n];
delete[] ddp[m][n];
}
delete[] p[m];
delete[] ddp[m];
}
delete[] p;
delete[] ddp;

推荐阅读