感知机是一种判别模型,其目标是求得一个能够将数据集中的正实例点和负实例点完全分开的分离超平面。
- 感知机在1957年由弗兰克·罗森布拉特提出,是支持向量机和神经网络的基础。
- 感知机是一种二类分类的线性分类模型,输入为实例的特征向量,输出为实例的类别,正类取1,负类取-1。
- 感知机是一种判别模型,其目标是求得一个能够将数据集中的正实例点和负实例点完全分开的分离超平面。如果数据不是线性可分的,则最后无法获得分离超平面。
3.1 单层感知机及其基本原理
基本结构 — 由两层神经元构成的网络结构。
-
上面所讲到的M-P神经元模型其实就是对单个神经元的一种建模,需要注意的一点是,M-P模型的权重和阈值都是人为给定的,所以对这一类模型不存在“学习”的说法。其实,这也是M-P模型与单层感知机最大的区别,感知机中引入了学习的概念,权重和阈值是通过学习得来的。
-
单层感知机模型是由美国科学家Frank Rosenblatt(罗森布拉特)在1957年提出的,它的基本结构如图所示,简单来说,感知机(Perceptron)就是一个由两层神经元构成的网络结构:输入层接收外界的输入信号,通过激活函数(阈值)变换,把信号传送至输出层,因此它也被称为“阈值逻辑单元”;输出层(也被称为是感知机的功能层)就是M-P神经元。
-
输出的数学表达式如图所示。可以看到,大于阈值的时候输出为1,小于等于阈值的时候输出为0。
通过区分香蕉和西瓜的经典案例来看看感知机是如何工作的。
- 如图所示。为了简单起见,我们假设西瓜和香蕉由且仅有两个特征:形状和颜色,其他特征暂不考虑。这两个特征都是基于视觉刺激而最易得到的。假设特征 代表输入颜色,特征 代表形状,权重 和 的默认值暂且都设为1。为了进一步简化,我们把阈值 (也有教程称之为偏置—bias)设置为0。为了标识方便,我们将感知机输出数字化,若输出为“1”,代表判定为“西瓜”;若输出为“0”,代表判定为“香蕉”。
-
这样一来,可以很容易根据感知机输出 数学表达式,如下式所示,对西瓜和香蕉做出鉴定: 西瓜:𝑦=𝑓(𝑤_1 𝑥_1+𝑤_2 𝑥_2−𝜃)=𝑓(1×1+1×1−0)=𝑓(2)=1 香蕉:𝑦=𝑓(𝑤_1 𝑥_1+𝑤_2 𝑥_2−𝜃)=𝑓(1×(−1)+1×(−1)−0)=𝑓(−2)=0 这里,我们使用了最简单的阶跃函数作为激活函数。在阶跃函数中,输出规则非常简单:当 中 时, 输出为1,否则输出为0。通过激活函数的“润滑”之后,结果就变成我们想要的样子,这样就实现了西瓜和香蕉的判定。 这里需要说明的是,对象的不同特征(比如水果的颜色或形状等),只要用不同数值区分表示开来即可,具体用什么样的值,其实并没有关系。但你们或许还会疑惑,这里的阈值(threshold) 和两个连接权值 和 ,为啥就这么巧分别就是0、1、1呢?如果取其它数值,会有不同的判定结果吗? 接下来我们假定 还是等于1,而 等于-1,阈值 还是等于0。然后我们对于西瓜的特征:绿色圆形通过加权求和再经过阶跃激活函数后输出如下式所示: 西瓜:𝑦=𝑓(𝑤_1 𝑥_1+𝑤_2 𝑥_2−𝜃)=𝑓(1×1+(−1)×1−0)=𝑓(0)=0
-
输出为0,而我们假设的输出值0为香蕉,显然判断错了,对于香蕉的特征我们加权求和经过阶跃激活函数得到输出值为0,对应香蕉,判断正确。由此观之,我们判断正确错误和我们的权值 、 和阈值相关。那么怎么选择权值和阈值呢?事实上,我们并不能一开始就知道这几个参数的取值,而是一点点地“折腾试错”(Try-Error),而这里的“折腾试错”其实就是感知机的学习过程。
3.2 感知机的学习过程
神经网络的学习规则 — 调整神经元之间的连接权值和神经元内部阈值的规则。
- 中国有句古话&#x