2.5 单层感知器 逻辑“或”运算学习算法C++程序
学习算法如下:
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[N][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[n][0]+w[n][1]*x[n%4][1]+w[n][2]*x[n%4][2];
if(m<0) y=0;
else y=1;
for(i=0;i<3;i++){
w[n+1][i] = w[n][i]+r*(d[n%4]-y)*x[n%4][i];//改权值
}
n++;
}
for(i=0;i<3;i++){cout<<w[n][i]<<endl;}
system("pause");
}
浙公网安备 33010602011771号