最近,AI靠着深度学习不仅成为传统的工业、医疗、商业和互联网领域的前沿,还包括新的领域,像自动驾驶和服务型机器人的研发。究竟这门在学术界和工业界都备受关注的技术本质不同是什么?深度学习的核心思想是什么呢?我认为就是更多的GPU、更多的数据和更复杂的模型。
学习目标
不是所有的数据,机器都能学。比如输入一个浏览器代码,机器不会学习到如何开发浏览器(现有技术下)。效果好的应用集中于图像和文本领域,如图像分类、目标识别和推荐系统等。如果你要解决的是个回归(预测连续值)或分类问题(预测离散值),这种技术也许会有效。因为学习的目标可以明确定义为最小化预测值和真实值的差,偏差一般是均方误差、多分类的softmax损失和SVM损失等。
在这方面,深度学习没什么进展,依然是采用了传统机器学习的方式定义学习的目标。
深度学习的目标优化方法
优化方法就是求解上面最小化问题最优解的过程,深度学习依然采用最初期的基于梯度下降的误差反向传播训练方法。当然,因为网络层数的增加,误差在反向传播的过程中很容易出现梯度消失或梯度爆炸的问题,这也是基于梯度学习方法的局限,还有像多目标优化的问题等。深度学习模型采用的优化方法几乎都是Adam或SGD+Momentum+学习率递减。
可见,在优化方法上,深度学习也没有做出什么重要贡献。
深度学习的优化方法
模型结构
这部分正是深度学习的核心,即如何设计神经网络的结构。在特定领域中应用深度学习技术的关键是,如何设计神经网络的结构,使最优解保证在该结构的表示空间中,并同时约束和减小解空间的大小。设计结构这部分的工作无法由机器自动完成,必需人工设计,而且也没有什么理论指导,该用多少层网络,每层多少个节点等等都来自经验。
下面介绍在图像领域的经典深度网络结构:
图像分类
最初,深度学习收到关注的原因是,使用卷积神经网络的AlexNet在ImageNet比赛(百万张图片,1000个类别)中取得突破。原来神经网络之前效果不好,不是因为能力不够,而是训练数据不足,GPU不够,使其能力发挥不出来。后来,网络的层数越来越深,并提出了Inception、残差网络的新连接结构,在ImageNet数据上识别准备率超过了人类。
现在,我们希望用深度神经网络做图像分类任务时,可以不需要大量数据。使用用ImageNet数据集训练过的InceptionV2(V3),直接retrain或fine-tuning,收集数据每个类别几百张图片,就可以训练出一个不错的分类器,可以达到80-90%左右准确度。
分类任务中的样本不平衡、多标记等问题依然存在。分类器泛化到新类别的能力仍需重新训练,目前在图像分类研究中,有利用不同类别的语义信息,让分类器具有识别新的没有训练样本的类的能力,即zero-shot learning。
图像分类的深度神经网络模型
目标识别
目标识别包括两个任务,获取物体的位置并识别其类别,前者是个回归问题,后者是分类问题,所以模型的学习目标是多个的。模型的设计困难是如何获取可能出现物体的box坐标位置,RCNN直接在图像上作region proposal,fast RCNN在卷积后的特征上作region proposal,faster RCNN学习一个神经网络作proposal,YOLO/SSD的方法不做proposal,直接划分成S*S的网格,虽然识别速度很快,但识别精度较差。
在图像的实际应用中,目标识别是很重要的,也是很多有趣应用的开始。在实际中,我们需要根据任务的不同,在识别的速度和精度之间平衡,选择最适合的模型。
物体识别的深度模型当然,深度学习在图像中的应用还有很多有趣的部分,如和文本结合的看图说话(image caption)、视觉问答(VQA),让机器具有创造力的生成模型风格迁移和GAN模型等。
放弃原因
- 贫穷限制了能力,这种需要大量标记数据和GPU的工作还是交给有财力的大公司吧;
- 数据驱动的学习方法的不稳定和难迁移,可能几个像素的微小变化就会使模型失效;
- 现实中的场景是无穷多的,与其花这么多人力物力将AI应用到现实中,也许构建一个理想的适合机器的环境更简单些(如自动驾驶);
- 这次AI的兴起,商业的价值估计似乎远大于目前技术上的发展,过于乐观;
- 对于智能的思考,我想除了从更大规模的角度上考虑,还有其他值得探索的地方。
网友评论