神经网络几十年来一直是学术界的热门研究对象,近来成功案例是越来越多。亚马逊、百度、脸书、谷歌、微软等大公司对这种技术投入了大量(而且是越来越多的)资金,进而成就了许多成功案例,比如经过初始学习阶段后对静止和视频图像中的对象识别、对音频流中的话音识别等等。传统神经网络技术的不断演进、最新卷积神经网络(CNN)实例的实现、CPU处理能力的持续稳定增长(在FPGA、GPU及最新的专用协处理器的加速算法帮助下)加上系统内存和存储器成本的持续下降,成就了今天所谓的“深度学习”。卷积神经网络的识别技能不仅在速度和精度方面越来越接近(如果没有超过的话)人类,而且在至少其它某个方面极具人类的记忆特性……它们可以帮助电脑“梦见”虚幻而且神奇的视觉概念。
卷积神经网络开始流行背后的原因是什么?是上段文字中提到的“初始学习阶段”概念。作为背景,让我们先来了解一个基于传统规则的对象识别应用是如何开发的。它涉及到数学建模和软件功能的算法编程,这个软件功能可以唯一且可靠地(也就是没有不可接受的高“假阳性”或“伪阴性”结果)识别一幅静止图像或视频帧中特定对象。举例来说,这个对象可以是高级驾驶辅助系统(ADAS)应用中的限速、前方施工或其它道路标志,或在监控或生物应用中的人(普通人,或特定的人)。然而遗憾的是,即使这种方法在理想条件下可以做到相当可靠,但当对象的面部不是直接对着照相机,或在(典型的)光线不足条件下,结果的质量经常不如人意。
相反,让我们考虑另外一种神经网络方法。下面一段文字摘自维基百科:
人工神经网络(ANN)是受生物神经网络(动物的中央神经系统,尤其是大脑)启发而开发出来的一系列模型,可以用来估计或近似得到取决于大量输入且通常未知的功能。人工神经网络一般表现为互连的彼此间交换消息的“神经元”系统。这些连接具有可以根据经验调节的不同权重值,从而使得神经网络能够自动适应输入信息并进行学习。
人工神经网络有多种形式。为实现本文写作目的,尤其是了解在大规模并行处理器(如FPGA或GPU)上加速训练算法及随后的识别算法的能力,让我们先来较为详细地了解前馈神经网络:
前馈神经网络是一种神经元之间的连接不形成直接循环的人工神经网络。这种网络有别于递归神经网络。前馈神经网络是业界发明的第一种也是最简单的一种人工神经网络类型。在这种网络中,信息只向一个方向——前方——运动,从输入节点经过隐藏节点(如果有的话)再到输出节点。网络中没有循环或环路。
下面是有关卷积神经网络的一点知识,大家从中可以知晓这种网络特别适合计算机视觉功能:
在机器学习领域,卷积神经网络(CNN或ConvNet)是一种前馈人工神经网络,其中的单个神经元以响应视场中重叠区域的方式排列。卷积网络受生物过程的启发,是设计使用最少量预处理的多层感知器的变种。它们是图像和视频识别领域中使用相当广泛的模型。
你会如何训练神经网络?一般是向它提供一组你希望随后要识别的现有描述,并且数量要尽可能多。样本集中越是多样,随后的结果可能就越好。与你编程出来的基于严格规则的方法不同,神经网络算法本质上是在创建自己。通过给它馈送不同的训练集,随后就可以重复用于不同的识别任务。
为什么我要在消费电子展会(CES)之际着重讨论神经网络呢?因为这是一种通用性技术,适用于各种具体应用,而且它能够在基于“云”的服务器上执行,从而提升要求的性能,最终改善联网的客户端设备的尺寸、重量、成本和功耗。
我已经讨论了不少视觉处理案例;还有大量的其它案例存在,比如通过身体照片和姿势界面进行的网上购物。还有笔迹识别;不管是通过压力或电容变化捕捉到的,还是通过图像传感器的光子采集装置捕捉到的,书写出来的字实际上就是某种位图图像。另外就是语音(和说话人)的识别。可能你还没有注意到,我们近来对着设备讲话越来越频繁(话也越来越多)。这么说来,你打算如何发挥神经网络的潜能呢?
《电子技术设计》2016年3月刊版权所有,谢绝转载。
8zFednc