随着人工智能的大热,深度学习技术也随之走到人们的事业之前,虽然深度学习有着无限的潜力,但它也不是万金油,在它提供更通用和更有效的解决方案的同时,它在不同情景的使用依然需要大家经验的积累和对问题的思考。虽然依靠着现代强大的计算能力发光发热,但现在的它更像个黑箱子。背后的原理需要大家共同努力发现。
2016年科技领域最火的是什么?那必须是虚拟现实(VR)与人工智能(AI)了,不久前的“人机大战”引发了全民热议,阿法狗也将深度学习神经网络即DNN的强大能力展示在了人们面前。
而此时,中国科学院计算技术研究所也发布了全球首个能够“深度学习”的“神经网络”处理器芯片,名为“寒武纪”。这项技术在不久的未来,反欺诈的刷脸支付、图片搜索等都将更加可靠、易用。
深度学习技术的逐渐的成熟与商用,也使得人工智能的更加一步步的贴近消费者的日常生活,那么,深度学习技术到底有什么魔力呢?
深度学习有多深?学了究竟有几分?
深度学习其实是神经网络的品牌重塑。一提到神经网络,我们很容易联想到脑瓜里的千丝万缕。的确,神经网络(Neural Network)模型在发明之初是从人脑神经元这个概念得到灵感。首先我们看一个单一的神经元模型。
神经网络没有一个严格的正式定义。它的基本特点,是试图模仿大脑的神经元之间传递,处理信息的模式。
一个计算模型,要划分为神经网络,通常需要大量彼此连接的节点 (也称 ‘神经元’),并且具备两个特性:
每个神经元,通过某种特定的输出函数 (也叫激励函数 activation function),计算处理来自其它相邻神经元的加权输入值
神经元之间的信息传递的强度,用所谓加权值来定义,算法会不断自我学习,调整这个加权值
在此基础上,神经网络的计算模型,依靠大量的数据来训练,还需要:
成本函数 (cost function):用来定量评估根据特定输入值, 计算出来的输出结果,离正确值有多远,结果有多靠谱
学习的算法 ( learning algorithm ):这是根据成本函数的结果, 自学, 纠错, 最快地找到神经元之间最优化的加权值
用小明、小红和隔壁老王们都可以听懂的语言来解释,神经网络算法的核心就是:计算、连接、评估、纠错、疯狂培训。
随着神经网络研究的不断变迁,其计算特点和传统的生物神经元的连接模型渐渐脱钩。
但是它保留的精髓是:非线性、分布式、并行计算、自适应、自组织。
深度学习技术应用前景广泛
目前为止,人工智能商业化的主要方向主要包含以下几个方面的内容:自然语言处理(包括语音和语义识别、自动翻译)、计算机视觉(图像识别)、知识表示、机器与机器人学。这些AI的深度学习技术主要的应用场景有搜索、移动支付、机器人、智能硬件、智能医疗、智能汽车、虚拟现实等。
虚拟现实
那么如此炫酷的深度学习能否应用在大热的VR行业?答案是肯定的。目前VR领域中应用到深度学习技术的包括语音识别、手势识别等方面。
众所周知,VR行业面临的一大技术难题就是海量数据的处理,以手势识别技术为例,手部有非常多的关节,需要非常强的识别能力才可以准确的识别每个精细动作。而深度学习模型的多隐藏层结构使得模型能有效利用海量数据进行训练,所使用数据越多模型性能越高,非常适合在VR环境下做手势识别。
基于深度学习算法的思想实现的VR产品,并使用单机GPU方法来加速深度网络的训练和识别工作。手势识别模组可以使用深度摄像头实现手部近距离3D成像,结合深度学习自主研发了一套数据处理算法,实现了高精度实时手部动作识别,既能跟踪单个手指,识别每个手指细微的动作,也可扩展至跟踪多只手。
这样的VR产品的手势识别具有捕捉精度高,响应速度快,灵敏度高,可以不受环境光线强弱影响,室内室外都可以使用。
安防领域
在安防领域,深度学习技术主要应用于监控摄像机,因为行业领域对车牌识别、人脸识别、轨迹行为等智能分析的需求逐渐加大,使得很多从事智能分析的初创公司进入安防领域,通过合作或者纯技术支持的方式,让安防智能分析业务在大数据、云计算等技术框架下,不仅解决了用户对监控的基本需求,还能给用户提供数据报表、数据分析等附加值高的需求,并且在解决复杂场景人脸识别、不同监控画面准确识别同一人物等领域表现出诱人的应用前景,给公安、交通等执法部门在业务上带来极高的效率。
深度学习技术在安防的应用,当前也主要是以某个“技术奇点”进入到摄像机中,这个过程更像是监控摄像机的“智能大脑”在进行模块化的组合,相信在未来不同的交叉技术之间的相互融合会产生更良好的化学反应。
机器人
传统人工智能的机器学习是通过标记数据进行有监督学习,随着其所需处理数据量的增大,外界对其的支持和帮助也就更大,而且计算结果的准确性也会受到影响。因此,对于这种传统算法,越来越多的数据将成为负担,也更容易达到极限或产生错误结果。但深度学习是从未经标记的数据展开学习,这更接近人脑的学习方式,可以通过训练之后自行掌握概念。面对海量数据,深度学习算法可以做到传统人工智能算法无法做到的事情,而且输出结果会随着数据处理量的增大而更加准确。
深度学习赐予了机器人更高的“智商”,这将使得机器人不仅仅是智能干一些蛮力活,也能应用与对智能有更高要求的领域,比如说医疗行业,因为具有意识的机器人能更好的了解人类的感受,从而对病人进行更好护理。欧盟发布了Robo Earth项目,四个机器人在模拟医院的环境中相互协作来照顾病人,它们通过与云端服务器的交互来进行信息共享和互相学习。例如,一个机器人可以对医院房间进行扫描并将完成的地图上传至Robo Earth,而另外一个对这个房间完全不了解的机器人就可以通过访问云端的这张地图来找到房间中一杯水,而不需要再进行额外的搜索。
自动驾驶
自动驾驶领域因为其高危险属性便对相关技术的实时性与准确性提出了更高的要求,深度学习技术很好的契合了自动驾驶的这种需求。目前低成本摄影机和感应器让车辆可以接受海量信息,通过深度学习,自动驾驶的智能控制系统利用神经网络建立的模型,最终掌握人类驾驶的习惯。
智能控制系统能够迅速梳理出有用的信息,像是辨别各种车辆、区分警车和出租车、救护车和货车,或是准备上路的汽车,甚至还能找出人行道上的自行车和心不在焉的行人。
深度学习未来九大趋势
任何技术都处于不断的进步与发展,深度学习目前所展现在人们面前的还只是其商用化的雏形,虽然已经很惊艳,但也存在诸多的问题,比如:算法经常停止于局部最优解,而不是全球最优解。这好比“只见树木,不见森林”;算法的培训,时间过长时,会出现过度拟合 (overfit),把噪音当做有效信号等缺陷与不足之处,那么未来的深度学习有哪些趋势呢?
神经网络框架变得越来越复杂而精密
在感知、语言翻译等等方面的大部分最先进的神经网络框架正在发展并且不在仅仅关于简单前馈式(feed forward)框架或者卷积式框架(convolutional)。特别地,它们正在混合并匹配不同的神经网络技术如LSTMs、卷积、自定义目标函数、多皮层柱(multiple cortical columns)等等。
所有最酷的系统都在使用 LSTMs
大部分最先进的系统都将LSTMs纳入到系统中,以使系统具有捕捉重复模式的记忆力。
“注意力模型”在升温
一些系统,但不是全部,开始放到“注意力模型”的背景中,或者说让神经网络在完成任务的过程中试图学习在哪里放置其“注意力”。这些还不是一个正规神经网络流水线中的一部分,但是已经时不时的出现在模型中了。
神经图灵机仍然有趣,但并没有影响到实际工作
神经网络图灵机(Neural Turing Machines)的研究,或者说能够有差异地训练一个神经网络来学习算法,仍然有趣,但是还没有应用到实际工作中。它们还很复杂并且目前只能解决玩具问题(toy problems)。
计算机视觉和自然语言处理,会变得几乎不可分离——在电脑视觉和自然语言处理的领域的深度学习正在互相融合
卷积神经网络第一次出现是在电脑视觉中,但是现在用于一些自然语言处理(NLP)中了,LSTMs和主流对递归神经网络使用的倾向性,第一次做出引人注目的成果是在NLP任务中——如序列到序列的翻译(sequence-to-sequence translation),然而现在通过修剪被纳入到电脑视觉神经网络任务中。
另外,电脑视觉和NLP的交叉部分再加上在如图片捕捉任务中使用到的常见的嵌入(embeddings)技术,还很热门。
符号微分法越来越重要
随着神经网络框架和它们的目标函数可以自定义,同时也变得越来越复杂,人为手动提取它们反向传播中的梯度变得越来越难,也容易出错。最新的工具包如谷歌的TensorFlow有了自动符号微分,所以你可以构建你的框架和目标函数,在训练过程中工具包会在众多的碎片中自动地找出正确的微分来保证误差梯度可以反向传播。
神经网络模型压缩带来了越来越多令人惊喜的结果
多个团队展示了不同的方式来剧烈地压缩一个训练过的模型的权重数量:二值化(binarization)、固定浮点(fixed floating point)、迭代剪枝(iterative pruning)和微调措施(fine tuning steps)等等更多。
这些方法为许多应用带来了可能:有可能将很复杂的模型适配到手机上,例如,与云端无延迟的对话来得到结果,如语音识别。另外,如果我们能够高帧率的快速查询一个模型(因为它的空间和计算运行时间成本很低,如30 FPS),那么在移动装置上使用复杂的、训练好的神经网络模型来完成接近实时的新类型电脑视觉任务就有可能了。
NIPS展示了这些压缩技术,但是我没有看到任何人应用它们。我觉得我们在2016年可能见到相应的应用。
深度学习和强化学习的交叉在继续
虽然今年NIPS没有展示关于强化学习的主要结果,但是深度强化学习研究讨论室只剩下站立的地方,他们展示了深度神经网络和强化学习的计划能力两者结合给人带来的令人兴奋的可能。
在这个领域一些令人兴奋的工作正在发生,如端对端机器人,使用深度学习和强化学习来完成原始传感器数据到实际动作执行器的直接过度。我们正从过去的只是分类一步步发展到试图理解如何在方程中加入计划和行动。还有更多的工作要做,但是早期工作很令人兴奋。
神经网络和产品应用,应该携手同行
你需要让研究人员创造新的神经网络方法,而且也有途径将这些方法快速扩展到实际应用产品中。谷歌的TensorFlow是数据库中很少做到这一点的平台之一:研究人员可以快速创造新的网络拓扑如图像,然后这些能够扩展在不同的配置中——如使用像Python或C++主流程序语言的单个设备、多个设备或者是移动设备中。
然而,注意到TensorFlow还在早期阶段;Caffe现在倒是能使用。TensorFlow的单装置表现不如其他的构架;谷歌也宣称不久他们会公布一个使用Kubernetes和gRPC的分布式版本但是分布式训练尚未发挥作用;并且使用TensorFlow目前还不能在亚马逊的AWS上运行。尽管如此,TensorFlow的前景可期。