而浅层的机器学习算法与人类认知正好相反,它能够分辨像素级特征中的细微差异,但无论是浅层神经网络、线性分类器还是其他基于原始像素操作的浅层分类模型,几乎都不可能把相似背景下摆着同样姿势的萨摩耶和雪狼区分开,也无法把两只在不同的环境里摆着不同姿势的萨摩耶分到同样的类别里,这种现象被称作“选择性 – 恒常性困境”(Selectivity–Invariance Dilemma)。这类问题直接以像素为特征是行不通的,传统机器学习方法依赖人工设计好的“特征提取器”,深度学习则主张通过构建具有多隐层的机器学习模型和大量的训练数据来自动地提取出有用的特征。
基于深度学习的解决方案,通常会训练一个卷积神经网络(卷积神经网络会在 7.6.1 节详细介绍),在网络里设计若干个卷积层,每个卷积层识别一种特征,逐级完成从像素到线条、从线条到器官、从器官到物体对象的抽象升级,再通过大量的标注数据,使得每一个卷积层都能抽象出层次越来越高的特质属性,让神经网络能够逐步知道“这些像素能构成哪些线条?”“这些线条能构成哪些器官?”“这些器官是不是萨摩耶应该拥有并且在合适位置出现的?”等问题的答案,如图 7-14 所示。
至于有怎样特征的像素才能构成线条、有怎样特征的线条才能构成器官等,不需要也不应该由人类去告知计算机,而是由已经标注好分类结果的训练数据来告诉神经网络这些问题的答案。如何逐层抽象特征的问题,已经在 1995年被康奈尔大学的戴维·菲尔德(David Field)教授提出的“稀疏编码”(SparseCoding)解决了。原本菲尔德提出的问题是类似这样的:
第 7 章 深度学习时代
267