Skip to content

深度学习简介

学习目标

  1. 知道什么是深度学习
  2. 了解深度学习发展史

什么是深度学习

image-20250507110131690

image-20250507110138119

  1. 人工智能(AI, Artificial Intelligence)

    这是最广泛的概念,指的是使机器能够模拟人类智能行为的技术和研究领域。AI 包括理解语言、识别图像、解决问题等各种能力。

  2. 机器学习(ML, Machine Learning)

    机器学习是实现人工智能的一种方法。它涉及到算法和统计模型的使用,使得计算机系统能够从数据中“学习”和改进任务的执行,而不是通过明确的编程来实现。机器学习包括多种技术,如线性回归、支持向量机(SVM)、决策树等。

  3. 深度学习(DL, Deep Learning)

    深度学习是机器学习中的一种特殊方法,它使用称为神经网络的复杂结构,特别是“深层”的神经网络,来学习和做出预测。深度学习特别适合处理大规模和高维度的数据,如图像、声音和文本。

image-20250507110202351

  • 传统机器学习算术依赖人工设计特征,并进行特征提取,而深度学习方法不需要人工,而是依赖算法自动提取特征。
  • 深度学习模仿人类大脑的运行方式,从经验中学习获取知识。这也是深度学习被看做黑盒子,可解释性差的原因。

  • 所有深度学习都是机器学习,但并非所有机器学习都是深度学习。

    深度学习的崛起源于其在处理特定类型的大数据问题上的卓越能力,尤其是那些传统机器学习算法难以处理的复杂问题。然而,对于某些任务和数据集,更简单的机器学习方法可能更加有效和适合。

  • 在深度学习的过程中,每一层神经网络都对输入数据进行处理,从而学习到数据中的特征和模式。

    例如,在图像识别任务中,第一层可能会识别边缘,第二层可能会识别形状,更深的层则可能识别复杂的对象特征,如面孔。这些层通过大量数据的训练,逐渐优化它们的参数,从而提高模型的识别或预测能力。

  • 深度学习的关键之一是“反向传播”算法,它通过计算损失函数(即实际输出与期望输出之间的差异)并将这种误差反馈回网络的每一层,来调整每层的权重。这种方法使得网络能够从错误中学习并不断改进。

  • 深度学习的一个重要的概念是“特征学习”,这意味着深度学习模型能够自动发现和利用数据中的有用特征,而无需人工介入。这与传统的机器学习方法不同,后者通常需要专家提前定义和选择特征。

  • 深度学习的成功依赖于大量的数据和强大的计算能力。随着数据量的增长和计算技术的发展,深度学习模型在图像和语音识别、自然语言处理、游戏、医疗诊断等多个领域取得了显著成就。它通过提供更精确和复杂的数据处理能力,推动了人工智能技术的飞速发展。然而,这种技术也面临挑战,如需求大量的训练数据,模型的复杂性和不透明性,以及对计算资源的高需求。尽管如此,深度学习仍然是当今最激动人心的技术前沿之一,其应用潜力巨大。

    优缺点

  1. 优点

    • 精度高,性能优于其他的机器学习算法,甚至在某些领域超过了人类
    • 随之计算机硬件的发展,可以近似任意的非线性函数
    • 近年来在学界和业界受到了热捧,有大量的框架和库可供调。
  2. 缺点

    • 黑箱,很难解释模型是怎么工作的
    • 训练时间长,需要大量的计算资源
    • 网络结构复杂,需要调整超参数多
    • 部分数据集上表现不佳,容易发生过拟合

应用领域和发展史 -应用场景

image-20250507110257984

  1. 20 世纪 50-70-符号主义

    专家系统占主导

    • 1950:图灵设计国际象棋程序

    • 1962:IBM Arthur Samuel 的跳棋程序战胜人类高手(人工智能第一次浪潮)

  2. 20 世纪 80-2000 统计主义

    主要用统计模型解决问题

    • 1993:Vapnik 提出 SVM

    • 1997:IBM 深蓝战胜卡斯帕罗夫(人工智能第二次浪潮)

  3. 21 世纪初期 神经网络

    神经网络、深度学习流派

    • 2012:AlexNet 深度学习的开山之作

    • 2016:Google AlphaGO 战胜李世石(人工智能第三次浪潮)

  4. 2017-至今 大规模预训练模型

    大规模预训练模型

    • 2017 年,自然语言处理 NLP 的 Transformer 框架出现

    • 2018 年,Bert 和 GPT 的出现

    • 2022 年,ChatGPT 的出现,进入到大模型 AIGC 发展的阶段

    • 2023 年 - 至今,“百模大战” ,大模型进入快速发展阶段

应用领域和发展史 - AI 发展三要素

数据、算法、算力三要素相互作用,是未来 AI 发展的基石

image-20250507110520473

1 数据:AI 模型的‘汽油’

2 算法:AI 模型的‘大脑’

3 算力:AI 模型的‘发动机’


1 CPU:负责调度任务、计算任务等;主要适合 I/O 密集型的任务

2 GPU:更加适合矩阵运算;主要适合计算密集型任务

3 TPU:Tensor,专门针对神经网络训练设计一款处理器

