GPT之路(三) AI基础之深度学习DL工作原理

1.什么是深度学习(神经网络)?

深度学习、机器学习、人工智能的关系

深度学习(Deep Learning, DL)或阶层学习(hierarchical learning)是机器学习的技术和研究领域之一,通过建立具有阶层结构的人工神经网络(Artifitial Neural Networks, ANNs),在计算系统中实现人工智能  。由于阶层ANN能够对输入信息进行逐层提取和筛选,因此深度学习具有表征学习(representation learning)能力 ,可以实现端到端的监督学习和非监督学习 。此外,深度学习也可参与构建强化学习(reinforcement learning)系统,形成深度强化学习  。深度学习所使用的阶层ANN具有多种形态,其阶层的复杂度被通称为“深度” 。按构筑类型,深度学习的形式包括多层感知器、卷积神经网络、循环神经网络、深度置信网络和其它混合构筑  。深度学习使用数据对其构筑中的参数进行更新以达成训练目标,该过程被通称为“学习”  。学习的常见方法为梯度下降算法及其变体 ,一些统计学习理论被用于学习过程的优化。在应用方面,深度学习被用于对复杂结构和大样本的高维数据进行学习,按研究领域包括计算机视觉、自然语言处理、生物信息学、自动控制等,且在人像识别、机器翻译、自动驾驶等现实问题中取得了成功。

1.1 深度学习浪潮兴起的三大因素

1.海量的数据
2.不断提升的算法能力
3.高性能计算硬件的实现:GPU、TPU 

2.大白话解释深度学习

我们以识别图片中的汉字为例。假设深度学习要处理的信息是“水流”,而处理数据的深度学习网络是一个由管道和阀门组成的巨大水管网络。网络的入口是若干管道开口,网络的出口也是若干管道开口。这个水管网络有许多层,每一层由许多个可以控制水流流向与流量的调节阀。根据不同任务的需要,水管网络的层数、每层的调节阀数量可以有不同的变化组合。对复杂任务来说,调节阀的总数可以成千上万甚至更多。水管网络中,每一层的每个调节阀都通过水管与下一层的所有调节阀连接起来,组成一个从前到后,逐层完全连通的水流系统。

深度学习类似一个水流系统

那么,计算机该如何使用这个庞大的水管网络来学习识字呢?比如,当计算机看到一张写有“田”字的图片,就简单将组成这张图片的所有数字(在计算机里,图片的每个颜色点都是用“0”和“1”组成的数字来表示的)全都变成信息的水流,从入口灌进水管网络。

深度学习-将图片数字化

我们预先在水管网络的每个出口都插一块字牌,对应于每一个我们想让计算机认识的汉字。这时,因为输入的是“田”这个汉字,等水流流过整个水管网络,计算机就会跑到管道出口位置去看一看,是不是标记由“田”字的管道出口流出来的水流最多。如果是这样,就说明这个管道网络符合要求。如果不是这样,就调节水管网络里的每一个流量调节阀,让“田”字出口“流出”的水最多。这下,计算机要忙一阵了,要调节那么多阀门!好在计算机的速度快,暴力的计算加上算法的优化,总是可以很快给出一个解决方案,调好所有阀门,让出口处的流量符合要求。

深度学习-识别田字

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

深度学习-学习申字

如此反复进行,知道所有汉字对应的水流都可以按照期望的方式流过整个水管网络。这时,我们就说,这个水管网络是一个训练好的深度学习模型了。当大量汉字被这个管道网络处理,所有阀门都调节到位后,整套水管网络就可以用来识别汉字了。这时,我们可以把调节好的所有阀门都“焊死”,静候新的水流到来。

深度学习-学习所有汉字

与训练时做的事情类似,未知的图片会被计算机转变成数据的水流,灌入训练好的水管网络。这时,计算机只要观察一下,哪个出水口流出来的水流最多,这张图片写的就是哪个字。深度学习大致就是这么一个用人类的数学知识与计算机算法构建起来的整体架构,再结合尽可能多的训练数据以及计算机的大规模运算能力去调节内部参数,尽可能逼近问题目标的半理论、半经验的建模方式。

3.深度学习(神经网络)的原理

深度学习的实质是构建具有多个隐藏层的机器学习模型,通过海量的训练数据来学习更有用的特征,从而最终提升分类或预测的准确性。“深度模型”是手段,“表示学习”是目的。深度学习与传统的浅层学习的不同在于

1.强调了模型结构的深度,有2层以上的隐藏层;
2.明确突出了表示学习的重要性。通过逐层特征变换,将样本在原空间的特征表示变换到一个新的特征空间,使分类或预测更加容易。

3.1 神经网络的基础知识

神经元
感知机
激活函数:Sigmoid、tanh、ReLU、Leaky ReLU、ELU、Softmax。
多层感知机:
万能逼近定理:

3.2 神经元的结构

生物神经元包括细胞体和突起两个部分,突起又包括树突(接收信号)和轴突(传出信号)。

1.轴突记录了神经元间联系的强弱。只有达到一定的兴奋程度,神经元才向外界传输信息。
2.神经元之间的信号通过突触传递。

3.3 感知机

DL之Perceptron:Perceptron感知器(感知机/多层感知机/人工神经元)的简介、原理、案例应用(相关配图)之详细攻略

3.4 万能逼近定理 (Universal approximation theorem)

1.只需一个包含单个隐藏层的前馈神经网络,即可逼近任意一个连续函数。
2.尽管仅有一个隐藏层的前馈网络足以表示任何函数,但是该隐藏层的神经元数目可能非常多,从而导致网络无法学习或正确泛化。

3.5 神经网络训练

1.损失函数:
    平均损失函数
    绝对值损失函数
    交叉熵损失函数:softmax回归,独热编码。

2.优化目标

3.梯度下降:
梯度下降批次训练策略:
          批次梯度下降(Batch Gradient Descent)、
          随机梯度下降(Stochastic Gradient Descent)、
          小批次梯度下降(Mini-batch Gradient Descent)、
DL之DNN优化技术:神经网络算法简介之梯度下降算法(GD算法)中相关概念(方向导数/梯度)、目标函数、其他常见损失函数求梯度(求导)案例之详细攻略
梯度下降各种优化算法:Momentum、NAG、Adagrad、Adadelta、RMSprop、Adam
4.反向传播法

3.6 神经网络学习

1.通过调整神经元的参数,使得网络对给定输入可产生期望输出。
2.学习层次化的表示(表征)

3.7 神经网络的前馈运算与反向传播

前馈运算和反向传播:在训练网络过程中所使用的。如果经过训练模型,网络稳定下来以后,就可以把参数固定下来,此时就不再需要反向传播了,只需要前馈运算进行推理和预测即可!

 3.8 激活函数

DL学习—AF:理解机器学习中常用的激活函数(sigmoid、softmax等)简介、应用、计算图实现、代码实现详细攻略

4.深度学习(神经网络)的算法分类

4种典型的深度学习算法

4.1 卷积神经网络 – CNN

CNN 的价值:

  1. 能够将大数据量的图片有效的降维成小数据量(并不影响结果)
  2. 能够保留图片的特征,类似人类的视觉原理

CNN 的基本原理:

  1. 卷积层 – 主要作用是保留图片的特征
  2. 池化层 – 主要作用是把数据降维,可以有效的避免过拟合
  3. 全连接层 – 根据不同任务输出我们想要的结果

CNN 的实际应用:

  1. 图片分类、检索
  2. 目标定位检测
  3. 目标分割
  4. 人脸识别
  5. 骨骼识别

了解更多《一文看懂卷积神经网络-CNN(基本原理+独特价值+实际应用)

4.2 循环神经网络 – RNN

RNN 是一种能有效的处理序列数据的算法。比如:文章内容、语音音频、股票价格走势…

之所以他能处理序列数据,是因为在序列中前面的输入也会影响到后面的输出,相当于有了“记忆功能”。但是 RNN 存在严重的短期记忆问题,长期的数据影响很小(哪怕他是重要的信息)。

于是基于 RNN 出现了 LSTM 和 GRU 等变种算法。这些变种算法主要有几个特点:

  1. 长期信息可以有效的保留
  2. 挑选重要信息保留,不重要的信息会选择“遗忘”

RNN 几个典型的应用如下:

  1. 文本生成
  2. 语音识别
  3. 机器翻译
  4. 生成图像描述
  5. 视频标记

了解更多《一文看懂循环神经网络-RNN(独特价值+优化算法+实际应用)

4.3 生成对抗网络 – GANs

假设一个城市治安混乱,很快,这个城市里就会出现无数的小偷。在这些小偷中,有的可能是盗窃高手,有的可能毫无技术可言。假如这个城市开始整饬其治安,突然开展一场打击犯罪的“运动”,警察们开始恢复城市中的巡逻,很快,一批“学艺不精”的小偷就被捉住了。之所以捉住的是那些没有技术含量的小偷,是因为警察们的技术也不行了,在捉住一批低端小偷后,城市的治安水平变得怎样倒还不好说,但很明显,城市里小偷们的平均水平已经大大提高了。

