您的位置:首页 > 大数据 > 人工智能

TensorFlow 2.0 深度学习 龙龙老师 第一章 人工智能绪论

2020-04-04 07:19 1256 查看

TensorFlow 2.0 深度学习 龙龙老师 第一章 人工智能绪论

一.什么是人工智能 ?
1.通过编程的方式,人类可以将提前设计好的交互逻辑交给机器重复且快速地执行,从而将人类从简单枯燥的重复劳动工作中解脱出来。
但是对于需要较高智能水平的任务,如人脸识别、聊天机器人、自动驾驶等任务,很难设计明确的逻 辑规则,传统的编程方式显得力不从心,而人工智能(Artificial Intelligence,简称 AI)是有望解决此问题的关键技术。
2.人工智能是让机器获得像人类一样具有思考和推理机制的智能技术,这一概念最早出现在 1956 年召开的达特茅斯会议上。

二.人工智能的发展阶段
1.推理期
人们试图通过总结、归纳出一些逻辑规则,并将逻辑规则以计算机程序的方式实现,来开发出智能系统。但是这种显式的规则往往过于简单,并且很难表达复杂、抽象的概念和规则。
2.知识库+推理
1970 年代,科学家们尝试通过知识库加推理的方式解决人工智能,通过构建庞大复杂的专家系统来模拟人类专家的智能水平。这些明确指定规则的方式存在一个最大的难题,就是很多复杂、抽象的概念无法用具体的代码实现。比如人类对图片的识别、对语言的理解过程,根本无法通过既定规则模拟。
3.机器学习
为了解决(知识库+推理)时期的问题,一门通过让机器自动从数据中学习规则的研究学科诞生了,称为机器学习,并在 1980 年代成为人工智能中的热门学科。(在机器学习中,有一门通过神经网络来学习复杂、抽象逻辑的方向,称为神经网络。)

三.机器学习
1.概念
通过让机器自动从数据中学习规则的研究学科诞生了,称为机器学习。
2.分类
机器学习可以分为有监督学习(Supervised Learning)、无监督学习(Unsupervised Learning)和强化学习(Reinforcement Learning,简称 RL),如图 1.2 所示。

有监督学习 :有监督学习的数据集包含了样本𝒙与样本的标签𝒚,算法模型需要学习到映射关系𝑓𝜃: 𝒙 → 𝒚,其中𝑓𝜃代表模型函数,𝜃为模型的参数。在训练时,通过计算模型的预测值𝑓𝜃(𝒙)与真实标签𝒚之间的误差来优化网络参数𝜃,使得网络下一次能够预测更精准。常见的有监督学习有线性回归、逻辑回归、支持向量机、随机森林等。

无监督学习 :收集带标签的数据往往代价较为昂贵,对于只有样本𝒙的数据集,算法需要自行发现数据的模态,这种方式叫作无监督学习。无监督学习中有一类算法将自身作为监督信号,即模型需要学习的映射为𝑓𝜃: 𝒙 → 𝒙,称为自监督学习(Self-supervised Learning)。在训练时,通过计算模型的预测值𝑓𝜃(𝒙)与自身𝒙之间的误差来优化网络参数𝜃。 常见的无监督学习算法有自编码器、生成对抗网络等。

强化学习 :也称为增强学习,通过与环境进行交互来学习解决问题的策略的一类算法。与有监督、无监督学习不同,强化学习问题并没有明确的“正确的”动作监督信号,算法需要与环境进行交互,获取环境反馈的滞后的奖励信号,因此并不能通过计算动作与“正确动作”之间的误差来优化网络。常见的强化学习算法有 DQN,PPO 。

3.人工智能、机器学习、神经网络和深度学习的之间的关系如图 1.1 所示。

神经网络算法是一类基于神经网络从数据中学习的算法,它仍然属于机器学习的范畴。受限于计算能力和数据量,早期的神经网络层数较浅,一般在 1~4 层左右,网络表达能力有限。

2006 年,Geoffrey Hinton 首次提出深度学习的概念。一般将利用深层神经网络实现的算法称作深度学习,本质上神经网络和深度学习可认为是相同的。


四.神经网络发展简史
我们将神经网络的发展历程大致分为浅层神经网络阶段和深度学习阶段,以 2006 年为分割点。2006 年以前,深度学习以神经网络和连接主义名义发展,历经了两次兴盛和两次寒冬;2006 年,Geoffrey Hinton 首次将深层神经网络命名为深度学习,自此开启了深度学习的第三次复兴之路。

1 . 浅层神经网络
1943 年,心理学家 Warren McCulloch 和逻辑学家 Walter Pitts 根据生物神经元(Neuron)结构,提出了最早的神经元数学模型,称为 MP 神经元模型。该模型的输出𝑓(𝒙) = ℎ(𝑔(𝒙)),其中𝑔(𝒙) = ∑𝑖 𝑥𝑖 , 𝑥𝑖 ∈ {0,1},模型通过𝑔(𝒙)的值来完成输出值的预测,如图 1.4所示。如果𝑔(𝒙) ≥ 0,输出为 1;如果𝑔(𝒙) < 0,输出为 0。可以看到,MP 神经元模型并没有学习能力,只能完成固定逻辑的判定。

