【连载】深度学习从0到1基于Tensorflow2读书笔记——one-深度学习背景介绍
深度学习从0到1基于Tensorflow2谷歌的深度学习框架Tensorflow,Caffe同样也是热门的深度学习框架AI:用编程语言去实现一些人工智能的算法,完成一些落地应用;同时也需要对算法理论有理解。第1章-深度学习背景介绍1.1人工智能[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c9BBRz2y-1629971370450)(C:\Users\gzz\Ap
深度学习从0到1基于Tensorflow2
谷歌的深度学习框架Tensorflow,Caffe同样也是热门的深度学习框架
AI:用编程语言去实现一些人工智能的算法,完成一些落地应用;
同时也需要对算法理论有理解。
第1章-深度学习背景介绍
1.1人工智能
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c9BBRz2y-1629971370450)(C:\Users\gzz\AppData\Roaming\Typora\typora-user-images\image-20210823164627151.png)]
人工智能只是一个抽象概念,它不是任何具体的机器或算法。任何类似于人的智能或高于人的智能的机器或算法都可以称为人工智能。
图灵测试(Turing Test)是由计算机科学之父图灵提出来的,指的是测试者和被测试者(被测试者有可能是人或机器)在隔离的情况下,测试者通过一些装置(如键盘)向被测试者提问。经过多次测试之后,如果有30%的测试者不能确定被测试者是人还是机器,那么说明这台机器通过了测试。
人工智能早期阶段,迅速解决了一些对于人类来说比较困难,但是对于计算机来说相对容易的问题,比如下棋,推理,路径规划等等。
对于一些人类比较擅长的任务,比如图像识别,语音识别,自然语言处理等,计算机却完成的很差。
在人工智能的早期阶段,计算机的智能通常是基于人工制定的规则,我们可以通过详细的规则去定义下棋的套路,推理的方法,以及路径规划的方案。但是我们却很难用规则去详细描述图片中的物体。在图像识别领域,使用人为定义的规则去做识别肯定是行不通的,很多其他的领域也同样存在这样的问题。
1.2机器学习
由于人们没有办法设计出足够复杂的规则来精确描述世界,所以AI系统需要具备自我学习的能力,即从原始数据中获取有用的知识。这种能力被称为机器学习。
人工智能是抽象的概念,而机器学习是可以落地的算法。机器学习不是一个算法,而是一大类具体智能算法的统称。
收集数据——》分析数据,建立模型——》预测未来的情况。
机器学习也可以利用已有的数据进行学习,获得一个训练好的模型,然后可以利用此模型预测未来的情况。
机器学习与人类思维的对比:
使用历史数据来训练一个机器学习的模型,模型训练好之后,再放入新的数据,模型就可以对新的数据进行预测分析。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZEDTm1g0-1629971370453)(C:\Users\gzz\AppData\Roaming\Typora\typora-user-images\image-20210823170932068.png)]
1.2.1训练数据,验证数据和测试数据
通常在做机器学习分析的时候,会把数据分成两大部分。一部分是训练数据(Training Data),可以用来训练,构建模型。另一部分是测试数据(Testing Data),可以用来验证模型的好坏。
有时我们会把数据分成三部分,即训练集(Training Set)、验证集(Validation Set)和测试集(Testing Set)。
训练集还是用来训练模型。验证集是在模型的训练阶段评估模型的好坏,可以用于确定模型的参数或结构。等模型训练好,并且参数和结构都调整好之后,再用测试集来评估模型的好坏。
通常我们可以把所有数据的60%分配给训练集,20%分配的验证集,20%分配给测试集。或者80%分配给训练集,10%分配给验证集,10%分配给测试集。不过这个数据划分不是绝对的,还需要看具体情况。有时候我们只划分训练集和测试集,训练集用于训练模型,不管在模型的训练阶段还是在最后的测试阶段都是用测试集来进行测试。
K折交叉检验(K-fold Cross-Validation)——K 折交叉检验的大致思想是把数据集分成 K 份,每次取一份作为测试集,取余下的 K-1 份作为训练集。重复训练 K 次,每次训练都 从 K 个部分中选一个不同的部分作为测试集(要保证 K 个部分的数据都分别做过测试),剩下 的 K-1 份做训练集。最后把得到的 K 个结果做平均。
1.2.2学习方式
在机器学习或者人工智能领域,不同的问题可能会有不同的学习方式。主要的学习方法有:
监督学习(Supervised Learning) —— 监督学习也称为有监督学习,通常可以用于分类(Classification)以及回归(Regression)的问题。它的主要特点是,所有的数据都有与之相对应的标签(Label)。
监督学习在建模过程中,会将预测结果与训练数据的实际结果(也就是标签)做对比, 如果预测结果跟实际结果不符合,将通过一些方式去调整模型的参数,直到模型的预测结果能达到比较高的准确率。
非监督学习(Unsupervised Learning)—— 非监督学习也称为无监督学习,通常可以用于聚类(Clustering)的问题。非监督学习中,所有的数据都是没有标签的。可以使用机器学习的方法让数据自动聚类。例如许多公司都拥有庞大的客户信息数据库,使用非监督学习的方法就可以自动对客户进行市场分割,将客户分到不同的细分市场中,从而有助于我们对不同细分市场的客户进行更有效的销售或者广告推送。或许我们事先并不知道有哪些细分市场,也不知道哪些客户属于细分市场 A,哪些客户属于细分市场 B。不过没关系,我们可以让非监督学习算法在数据中挖掘这一切信息。
半监督学习(Semi-Supervised Learning)—— 半监督学习是监督学习和非监督学习相结合的一种学习方式,通常可以用于分类以及回归问题。主要是用来解决使用少量带标签的数据和大量没有标签的数据进行训练和分类的问题。此类算法首先试图对没有标签的数 据进行建模,然后再对带有标签的数据进行预测。说个题外话,半监督学习一般用得比较少,原因很简单,因为标签不足的情况通常很容易解决,只要找很多人来打标签就可以了。 大型 AI 公司可能会有几百人的数据标注团队,每天的工作就是给各种数据打标签。因为顶尖大公司 AI 技术相差不是很大,想要把产品的效果做得更好,就需要大量的带标签的数据。标签很重要,不过人工智能的核心还是算法,说不定以后有一天可以开发出不需要标签就可以什么都学会的算法。
强化学习(Reinforcement Learning)—— 强化学习灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能够获得最大利益的习惯性行为。强化学习没有任何的标签来告诉算法应该怎么做,它会先去 尝试做一些动作,然后得到一个结果,通过判断这个结果是对还是错来对之前的动作进行反馈。AlphaGo 中就用到了强化学习。不过目前强化学习的落地应用还比较少,大部分的应用还都只是用于打游戏。
1.2.3机器学习常用算法
机器学习的算法有很多,简单介绍一些机器学习中常用的算法:
决策树(Decision Tree) —— 决策树是一种简单但又使用广泛的监督学习分类算法。它是一种分而治之的决策过程,把一个复杂的预测问题,通过树的分支节点,划分成两个或多个较为简单的子集,从结构上划分为不同的子问题。当分支节点满足一定停止规则 时,该分支节点就会停止分叉,得到分类结果。
线性回归(Linear Regreesion) —— 线性回归是一种监督学习的算法。在线性回归中,数据使用线性预测函数来建模,模型建立好之后可以用来预测未知的值。也就是可以根据现在,预测未来。
KNN(K-Nearest Neighbor)—— KNN 算法又称为 k 近邻分类
(k-nearest neighbor classification)算法,是一种监督学习算法。最简单的最近邻算法就是遍历所有已知标签的样本集中的数据,计算它们和需要分类的样本之间的距离(这里的距离一般指的是欧氏距离 (Euclidean Distance)),同时记录目前的最近点。KNN 查找的是已知标签的样本集中跟需要分类的样本最邻近的 K 个样本,需要分类的样本最终的标签是由这 K 个样本的标签决定的, 采用的方式是“多数表决”。也就是在这 K 个样本中哪种标签最多,那么需要分类的样本就归为哪一类。
可以不断改变 K 值,然后用测试集来做测试,最终选取一个可以使得测试误差比较小的 K 值。
K-Means —— K-Means 是一种无监督学习算法,通常可以用于聚类分析。所谓聚类问题,就是给定一个元素集合 A,集合中的每个元素有 n 个可观测的属性。需要使用某种方法把 A 划分为 k 个子集,并且要使得每个子集内部元素之间的差异尽可能小,不同子集之间元素的差异尽可能大。K-Means 算法的计算过程比较直观也比较简单:
(1)先从没有标签的元素集合 A 中随机取 k 个元素,作为 k 个子集各自的重心。
(2)分别计算剩下的元素到 k 个子集重心的距离(这里的距离也可以使用欧氏距离), 根据距离将这些元素分别划归到最近的子集。
(3)根据聚类结果,重新计算重心(重心的计算方法是计算子集中所有元素各个维度的算数平均数)。
(4)将集合 A 中全部元素按照新的重心然后再重新聚类。
(5)重复第(4)步,直到聚类结果不再发生变化
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GT5CEHWM-1629971370454)(C:\Users\gzz\AppData\Roaming\Typora\typora-user-images\image-20210823193231020.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tniA0YxG-1629971370457)(C:\Users\gzz\AppData\Roaming\Typora\typora-user-images\image-20210823193249788.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OjvdLmyk-1629971370459)(C:\Users\gzz\AppData\Roaming\Typora\typora-user-images\image-20210823193305501.png)]
聚类模型一共迭代了 9 次,最终收敛。从图中可以看得出来第 1 次迭代的时候,模型的聚类效果是很差的,一看就不太合理。迭代了 5 次之后,模型有了一些改善,聚类的效果已经不错了,不过看得出来还有一些提高的空间。迭代 9 次之后,模型就训练好了,很好 地把没有标签的数据分成了 4 类。相同类别之间的差距比较小,不同类别之间的差距比较大。
神经网络(Neural Network)—— 神经网络是一种模拟人类大脑神经网络结构构建出来的算法。神经网络的结构可以有多层,多层的神经网络可以由输入层(Input Layer), 隐藏层(Hidden Layers)以及输出层(Output Layer)组成。其中隐藏层可能有 0 到多个,所以最简单的神经网络就只有输入层和输出层。神经网络的每一层都由若干个**神经元 (Neuron)节点组成。 信号从输出层传入网络,与神经元的权值(Weights)作用后再经过激活函数 (Activation Function)**传入下一层。每一层信号的输出都是下一层的输入,直到把信号传到输出层得出结果。
网络结构:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FAW8NVka-1629971370460)(C:\Users\gzz\AppData\Roaming\Typora\typora-user-images\image-20210823202540653.png)]
神经网络是深度学习的重要基础
除了上面介绍的这些算法以外,机器学习领域还有很多其他的算法,如朴素贝叶斯 (Naive Bayes),支持向量机 SVM(Support Vector Machine), Adaboost 等。
1.3人工智能、机器学习,神经网络以及深度学习之间的关系
人工智能——1956 年,在美国达特茅斯会议(Dartmouth Conference)上被提出。
人工智能其实是一种抽象的概念,并不是指任何实际的算法。人工智能可以对人的意识、思维进行模拟,但又不是人的智能。有时候还会把人工智能分为弱人工智能(Weak AI)和强人工智能(Strong AI)。
弱人工智能是擅长于单个方面技能的人工智能。比如 AlphaGo 能战胜了众多世界围棋冠军的,在围棋领域所向披靡,但它只会下围棋,做不了其他事情。目前的人工智能相关的技术,比如图像识别,语言识别,自然语言处理等等,基本都是处于弱人工智能阶段。强人工智能指的是在各方面都能和人类智能差不多的人工智能,人类能干的脑力劳动它都能干。创造强人工智能比创造弱人工智能难度要大很多,现阶段还做不到,只有在一些科幻电影中才能看到。著名的教育心理学教授 Linda Gottfredson 把智能定义为“一种宽泛的心理能力,能够进行思考、计划、解决问题、抽象思维、理解复杂理念、快速学习和从经验中学习等操作。”强人工智能在进行这些操作时应该跟人类一样得心应手。
机器学习 —— 机器学习是最近 20 多年兴起的一门多领域交叉学科,涉及概率论、统计学、逼近学、凸分析、计算复杂性理论等多门学科。机器学习包含很多具体的算法。人工智能是飘在天上的概念,需要一些具体的算法使得人工智能可以落地应用,而一般来说,这些具体的智能算法可以统称为机器学习算法。
神经网络 —— 神经网络是众多机器学习算法中的其中一个,是模仿人类大脑神经结构构建出来的一种算法,构建出来的网络称为人工神经网络(Artificial Neural Networks, ANN)。神经网络算法在机器学习中并不算特别出色,所以一开始的时候并没有引起人们的特别关注。神经网络的发展已经经历了三次发展浪潮:20 世纪 40 年代到 60 年代神经网络的雏形出现在控制论(Cybernetics)中,20 世纪 80 年代到 90 年代表现为联结主(Connectionism)。直到 2006 年神经网络重新命名为深度学习,再次兴起。
深度学习 —— 深度学习的基础其实就是神经网络,之所以后来换了一种叫法,主要是由于之前的神经网络算法中网络的层数不能太深,也就是不能有太多层网络,网络层数过多会使得网络无法训练。随着神经网络理论的发展,科学家研究出了多种方式使得训练深层的网络也成为可能,深度学习由此诞生。如卷积神经网络(Convolutional Neural Network, CNN),长短时记忆网络(Long Short Term Memory Network, LSTM),**深度残差网络(Deep Residual Network)**等都属于深度学习,其中深度残差网络的深度可以到达 1000 层,甚至更多。深层的网络有助于挖掘数据中深层的特征,可以使得网络拥有更强大的性能。
人工智能、机器学习、神经网络和深度学习之间的关系
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sz3Bq5Cp-1629971370461)(C:\Users\gzz\AppData\Roaming\Typora\typora-user-images\image-20210823205358552.png)]
1.4深度学习应用
深度学习最早兴起于图像识别,在最近几年可以说是已经深入各行各业。深度学习在计算机视觉,语音识别,自然语言处理,机器人控制,生物信息,医疗,法律,金融,推荐系统,搜索引擎,电脑游戏,娱乐等领域均有应用。
图像识别 —— 图像识别可以说是深度学习最早实现突破性成就的领域。如今计算机对图片的识别能力已经跟人类不相上下。把一张图片输入神经网络,经过网络的运算,最后可以得到图片的分类。
对于每一张图片,神经网络都给出了5 个最有可能的分类,排在最上面的可能性最大。图中的置信度表示的就是该图片的概率值。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tUXb0GPP-1629971370462)(C:\Users\gzz\AppData\Roaming\Typora\typora-user-images\image-20210826163420817.png)]
目标检测 —— 利用深度学习还可以识别图片中的特定物体,然后对该物体进行标注。
人脸识别 —— 深度学习还可以识别图像中的人脸,判断是男人还是女人,判断人的年龄,判断图像中的人是谁等。
目标分割 —— 目标分割识别出图中的物体,并且可以划分出物体的边界。
描述图片 —— 把一张图片输入神经网络中,就可以输出对这张图片的文字描述。
图片风格转换 —— 利用深度学习实现一张图片加上另一张图片的风格,然后生成一张新的图片。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GQ2uhN7F-1629971370463)(C:\Users\gzz\AppData\Roaming\Typora\typora-user-images\image-20210826163656809.png)]
语音识别 —— 深度学习还可以用来识别人说的话,把语音数据转换为文本数据。
文本分类 —— 使用深度学习对多个文本进行分类,比如判断一个评论是好评还是差评,或者判断一篇新闻是属于娱乐新闻,体育新闻还是科技新闻。
机器翻译 —— 使用深度学习进行机器翻译。
诗词生成 —— 把一个诗词的题目传入神经网络,就可以生成一篇诗词。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WDJyy2Tp-1629971370465)(C:\Users\gzz\AppData\Roaming\Typora\typora-user-images\image-20210826164040901.png)]
图像生成 —— 深度学习还可以用来生成图片。比如可以打开网站 https://make.girls.moe/#/,设置好动漫人物的头发颜色,头发长度,眼睛颜色,是否戴帽子等信息就可以生成符合条件的动漫人物。并且可以生成无数张不重复的照片。
1.5神经网络深度学习发展史
神经网络的发展历史中有过三次热潮,分别发展在 20 世纪 40 年代到 60 年代,20 世纪 80 年代到 90 年代,以及 2006 年至今。每一次神经网络的热潮都伴随着人工智能的兴起,人 工智能和神经网络一直以来都有着非常密切的关系。
1.5.1 神经网络诞生-20 世纪 40-60 年代
1943 年,神经病学家和神经元解剖学家 W.S.McCulloch 和数学家 W.A.Pitts 在生物物理 学期刊发表文章提出神经元的数学描述和结构。并且证明了只要有足够的简单神经元,在这些神经元互相连接并同步运行的情况下,可以模拟任何计算函数,这种神经元的数学模型称为 M-P
模型。该模型把神经元的动作描述为:1.神经元的活动表现为兴奋或抑制的二值变化;2.任何兴奋性突触输入激励后,使神经元兴奋;3.任何抑制性突触有输入激励后,使神经元抑制; 4.突触的值不随时间改变;5.突触从感知输入到传送出一个输出脉冲的延时时间是 0.5ms。
尽管现在看来 M-P 模型过于简单,并且观点也不是完全正确,不过这个模型被认为是第一个仿生学的神经网络模型,他们提出的很多观点一直沿用至今,比如说他们认为神经元有两种状态,要不就是兴奋,要不就是抑制。这跟后面要提到的单层感知器非常类似,单层感知器的输出要不就是 0 要不就是 1。他们最重要的贡献就是开创了神经网络这个研究方向,为今天 神经网络的发展奠定了基础。
1949 年 , 另 一 位 心 理 学 家 Donald Olding Hebb 在 他 的一本 名 为 《The organization of behavior: A neuropsychological theory》[4] 的书提出了 Hebb 算 法。他也是首先提出“连接主义”(connectionism)这一名词的人之一,这个名词的含义是大脑的活动是靠脑细胞的组合连接实现的。Hebb 认为,如果源和目的神经元均被激活兴奋时, 它们之间突触的连接强度将会增强。他指出在神经网络中,信息存储在连接权值中。并提出假设神经元 A 到神经元 B 连接权与从 B 到 A 的连接权是相同的。他这里提到的这个权值的思想也被应用到了目前所使用的神经网络中,通过调节神经元之间的连接权值来得到不同 的神经网络模型,实现不同的应用。虽然这些理论在今天看来是理所当然的,不过在当时看来这是一种全新的想法,算得上是开创性的理论。
1958 年,计算机学家 Frank Rosenblatt 提出了一种神经网络结构,称为感知器(Perceptron)。他提出的这个感知器可能是世界上第一个真正意义上的人工神经网络。感知器提出之后在 60 年代就掀起了神经网络研究的第一次热潮。很多人都认为只要使用成千上万的神经元,他们就能解决一切问题。现在看来可能会让人感觉 too young too naive,不过感知器在当时确实是影响非凡。
这股感知器热潮持续了 10 年,直到 1969 年,人工智能的创始人之一的 M.Minsky 和 S.Papert 出版了一本名为《感知器》[5] 的书,书中指出简单神经网络只能运用于线性问题的求解,能够求解非线性问题的网络应具有隐层,而从理论上还不能证明将感知器模型扩展到多层网络是有意义的。由于 Minsky 在学术界的地位和影响,其悲观论点极大地影响了当时的人工神经网络研究,为刚刚燃起希望之火的人工神经网络泼了一大盘冷水。这本书出版不不久之后, 几乎所有为神经网络提供的研究基金都枯竭了,没有人愿意把钱浪费在没有意义的事情上。
神经网络复兴-20 世纪 80-90 年代
1982 年,美国加州理工学院的优秀物理学家 John J.Hopfield 博士提出了 Hopfield 神经网络。Hopfield 神经网络引用了物理力学的分析方法,把网络作为一种动态系统并研究这种网络动态系统的稳定性。
1985 年,G.E.Hinton 和 T.J.Sejnowski 借助统计物理学的概念和方法提出了一种随机神经网络模型——玻尔兹曼机(Boltzmann Machine)。一年后他们又改进了模型,提出了受限玻尔兹曼机(Restricted Boltzmann Machine)。
1986 年,Rumelhart,Hinton,Williams 提出了 BP(Back Propagation)算法[6] (多层感知器的误差反向传播算法)。到今天为止,这种多层感知器的误差反向传播算法还是非常基础的算法,凡是学神经网络的人,必然要学习 BP 算法。我们现在的深度网络模型基本上都是在这个算法的基础上发展出来的。使用 BP 算法的多层神经网络也称为 BP 神经网络(Back Propagation Neural network)。BP 神经网络主要指的是 20 世纪 80-90 年代使用 BP 算法的神经网络,虽然现在的深度学习也用 BP 算法,不过网络名称已经不叫 BP 神经网络了。早期的 BP 神经网络的神经元层数不能太多,一旦网络层数过多,就会使得网络无法训练,具体原因在后面的章节中会详细说明。
Hopfield 神经网络,玻尔兹曼机以及受限玻尔兹曼机由于目前已经较少使用。
1.5.3 深度学习-2006 年至今
2006 年,多伦多大学的教授 Geoffrey Hinton 提出了深度学习。他在世界顶级学术期刊 《Science》上发表了一篇论文《Reducing the dimensionality of data with neural networks》[7] ,论文中提出了两个观点:①多层人工神经网络模型有很强的特征学习能力,深 度学习模型学习得到的特征数据对原始数据有更本质的代表性,这将大大便于分类和可视化问 题;②对于深度神经网络很难训练达到最优的问题,可以采用逐层训练方法解决。将上层训练好的结果作为下层训练过程中的初始化参数。在这一文献中深度模型的训练过程中逐层初始化采用无监督学习方式。
Hinton 在论文中提出了一种新的网络结构深度置信网络(Deep Belief Net:DBN),这 种网络使得训练深层的神经网络成为可能。深度置信网络由于目前已经较少使用。
2012 年,Hinton 课题组为了证明深度学习的潜力,首次参加 ImageNet 图像识别比赛, 通过 CNN 网络 AlexNet 一举夺得冠军。也正是由于该比赛,CNN 吸引了众多研究者的注意。
2014 年,香港中文大学教授汤晓鸥领导的计算机视觉研究组开发了名为 DeepID 的深度学习模型, 在 LFW (Labeled Faces in the Wild,人脸识别使用非常广泛的测试基准)数据库上获得了 99.15%的识别率,人用肉眼在 LFW 上的识别率为 97.52%,深度学习在学术研究层面上已经超过了人用肉眼的识别。
2016 年 3 月人工智能围棋比赛,由位于英国伦敦的谷歌(Google)旗下 DeepMind 公司的开发的 AlphaGo 战胜了世界围棋冠军、职业九段选手李世石,并以 4:1 的总比分获胜。
2018 年 6 月,OpenAI 的研究人员开发了一种技术,可以在未标记的文本上训练 AI,可以大量减少人工标注的时间。几个月后谷歌推出了一个名为 BERT 的模型,该模型在学习了几 百 万 个 句 子以后学会了如何预测漏 掉 的 单 词 。 在 多 项 NLP (Natural Language Processing) 测试中,它的表现都接近人类。
2020 年 6 月,OpenAI 发布了有史以来最大的 NLP 模型 GPT-3,GPT-3 模型参数达到 了 1750 亿个参数,模型训练花费了上千万美元。GPT-3 训练方法很简单,但是却非常全能, 可以完成填空,翻译,问答,阅读理解,数学计算,语法纠错等多项任务。随着 NLP 技术的 发展,相信在将来 AI 可以逐渐理解我们的语言,跟我们进行顺畅的对话,甚至成为我们的保姆,老师或朋友。
1.6 深度学习领域重要人物
前面的 3 位大师 Geoffrey Hinton、Yann LeCun、Yoshua Bengio 江湖人称“深度学习三巨头”,为了表彰 3 位大师对于神经网络深度学习领域的贡献,2018 年计算机领域最高奖项图灵奖颁给了他们.
1.Geoffrey Hinton
英国出生的计算机学家和心理学家,以其在神经网络方面的贡献闻名。Hinton 是反向传播算法和对比散度算法的发明人之一,也是深度学习的积极推动者。目前担任多伦多大学计 算机科学系教授。
2013 年 3 月加入 Google,领导 Google Brain 项目。
Hinton 被人们称为“深度学习教父”,可以说是目前对深度学习领域影响最大的人。而且如今在深度学习领域活跃的大师,有很多都是他的弟子,可以说是桃李满天下。
2.Yann LeCun
法国出生的计算机科学家,他最著名的工作是光学字符识别和计算机视觉上使用卷积神经网络(CNN),他也被称为卷积网络之父。
曾在多伦多大学跟随 Geoffrey Hinton 做博士后。1988 年加入贝尔实验室,在贝尔实验 室工作期间开发了一套能够识别手写数字的卷积神经网络系统,并把它命名为 LeNet。这个系统能自动识别银行支票。
2003 年去了纽约大学担任教授,现在是纽约大学终身教授。 2013 年 12 月加入了 Facebook,成为 Facebook 人工智能实验室的第一任主任。
3.Yoshua Bengio
毕业于麦吉尔大学,在 MIT 和贝尔实验室做过博士后研究员,自 1993 年之后就在蒙特利尔大学任教。在预训练问题,自动编码器降噪等领域做出重大贡献。
这“三巨头”中的前两人早已投身工业界,而 Bengio 仍留在学术界教书,他曾说过: “我留在学术圈是为全人类作贡献,而不是为某一公司赚钱”。每个领域的发展不仅需要做前沿的研究,还需要不断培养新的新鲜血液加入到这个行业中,所以如果大学教授都去工作的话,上课教书的人就少了。所以 Bengio 能留 在学术圈,对行业的发展也是一件好事。
2017 年初 Bengio 选择加入微软成为战略顾问。他表示不希望有一家或者两家公司(他 指的显然是 Google 和 Facebook)成为人工智能变革中的唯一大玩家,这对研究社区没有好处,对人类也没有好处。
4.Andrew Ng(吴恩达)
Andrew Ng 是美籍华人,曾经是斯坦福大学计算机科学系和电气工程系的副教授,斯 坦福人工智能实验室主任。他还与 Daphne Koller 一起创建了在线教育平台 Coursera。
2011 年,Andrew Ng 在 Google 创建了 Google Brain 项目,通过分布式集群计算机开发超大规模的人工神经网络。
2014 年 5 月,Andrew Ng 加入百度,负责百度大脑计划,并担任百度公司首席科学家。
2017 年 3 月,Andrew Ng 从百度离职,目前自己创业。
LeCun 是 Hinton 的 博士生,另一位人工智能大师 Jordan 曾经申请过 Hinton 的博士生,Bengio 是 Jordan 的博士后,Andrew Ng 是 Jordan 的博士生,LeCun 与 Bengio 曾 经是同事。这个圈子很小,大家都认识,这几位大师互相之间有着很深的渊源。
1.7 新一轮人工智能爆发的三要素
这一轮人工智能大爆发的主要原因有 3 个,深度学习算法,大数据,以及高性能计算。
深度学习算法 —— 之前人工智能领域的实际应用主要是使用传统的机器学习算法,虽然这些传统的机器学习算法在很多领域都取得了不错的效果,不过仍然有非常大的提升空间。深度学习出现后,计算机视觉,自然语言处理,语音识别等领域都取得了非常大的进步。
大数据 —— 如果把人工智能比喻成一个火箭,那么这个火箭需要发射升空,它的燃料就是大数据。以前在实验室环境下很难收集到足够多的样本,现在的数据相对以前在数量、覆盖性和全面性方面都获得了大幅提升。一般来说深度学习模型想要获得好的效果,就需要把大量的数据放到模型中进行训练。
高性能计算 —— 以前高性能计算大家用的是 CPU 集群,现在做深度学习都是用 GPU(Graphics Processing Unit)或 TPU(Tensor Processing Unit)。想要使用大量的数据来训练复杂的深度学习模型那就必须要具备高性能计算能力。GPU 就是我们日常所说的显卡,平时主要用于打游戏。但是 GPU 不仅可以用于打游戏,还可以用来训练模型,性价比很高。如果只是使用几个 CPU 来训练一个复杂模型可能会需要花费几周 甚至几个月的时间。把数百块 GPU 连接起来做成集群,用这些集群来训练模型,原来一个月才能训练出来的网络,可以加速到几个小时甚至几分钟就能训练完,可以大大减少模型训练时间。TPU
是谷歌专门为机器学习量身定做的处理器,执行每个操作所需的晶体管数量更少,效率更高。
初次编写于2021年8月26日。
更多推荐
所有评论(0)