您的位置:首页 > 其它

Hello_World感知机_懂你我心才安息_(深度学习入门系列之五)

2017-06-06 00:00 405 查看
摘要: 感知机,就如同神经网络(包括深度学习)的“Hello World”。如果不懂它,就如同“为人不识陈近南,便称英雄也枉然”一样尴尬。当感知机可以模拟人类的感知能力,当它能够明辨与或非,但它最大的“疑惑”就是“异或”。难道机器领域也只能是异性才能有结果吗?

更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud

系列文章:

一入侯门“深”似海,深度学习深几许(深度学习入门系列之一)

人工“碳”索意犹尽,智能“硅”来未可知(深度学习入门系列之二)

神经网络不胜语,M-P模型似可寻(深度学习入门系列之三)

“机器学习”三重门,“中庸之道”趋若人(深度学习入门系列之四)

原文再续,书接上回。

5.1 网之初,感知机

我们知道,《三字经》里开篇第一句就是:“人之初,性本善”。那么对于神经网络来说,这句话就要改为:“网之初,感知机”。感知机( Perceptrons ),基本上来说,是一切神经网络学习的起点。

很多有关神经网络学习(包括深度学习)的教程,在提及感知机时,都知道绕不过,但也仅仅一带而过。学过编程的同学都知道,不论是哪门什么语言,那个神一般存在的第一个程序——“Hello World”,对初学者有多么重要,可以说,它就是很多人“光荣与梦想”开始的地方。

而感知机学习,就是神经网络学习的“Hello World”,所以对于初学者来说,也值得我们细细玩味。因此,下面我们就给予详细讲解。

5.2 感性认识“感知机”

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

麻雀虽小,五脏俱全。感知机虽然简单,但已初具神经网络的必备要素。在前面我们也提到,所有“有监督”的学习,在某种程度上,都是分类(classification)学习算法。而感知机就是有监督的学习,所以,它也是一种分类算法。下面我们就列举一个区分“西瓜和香蕉”的经典案例,来看看感知机是如何工作的[1]。

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



图5-1 感知机学习算法

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

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



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



图5-2 感知器的输出

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

这里,我们使用了最为简单的阶跃函数(step function)。在阶跃函数中,输出规则非常简单:当x>0时,f(x)输出为1,否则输出0。通过激活函数的“润滑”之后,结果就变成我们想要的样子(如图5-2-b所示)。就这样,我们就搞定了西瓜和香蕉的判定。

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

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

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

下面,我们就聊聊最简单的神经网络——感知机它是如何学习的?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