1958 年,美国心理学家 Frank Rosenblatt 提出了第一个可以自动学习权重的神经元模型,称为感知机(Perceptron),如图 1.5 所示,输出值𝑜与真实值 之间的误差用于调整神经元的权重参数{𝑤 , 𝑤 , … , 𝑤 }。Frank Rosenblatt 随后基于“Mark 1 感知机”硬件实现感知机模型,如图 1.6、图 1.7 所示,输入为 400 个单元的图像传感器,输出为 8 个节点端子,可以成功识别一些英文字母。一般认为 1943 年~1969 年为人工智能发展的第一次兴盛期。

1969 年,美国科学家 Marvin Minsky 等人在出版的《Perceptrons》一书中指出了感知机等线性模型的主要缺陷,即无法处理简单的异或 XOR 等线性不可分问题。这直接导致了以感知机为代表的神经网络的相关研究进入了低谷期,一般认为 1969 年~1982 年为人工智能发展的第一次寒冬。

尽管处于 AI 发展的低谷期,仍然有很多意义重大的研究相继发表,这其中最重要的成果就是误差反向传播算法(Back Propagation,简称 BP 算法)的提出,它依旧是现代深度学习的核心理论基础。实际上,反向传播的数学思想早在 1960 年代就已经被推导出了,但是并没有应用在神经网络上。1974 年,美国科学家 Paul Werbos 在他的博士论文中第一次提出可以将 BP 算法应用到神经网络上,遗憾的是,这一成果并没有获得足够重视。直至1986 年,David Rumelhart 等人在 Nature 上发表了通过 BP 算法来进行表征学习的论文,BP 算法才获得了广泛的关注。

1982 年,随着 John Hopfild 的循环连接的 Hopfield 网络的提出,开启了 1982 年~1995年的第二次人工智能复兴的大潮,这段期间相继提出了卷积神经网络、循环神经网络、反向传播算法等算法模型。1986 年,David Rumelhart 和 Geoffrey Hinton 等人将 BP 算法应用在多层感知机上;1989 年 Yann LeCun 等人将 BP 算法应用在手写数字图片识别上,取得了巨大成功,这套系统成功商用在邮政编码识别、银行支票识别等系统上;1997 年,现在应用最为广泛的循环神经网络变种之一 LSTM 被 Jürgen Schmidhuber 提出;同年双向循环神经网络也被提出。

遗憾的是,神经网络的研究随着以支持向量机(Support Vector Machine,简称 SVM)为代表的传统机器学习算法兴起而逐渐进入低谷,称为人工智能的第二次寒冬。支持向量机拥有严格的理论基础,训练需要的样本数量较少,同时也具有良好的泛化能力,相比之下,神经网络理论基础欠缺,可解释性差,很难训练深层网络,性能也相对一般。图 1.8绘制了 1943 年~2006 年之间的重大时间节点。

2.深度学习

2006 年,Geoffrey Hinton 等人发现通过逐层预训练的方式可以较好地训练多层神经网络,并在 MNIST 手写数字图片数据集上取得了优于 SVM 的错误率,开启了第三次人工智能的复兴。在论文中,Geoffrey Hinton 首次提出了 Deep Learning 的概念,这也是(深层)神经网络被叫作深度学习的由来。2011 年,Xavier Glorot 提出了线性整流单元(Rectified Linear Unit,简称 ReLU)激活函数,这是现在使用最为广泛的激活函数之一。2012 年,Alex Krizhevsky 提出了 8 层的深层神经网络 AlexNet,它采用了 ReLU 激活函数,并使用Dropout 技术来防止过拟合,同时抛弃了逐层预训练的方式,直接在两块 NVIDIA GTX580 GPU 上训练网络。AlexNet 在 ILSVRC-2012 图片识别比赛中获得了第一名的成绩,比第二名在 Top-5 错误率上降低了惊人的 10.9%。

自 AlexNet 模型提出后,各种各样的算法模型相继被发表,其中有 VGG 系列、 GoogLeNet 系列、ResNet 系列、DenseNet 系列等ResNet 系列模型将网络的层数提升至数百层、甚至上千层,同时保持性能不变甚至更优。它算法思想简单,具有普适性,并且效果显著,是深度学习最具代表性的模型。

除了有监督学习领域取得了惊人的成果,在无监督学习和强化学习领域也取得了巨大的成绩。2014 年,Ian Goodfellow 提出了生成对抗网络,通过对抗训练的方式学习样本的真实分布,从而生成逼近度较高的样本。此后,大量的生成对抗网络模型相继被提出,最 新的图片生成效果已经达到了肉眼难辨真伪的逼真度。2016 年,DeepMind 公司应用深度神经网络到强化学习领域,提出了 DQN 算法,在 Atari 游戏平台中的 49 个游戏上取得了与人类相当甚至超越人类的水平;在围棋领域,DeepMind 提出的 AlphaGo 和 AlphaGoZero 智能程序相继打败人类顶级围棋专家李世石、柯洁等;在多智能体协作的 Dota2 游戏平台,OpenAI 开发的 OpenAI Five 智能程序在受限游戏环境中打败了 TI8 冠军队伍 OG队,展现出了大量专业级的高层智能操作。图 1.9 列出了 2006 年~2019 年之间重大的时间节点。

