文对深度学习的概念阐述刻意避免了数学公式和数学论证,这种用水管网络来普及深度学习的方法只适合一般公众。对于懂数学、懂计算机科学的专业人士来说,这样的描述相当不完备也不精确。流量调节阀的比喻与深度神经网络中每个神经元相关的权重调整,在数学上并非完全等价。对水管网络的整体描述也有意忽略了深度学习算法中的代价函数、梯度下降、反向传播等重要概念。专业人士要学习深度学习,还是要从专业教程看起。

上一年开端,作业中需求做许多有关 AI 科普的作业。很长时间里一向在想,该怎样给一个没有 CS 布景的人解说什么是深度学习,以便让一个非技术的出资人、企业管理者、职业专家、媒体记者乃至一般群众了解深度学习为什么会特别有用,了解 AI 是怎样协助人们处理具体问题的。中心经由 Quora 一篇简略答复的启示,大致形成了用水流头绪来比较神经网络的主意。曾经在面向银行界、教育界、出资界人士的讲演中,测验过依据这个比方的解说办法,作用很不错。渐渐就形成了这样一篇文章,最近也被收进了李开复和我合著的科普书《人工智能》中。

【注】特别需求阐明的是,本文对深度学习的概念论述故意避免了数学公式和数学证明,这种用水管网络来遍及深度学习的办法只合适一般大众。关于懂数学、懂核算机科学的专业人士来说,这样的描绘适当不齐备也不精确。流量调理阀的比方与深度神经网络中每个神经元相关的权重调整,在数学上并非彻底等价。对水管网络的全体描绘也有意疏忽了深度学习算法中的价值函数、梯度下降、反向传达等重要概念。专业人士要学习深度学习,仍是要从专业教程看起。

从根本上说,深度学习和一切机器学习办法相同,是一种用数学模型对实在国际中的特定问题进行建模,以处理该范畴内相似问题的进程。

首要,深度学习是一种机器学习。已然名为“学习”,那天然与咱们人类的学习进程有某种程度的相似。回想一下,一个人类小朋友是怎样学习的?

人类小朋友是怎样学习的?机器又是怎样学习的?

比方,许多小朋友都用识字卡片来认字。从古时候人们用的“上大人、孔乙己”之类的描红本,到今天在手机、平板电脑上教小朋友认字的识字卡片APP,最根本的思路便是依照从简略到杂乱的次序,让小朋友重复看每个汉字的各种写法(大一点的小朋友乃至要学着知道不同的书法字体),看得多了,天然就记住了。下次再见到同一个字,就很简略能认出来。

这个风趣的识字进程看似简略,实则奥妙无穷。认字时,必定是小朋友的大脑在承受许多遍相似图画的影响后,为每个汉字总结出了某种规则性的东西,下次大脑再看到契合这种规则的图画,就知道是什么字了。

其实,要教核算机认字,差不多也是相同的道理。核算机也要先把每一个字的图画重复看许多许多遍,然后,在核算机的大脑(处理器加上存储器)里,总结出一个规则来,今后核算机再看到相似的图画,只需契合之前总结的规则,核算机就能知道这图画究竟是什么字。

用专业的术语来说,核算机用来学习的、重复看的图片叫“练习数据集”;“练习数据集”中,一类数据差异于另一类数据的不同方面的特点或特质,叫做“特征”;核算机在“大脑”中总结规则的进程,叫“建模”;核算机在“大脑”中总结出的规则,便是咱们常说的“模型”;而核算机经过重复看图,总结出规则,然后学会认字的进程,就叫“机器学习”。

究竟核算机是怎样学习的?核算机总结出的规则又是什么样的呢?这取决于咱们运用什么样的机器学习算法。

有一种算法十分简略,仿照的是小朋友学识字的思路。家长和教师们或许都有这样的经历:小朋友开端学识字,比方先教小朋友分辩“一”、“二”、“三”时,咱们会告知小朋友说,一笔写成的字是“一”,两笔写成的字是“二”,三笔写成的字是“三”。这个规则好记又好用。可是,开端学新字时,这个规则就未必见效了。比方,“口”也是三笔,可它却不是“三”。咱们一般会告知小朋友,围成个方框儿的是“口”,排成横排的是“三”。这规则又丰厚了一层,但仍然忍不住识字数量的添加。很快,小朋友就发现,“田”也是个方框儿,可它不是“口”。咱们这时会告知小朋友,方框里有个“十”的是“田”。再往后,咱们八成果要告知小朋友,“田”上面出面是“由”,下面出面是“甲”,上下都出面是“申”。许多小朋友便是在这样一步一步丰厚起来的特征规则的指引下,渐渐学会自己总结规则,自己记住新的汉字,并从而学会几千个汉字的。

