摘要: 迄今为止,深度学习唯一真正的成功之处,是在给出了大量的人为标注数据之后,使用连续的几何变换将空间X映射到空间Y。 做好这一切,是每个行业游戏制定者必备的能力,但对于人类级别的AI,仍然有很长的路要走。
深度学习:几何视角
深度学习最令人惊讶的地方是它相当得简单。十年前,没有人会想到通过,使用梯度下降训练的参数模型能够让我们在机器感知方面得到如此惊人的成果。现在,事实证明,你唯一需要的,是使用足够多的实例来进行梯度下降训练,并获得足够大的参数模型。费曼曾经这么描述宇宙:“它并不复杂,只是包含了太多的东西”。
在深度学习中,一切都是向量,一切都是几何空间中的一个点。模型输入(它可以是文本,图像等等)和目标首先会被“向量化”,例如转换成某种初始输入向量空间和目标向量空间。深度学习模型中的每一层都对通过它的数据进行简单的几何变换。模型的多个层链接在一起形成非常复杂的几何变换,同时又可以分解成一系列简单的几何变换。这种复杂的转换会将输入空间映射到目标空间。该变换使用层的权重来进行参数化,这些层根据模型当前执行的程度进行迭代更新。这种几何变换的关键特征是它必须是可微分的,这是为了使我们能够通过梯度下降来学习其参数。这意味着从输入到输出的几何变换必须是平滑而连续的,这是一个显著的局限性。
将这种复杂的几何变换应用到输入数据的整个过程,可以想象成是一个试图将纸球弄平的人:皱巴巴的纸球是各种各种样的输入数据。而人抚平纸球的每个动作类似于每一层的简单几何变换。而抚平纸球的手势就是整个模型的复杂变换。深度学习模型是用于解决高维度数据复杂流形的数学机器。
这就是深度学习的魔力:将意念转化为向量,转化为几何空间,然后逐步学习将一个空间映射到另一个空间的复杂几何变换。
机器学习的局限性
通过这种简单策略实现的应用的空间几乎是无限的。然而,即使拥有大量人为标注的数据,目前还是有很多的应用是无法通过深度学习来实现的。比方说,你可以搜集成千上万条软件产品的功能列表,就像是由产品经理编写,并由一个软件开发团队来编写相应的代码那样。但是,即使有这些数据,你也无法训练出一个深度学习模型来阅读产品描述并生成相应的代码。一般来说,任何需要推理编程、或应用科学方法的长期规划,以及像数据操作这样的算法,都无法用深度学习模型来实现。即使是学习深度神经网络的排序算法也是非常困难的。
这是因为深度学习模型只是“简单的”连续将一个向量空间映射到另一个向量空间的几何变换链。假设存在从X到Y的可学习的连续变换,则它的唯一功能就是把X:Y的密集采样的可用性作为训练数据,将一个数据流行X映射到另一个流行Y。所以,深度学习模型可以解释为一种程序,但反回来,大多数程序都不能表示为深度学习模型。对于大多数任务来说,要么不存在相应大小的深度神经网络可以解决此任务,要么即使是存在,也是不可学习的。例如,相应的几何变换可能太复杂,或者可能没有可用的数据来学习。通过堆叠更多层次和使用更多的训练数据来扩展当前的深度学习技术,只能在表面上缓解一些问题。而且,深度学习模型可以表示的方面非常有限,大多数希望学习的程序也不能被表达为数据流连续的几何变换,这些问题并不能从根本上得到解决。
拟人机器学习模型的风险
当代人工智能存在一个非常现实的风险,那就是高估了深度学习模型的能力,不知道这个技术能做些什么。人类思想的一个根本特征是“思想理论”,我们倾向于把意图、信念和知识延伸到周围的事物上。在石头上画一个笑脸,则会在我们的思维里出现“开心”二字。如果把这种思想应用到深度学习上,就意味着,当我们成功地训练出一个能够为图片生成描述性文字的模型时,就会认为该模型“理解”了图片,并生成描述性文字。但是,当训练数据中的图像产生轻微偏离时,就可能会导致模型生成非常荒谬的文字。
“对抗性的例子”使得这个风险尤为突出,那就是向深度学习网络输入特殊的样本,试图欺骗模型产生错误的分类。你应该已经意识到,可以在输入空间中执行梯形上升,以生成最大限度地激活某些ConvNet过滤器的输入。类似地,通过梯度上升,可以稍微修改一个图像,以使给定类的类预测最大化。通过拍摄一只熊猫,并添加一个“长臂猿”梯度,我们可以得到一个将这只熊猫分类为长臂猿的神经网络。这证明了这些模型的脆弱性,以及输入输出映射和我们人类感知之间的深层差异。
简而言之,深度学习模型对输入的内容并不理解,至少不是以人类的方式去理解。我们对图像、声音和语言的理解,植根于我们作为实体人类的感官体验之中。机器学习模型无法获得这种经验,因此不能以人类的方式去“理解”他们的输入。
作为一名机器学习从业者,始终要注意这一点,不要错误地认为神经网络理解他们所执行的任务。他们接受的训练比我们想要教他们的并不完全相同:仅仅是一个点一个点的从训练输入到训练目标进行映射。在训练数据中添加一些特殊的内容,可能会让模型产生荒谬的结果。
局部泛化与极端泛化
深度学习模型在输入与输出之间所做的几何变换,与人类思考学习的方式之间似乎存在着本质的区别。人类在亲身体验中学习,而不是在训练中学习。除了学习过程不同之外,潜在的表现性质也存在着本质区别。
人类的能力并不只是将即时刺激映射成即时反应,就像深度网络或者昆虫那样。他们对自己及他人
目前的状况维持着一种复杂并且抽象的模型,使用这些模型可以预测未来,并进行长远规划。他们有能力将已知概念融合在一起,来表示出以前从未经历过的事情,比如说穿牛仔裤的马,或者想象自己中了彩票之后会做什么。这种处理假设、扩展心智模型空间的能力远远超出了我们直接能够感受到的。简单地说,进行抽象和推理是人类认知的特点。我称之为“极端泛化”:几乎不使用或者根本不使用新数据,就能适应新奇的或者从未经历过的新情况的能力。
这与深度网络形成了鲜明的对比,我称之为“局部泛化”:如果新的输入与在训练时间内看到的东西差异非常小,则从深度网络输入到输出的映射就会快速停止。例如,对于通过学习适当的发射参数来让火箭登陆月球这个问题。如果你使用深度网络来实现这个任务,无论是使用监督学习还是强化学习进行训练,都需要成千上万次的启动试验。相比之下,人类可以利用自己的抽象力来提出物理模型(火箭科学),并得出一个精确的解决方案,只需一次或几次试验即可让火箭飞到月球上。
同样的,如果你开发出一个控制人体的深度网络,并希望它学会驾驶一辆车安全地穿过一座城市,并且不与其他车辆相撞,那么这个网络需要在各种情况下让人死掉数千次,直到可以推断出车和危险,并制定适当的避让行为。如果放到另一个城市,则网络必须重新学习大部分的知识。而另一方面,人类无需一而再再而三的死亡就能够学会安全驾驶,这归功于人类假设场景的抽象建模能力。
简而言之,尽管我们在机器感知方面取得了进步,但我们离人类级别的AI还很远:我们的模型只能执行局部泛化,适应与过去数据非常接近的新情况。而人类认知能够极端泛化,迅速适应各种新的情况。
结论
迄今为止,深度学习唯一真正的成功之处,是在给出了大量的人为标注数据之后,使用连续的几何变换将空间X映射到空间Y。 做好这一切,是每个行业游戏制定者必备的能力,但对于人类级别的AI,仍然有很长的路要走。
相关推荐
在本课程"Keras深度学习入门与实战"中,我们将深入探索深度学习的世界,借助强大的Keras库构建和训练复杂的神经网络模型。Keras是一个高级的神经网络API,它建立在TensorFlow、Theano和CNTK等后端之上,旨在简化深度...
深度学习是人工智能领域的一个重要分支,它通过模拟人脑神经网络的工作原理,让计算机能够从大量数据中自动学习特征并进行预测。Keras 和 TensorFlow 是两个广泛使用的深度学习框架,它们为开发人员提供了构建和训练...
在机器学习领域,Keras是一个极其重要的开源库,它为深度学习模型的构建提供了简洁而高效的接口。Keras运行在TensorFlow、Theano和CNTK等后端之上,旨在简化神经网络的设计和实验过程,使得研究人员和工程师可以快速...
人工智能基础视频教程零基础入门课程 第十四章 人工智能基础视频教程零基础入门课程,不需要编程基础即可学习,共15章,由于整体课程内容太大,无法一次传输,分章节上传。...十五章 Keras深度学习框架
《Keras深度学习实战》是一本深入探讨使用Keras库进行深度学习的实践指南。Keras是一个高级神经网络API,它构建在TensorFlow、Theano和CNTK等后端之上,以其简洁、直观的接口而受到广大开发者的青睐。本书旨在帮助...
Keras,作为一个高级神经网络API,是Python编程语言中的一个强大工具,它构建在TensorFlow、Microsoft Cognitive Toolkit(CNTK)和Theano之上,为开发者提供了简洁、直观的方式来构建和训练深度学习模型。...
自己精心整理的深度学习一行一行敲faster rcnn keras版系列视频讲解mp4,华文讲解,很详细!打包成两部分,这是一 '1 1,网络训练深度学习一行一行敲faster rcnn keras版.mp4' '1 2,网络训练深度学习一行一行敲faster ...
在本文中,我们将深入探讨《TensorFlow+Keras深度学习人工智能实践应用》一书中的核心概念,以及如何利用提供的源代码和数据集进行实际操作。TensorFlow和Keras是当前深度学习领域最为流行的开源框架,它们结合使用...
《Deep Learning With Keras》是一本深入探讨使用Keras库进行深度学习实践的书籍,它涵盖了从基础到高级的各种深度学习技术。Keras是Python中一个用户友好的、高效的深度学习框架,它允许开发者快速实验并构建复杂的...
机器学习入门与实战(scikit-learn和Keras)课件—聚类.pdf机器学习入门与实战(scikit-learn和Keras)课件—聚类.pdf机器学习入门与实战(scikit-learn和Keras)课件—聚类.pdf机器学习入门与实战(scikit-learn和Keras)...
深度学习是机器学习的一个子领域,它模仿人脑的工作方式,通过多层非线性处理单元构建神经网络,从而实现对复杂数据的学习和建模。这些层次结构允许模型捕获数据中的抽象特征,适用于图像识别、自然语言处理、声音...
《深度学习 Keras快速开发入门》是一本专为IT专业人士设计的指南,旨在帮助读者迅速掌握使用Keras进行深度学习的技巧和实践。Keras是一个高级神经网络API,它建立在TensorFlow、Microsoft Cognitive Toolkit(CNTK)...
《Keras快速上手——基于Python的深度学习实践》是一本旨在帮助初学者及有一定编程基础的读者快速掌握深度学习技术的书籍。本书的核心是通过Python编程语言和Keras库来实现深度学习模型的构建与训练。Keras是一个...
机器学习入门与实战(scikit-learn和Keras)课件—GAN网络.pdf机器学习入门与实战(scikit-learn和Keras)课件—GAN网络.pdf机器学习入门与实战(scikit-learn和Keras)课件—GAN网络.pdf机器学习入门与实战(scikit-learn...
机器学习入门与实战(scikit-learn和Keras)课件—决策树.pdf机器学习入门与实战(scikit-learn和Keras)课件—决策树.pdf机器学习入门与实战(scikit-learn和Keras)课件—决策树.pdf机器学习入门与实战(scikit-learn和...
Keras是一个非常灵活且易于上手的深度学习框架,由François Chollet创建,他现在在谷歌担任深度学习工程师和研究员。Keras允许用户在TensorFlow或Theano的基础上构建模型,同时提供了丰富的内置功能,如激活函数...
《宅着宅着就学习惯了》机器学习课程聚焦于Keras基础实战,旨在帮助学习者掌握这个强大的深度学习库。Keras是一个高级神经网络API,它构建在TensorFlow、Theano和CNTK等后端之上,以Python语言编写,设计目标是能够...
机器学习实战:基于Scikit-Learn、Keras和TensorFlow 机器学习实战:基于Scikit-Learn、Keras和TensorFlow 机器学习实战:基于Scikit-Learn、Keras和TensorFlow 机器学习实战:基于Scikit-Learn、Keras和TensorFlow ...
《深度学习-基于Keras的Python项目开发实战_波士顿房价预测》是关于使用深度学习技术解决回归问题的一个实际案例,主要涉及了利用Keras库在Python中构建神经网络模型来预测波士顿地区的房价。回归问题在于预测连续...
自己精心整理的深度学习一行一行敲faster rcnn keras版系列视频讲解mp4,华文讲解,很详细!打包成两部分,这是二 '1 1,网络训练深度学习一行一行敲faster rcnn keras版.mp4' '1 2,网络训练深度学习一行一行敲faster ...