昆山市建设工程质量检测中心网站,wordpress移动端禁止放大,免费推广店铺的网站,河南电力建设工程公司网站摘要#xff1a; 本文是深度学习基础性介绍#xff0c;以降维的角度分析卷积神经网络模型#xff0c;并着重说明了目前人工智能存在的不科学性。在本文之前#xff0c;写过一些关于人工智能的科普性文章#xff0c;比如人工智能为什么能起作用、模型是什么以及如何去创建模…摘要 本文是深度学习基础性介绍以降维的角度分析卷积神经网络模型并着重说明了目前人工智能存在的不科学性。
在本文之前写过一些关于人工智能的科普性文章比如人工智能为什么能起作用、模型是什么以及如何去创建模型、还原论和整体论以及降维过程需外网。这些基础性的文章使得我们能够更好地理解机器学习感兴趣的读者可以阅读一下。本文主要是讨论深度学习的工作原理这也是人工智能科普性文章系列的最后一篇。深度学习执行降维过程考虑到之前的章节这不是一个令人吃惊的断言。在之前的章节中我们从几个角度和层次讨论了人工智能是如何地高效工作。此外也使用TensorFlow及相关API实现的例子演示了二者的性能。可以发现TensorFlow及API的结合能够在这个系统中实现很多的解决方案且泛化足够简单。下图是使用Keras图像理解示意图首先将最左边的输入层称作“底部”将上图旋转九十度后可以发现可以将其看作是一个从低到高的抽象层次堆栈随着层数的增多可以看到数据量和每层的复杂度明显降低我们能否确定这个系统是否也在执行认知降维过程它是否减少了一些不重要的东西如果是这样的话深度学习是如何做到这一点以及怎样确定哪些是重要的东西一般而言可以通过一些压缩或随机删除等方法来实现原始数据的降维但这是不可取的。降维的目标是丢掉一些不重要的部分保留重要的部分。一些人可能不理解基于显著性简化和可逆无损压缩算法作为智能度量的重要性这些对于机器学习而言都是非常重要的内容。所以我们可以想象一个关于深度学习的神话假设我们已经建立了一个从图像中找到人脸的系统并意图将它作为照相机中的一个功能特性。目前许多照相机已经具备了这一特性因此这也是个常见的例子。我们实现了一个图像理解神经网络模型并花一些时间给该模型展示许多不同类型的图像这就是使用监督学习来学习模型之后就能利用该模型来展示从图像中识别人脸的这一童话。如上图所示模型首先将输入图像从RGB彩色值转换为输入数组然后数组经过许多层的操作处理后输出的数据比输入的数据更少这也意味着有些数据被处理掉了。每层接收的输入信号都来自上一层的输入每层的输出传送给下一层。在一些底层时一些操作可能只是得到一些相邻的像素并确定方向提取到一些边角信息。随着层数的加深可以提取到更加抽象具体的信息最终得到能够确定为一张人脸的特征信息。丢弃所有非人脸特征信息后剩下的就是脸。人为的丢弃某些信息是不可取的因为无法判断这些丢弃掉的信息是否有用直到可以确定抽象级别的信息时才可以进行操作。同理以一个公园游玩照片为例模型的一些底层操作不能丢弃草坪的信息因为它们没有关于草坪或地面的显著线索而更高层能够得到更加抽象具体的信息因此能够丢弃一些无用的信息。每一层从前一层接收“低级描述”并丢弃它认为不相干的信息并向下一层传送更抽象的信息直到最终找到人脸。这也是为什么深度学习模型一般层次会比较深的原因。深度学习这一想法本身并不新颖早在1959年就被讨论过。当时受限于算法、硬件水平及数据量的限制没有得到很好的发展。近60年随着硬件水平的不断提升数据量的爆炸式增长深度学习再一次焕发出勃勃生机并展现出优异的性能。下面讲解池化层操作如下图所示。在TensorFlow中有50多种池化操作下图显示的2x2最大值池化操作左图到右图需要执行四次池化操作。2x2最大值池化操作就是从2x2矩形框中挑选出其中的最大值并将其作为输出。输入层四个相邻的像素值可能表示RGB通道中的亮度因此数值更大的值能够更能代表其亮度信息。在2x2最大值池化操作中舍去了75%的输入数据只保存并传播其中的最大值。就像素值而言它可能意味着最亮的颜色值但就草叶而言这可能意味着“这里至少有一片草叶”。每层提取特征并丢弃一些特征这也意味着进行着降维操作。可以清楚地看到深层神经网络中最重要的思想之一就是必须在多个抽象层上进行降维。只有在适当的层才能决定哪些信息可能是相关的哪些信息可能是需要丢弃的。这也是一种简化过程只有在学习中取得好的结果时才会以这种方式作出决定。下面讲解卷积过程根据TensorFlow手册“请注意虽然这些操作被称为卷积严格上来讲应该被称作‘互相关’”。卷积层发现各种类型的交叉相关与共生性图像内部存在空间关系就像Geoff Hinton最近举的例子一样通常在鼻子下面发现嘴巴。更明显的是在有监督学习情况中模式与可用元信息标签之间存在关联。网络模型中的更高层次的信息描述了这些相关性不相关信息被视为非显著信息而被丢弃。从之前的模型图中可以看到卷积层与ReLU激活函数层后接着最大值池化层。其中ReLU是一种新型激活函数能够舍去负值该非线性函数对深度学习而言是非常重要的相较于传统的Sigmoid等激活函数而言ReLU激活函数表现更加优异。由卷积层-ReLU层-池化层这三层组成的这种模式是相当流行且实用的这是由于这种组合方式执行了一个可靠的降维过程绝大多数的卷积神经网络模型都参考这种结构模式来建模。随着模型的加深特征逐渐被减少直到最终得到能够完成相关任务的正确特征。这也是为什么深度学习模型是深层的原因因为如果你明白在不同抽象层中哪些是相关和不相干信息那么你只能通过丢弃无关的信息来降维。深度学习是科学的吗尽管深度学习过程可以用数学符号描述大多数是采用线性代数的形式但这个过程本身是不科学的。深度学习就像一个黑匣子我们无法理解这个系统是如何理解处理特征并完成相关任务的。就拿卷积操作举例正如TensorFlow手册中所说卷积层发现相关性。许多草叶通常代表一个草坪在TensorFlow中系统会花费大量时间来发现这些相关性。一旦发现了某些相关性这种关联会导致模型中某些权重的调整从而使得特征提取正确。但从本质上来说所有的相关性开始时对于模型来说都被遗忘了必须在每次前向传播和梯度下降的过程中来重新发现。这种系统实际上是从错误中吸取教训即模型输出与理想输出之间的误差。前向和反向传播过程对图像理解有一定的意义有些人在文本上使用了相同的算法。幸运的是针对于文本任务而言有更加高效的算法。首先我们可以使用大脑突触或编程语言中的常规指针或对象引用显式地表示所发现的相关性神经元与神经元之间有关联。无论是深度学习算法还是有机学习都不是科学的。它们在缺乏证据并信任相关性的前提下得出结论而不坚持可证明的因果关系。大多数深层神经网络编程很难得到理想结果并存在一定的误差只能通过从实验结果中发现线索来改进模型。增加网络层数不总是有效的对于大多数深度神经网络从业者而言根据实验结果来调整改进网络就是他们的日常工作。没有先验模型就没有先验估计。任何深层神经网络可靠性和正确性的最佳估计都是经过大量的实验得到。为什么我们会使用不能保证得到正确答案的工程系统呢因为我们别无选择使用整体方法当作可靠的降维方法是不可用的。与此类似当任务需要有能力自主地执行上下文切片简化时模型需要具有理解能力。我们没有别的办法来处理这些不靠谱的机器吗当然可以因为地球上有几十亿的人类已经掌握了处理这项复杂任务的技能所以你可以取代表现良好但理论上未经证实的玩意儿——一个通过深层神经网络建立的机器。比比你和机器谁每小时能挣更多的钱这看起来不太像是科技的进步这类机器不能被证明是正确的因为它不能像普通计算机那样运行。我最喜欢的一句话是由McCarthy和Hayes所断言的“你看到了它你将再次看到它”深度学习是人工智能认识论其中一部分内容尽管目前大多数智能是不科学的但在几年后我们将对智能定义达成一致意见最终实现智能化的世界。作者信息Monica AndersonSyntience公司研究总监。文章原标题《Why Deep Learning Works》作者Monica Anderson译者海棠审阅袁虎。原文链接干货好文请关注扫描以下二维码