感知机

January 06 2018 , Category: AI

人工智能(Artificial Intelligence)的应用在 2017 年已经走进了很多人的生活,有寻常电商网站上的推荐系统、小区门口的车牌识别、Tesla 等汽车品牌的自动驾驶,也有《最强大脑》舞台上以万分之一之差识别出双胞胎姐妹的机器人,还有屡战屡胜不可一世的 Alpha Go。

在敬畏各种人工智能技术发展的同时,我们仍需要去努力学习这些曾经没有足够重视的知识 – 一来是为了未来做足够的知识储备,二来也是为了在他人高谈阔论之时能够听懂一二。

概念

今天让我们来了解一个在「人工神经网络」中非常基础的概念:感知机(perceptron)。

首先,我们可能需要来回顾一下高中时代的生物学知识:

神经细胞

上图是一个神经元的结构图,一般来说,包含了树突、细胞体、细胞核、轴突和突触等。当然还有很多生物意义上的部分没有标注在图中。

我们经常听到的「人工神经网络」的概念中,最基础的一项就是用「模型」去模拟神经元的功能:

人工神经元

这张图是我简单绘制的,我们可以对比上面的神经元来看一下此图中有什么值得关注的内容:

另外还有些神经元中没有标注的内容,如:

在通过 P1, P2, P3 获取外部刺激(信号),S 进行处理,F 再进行传递(到下一个神经元),这就是一个完整的链路。

用一个简单的方程式来表达 S 处理后的值就是:S = P1*W1 + P2*W2 + P3*W3 + B

那么 F 是做什么的呢?这里就要提到另一个概念:传递函数(Transfer function)– 可以理解为在信号处理后又进行加工的一个步骤,列举几个常见的简单的传递函数:

函数 内容
阶梯函数 x <=0, y = 0; x > 0, y = 1
符号函数 x < 0, y = -1; x >=0, y = 1
线性函数 y = ax

实例

我们以一个非常简单的例子,来理解感知机是如何工作的:区分苹果与香蕉。

样本 颜色(P1) 形状(P2)
苹果 红色(1) 圆形(1)
香蕉 黄色(-1) 弯(-1)

这里,我们从两个颜色和形状两个纬度来区分苹果与香蕉,具体内容见上表。注意看括号中的标注,颜色为 P1,形状为 P2,两者是我们通过「树突」感知到的数据,其中的值也均有数字作为标记,便于进行计算。

想必你还记得上文中提到的简单的公式:

S = P1*W1 + P2*W2 + P3*W3 + B

我们先假设权重 W1,W2 和内部刺激参数 B 均为 1,那么 S 的值就是:

S(苹果) = 1 * 1 + 1 * 1 + 1 = 3
S(香蕉) = 1 * -1 + 1 * -1 + 1 = -1

再假设我们应用的传递函数为阶梯函数,那么就可以得到如下结果:

F(S(苹果)) = 1
F(S(香蕉)) = 0

如此,我们便完成了对上述样本的区分。

如何学习

并不是所有的感知机的过程都是一帆风顺的,上述例子中因为我们时来运转选择的参数刚好,因此可以正好区分实验对象,下面来看一个感知机进行学习的过程。

假设我们有如下已做好标记(带有期望结果)的样本:

样本 颜色(P1) 形状(P2) 期望结果
苹果 红色(1) 圆形(1) 1
香蕉 黄色(-1) 弯(-1) 0

此时设 W1 = 1,W2 = -1,B = 0,F 仍为之前的阶梯函数,那么再按照上文中的示例计算可得:

F(S(苹果)) = F(1 * 1 + -1 * 1 + 0) = 0

这时候的结果是与我们的期望相悖的,因此我们可以判定此次为错误的分类结果。

我们都知道,误差源自于实际结果与期望结果的不同:

E(误差) = T(期望值) - A(实际结果)

而我们此时要做的就是通过修正计算公式中的参数让对样本的计算趋于期望的结果:

W(new) = E * P + W(old)
B(new) = E + B(old)

根据上述修正误差的公式计算之后,可以得到:

W1 = 1 * 1 + 1 = 2
W2 = 1 * 1 + -1 = 0
B = 1 + 0 = 1

这时候将上述修正后的参数再次代入计算,正好能得到与期望结果一致的数据:

F(S(苹果)) = F(1 * 2 + 0 * 1 + 1) = 1

那么对于另一个样本而言呢:

F(S(香蕉)) = F(-1 * 2 + -1 * 0 + 1) = 0

亦是正确的。所以我们在这个时候,可以初步认定现在的参数 W1 = 2, W1 = 0, B = 1 是相对正确的。

总结

这次我们学习了感知机的概念,以及如何使用感知机进行简单的分类学习的过程。在人工神经网络中,「感知机」被指为单层的人工神经网络。对于单一神经元的感知机来说,可被视为一种只有两种状态的机器 —— 激动时为「是」,而未激动时为「否」。

我们平时在生活中很多情形都是「感知机」在工作,「今天是否下雨」、「肚子是否饿了」、「是否头疼」等等。

支持作者 | 文章采用 CC BY-NC-SA 4.0,转载请注明出处