神经网络(1):感知器
来源:互联网 发布:怎么关淘宝店铺 编辑:程序博客网 时间:2024/06/05 20:31
人工神经网络入门:
感知器是神经网络中最简单的一种模型,是通过加权求和函数计算,之后根据结果实现二分类。
感知器算法的实现:(实现二分类)
先输入两类样本,后对数据进行增广化,以及符号规范化,然后训练样本并调整权值,训练完毕后保存权值。
如:二维样本(0,1),前两个数字为二维输入。
增广化:将(0,1),变为(0,1,1),即隐含输入1。
符号规范化:如(0,1),(0,0)属于1类,(1,0),(1,1)属于2类,则增广化后分别为(0,1,1),(0,0,1),(1,0,1),(1,1,1),
规范化就是将某一类的值都乘以-1,比如2类样本乘以-1,即(0,1,1),(0,0,1),(-1,0,-1),(-1,-1,-1)。
代码实现:
定义全局变量:
#define MAX_SAMPLE_NUM 100 // 最大样本个数#define MAX_NUM 1000 // 最大训练次数double RATE = 0.6; // 学习率int SAMPLE_NUM = 0; // 样本个数int NUMBER = 2; // 维数double **SAMPLE; // 样本集double *SAMPLE_Y; // 真实结果集double *WEIGHT; // 权值集训练样本过程:
// 训练void train2(){int i,j,k,fal;WEIGHT = new double[NUMBER+1]; //初始化权值集for (i = 0; i<NUMBER+1; i++){WEIGHT[i] = 1;}cout << "\n开始训练!!!\n\n";k=0; //迭代次数while(true){fal=0; //划分错误的次数for(i=0; i<SAMPLE_NUM; i++){cout << "第" << ++k << "步迭代:";if(out(SAMPLE[i]) > 0) //正确划分{for(j=0; j<NUMBER+1; j++){cout << WEIGHT[j] << " ";}}else //调整权值{fal++;for(j=0; j<NUMBER+1; j++){WEIGHT[j] += RATE * SAMPLE[i][j];cout << WEIGHT[j] << " ";}cout << " 样本" << i+1 << "错分";}cout << endl;if(k==MAX_NUM){cout << "已达到最大训练次数!" <<endl;return;}}cout << "第" << k/SAMPLE_NUM << "轮迭代尚被错分的数量:" << fal <<"\n\n";if(fal==0)break;}}保存权值:
// 保存权值void saveWeight(char *filename){int i;ofstream file;file.open(filename);if (file.fail()) //文件打开失败{cout << "Can't open file!\n";return;}for(i=0; i<NUMBER+1; i++){file << WEIGHT[i] << " ";}file.close();cout << "\n权值保存在文件" << filename << "中!\n";}
感知器模型虽然简单,但是约束很大。感知器只能对线性可分的样本进行分类,对非线性的样本无效,而且只能分两类。不过,感知器也可以通过两两线性分类实现多分类。感知器只是入门的基础,对于其他分类问题,应使用其他神经网络算法实现。
0 0
- 神经网络(1):感知器
- MLP(多层感知器)神经网络
- 人工神经网络(二)单层感知器
- 人工神经网络(二)单层感知器
- 感知器和神经网络
- 单层感知器神经网络
- 感知器神经网络
- 感知器 人工神经网络
- 神经网络模型:感知器
- BP神经网络-感知器
- 神经网络-感知器
- 神经网络学习笔记(一)感知器神经网络
- 神经网络基础和感知器
- 感知器学习算法----神经网络
- 神经网络1.2-Rosenblatt感知器
- BP神经网络(一) --- 感知器
- 感知器算法与神经网络
- 从感知器到神经网络
- 链式前项星建图
- SparkSQL的3种Join实现
- Atitit 深入理解软件的本质 attilax总结 软件三原则"三次原则"是DRY原则和YAGNI原则的折
- 2440: [中山市选2011]完全平方数 (容斥原理+莫比乌斯函数)
- 集合小结
- 神经网络(1):感知器
- 解决前端到后端、后端到数据库、后端到前端的乱码问题
- 命令行使windows环境变量立即生效
- 模拟借书系统
- 32 日 历
- 设计模式--单例模式原理
- acm 寻找素数对
- ZCMU—1129
- 输入若干员工信息并解析为若干对象输出