有一种名叫决策树的机器学习办法,就和上面依据特征规则来识字的进程十分相似。当核算机只需求知道“一”、“二”、“三”这三个字时,核算机只需数一下要辨认的汉字的笔画数量,就能够分辩出来了。当咱们为待辨认汉字集(练习数据集)添加“口”和“田”时,核算机之前的断定办法失利,就必须引进其他断定条件。由此一步步推动,核算机就能知道越来越多的字。

怎么给非专业人士解说什么是深度学习?  深度学习 AI 第1张

怎么给非专业人士解说什么是深度学习?  深度学习 AI 第1张

怎么给非专业人士解说什么是深度学习?  深度学习 AI 第3张

怎么给非专业人士解说什么是深度学习?  深度学习 AI 第3张

附图显现了核算机学习“由”、“甲”、“申”这三个新汉字前后,核算机内部的决策树的不同。这阐明,当咱们给核算机“看”了三个新汉字及其特征后,核算机就像小朋友那样,总结并记住了新的规则,“知道”了更多的汉字。这个进程,便是一种最根本的机器学习了。

当然,这种依据决策树的学习办法太简略了,很难扩展,也很难习惯实际国际的不同状况。所以,科学家和工程师们连续创造出了许许多多不同的机器学习办法。

例如,咱们能够把汉字“由”、“甲”、“申”的特征,包括有没有出面,笔画间的方位联系等,映射到某个特定空间里的一个点(我知道,这儿又呈现数学术语了。不过这不重要,是否了解“映射”的实在意义,彻底不影响后续阅览)。也便是说,练习数据会集,这三个字的许多不同写法,在核算机看来就变成了空间中的一大堆点。只需咱们对每个字的特征提取得满足好,空间中的一大堆点就会大致散布在三个不同的规模里。

这时,让核算机调查这些点的规则,看能不能用一种简明的切割办法(比方在空间中画直线),把空间切割成几个彼此独立的区域,尽量使得练习数据会集每个字对应的点都坐落同一个区域内。假如这种切割是可行的,就阐明核算机“学”到了这些字在空间中的散布规则,为这些字建立了模型。

怎么给非专业人士解说什么是深度学习?  深度学习 AI 第5张

怎么给非专业人士解说什么是深度学习?  深度学习 AI 第5张

接下来,看见一个新的汉字图画时,核算机就简略把图画换算成空间里的一个点,然后判别这个点落在了哪个字的区域里,这下,不就能知道这个图画是什么字了吗?

许多人或许现已看出来了,运用画直线的办法来切割一个平面空间(如附图所示),很难习惯几千个汉字以及总计至少数万种不同的写法。假如想把每个汉字的不同变形都对应为空间中的点,那就极难找到一种数学上比较开门见山的办法,来将每个汉字对应的点都切割包围在不同区域里。

许多年里,数学家和核算机科学家便是被相似的问题所困扰。人们不断改进机器学习办法。比方,用杂乱的高阶函数来画出改动无常的曲线,以便将空间里彼此交织的点分开来,或许,爽性想办法把二维空间变成三维空间、四维空间乃至几百维、几千维、几万维的高维空间。在深度学习实用化之前,人们创造了许多种传统的、非深度的机器学习办法。这些办法虽然在特定范畴取得了必定成果,但这个国际实在是杂乱多样、改动万千,不管人们为核算机挑选了多么高雅的建模办法,都很难实在模仿国际万物的特征规则。这就像一个试图用有限几种色彩画出国际实在相貌的画家,即使画艺再高超,他也很难做到“写实”二字。

