人工智能——神经网络算法初体验
来源:互联网 发布:java职业培训机构 编辑:程序博客网 时间:2024/06/11 04:30
这个程序其实就是让人工智能学习并认识怎么判断一个0~9的数是奇数还是偶数,最简单的人工智能程序
// 感知器判断数字奇偶性 #include<stdlib.h>#include<stdio.h>#include<time.h>int M[10];//权值 int X[10]={1,2,3,4,5,6,7,8,9,10};//输入向量 int Y[10]={1,0,1,0,1,0,1,0,1,0};//理想输出向量,0,奇数,1,偶数 int O[10];//保存输出向量 int ST=52;//阈值 void initM(){//初始化权值srand((unsigned int)time(0));for(int x=0;x<10;++x)M[x]=rand()%100;} int active(int m,int x){// 跃迁型激活函数 int o=m*x;if(o>ST)return 1;else return 0;}void calcY(){//计算输出向量 for(int x=0;x<10;++x)O[x]=active(M[x],X[x]);}//根据实际输出向量和理想输出向量调整权向量,//返回实际输出和理想输出不匹配的数目int adjustM(){int err=0;for(int x=0;x<10;++x)if(O[x]!=Y[x]){err++;if(0==O[x])M[x]+=X[x];elseM[x]-=X[x];} return err;}void printM(){//打印权向量 for(int x=0;x<10;++x)printf("M[%i]=%i\n",x,M[x]);}void test(int input){printf("[%i][%i]",M[input],X[input]);if(active(M[input],X[input]))printf("%d 是偶数\n",input);elseprintf("%d 是奇数\n",input);}int main(){int n=0;initM();while(1){// 一直训练直到能够100%正确为止 n++;calcY();int err=adjustM();if(0>=err)break;//能够 100 %正确地回答问题了,结束训练printf("错误数%d\n",err);}printM();printf("阈值%d 训练次数%d\n",ST,n);while(1){int a=0;scanf("%i",&a);if(0>a || 9<a)break;test(a);}return 0;}
7 0
- 人工智能——神经网络算法初体验
- 人工智能——神经网络算法初体验
- 人工智能——神经网络算法初体验
- 人工智能——神经网络算法初体验
- 人工智能——神经网络算法初体验 【精华】
- 人工智能算法—决策树
- 人工智能算法—决策树
- 人工智能算法—决策树
- 人工智能算法—决策树
- 游戏开发中的人工智能——有限状态机和神经网络
- C++ 人工智能算法系列一(神经网络算法基础知识)
- 神经网络——BP算法
- 神经网络,机器学习,算法,人工智能等 30 门免费课程
- 人工智能算法—朴素贝叶斯分类
- 人工智能实战——人工神经网络(C库iOS交叉编译)
- 人工智能之人工神经网络
- 人工智能之BP神经网络
- 深度神经网络之tensorflow初体验
- CodeForces 611CNew Year and Domino(DP)
- VIM 实用技巧 小记
- Android 5.1编译指令
- 电视答题
- Mysql 出现Table‘xxx’is read only问题
- 人工智能——神经网络算法初体验
- 汉诺塔的实现
- leetcode随笔VIII
- static、auto、register、extern
- 关于现行电商的几个问题
- 二进制取值
- Java项目--坦克大战1
- SQOOP --hive-import 错误(Sqoop Hive exited with status 1)及解决
- 李白打酒