1.5 有时候一个分类器不足以求解问题
到目前为止,我们展示了简单的预测器和分类器。正如我们刚才所观察到的,这些预测器和分类器,接受了某个输入进行一些计算,然后抛出了一个答案。虽然这些预测器和分类器行之有效,却不足以求解一些更有趣的问题,而我们希望应用神经网络来求解这些问题。
此处,我们将使用一个简单而鲜明的实例,来说明线性分类器的局限性。我们为什么要说明线性分类器的局限性,而不直接跳转到讨论神经网络呢?原因就是,神经网络的一个重要的设计特征来源于对这个局限性的理解,因此值得花一些时间来讨论这个局限性。
我们不再讨论花园里的小虫。现在,我们来观察布尔逻辑函数。这个术语听起来像晦涩难懂的暗语——别太担心,乔治•布尔是一名数学家和哲学家,他的名字与一些简单的函数相关,如AND和OR函数。
布尔逻辑函数就像语言函数或思想函数。如果我们说“当且仅当,你吃了蔬菜AND(并且)依然很饿的情况下,你可以吃布丁”,这里,我们就使用布尔AND函数。只有在两个条件都为真的情况下,布尔AND函数才为真。如果只有一个条件为真,那么AND函数为假。因此,如果“我饿了”,但是“我还没有吃蔬菜,我就不能吃布丁”。
同样,如果我们说“如果这是周末,OR(或)这是你的年假,那么你可以在公园里玩”,这里,我们使用了布尔OR函数。如果这些条件有任何一个为真或全部为真,那么布尔OR函数为真。这无需像布尔AND函数一样,必须两个条件都为真。因此,即使“这不是周末”,但是“我已经申请了年假,我一样可以去公园玩”。
我们回顾首次见到的函数,我们将这些函数视为机器,这些机器接受了一些输入,做了一些工作,并输出答案。布尔逻辑函数通常需要两个输入,并输出一个答案。
计算机通常使用数字1表示真,使用数字0表示假。下列的表格使用这种相对简洁的表示方法,基于输入值A和输入值B的所有组合,表示了逻辑AND和OR函数。
输入值A | 输入值B | 逻辑AND | 逻辑OR |
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 |
你可以很清楚地看到,只有A和B同时为真时,AND函数才为真。同样,你也可以看到,只要A和B有一个为真时,OR就为真。
在计算机科学中,布尔逻辑函数非常重要。事实上,最早的电子计算机就是使用执行这些逻辑函数的微电路构造的。即使是算术,也是使用这些本身很简单的布尔逻辑函数的电路组合来完成的。
想象一下,不论数据是否由布尔逻辑函数控制,使用简单的线性分类器就可以从训练数据中学习。对于试图在一些观察和另一些观察之间找到因果关系或相关关系的科学家而言,这是很自然也是很有用的一种工具。例如,在下雨时AND(并且)温度高于35摄氏度时,有更多疟疾病人吗?当这两个条件(布尔OR)有任何一个条件为真时,有更多疟疾病人吗?
请看下图,这幅图在坐标系中显示了两个输入值A和B与逻辑函数的关系。这幅图显示,只有当两个输入均为真时,即具有值 1时,输出才为真,使用绿色表示。否则输出为假,显示为红色。
你还可以看到一条直线,将绿色区域和红色区域划分开来。正如我们先前完成的演示,这条直线是线性分类器可以学习到的一个线性函数。
在这个例子中,数字计算没有本质上的不同,因此我们就不像先前一样进行数字计算了。
事实上,有许多不同的分界线,也可以很好地对区域进行划分,但是,主要的一点是,对于形如y = ax + b的简单的线性分类器,确实可以学习到布尔AND函数。
现在,观察使用类似的方式绘制出的布尔OR函数:
此时,由于仅有点(0,0)对应于输入A和B同时为假的情况,因此只有这个点是红色的。
所有其他的组合,至少有一个A或B为真,因此输出为真。这幅图的妙处在于,它清楚地表明了线性分类器也可以学习到布尔OR函数。
还有另一种布尔函数称为XOR,这是eXclusive OR(异或)的缩写,这种函数只有在A或B仅有一个为真但两个输入不同时为真的情况下,才输出为真。也就是说,当两个输入都为假或都为真时,输出为假。下表总结了这一点。
输入A | 输入B | 逻辑XOR |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
现在,观察这个函数的图,其中网格节点上的输出已经画上颜色了。
这是一个挑战!我们似乎不能只用一条单一的直线将红色区域和蓝色区域划分开来。
事实上,对于布尔XOR函数而言,不可能使用一条单一的直线成功地将红色区域和蓝色区域划分开来。也就是说,如果出现的是由XOR函数支配的训练数据,那么一个简单的线性分类器无法学习到布尔XOR函数。
我们已经说明了简单的线性分类器的一个主要限制。如果不能用一条直线把根本性的问题划分开来,那么简单的线性分类器是没有用处的。
在一些任务中,根本性问题不是线性可分的,也就是说单一的一条直线于事无补,而我们希望神经网络能够解决此类的任务。
因此,我们需要一种解决的办法。
好在解决的办法很容易,下图使用两条直线对不同的区域进行划分。这暗示了一种解决的办法,也就是说,我们可以使用多个分类器一起工作。这是神经网络的核心思想。你可以想象,多条直线可以分离出异常形状的区域,对各个区域进行分类。
在我们深入探讨由多个分类器组合所构建的神经网络之前,让我们回归自然来观察动物的大脑,这些动物的大脑启发了神经网络的方法。
关键点
· 如果数据本身不是由单一线性过程支配,那么一个简单的线性分类器不能对数据进行划分。例如,由逻辑XOR运算符支配的数据说明了这一点。
· 但是解决方案很容易,你只需要使用多个线性分类器来划分由单一直线无法分离的数据。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论