Local EPUB Text
神经网络内部
有几种不同类型的网络用于图像识别,每个网络都有自己的自测工具,并通过应用独特的改进算法提升训练的精度。深度学习是快速发展的领域,几乎每周都会推出新的结构和算法。然而,一个共同的特点是深度学习网络使用串联式多层人工神经元,从经过软件识别与标上标记的数字图片中捕捉图片特征。先进的深度学习网络拥有超过100层的人工神经网络(对比罗森布拉特的感知器只有单层神经网络,共八个神经元细胞)。
有人认为深度学习网络识别物体的方式与人类相同,首先认识某个细小的特征,然后把该特征抽象出来,应用至更广义、更抽象的概念中去。虽然直到现在,生物系统识别物体的过程仍然是个谜,但人类的眼睛看到一双尖尖的耳朵,八根胡须和毛茸茸的尾巴时,总能快速地把以上视觉信息分类:“啊,是只猫!”是的,构建神经网络时,通过进行快速的个体特征分析确实是物品分类的一种办法,人工感知也由此更接近人类的感知水平。
让我们以SuperVision这款神经网络为例,看看这些多层神经元解析机(Multilayer Analytical Engines)是如何工作的。使用GPUs加快训练过程是克里泽夫斯基及其团队作出的一项非常实用的改进,使得训练周期从以“周”为单位减少到“天”为单位。鉴于SuperVision是大型的神经网络,神经元解析机数量多且密集,系统参数高达6000万,含有神经元数量65万个,为大幅缩短训练时间提供了极大优势。
在神经网络内部,SuperVision(研究人员为其取了小名“AlexNet”)采用了更为简单的阈值形式。经过简化的传输功能有助于神经元提升速度,同时使韦伯斯的训练算法深入多层神经网络调节其中的节点,有利于解决长期以来困扰多层神经网络的问题。为了解决过拟合的问题,SuperVision团队采用了一种名为Dropout的技术。Dropout技术包括在训练过程中清除部分连接不畅的神经元——没有任何单独的神经元能完成所有工作。Dropout能够让所有的神经元都各施其职参与到计算过程中。
创建深度学习网络的第一步是,提供原始视觉数据。每张数码图片包含一个矩阵,矩阵数值以红绿蓝光量化在每一个像素里。深度学习网络的输入层内有三个相似但互补的输入矩阵,数值能矩阵之间相互流通。
由于深度学习网络的种类不同,其神经元层的排列也各异。在标准的卷积神经网络中,第二层神经元与第一层具有数据功能的矩阵相连。例如,第一层含有3×3排列的矩阵,第二层的神经元负责计算出这些像素的加权总和——这与福岛的神经认知器极为相似,排列的神经元能够帮助神经网络完成性能调校——如果总数大于一定阈值,神经元将会“放电”或向下一层神经元发出特定信号。如果数值过低,神经元则安静等待,处于休息状态。当信号扩散后,或者说在神经元之间传送时,神经链中的下一个神经细胞将计算从3×3的窗口(window)里传过来的信号总数。这个过程在神经网络中一直持续进行着。
大多数深度学习结构中也包括最大池法(max-pooling)的单元,与神经认知器的C细胞相似,从神经元池中抽取最大数值,忽略其他信号。结果证明最大池法能加强网络的稳定性。在大多数的深度学习网络的最后几层中通常包含两层及以上的老式“完全连接”的双层感知器。最后卷积神经网络学会并发现最佳图像特征,这时感知器开始运作。
当信号抵达最后一层的神经末端,输出神经元会统计内层神经元细胞的“投票结果”。例如,罗森布拉特的感知器就会以点亮灯的形式来表示最后的输出结果。如果一款现代深度学习网络的软件接受识别猫狗图片的训练,它将根据机器对物体的识别肯定程度,在数字0~1范围内表达输出的数值。如果在判断狗的时候,对一张图片的输出数值是1,那么这就表示神经网络百分百肯定图片上是一只狗。同样,假使判断猫的图片的数值是0.5,就表示网络不太确定图片上是一只猫。
显然,这种对深度网络学习分析法的解释极其简单。随着该领域研究的发展,大多数网络都对这个流程进行了改良。改良做法包括:把功能独特的神经元层插入中间层,进行实时数据分析,还原可能被扩散的信号。其他的改良之处,还包括2015年微软团队设计的训练方法“残差学习(Residual Learning)”——使训练覆盖到更多神经网络层。
深度网络学习的优点之一是如果设置妥当,网络能在对重复物品识别的基础上,自主形成对新数据的识别能力。具有讽刺意味的是,机器本身,而并非人类程序员,自主培养出对新出现的陌生物体的识别能力。深度学习网络是程序员口中的典型的“黑盒结构”例子,意思是当软件进行输出时,几乎不可能对软件程序的步骤进行任何逆向操作。
假使一辆无人驾驶汽车把眼前的一群过路行人,误认为是玻璃钢结构的摩天大楼墙体反射的倒影,那么即使该程序的设计者也不会知道为什么视觉识别软件迟迟不能检测出错误原因。现代多层深度学习网络的神经元层可以达到几十层之多,层内包含上百万甚至几十亿的连接点。就好比一个人不知道自己的想法有什么确切的逻辑依据,只是随口凭感觉来回答。深度学习网络也是同样的,它们是凭借上百万的人工神经元的“感觉良好”来得出结论的。