美文网首页
(二)深度学习专题-人工智能简介

(二)深度学习专题-人工智能简介

作者: GoodTekken | 来源:发表于2023-09-17 11:17 被阅读0次

    参考书籍《TensorFlow深度学习--深入理解人工智能算法设计》

    一.人工智能简介

    深度学习<神经网络<机器学习<人工智能

    机器学习分为有监督学习,无监督学习和强化学习

    graph TD
    机器学习[机器学习]
    机器学习 --> 有监督学习[有监督学习]
    机器学习 --> 无监督学习[无监督学习]
    机器学习 --> 强化学习[强化学习]
    有监督学习 --> 有监督学习算法[线性回归、逻辑回归、支持向量机、随机森林]
    无监督学习 --> 无监督学习算法[自编码器、生成对抗网络]
    强化学习 --> 强化学习算法[DQN、PPO]
    
    image.png

    1.1 神经网络和深度学习

    1. 神经网络算法是一类基于神经网络从数据中学习的算法,它仍然属于机器学习的范畴。受限于计算能力和数据量,早期的神经网络层数较浅,一般在1-4层,网络表达能力有限。随着计算能力的提升和大数据时代的到来,高度并行化的GPU和海量数据让大规模神经网络的训练成为可能。(Page 3)

    2. 一般将利用深层神经网络实现的算法称作深度学习,本质上神经网络和深度学习可认为是相同的。(Page 3)

    1.2 神经网络发展史

    1. 将神经网络的发展历程大致分为浅层神经网络和深度学习阶段,以2006年为分割点。(Page 4)
    2. 2006年,Geoffrey Hinton等人发现通过逐层预训练的方式可以较好地训练多层神经网络,并在MNIST手写数字图片数据集上取得了优于SVM的错误率,开启了第三次人工智能的复兴。(Page 6)
    gantt
    title 时间线图
    dateFormat  YYYY-MM-DD
    section 浅层神经网络发展事件线
    1943年 神经元模型 :a1, 1943-01-01, 3y
    1950年 图灵测试 :a2, 1950-01-01, 8y
    1958年 感知机模型 :a3, 1958-01-01, 11y
    1969年 XOR亦或问题 :a4, 1969-01-01, 5y
    1974年 BP反向传播 :a5, 1974-01-01, 8y
    1982年 Hopfield网络 :a6, 1982-01-01, 3y
    1985年 Boltzmann机器 :a7, 1985-01-01, 1y
    1986年 受限Boltzmann机器 :a8, 1986-01-01, 4y
    1986年 RNN :a9, 1986-01-01, 4y
    1986年 MLP :a10, 1986-01-01, 4y
    1990年 LeNet :a11, 1990-01-01, 7y
    1997年 双向RNN :a12, 1997-01-01, 9y
    1997年 LSTM :a13, 1997-01-01, 9y
    2006年 DBN深度置信网络 :a14, 2006-01-01, 3y
    2009年 ImageNet :a15, 2009-01-01, 3y
    2012年 AlexNet提出 :a16, 2012-01-01, 2y
    2014年 GAN生成对抗网络 :a17, 2014-01-01, 1y
    2014年 VGG GoogLeNet :a18, 2014-01-01, 1y
    2015年 ResNet :a19, 2015-01-01, 1y
    2015年 TensorFlow发布 :a20, 2015-01-01, 1y
    2015年 DQN :a21, 2015-01-01, 1y
    2015年 Batch Normalization :a22, 2015-01-01, 1y
    2016年 AlphaGO :a23, 2016-01-01, 1y
    2017年 AlphaGO Zero :a24, 2017-01-01, 1y
    2018年 机器翻译BERT :a25, 2018-01-01, 1y
    2019年 德州扑克Pluribus :a26, 2019-01-01, 1y
    2019年 OpenAI Five :a27, 2019-01-01, 1y
    2019年 TensorFlow2.0发布 :a28, 2019-01-01, 1y
    
    image.png

    1.3 深度学习特点

    1. 为了防止过拟合,需要数据集的规模通常也是巨大的。(Page 8)

          在深度学习中,模型通常有大量的参数,这使得它们具有很高的表示能力。这种高度的表示能力意味着模型可以很容易地拟合训练数据,甚至是训练数据中的噪声。这种情况被称为过拟合,当模型过拟合时,它在训练数据上的性能可能会很好,但在未见过的测试数据上的性能可能会很差。
      

      为了防止过拟合,有以下几种常见的方法:

      1. 增加数据量:当我们有更多的数据时,模型更难以拟合数据中的噪声,因为噪声在大数据集中的影响会被稀释。此外,更多的数据可以提供更多的信息和多样性,帮助模型学习到更一般的模式,而不是特定于训练数据的模式。
      2. 正则化:正则化是一种添加到损失函数中的惩罚项,它惩罚模型的复杂性。这可以防止模型变得过于复杂,从而降低过拟合的风险。
      3. DropoutDropout是一种在训练过程中随机关闭一部分神经元的技术。这可以防止模型过度依赖于任何单个神经元,从而降低过拟合的风险。
      4. 早停:当验证集的性能不再提高时,我们可以停止训练,这可以防止模型在训练数据上过度训练。
      5. 数据增强:通过对训练数据进行小的、随机的修改(如旋转、缩放或裁剪图像),我们可以人为地增加数据的多样性,从而增加模型的泛化能力。

      总之,为了防止过拟合,我们需要确保模型在训练过程中接触到足够多样化的数据,这样它可以学习到更一般的模式,而不是仅仅拟合训练数据中的噪声或特定模式。大规模的数据集可以提供这种多样性,从而帮助防止过拟合。(Chat GPT)

    1. 尽管深度学习对数据集需求较高,收集数据,尤其是收集带标签的数据,往往是代价昂贵的。数据集的形成通常需要手动采集、爬取原始数据,并清洗掉无效样本,再通过人类智能去标注数据样本,因此不可避免地引入主观偏差和随机误差。研究数据量需求较小的算法模型是非常有用的一个方向。(Page 9)
    1. 随着深度学习的兴起和计算机能力的提升,AlexNet(8层)、VGG16(16层),GoogLeNet(22层)、ResNet50(50层)、DenseNet121(121层)等模型相继被提出,同时输入图片的大小也从28x28逐渐增大,变成224x224299x299等,这些变化使得网络的总参数量可达到千万级别。(Page 10)

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

    1.4 深度学习应用

    graph TD
    计算机视觉[计算机视觉]
    计算机视觉 --> 图片识别[1.图片识别]
    计算机视觉 --> 目标检测[2.目标检测]
    计算机视觉 --> 语义分割[3.语义分割]
    计算机视觉 --> 视频理解[4.视频理解]
    计算机视觉 --> 图片生成[5.图片生成]
    
    graph TD
    1.图片识别-ImageClassification   --> 图片识别网络模型[网络模型:VGG系列、Inception系列、ResNet系列]
    2.目标检测-ObjectDetection   --> 目标检测算法[算法:RCNN、Fast RCNN、Faster RCNN、Mask RCNN、SSD、YOLO系列]
    
    graph TD
    3.语义分割-SemanticSegmentation   --> 语义分割模型[模型:FCN、U-net、SegNet、DeepLab系列]
    4.视频理解-VideoUnderstanding   --> 视频理解模型[模型:C3D、TSN、DOVF、TS_LSTM]
    5.图片生成-ImageGeneration   --> 图片生成模型[模型:VAE系列、GAN系列]
    
    image.png

    1.5深度学习框架

    1. PyTorchFacebook基于原Torch框架推出的采用Python作为主要开发语言的深度学习框架。PyTorch借鉴了Chainer的设计风格,采用命令式编程,使得搭建网络和调试网络非常方便。尽管PyTorch再2017年才发布,但是由于精良紧凑的接口设计,PyTorch在学术界获得了广泛好评。在PyTorch1.0版本后,原来的PyTorchCaff2进行了合并,弥补了PyTorch在工业部署方面的不足。总的来说,PyTorch是一个非常优秀的深度学习框架。(Page 14)

    2. TensorFlowGoogle于2015年发布的深度学习框架,最初版本只支持符号式编程。得益于发布时间较早,以及Google在深度学习领域的影响力,TensorFlow很快成为最流行的深度学习框架,以及Google在深度学习领域的影响里,TensorFlow很快成为最流行的深度学习框架。但是由于TensorFlow接口设计频繁变动,功能设计重复冗余,符号式编程开发和调试非常困难等问题,TensorFlow 1.x版本一度被业界诟病。2019年,Google推出TensorFlow 2正式版本,将以动态图优先模式运行,从而能够避免TensorFlow1.x版本的诸多缺陷,已获得业界的广泛认可。(Page 15)

    3. 目前来看,TensorFlowPyTorch框架是业界使用最为广泛的两个深度学习框架,TensorFlow在工业界拥有完备的解决方案和用户基础,PyTorch得益于其精简灵活的接口设计,可以快速搭建和调试网络模型,在学术界获得好评如潮。TensorFlow 2发布后,弥补了TensorFlow在上手难度方面的不足,使得用户既能轻松上手TensorFlow框架,又能无缝部署网络模型至工业系统。本书以TensorFlow 2.0版本作为主要框架,实现深度学习算法。(Page 15)

    4. 深度学习的三大核心功能

      (1)加速运算,利用GPU方便地实现并行计算加速功能。

      (2)自动梯度,Tensorflow提供的自动求导功能,可以不需要手动推导。

      (3)常用神经网络接口

      TensorFlow除了提供底层的矩阵相乘、相加等数学函数,还内建了常用神经网络运算函数、常用网络层、网络训练、模型保存与加载、网络部署等一系列深度学习系统的便捷功能。使用TensorFlow开发,可以方便地利用这些功能完成常用业务流程,高效稳定。(Page 18)

    相关文章

      网友评论

          本文标题:(二)深度学习专题-人工智能简介

          本文链接:https://www.haomeiwen.com/subject/sdqwvdtx.html