五. 深度学习特点
1.数据量
早期的机器学习算法比较简单,容易快速训练,需要的数据集规模也比较小,如 1936年由英国统计学家 Ronald Fisher 收集整理的鸢尾花卉数据集 Iris 共包含 3 个类别花卉,每个类别 50 个样本。随着计算机技术的发展,设计的算法越来越复杂,对数据量的需求也随之增大。1998 年由 Yann LeCun 收集整理的 MNIST 手写数字图片数据集共包含 0~9 共 10类数字,每个类别多达 7000 张图片。随着神经网络的兴起,尤其是深度学习,网络层数一 般较深,模型的参数量可达百万、千万甚至十亿个,为了防止过拟合,需要的数据集的规
模通常也是巨大的。现代社交媒体的流行也让收集海量数据成为可能,如 2010 年发布的 ImageNet 数据集收录了共 14197122 张片,整个数据集的压缩文件大小就有 154GB。图 1.10、图 1.11 列举了一些数据集的样本数和数据集大小随时间的变化趋势。

尽管深度学习对数据集需求较高,收集数据,尤其是收集带标签的数据,往往是代价昂贵的。数据集的形成通常需要手动采集、爬取原始数据,并清洗掉无效样本,再通过人类智能去标注数据样本,因此不可避免地引入主观偏差和随机误差。研究数据量需求较少的算法模型是非常有用的一个方向。


2.计算力

计算能力的提升是第三次人工智能复兴的一个重要因素。实际上,现代深度学习的基础理论在 1980 年代就已经被提出,但直到 2012 年,基于两块 GTX580 GPU 训练的AlexNet 发布后,深度学习的真正潜力才得以发挥。传统的机器学习算法并不像神经网络这样对数据量和计算能力有严苛的要求,通常在 CPU 上串行训练即可得到满意结果。但是深度学习非常依赖并行加速计算设备,目前的大部分神经网络均使用 NVIDIA GPU 和 Google TPU 等并行加速芯片训练模型参数。如围棋程序 AlphaGo Zero 在 64 块 GPU 上从零开始训练了 40 天才得以超越所有的 AlphaGo 历史版本;自动网络结构搜索算法使用了800 块 GPU 同时训练才能优化出较好的网络结构。

目前普通消费者能够使用的深度学习加速硬件设备主要来自 NVIDIA 的 GPU 显卡,图 1.12 例举了从 2008 年到 2017 年 NVIDIA GPU 和 x86 CPU 的每秒 10 亿次的浮点运算数(GFLOPS)的指标变换曲线。可以看到,x86 CPU 的曲线变化相对缓慢,而 NVIDIA GPU的浮点计算能力指数式增长,这主要是由日益增长的游戏计算量和深度学习计算量等业务驱动的。

3.网络规模
早期的感知机模型和多层神经网络层数只有 1 层或者 2~4 层,网络参数量也在数万左右。随着深度学习的兴起和计算能力的提升,AlexNet(8 层)、VGG16(16 层)、 GoogLeNet(22 层)、ResNet50(50 层)、DenseNet121(121 层)等模型相继被提出,同时输入图
片的大小也从28 × 28逐渐增大,变成224 × 224、299 × 299等,这些变化使得网络的总参数量可达到千万级别,如图 1.13 所示。

网络规模的增大,使得神经网络的容量也相应增大,从而能够学习到复杂的数据模态,模型的性能也会随之提升;另一方面,网络规模的增大,意味着更容易出现过拟合现象,训练需要的数据集和计算代价也会变大。

4.通用智能
过去,为了提升某项任务上的算法性能,往往需要利用先验知识手动设计相应的特征,以帮助算法更好地收敛到最优解。这类特征提取方法往往是与具体任务场景强相关的,一旦场景发生了变动,这些依靠人工设计的特征和先验设定无法自适应新场景,往往需要重新设计算法模型,模型的通用性不强。

设计一种像人脑一样可以自动学习、自我调整的通用智能机制一直是人类的共同愿景。从目前来看,深度学习是最接近通用智能的算法之一。在计算机视觉领域,过去需要针对具体的任务设计特征、添加先验假设的做法,已经被深度学习算法抛弃了,目前在图片识别、目标检测、语义分割等方向,几乎都是基于深度学习端到端地训练,获得的模型性能好,适应性强;在 Atria 游戏平台上,DeepMind 设计的 DQN 算法模型可以在相同的算法、模型结构和超参数的设定下,在 49 个游戏上获得人类相当的游戏水平,呈现出一定程度的通用智能。图 1.14 是 DQN 算法的网络结构,它并不是针对于某个游戏而设计的,而是可以控制 Atria 游戏平台上的 49 个游戏。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
weixin_45751993 发布了0 篇原创文章 · 获赞 0 · 访问量 171 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