本篇文章5721字,读完约14分钟
从去年开始,我们在工作中需要做很多关于人工智能科普的事情。很长一段时间,我一直在思考如何向一个没有cs背景的人解释深度学习,让一个非技术投资者、企业经理、行业专家、媒体记者甚至普通大众都能理解为什么深度学习特别有效,以及人工智能如何帮助人们解决具体问题。受quora的一个简短回答的启发,使用水流上下文来与神经网络进行比较的想法大致形成了。我在给银行、教育和投资界人士的演讲中尝试过基于这个比喻的解释方法,效果很好。这样的一篇文章已经逐渐形成,并且最近被收录在由李开复和我合著的科普书《人工智能》中。
[注]特别是,本文中的深度学习概念刻意回避数学公式和数学论证,这种推广水管网深度学习的方法只适合普通大众。对于了解数学和计算机科学的专业人士来说,这种描述是相当不完整和不准确的。流量控制阀的模拟并不完全等同于深度神经网络中每个神经元的权值调整。在对供水管网的全面描述中,深度学习算法中的代价函数、梯度下降和反向传播等重要概念被有意忽略。专业人士应该深入学习,或者从专业课程开始。
从根本上说,深度学习就像所有的机器学习方法一样,是用数学模型来模拟现实世界中的特定问题,以解决该领域中类似问题的过程。
首先,深度学习是一种机器学习。既然它被称为“学习”,它自然在某种程度上类似于我们人类的学习过程。回想一下,人类的孩子是如何学习的?
人类孩子是如何学习的?机器是如何学习的?
例如,许多孩子用识字卡来阅读。从古时候人们使用的“尚,孔乙己”,到今天教孩子在手机和平板电脑上读汉字的识字卡应用,基本思想是让孩子按照从简单到复杂的顺序反复阅读每一个汉字的各种写法(大一点的孩子甚至要学会认识不同的书法字体),读得多了自然会记起来。下次你看到同一个单词时,你可以很容易地认出它。
这个有趣的识字过程似乎很简单,但却很神秘。在阅读汉字时,一定是儿童的大脑在多次受到类似图像的刺激后,总结出了每个汉字的一些规律。下次大脑看到符合这一规则的模式时,它就会知道它是什么。
事实上,这几乎是教电脑阅读的同一个理由。计算机必须首先多次阅读每个单词的模式,然后在计算机的大脑(处理器加存储器)中总结出一条规则。在计算机再次看到类似的模式后,只要它符合之前总结的规则,计算机就能知道该模式是什么。
用专业术语来说,计算机用来反复学习和观看的图片被称为“训练数据集”;在“训练数据集”中,一类数据不同于另一类数据的属性或特征称为“特征”;计算机在“大脑”中总结规律的过程称为“建模”;计算机在“大脑”中总结的定律就是我们通常所说的“模型”;计算机通过反复看图片总结规则,然后学会阅读字符的过程被称为“机器学习”。
计算机究竟是如何学习的?计算机总结出了什么规律?这取决于我们使用哪种机器学习算法。
一个算法非常简单,它模仿儿童学习阅读的想法。父母和老师可能有这样的经验:当孩子开始学习阅读时,例如,当他们被教导要区分“一”、“二”和“三”时,我们会告诉他们写一个字,写两个字,写三个字。这条规则很容易记住和使用。然而,当你开始学习新单词时,这条规则可能不起作用。例如,“寇”也是三笔,但它不是“三”。我们通常告诉孩子们,正方形是“口”,排是“三”。这条规则是丰富的,但它仍然不能帮助识字率的提高。很快,孩子们发现“田”也是一个盒子,但它不是一张嘴。这时,我们将告诉孩子们盒子里的十是田野。将来,我们大多数人都会告诉我们的孩子,“天”的顶是“你”,底是“A”,顶是“申”。在一步一步丰富的特色规则的指导下,许多孩子慢慢学会自己总结规则,自己记忆新的汉字,然后学习成千上万的汉字。
有一种叫做决策树的机器学习方法,它与上述根据特征规律进行阅读的过程非常相似。当计算机只需要识别“一”、“二”、“三”三个字时,计算机只需要统计待识别汉字的笔画数,就可以将它们区分开来。当我们在待识别的汉字集(训练数据集)中加入“口”和“场”时,计算机以前的判断方法失败了,所以必须引入其他的判断条件。有了这一步一步,计算机可以识别越来越多的单词。
附图显示了在学习三个新汉字“有”、“有”、“申”前后计算机内部决策树的差异。这表明,当我们向计算机展示三个新的汉字及其特征时,计算机就像儿童一样,总结和记住新的规则,并“知道”更多的汉字。这个过程是最基本的机器学习之一。
当然,这种基于决策树的学习方法过于简单,难以扩展,也难以适应现实世界中的不同情况。结果,科学家和工程师发明了许多不同的机器学习方法。
例如,我们可以映射汉字“有”、“有”、“有”、“有”的特征,包括是否有头部、笔画之间的位置关系等。,在某个空房间的某个点上(我知道这里又有数学术语。然而,没关系,你是否理解“映射”的真正含义根本不会影响后续的阅读。也就是说,在训练数据集中,这三个词的大量不同的书写方法在空的房间里变成了很多点。只要我们足够好地提取每个单词的特征,空的大量点将大致分布在三个不同的范围内。
此时,让计算机观察这些点的规则,看看它是否可以使用简单的分割方法(例如在空画一条直线)将空分成几个相互独立的区域,从而使训练数据集中每个单词对应的点尽可能位于同一区域。如果这种分割是可行的,这意味着计算机“了解”了这些词在空的分布规律,并为这些词建立了一个模型。
接下来,当你看到一个新的汉字图像时,电脑简单地将图像转换成空的一个点,然后判断这个点属于哪个单词。现在,你可以知道图像是什么单词了。
许多人可能已经看到,画一条直线来划分一个平面空房间(如图所示)很难适应成千上万个汉字和至少成千上万种不同的书写方法。如果我们想把每个汉字的不同变形对应到空.的点,就很难找到一种数学上简单的方法来划分和包围每个汉字在不同区域的对应点
多年来,数学家和计算机科学家一直被类似的问题所困扰。人们不断改进机器学习方法。例如,使用复杂的高阶函数绘制各种曲线,从而分离空的交错点,或者简单地尝试将二维空变换为three-dimensional/きだよ 0。在深度学习付诸实践之前,人们发明了许多传统的非深度机器学习方法。虽然这些方法在特定领域取得了一些成就,但世界确实是复杂多样的。无论人们为计算机选择多么优雅的建模方法,都很难真实地模拟世界上所有事物的特征。这就像一个画家试图用有限的颜色描绘世界的真实面貌。即使他的绘画技巧非常出色,他也很难达到“现实主义”这个词。
那么,如何大大扩展计算机描述世界规律的基本手段呢?有没有可能为计算机设计一种高度灵活的表达方式,然后让计算机在大规模学习的过程中不断尝试和搜索,并自己总结规则,直到最终找到一种符合现实世界特点的表达方式?
现在,我们终于要谈论深度学习了!
深度学习是一种机器学习方法,它具有灵活的表达能力,允许计算机不断尝试,直到最终达到目标。本质上,深度学习与上面提到的传统机器学习方法没有本质上的不同。希望在高维空空间中能够根据物体的特征来区分不同种类的物体。然而,与传统的机器学习相比,深度学习的表达能力有很大的不同。
简单地说,深度学习就是把计算机需要学习的东西看作是大量的数据,把这些数据投入到一个包含多个层次的复杂的数据处理网络(深度神经网络)中,然后检查这个网络处理的结果数据是否符合要求。如果是,则保持该网络作为目标模型,如果不是,则重复并持续调整网络参数设置,直到输出满足要求。
它仍然太抽象,难以理解。让我们用更直观的方式来描述它。
假设要通过深度学习处理的数据是信息的“水流”,用于处理数据的深度学习网络是由管道和阀门组成的巨大的水管网。网络的入口是多个管口,网络的出口也是多个管口。这种水管网有许多层,每层都有许多调节阀,可以控制流向和流量。根据不同任务的需要,水管网的层数和每层调节阀的数量可以有不同的组合。对于复杂的任务,调节阀的总数可以是数千甚至更多。在水管网中,每层的每个调节阀都通过水管与下一层的所有调节阀相连,形成一个从前到后完全连通的水流系统(这是一个基本情况,不同的深度学习模式在水管的安装和连接方式上是不同的)。
那么,计算机如何利用这个巨大的水管网来学习阅读呢?
例如,当一台计算机看到一张写有“field”字样的图片时,它会简单地将组成图片的所有数字(在计算机中,图片的每个色点都由一个由“0”和“1”组成的数字表示)转换成一个信息流,然后从入口将该信息流注入水管网。
我们预先在水管网的每个出口插入一个字牌,它对应着我们希望电脑知道的每个汉字。此时,由于输入了汉字“田”,当水流过整个水管网时,计算机会运行到管道的出水口,查看标有“田”字样的出水口是否有最多的水流出。如果是,则意味着管网满足要求。如果不是这样,我们会给电脑一个指令:调整水管网中的每个流量调节阀,使数字水流在“田”出口处“流出”最多。
现在,电脑将会忙碌一段时间,所以许多阀门必须调整!幸运的是,计算机计算速度快,计算和算法优化激烈(事实上,它主要是一种微妙的数学方法,但我们在这里不谈论数学公式,所以你只需要想象计算机的硬计算),所以你总是可以迅速给出一个解决方案,并调整所有阀门,使出口处的流量满足要求。
在接下来的步骤中,当学习“沈”这个词时,我们使用类似的方法将每个带有“沈”这个词的图片变成大量的水流,这些水流被倒入水管网络中,以查看带有“沈”这个词的水管的出口是否有最多的水流出。如果不行,我们必须再次调整所有的调节阀。这一次,我们不仅要保证刚学的“田”字不受影响,还要保证新的“申”字能正确处理。
这样重复,直到所有对应于汉字的水流能够以预期的方式流过整个水管网。此时,我们说这个水管网已经是一个训练有素的深度学习模型。
例如,附图显示了“田”的信息流被注入水管网的过程。为了让更多的水从标有“田”字样的出水口流出,电脑需要以特定的方式近乎疯狂地调节所有的流量调节阀,不断地试验和摸索,直到水流达到要求。
当该管网处理了大量的识字卡,并且所有阀门都调整到位时,整个输水管网就可以识别汉字了。此时,我们可以“焊接”所有调整过的阀门,等待新的水流。
类似于你在训练中所做的,未知的图片将被计算机转换成数据流,并注入训练好的水管网。这时,电脑只需要观察哪个出口的水流量最大,以及这张图片上写的是哪个单词。
简单吗?很神奇吗?深度学习真的是一种通过疯狂调整阀门来“聚集”最佳模型的学习方法吗?在整个供水管网中,为什么每个阀门都要这样调整,为什么要调整到这样的程度?是否完全由每个出水口的最终水流决定?这里面真的没有什么深刻的道理。
深度学习大致是一种半理论半经验的建模方法,它利用人类的数学知识和计算机算法来构建一个整体框架,然后结合尽可能多的训练数据和计算机的大规模计算能力来调整内部参数,并尽可能接近问题目标。
深度学习的指导原则是一种实用主义。
难道没有必要了解世界上更复杂的规律吗?然后我们将不断增加整个水管网中调节阀的数量(增加层数或增加每层调节阀的数量)。难道没有大量的训练数据和大规模的计算能力吗?然后我们让许多cpu和gpu(图形处理器,俗称图形卡芯片,最初专门用于绘图和玩游戏,碰巧特别适合深度学习计算)组成一个巨大的计算阵列,这样计算机就可以在拼命调整无数阀门的过程中学习训练数据中的潜规则。也许正因为这种实用主义,深度学习的感知能力(建模能力)远远强于传统的机器学习方法。
实用主义意味着不寻求解决方案。即使一个深度学习模型已经被训练成“聪明的”并且能够很好地解决问题,在许多情况下,甚至设计整个水管网的人也可能不能清楚地解释为什么管道中的每个阀门都应该这样调整。也就是说,人们通常只知道深度学习模型是否有效,但很难判断模型中某个参数的值与最终模型的感知能力之间存在何种因果关系。
这真是一件非常有趣的事情。在许多人看来,历史上最有效的机器学习方法是一个只能理解而不能说的“黑匣子”。
由此引发的一个哲学思考是,如果人们只知道计算机学会了做什么,却不知道计算机在学习过程中掌握了什么样的规律,那么学习本身会失控吗?
例如,许多人担心如果我们继续这样发展,电脑会学一些我们不想让它安静学习的东西吗?此外,原则上,如果深度学习模型的层数无限增加,计算机的建模能力能与现实世界的最终复杂性相比吗?如果答案是肯定的,那么只要有足够的数据,计算机就可以学习宇宙中所有可能的知识——接下来会发生什么?你对计算机超越人类的智慧有什么担忧吗?幸运的是,专家们还没有就深度学习能否表达宇宙层面的复杂知识达成一致。至少在可预见的未来,人类是相对安全的。
还有一点:目前已经出现了一些可视化工具,可以帮助我们“看到”大规模计算中深度学习的“表象”。例如,tensorflow,谷歌著名的深度学习框架,提供了一个网络版的小工具(TensorFlow-Neural Network Play),它用易于理解的图表描绘了整个网络进行深度学习操作的实时特征。
该图显示了在学习训练数据集时,具有四个中间层次(隐藏层)的深层神经网络的“外观”。在图中,我们可以直观地看到网络每一级和下一级之间数据“水流”的方向和大小。我们还可以随时在此网页上更改深度学习框架的基本设置,从不同角度观察深度学习算法。这对我们学习和理解深层次的学习有很大的帮助。
雷锋。(公开号码:雷锋。出版社:本文摘自李开复和王永刚的《人工智能》。
张量流&神经网络算法高级应用类即将开始!
从初级到高级,理论+实战,一站式深入了解张量流!
本课程面向深度学习型开发人员,教授如何使用张量流解决特定问题,如图像识别和文本分析。为期10周的课程将从张量流的原理和基本实践技能开始,逐步教会学生如何在张量流上构建cnn、自编码、rnn、gan等模型,最终掌握一套基于张量流的深度学习和发展的专业技能。
作为思想工作的高级技术专家,童达和白华川两位教师在构建大数据平台和开发深度学习系统方面有着丰富的经验。
时间:每周二和周四晚上20: 00到21: 00
课程时长:共20小时,10周完成,每周2次,每次1小时
在线教学地址:mooc.ai/
雷锋文章版权所有。严禁擅自转载。详情请参考转载说明。
来源:搜狐微门户
标题:如何给非专业人士讲解什么是深度学习?
地址:http://www.shwmhw.com/shxw/63069.html