2.3 深度学习为什么这么强
神经网络,尤其是深度神经网络之所以这么吸引人,主要是因为它能够通过大量的线性分类器和非线性关系的组合来完成平时非常棘手的线性不可分的问题。
2.3.1 不用再提取特征
前面我们说过,在以往我们使用的朴素贝叶斯、决策树、支持向量机SVM这些分类器模型中,提取特征是一个非常重要的前置工作,也就是说人类在驱使这些分类器开始训练之前,先要把大量的样本数据整理出来,“干干净净”地提取其中能够清晰量化的数据维度。否则这些基于概率和基于空间距离的线性分类器是没办法进行工作的。
然而在神经网络中,由于巨量的线性分类器的堆叠(并行和串行)以及卷积网络的使用,它对噪声的忍耐能力、对多通道数据上投射出来的不同特征偏向的敏感程度会自动重视或者忽略。这样我们在处理的时候,人类所需要使用的技巧就没有那么高要求了,也就是我们通常所说的End-to-End的训练方式。
这是一种非常新颖并且非常有吸引力的方式,人类对机器学习中的环节干预越少,就意味着距离人工智能的方向越近,这让我们充满了对未来的期望。
2.3.2 处理线性不可分
神经网络还有一个最神奇的地方,那就是用大量的线性分类器的堆叠使得整个模型可以将线性不可分的问题变得可分。看看下面这个简单的例子。
SVM也有一定的能力来处理线性不可分的问题,但它利用的是维度的引入(或者说升维)来解决的。而神经网络的每一个神经元都是一个线性分类器,所以神经网络能且只能通过线性分类器的组合来实现线性不可分的问题。
例如,在这个二维空间中有这样一个不规则的四边形,如果我们想用一条线(一个线性分类器)把它分开,并保证其一侧是这个四边形内所有的点,我们称为“类别1”,另一侧是其他的点,我们称为“类别0”,这简直是不可能的,因为不管怎么画,这一条线都会使得其中至少有一个类非常“不纯”。没关系,我们大不了画4条线了,
用这4条线把它围起来,也就是必须同时满足4个分类器的1分类标准才算是我们要约束的1分类——每条直线的表达式都是形如f(x)?=?wx?+?b的线性分类器。其实这也就是神经网络比以前各种分类器厉害的地方了,以前任何一种分类器可都没有这种能耐。这里画出来的这个不规则四边形不一定是一张图片中的信息,它只是用来表示一些向量在空间中的聚集区域。
神经网络的神经元可以有很多层,每层可以有很多个神经元,整个网络的规模可以有几千甚至几万个神经元,那么在这种情况下,我们几乎可以描绘出任意的线性不可分的模型了。当然,我们这里只是用一个简单的二维向量来进行示意,真正的商用场景中,这些向量通常有几十万个维度或者更多,神经网络的层数也会非常深——这就是我们平时所说的深度学习了。随着维度的加大,深度的加深,所能描述的分类器的复杂程度也会随之增加,所以传统分类模型中无法通过简单的线性分类器和非线性分类器处理的复杂学习场景(例如图形、视频、音频等)就能够通过海量分类器的叠加来实现。