量化百科

[深度学习之美11】感性认识“感知机”

由ypyu创建,最终由ypyu 被浏览 7 用户

“感知机”是如何工作的

在聊完了“感知机”的一段发展史后,下面让我们言归正传,再从技术层面,深入讨论一下感知机的工作机理。

现在我们知道,所谓的感知机,其实就是一个由两层神经元构成的网络结构,它在输入层接收外界的输入,通过激活函数(含阈值)的变换,把信号传送至输出层,因此它也称之为“阈值逻辑单元(threshold logic unit)”。

感知机后来成为许多神经网络的基础,但它的理论基础依然建立于皮茨等人提出来的“M-P神经元模型”。

**麻雀虽小,五脏俱全。**感知机虽然简单,但已初具神经网络的必备要素。在前面我们也提到,所有“有监督”的学习,在某种程度上,都是分类(classification)学习算法。而感知机就是有监督的学习,因此它也是一种分类算法。

下面我们就列举一个分区分“西瓜和香蕉”的经典案例,来看看感知机是如何工作的[3]。根据第6章的介绍,感知机模型的形式化描述可用公式(7-1)呈现

$y = {w_1}{x_1} + {w_2}{x_2} + ... + {w_n}{x_n} - \theta$

(7-1)

为了简单起见,我们假设西瓜和香蕉都仅有两个特征(feature):形状和颜色,其它特征暂不考虑。这两个特征都是基于视觉刺激而最易得到的。

假设特征x1代表输入颜色,特征x2代表形状,权重w1和w2默认值暂且都设为1,为了进一步简化,我们把阈值 (亦有教程称之为偏置——bias)设置为0 。为了标识方便,我们将感知机输出数字化,如果输出为“1”,则代表判定为“西瓜”,而输出为“0”,代表判定为“香蕉”。当然了,如果有更多类别的物品,我们就用更多的数字来标记即可,示意图如7-4所示。

图7-4 感知机学习算法示意图

感知机的激活函数

为了方便机器计算,我们对颜色和形状这两个特征,给予不同的值,以示区别。比如,颜色这个特征为绿色时,x1取值为1,而当颜色为黄色时,x1取值为-1;类似地,如果形状这个特征为圆形,x2取值为1,反之,形状为弯曲状时,x2取值为-1,如表7-1所示。

表7-1 西瓜与香蕉的特征值表

这样一来,可以很容易依据公式(7-1)描述的感知机模型,对于西瓜、香蕉做鉴定(即输出函数f的值),其结果分别如图7-5(a)所示:

图7-5 感知机的输出

从图7-5-(a)所示的输出可以看到,对西瓜的判定输出结果是2,而香蕉的为-2。而我们先前预定的规则是:函数输出为1,则判定为西瓜,输出为0,则判定为香蕉,那么如何将2或-2这样的分类结果,变换成预期的分类表达呢,这个时候,就需要激活函数上场了!

激活函数的作用,在本质上,就是变换映射空间。

标准的前馈型神经网络层(输入层除外),它的实现的变换可以分为线性组合和非线性激活两步。传统普遍使用的激活函数有sigmoid函数和tanh函数,较新的有ReLU(后续章节,会专专题讨论,此处暂不展开)。

这里的激活函数,我们使用了最原始、最为简单的阶跃函数(step function),它可以模拟神经元的激活或抑制。在阶跃函数中,输出规则非常简单:当 时, 输出为1,否则输出0。通过激活函数的“润滑”之后,结果就变成我们想要的样子(如图7-5-(b)所示)。就这样,我们就搞定了西瓜和香蕉的判定。

这里需要说明的是,对象的不同特征(比如水果的颜色或形状等),只要用不同数值区分表示开来即可,具体用什么样的值,其实并无大碍。

但你或许会疑惑,这里的阈值(threshold) 和两个连接权值w1和w2,为啥就这么巧分别就是0、1、1呢?如果取其它数值,会有不同的判定结果吗?

这是个好问题。事实上,我们并不能一开始就知道这几个参数的取值,而是一点点地“折腾”(Try-Error)出来的,而这里的“折腾”其实就是感知机的学习过程!


\

标签

深度学习神经网络深度学习算法