使用场景

  1. 图像识别和处理

    • 物体检测:从图片中识别和定位不同的物体。

    • 面部识别:用于安全系统和个性化服务。

    • 医学影像分析:识别疾病标志,如癌症筛查中的肿瘤检测。

  2. 自然语言处理(NLP)

    • 机器翻译:如谷歌翻译等工具。

    • 语音识别:用于语音助手和自动语音转文字服务。

    • 文本生成:自动撰写新闻稿、生成创意内容等。

  3. 音频处理

    • 音乐生成:创造新的音乐作品。

    • 语音合成:如智能助手中的自然语音反馈。

  4. 视频分析

    • 行为分析:在安全监控中分析人类行为。

    • 实时视频处理:用于增强现实和虚拟现实应用。

  5. 游戏和仿真

    • AI 对战:在复杂的游戏中模拟人类玩家。

    • 环境模拟:创建逼真的虚拟环境和情境。

  6. 自动驾驶汽车

    • 环境感知:理解和解释周围环境。

    • 决策制定:自动驾驶过程中的安全决策。

  7. 推荐系统

    • 个性化推荐:在电子商务、社交媒体和娱乐平台中推荐产品或内容。
  8. 金融领域

    • 风险评估:信贷评分和投资风险分析。

    • 欺诈检测:识别异常交易行为。

  9. 医疗领域

    • 药物发现:加速新药物的研发。

    • 疾病预测和分析:基于患者数据预测疾病风险。

流行深度学习框架

  1. TensorFlow

    TensorFlow 是 Google 开发的一款开源软件库,专为深度学习或人工神经网络而设计。TensorFlow 允许你可以使用流程图创建神经网络

    和计算模型。它是可用于深度学习的最好维护和最为流行的开源库之一。TensorFlow 框架可以使用 C++也可以使用 Python。你可以使用

    TensorBoard 进行简单的可视化并查看计算流水线。其灵活的架构允许你轻松部署在不同类型的设备上。不利的一面是,TensorFlow 没

    有符号循环,不支持分布式学习。此外,它还不支持 Windows。

    ➢ 出生地:Google

    ➢ 特点:计算图、分布式训练效果强、底层 C 构建速度快,生态强大

    ➢ 主要调包语言:Python、C/C++、JS

    ➢ 评价:对标 Pytorch、学术界没市场了、部署更加的方便

    ➢ 入门推荐:建议做工程的小伙伴入门

  2. Pytorch

    Pytorch 是 Meta(前 Facebook) 的框架,前身是 Torch,支持动态图,而且提供了 Python 接口。是一个以 Python 优先的深度学习框架,不

    仅能够实现强大的 GPU 加速,同时还支持动态神经网络。Python 是现在学术界的霸主,对于想要做学术的同学绝对首推 (重点)。

    ➢ 出生地:FaceBook

    ➢ 特点:生态强大、入门爽歪歪、代码量少 (重点)

    ➢ 主要调包语言:Python、C/C++

    ➢ 评价:入门很快、速度有点慢、部署很垃圾、学术界的霸主

    ➢ 入门推荐:想要做学术的同学绝对首选,几乎现在顶会论文的代码都是这个框架写的。

  3. PaddlePaddle

    百度推出的深度学习框架,算是国人最火的深度学习框架了。更新了 2.0 的高级 API 与动态图后,Paddle 更加的强大。百度有很多

    PaddlePaddle 的教程,对于初学者来说还是相当不错的。PaddlePaddle 有很多便捷的工具,比如 Detection、CV、NLP、GAN 的工具

    包,也有专门的可视化工具 (远离 Tensorboard 的支配)。

    ➢ 出生地:百度

    ➢ 特点:计算图动态图都支持、有高级 API、速度快、部署方便、有专门的平台

    ➢ 主要调包语言:Python、C/C++、JS

    ➢ 入门推荐:如果没有卡那就非常适合,如果算力不缺,建议先看看 Pytorch,当然也可以 PaddlePaddle。

  4. ONNX

    ONNX 是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型。它使得不同的人工智能框架(如 Pytorch, MXNet)可以

    采用相同格式存储模型数据并交互。用大白话说就是是一个中间件,比如你 Pytorch 的模型想转换别的,就得通过 ONNX,现在有的框架

    可以直接转,但是在没有专门支持的时候,ONNX 就非常重要了,万物先转 ONNX,ONNX 再转万物。ONNX 本身也有自己的模型库以及

    很多开源的算子,所以用起来门槛不是那么高。

    ➢ 出生地:有点多,很多大厂一起整的

    ➢ 特点:万能转换

    ➢ 主要调包语言:Python、C/C++

    ➢ 入门推荐:不用刻意学习,用到了再看。

主流算法模型

  1. 卷积神经网络(CNN)

    ➢ 适用于图像识别、视频分析、医学影像等。

    ➢ 特别擅长处理带有空间关系的数据。

  2. 循环神经网络(RNN)及其变体(如 LSTM、GRU)

    ➢ 适用于时间序列数据处理,如语音识别、音乐生成、自然语言处理。

    ➢ 能够处理序列数据中的时间动态性。

  3. Transformer 架构

    ➢ 引领自然语言处理的新浪潮,如 BERT、GPT 系列。

    ➢ 适用于复杂的语言理解和生成任务。

  4. 自编码器(Autoencoders):

    ➢ 用于数据降维、去噪、特征学习等。

    ➢ 在异常检测和数据生成中也有应用。

  5. 生成对抗网络(GANs):

    ➢ 用于图像生成、艺术创作、数据增强等。

    ➢ 擅长生成逼真的图像和视频。

总结

  1. 深度学习与机器学习的关系和差别?
  2. 深度学习的应用场景
  3. 深度学习的优缺点