那么,怎样大幅扩展核算机在描绘国际规则时的根本手法呢?有没有或许为核算机规划一种灵敏度极高的表达办法,然后让核算机在大规模的学习进程里不断测验和寻觅,自己去总结规则,直到终究找到契合实在国际特征的一种表明办法呢?

现在,咱们总算要谈到深度学习了!

深度学习便是这样一种在表达才能上灵敏多变,一起又答应核算机不断测验,直到终究迫临方针的一种机器学习办法。从数学实质上说,深度学习与前面谈到的传统机器学习办法并没有实质性不同,都是期望在高维空间中,依据方针特征,将不同类其他方针区别开来。但深度学习的表达才能,与传统机器学习比较,却有着大相径庭。

简略地说,深度学习便是把核算机要学习的东西当作一大堆数据,把这些数据丢进一个杂乱的、包括多个层级的数据处理网络(深度神经网络),然后查看经过这个网络处理得到的成果数据是不是契合要求——假如契合,就保存这个网络作为方针模型,假如不契合,就一次次地、锲而不舍地调整网络的参数设置,直到输出满足要求停止。

这么说仍是太笼统,太难明。咱们换一种更直观的讲法。

假定深度学习要处理的数据是信息的“水流”,而处理数据的深度学习网络是一个由管道和阀门组成的巨大的水管网络。网络的进口是若干管道开口,网络的出口也是若干管道开口。这个水管网络有许多层,每一层有许多个能够操控水流流向与流量的调理阀。依据不同使命的需求,水管网络的层数、每层的调理阀数量能够有不同的改动组合。对杂乱使命来说,调理阀的总数能够不计其数乃至更多。水管网络中,每一层的每个调理阀都经过水管与下一层的一切调理阀衔接起来,组成一个早年到后,逐层彻底连通的水流体系(这儿说的是一种比较根本的状况,不同的深度学习模型,在水管的装置和衔接办法上,是有不同的)。

怎么给非专业人士解说什么是深度学习?  深度学习 AI 第7张

怎么给非专业人士解说什么是深度学习?  深度学习 AI 第7张

那么,核算机该怎样运用这个巨大的水管网络,来学习识字呢?

比方,当核算机看到一张写有“田”字的图片时,就简略将组成这张图片的一切数字(在核算机里,图片的每个色彩点都是用“0”和“1”组成的数字来表明的)全都变成信息的水流,从进口灌进水管网络。

咱们预先在水管网络的每个出口都插一块字牌,对应于每一个咱们想让核算机知道的汉字。这时,由于输入的是“田”这个汉字,等水流流过整个水管网络,核算机就会跑到管道出口方位去看一看,是不是符号有“田”字的管道出口流出来的水流最多。假如是这样,就阐明这个管道网络契合要求。假如不是这样,咱们就给核算机下达指令:调理水管网络里的每一个流量调理阀,让“田”字出口“流出”的数字水流最多。

这下,核算机可要忙一阵子了,要调理那么多阀门呢!好在核算机核算速度快,暴力核算外加算法优化(其实,主要是精妙的数学办法了,不过咱们这儿不讲数学公式,咱们只需幻想核算机拼命核算的姿态就能够了),总是能够很快给出一个处理方案,调好一切阀门,让出口处的流量契合要求。

下一步,学习“申”字时,咱们就用相似的办法,把每一张写有“申”字的图片变成一大堆数字组成的水流,灌进水管网络,看一看,是不是写有“申”字的那个管道出口流出来的水最多,假如不是,咱们还得再次调整一切的调理阀。这一次,要既确保方才学过的“田”字不受影响,也要确保新的“申”字能够被正确处理。

如此重复进行,直到一切汉字对应的水流都能够依照期望的办法流过整个水管网络。这时,咱们就说,这个水管网络现已是一个练习好的深度学习模型了。

例如,附图显现了“田”字的信息水流被灌入水管网络的进程。为了让水流更多地从符号有“田”字的出口流出,核算机需求用特定办法近乎张狂地调理一切流量调理阀,不断试验、探索,直到水流契合要求停止。

当许多识字卡片被这个管道网络处理,一切阀门都调理到位后,整套水管网络就能够用来辨认汉字了。这时,咱们能够把调理好的一切阀门都“焊死”,静候新的水流到来。

