标签:调整 缺点 start std 结束 分享 nts details http
版权声明:本文为博主原创文章,未经博主允许不得转载。
引例:判断一个人是否长得帅??? 有如下feature: 身高,体重,三围,颜值,学习成绩(帅的人学习成绩好的少...为何要这么一个扯淡的特征下面会讲解)等等。
假设有一个标准:每一个评分项给予多少分的权重,当所有feature与权重相乘的和大于某一个值的时候,那这个人就是帅哥!!
例子: 180*5+150*3+....>1000 帅哥! 小于则.....
感知器任务:通过已知的实例调节权重,使其能够预测出未知实例的结果。
符号表示:
if (w1*x1+w2*x2+.......>b) return true
else return false
由于b是常数,我们可以将b表示为-w0×X0,则可以表示为
if (w1*x1+w2*x2+.......+w0×x0>0) return true
else return false
训练方法:
当预测值等于我们期待的结果时: 什么也不用做
但当其小于的时候,说明我们增加的权值小了,赢补上一个正数数 例如所有xi××2的和数学表达推导如下:
w1*x1+a*x1*x1+w2*x2+a*x2*x2+...... 住:a为学习速率因子,会影响学习速率
w的更新值相当于wi=wi+a×xi
当其大于时候应改为减号,归结起来应为如下表达式:wi=wi+a*(y-h(x))*xi
伪代码表示:
1.迭代的停止条件是什么?
答:自己定,可以是某个验证集取得理想结果的时候,或是向上述例子,单纯是循环多少次
2.当训练时候遇到正确样本会发生什么?
答:什么也不发生,当预测结果正确时候,就假定是最好感知器
3.每次迭代调整w或是所有样本迭代完全后调整w(上例)有区别么?
答:区别不大,也许w权值会有所变化,但实际效果没多大区别。
4.某轮迭代后结果一定变好么?
答:不一定,但总体趋势是变好的!
5.a的作用和取值问题
答:作用是控制学习速率,一般选0-1之间,过大不能学习到最优值,过小没有什么变化~~
C语言实现代码如下:
由一个计数器,吧每次最好的记录即可!
缺点:只能解决线性可分问题
通过升维度来解决!但是并不一定能取得很好效果,如增加学习成绩这种特征...
更好的解决方法以后再讨论!
标签:调整 缺点 start std 结束 分享 nts details http
原文地址:http://www.cnblogs.com/Crysaty/p/6137062.html