国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > 综合技术 > 记一下机器学习笔记 Rosenblatt感知机

记一下机器学习笔记 Rosenblatt感知机

来源:程序员人生   发布时间:2016-06-13 11:05:06 阅读次数:2954次

1入ML深似海啊…
这里主要是《神经网络与机器学习》(Neural Networks and Learning Machines,以下简称《神机》)的笔记,和1些周志华的《机器学习》的内容,可能夹杂有自己的吐槽,和自己用R语言随意撸的实现。
话说这个《神经网络与机器学习》还真是奇书,不知是作者风格还是翻译问题,1眼望去看不到几句人话(或许是水利狗看不懂),感觉我就是纯买来自虐的。
作为开始固然是最古老的机器学习算法之1,神经网络的板砖感知机,对应《神机》的第1章。

由于是Rosenblatt提出的模型所以就加上了他名字作为前缀。这是1个有监督学习,也就是不但给出自变量还要给出结果值让机器自个拟合的模型,而且是1个2分类模型。再说清楚1点,这玩意只能分线性可分的样本,也就是对2维的数据,它只能弄1条直线把样本分开,对3维的数据,只能弄个平面把样本分开。
所以像竟然连异或运算都不能弄之类的对它的吐槽历来很多。

感知机概念


感知机由1个线性组合器(说白了就是把1系列输入值加权求和)和1个硬限幅器(说白了就是拿前面的求和取符号)组成。具体模样参考下图(来自《神机》):
这里写图片描述
我们将1组输入值记为x1,x2,...,xm,相应的权值记为w1,w2,w3...wm,另外还要有个偏置值b(相当于线性回归里边的截距)。把这些输入到感知机里边进行加权求和:

v=i=1mwixi+b

加权和v称为引诱局部域
然后对这个v取符号,也就是大于0取1,小于0取⑴,就这样决定这组输入值归为哪类:
y=sign(v)

y={+11xC1xC2.

可以用逼格更高的矩阵情势简洁表示:
y=sign(wTx+b)

xw就是把w1,w2,w3...wmx1,x2,...,xm写成1列阵,然后把前者转置为横阵再两矩阵相乘,也就是二者对应的每项相乘再求和。
那末每组输入值x就各是1个样本。

又或从几何角度理解:在m维空间上有这么1个超平面wTx+b=0x=[x1,x2,...,xm]T是这个空间上的1个点,这个点在超平面的1边归为1类,若在另外一边归为另外一类。

所以说样本必须线性可分的才可以被它分类。

感知机收敛定理


然后这玩意的学习方式是不断的误差修正,称为误差修正学习原则
当1个样本被正确分类的时候就没啥事,要是被毛病分类了就根据样本的各个份量调剂权值,就这样把整套样本丢进去跑几趟直到误差收敛为止。
现在干脆把偏置b弄进样本x里去,定义第n个输入样本:

x(n)=[+1,x1(n),x2(n),...,xm(n)]T

然后根据迭代步数n把权值向量这样定义:
w(n)=[w0(n),w1(n),w2(n),...,wm(n)]T

其中w0(n)即对应偏置

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生