与练习时做的作业相似,不知道的图片会被核算机转变成数据的水流,灌入练习好的水管网络。这时,核算机只需调查一下,哪个出口流出来的水流最多,这张图片写的便是哪个字。

简略吗?奇特吗?莫非深度学习居然便是这样的一个靠张狂调理阀门来“凑”出最佳模型的学习办法?整个水管网络内部,每个阀门为什么要如此调理,为什么要调理到如此程度,莫非彻底由终究每个出口的水流量来决议?这儿面,真的没有什么艰深的道理可言?

深度学习大致便是这么一个用人类的数学常识与核算机算法构建起全体架构,再结合尽或许多的练习数据,以及核算机的大规模运算才能去调理内部参数,尽或许迫临问题方针的半理论、半经历的建模办法。

辅导深度学习的根本是一种实用主义的思维。

不是要了解更杂乱的国际规则吗?那咱们就不断添加整个水管网络里可调理的阀门的个数(添加层数或添加每层的调理阀数量)。不是有许多练习数据和大规模核算才能吗?那咱们就让许多CPU和许多GPU(图形处理器,俗称显卡芯片,原本是专用于作图和玩游戏的,可巧也特别合适深度学习核算)组成巨大核算阵列,让核算机在拼命调理无数个阀门的进程中,学到练习数据中的躲藏的规则。或许正是由于这种实用主义的思维,深度学习的感知才能(建模才能)远强于传统的机器学习办法。

实用主义意味着囫囵吞枣。即使一个深度学习模型现已被练习得十分“聪明”,能够十分好地处理问题,但许多状况下,连规划整个水管网络的人也未必能说清楚,为什么管道中每一个阀门要调理成这个姿态。也便是说,人们一般只知道深度学习模型是否作业,却很难说出,模型中某个参数的取值与终究模型的感知才能之间,究竟有怎样的因果联系。

这真是一件特别有意思的事。有史以来最有用的机器学习办法,在许多人看来,居然是一个只可意会、不可言传的“黑盒子”。

由此引发的一个哲学思辨是,假如人们只知道核算机学会了做什么,却说不清核算机在学习进程中把握的是一种什么样的规则,那这种学习自身会不会失控?

比方,许多人由此担忧,依照这样的路子发展下去,核算机会不会悄然学到什么咱们不期望它学会的常识?别的,从原理上说,假如无限添加深度学习模型的层数,那核算机的建模才能是不是就能够与实在国际的终极杂乱度有一比呢?假如这个答案是必定的,那只需有满足的数据,核算机就能学会世界中一切或许的常识——接下来会产生什么?咱们是不是对核算机的才智逾越人类有了少许的担忧?还好,关于深度学习究竟是否有才能表达世界级其他杂乱常识,专家们没有有共同观点。人类至少在可见的未来仍是相对安全的。

弥补一点:现在,现已呈现了一些可视化的东西,能够协助咱们“看见”深度学习在进行大规模运算时的“姿态”。比方说,谷歌闻名的深度学习结构TensorFlow就供给了一个网页版的小东西(Tensorflow — Neural Network Playground),用人们易于了解的图示,画出了正在进行深度学习运算的整个网络的实时特征。

怎么给非专业人士解说什么是深度学习?  深度学习 AI 第9张

附图显现了一个包括4层中心层级(隐含层)的深度神经网络针对某练习数据集进行学习时的“姿态”。图中,咱们能够直观地看到,网络的每个层级与下一个层级之间,数据“水流”的方向与巨细。咱们还能够随时在这个网页上改动深度学习结构的根本设定,从不同视点调查深度学习算法。这对咱们学习和了解深度学习大有协助。

怎么给非专业人士解说什么是深度学习?  深度学习 AI 第9张

附图显现了一个包括4层中心层级(隐含层)的深度神经网络针对某练习数据集进行学习时的“姿态”。图中,咱们能够直观地看到,网络的每个层级与下一个层级之间,数据“水流”的方向与巨细。咱们还能够随时在这个网页上改动深度学习结构的根本设定,从不同视点调查深度学习算法。这对咱们学习和了解深度学习大有协助。

注:本文摘自李开复、王咏刚《人工智能》一书

转载请说明出处
知优网 » 怎么给非专业人士解说什么是深度学习?

发表评论

您需要后才能发表评论