警察们开始继续训练自己的破案技术,开始抓住那些越来越狡猾的小偷。随着这些职业惯犯们的落网,警察们也练就了特别的本事,他们能很快能从一群人中发现可疑人员,于是上前盘查,并最终逮捕嫌犯;小偷们的日子也不好过了,因为警察们的水平大大提高,如果还想以前那样表现得鬼鬼祟祟,那么很快就会被警察捉住。为了避免被捕,小偷们努力表现得不那么“可疑”,而魔高一尺、道高一丈,警察也在不断提高自己的水平,争取将小偷和无辜的普通群众区分开。随着警察和小偷之间的这种“交流”与“切磋”,小偷们都变得非常谨慎,他们有着极高的偷窃技巧,表现得跟普通群众一模一样,而警察们都练就了“火眼金睛”,一旦发现可疑人员,就能马上发现并及时控制——最终,我们同时得到了最强的小偷和最强的警察。

 

同时得到了最强的小偷和最强的警察

了解更多《什么是生成对抗网络 – GAN?(基本概念+工作原理)

4.4 深度强化学习 – RL

强化学习算法的思路非常简单,以游戏为例,如果在游戏中采取某种策略可以取得较高的得分,那么就进一步“强化”这种策略,以期继续取得较好的结果。这种策略与日常生活中的各种“绩效奖励”非常类似。我们平时也常常用这样的策略来提高自己的游戏水平。

在 Flappy bird 这个游戏中,我们需要简单的点击操作来控制小鸟,躲过各种水管,飞的越远越好,因为飞的越远就能获得更高的积分奖励。

这就是一个典型的强化学习场景:

  • 机器有一个明确的小鸟角色——代理
  • 需要控制小鸟飞的更远——目标
  • 整个游戏过程中需要躲避各种水管——环境
  • 躲避水管的方法是让小鸟用力飞一下——行动
  • 飞的越远,就会获得越多的积分——奖励

游戏是典型的强化学习场景

你会发现,强化学习和监督学习、无监督学习 最大的不同就是不需要大量的“数据喂养”。而是通过自己不停的尝试来学会某些技能。

了解更多:《一文看懂什么是强化学习?(基本概念+应用场景+主流算法)

DL:神经网络所有模型(包括DNN、CNN、RNN等)的简介(概览)、网络结构简介、使用场景对比之详细攻略

DL之DNN:DNN深度神经网络算法的简介、相关论文、设计思路、关键步骤、实现代码等配图集合之详细攻略

DL之CNN:计算机视觉卷积神经网络算法CNN算法常见结构、发展、CNN优化技术、案例应用之详细攻略

DL之RNN:RNN算法的简介、相关论文、相关思路、关键步骤、配图集合+TF代码定义之详细攻略

5.传统机器学习 VS 深度学习

传统机器学习和深度学习的相似点

传统机器学习和深度学习的相似点

在数据准备和预处理方面,两者是很相似的。他们都可能对数据进行一些操作:

数据清洗
数据标签
归一化
去噪
降维

对于数据预处理感兴趣的可以看看《AI 数据集最常见的6大问题(附解决方案)

传统机器学习和深度学习的核心区别

传统机器学习和深度学习的核心区别

传统机器学习的特征提取主要依赖人工,针对特定简单任务的时候人工提取特征会简单有效,但是并不能通用。深度学习的特征提取并不依靠人工,而是机器自动提取的。这也是为什么大家都说深度学习的可解释性很差,因为有时候深度学习虽然能有好的表现,但是我们并不知道他的原理是什么。

 6.深度学习的优缺点

深度学习的优缺点

优点1:学习能力强
从结果来看,深度学习的表现非常好,他的学习能力非常强。

优点2:覆盖范围广,适应性好
深度学习的神经网络层数很多,宽度很广,理论上可以映射到任意函数,所以能解决很复杂的问题。

优点3:数据驱动,上限高
深度学习高度依赖数据,数据量越大,他的表现就越好。在图像识别、面部识别、NLP 等部分任务甚至已经超过了人类的表现。同时还可以通过调参进一步提高他的上限。

优点4:可移植性好
由于深度学习的优异表现,有很多框架可以使用,例如 TensorFlow、Pytorch。这些框架可以兼容很多平台。

 

缺点1:计算量大,便携性差
深度学习需要大量的数据很大量的算力,所以成本很高。并且现在很多应用还不适合在移动设备上使用。目前已经有很多公司和团队在研发针对便携设备的芯片。这个问题未来会得到解决。

缺点2:硬件需求高
深度学习对算力要求很高,普通的 CPU 已经无法满足深度学习的要求。主流的算力都是使用 GPU 和 TPU,所以对于硬件的要求很高,成本也很高。

缺点3:模型设计复杂
深度学习的模型设计非常复杂,需要投入大量的人力物力和时间来开发新的算法和模型。大部分人只能使用现成的模型。

缺点4:没有”人性”,容易存在偏见
由于深度学习依赖数据,并且可解释性不高。在训练数据不平衡的情况下会出现性别歧视、种族歧视等问题。
posted @ 2023-08-15 22:21  Brian_Huang  阅读(295)  评论(0编辑  收藏  举报