您的位置:首页 > 编程语言 > C语言/C++

2.5 单层感知器 逻辑“或”运算学习算法C++程序

2012-03-05 22:14 260 查看
学习算法如下:

1.设置变量和参量:

X(n)=[1,x1(n),x2(n),...,xm(n)]T,为输入向量,或称训练样本。

W(n)=[b(n),w1(n),w2(n),...,wm(n)]T,为权值向量。

……

……见人工神经网络原理及仿真实例 第2版 高隽 25页。

#include<iostream>
using namespace std;
#define N 100 //迭代次数

int main()
{
long i,x[4][3]={{1,0,0},{1,0,1},{1,1,0},{1,1,1}};
double w
[3],m,y,r=0.8,d[4]={0,1,1,1};//目标函数d改为0001即为“与”
int n=0;
for(i=0;i<3;i++){
w[0][i] = 0.5;
}
while(n<N-1){
m = w
[0]+w
[1]*x[n%4][1]+w
[2]*x[n%4][2];
if(m<0) y=0;
else	y=1;
for(i=0;i<3;i++){
w[n+1][i] = w
[i]+r*(d[n%4]-y)*x[n%4][i];//改权值
}
n++;
}
for(i=0;i<3;i++){cout<<w
[i]<<endl;}
system("pause");

}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