【刘二大人】PyTorch深度学习实践笔记 —— 第一集:深度学习全景概述(凝练版)

文章目录

    • 1.机器学习的产生
      • [(1) 智能的本质:推理与预测](#(1) 智能的本质:推理与预测)
      • [(2) 机器学习 (ML) 的引出](#(2) 机器学习 (ML) 的引出)
    • [2. 人工智能的方法论演进(为什么需要深度学习?)](#2. 人工智能的方法论演进(为什么需要深度学习?))
    • [3. 反向传播 (BP) 与计算图:神经网络的"学习"之魂](#3. 反向传播 (BP) 与计算图:神经网络的“学习”之魂)
    • [4. 深度学习与机器学习的区别](#4. 深度学习与机器学习的区别)
    • [5. 各种架构](#5. 各种架构)
    • [6. 为什么选择 PyTorch 框架?](#6. 为什么选择 PyTorch 框架?)
      • [关键技术差异:静态图 vs 动态图](#关键技术差异:静态图 vs 动态图)
    • 总结

1.机器学习的产生

(1) 智能的本质:推理与预测

智能可以被简化为算法对人类两种能力的模拟

  • 推理 (Reasoning) :根据已知信息和约束做出决策。例如根据余额和偏好通过算法决定中午吃什么。

  • 预测 (Prediction) :将现实世界的实体(如图像、声音)转化为抽象概念的过程(如识别图中是"猫"还是"数字2")。

(2) 机器学习 (ML) 的引出

刘二大人通过对比传统算法课程揭示了 ML 的核心:

  • 传统算法(人工设计) :人类利用穷举、贪心、分治或动态规划等思维,人工设计 出一套具体的计算过程。
    列如 :你需要像写字典一样,先定义出"猫"的精确规则:if (有毛 && 有胡须 && 耳朵尖 && 叫声是"喵" && 体型中等...) then 是猫。这种方法不仅繁琐,而且非常脆弱------如果遇到一只无毛猫,或者照片只拍了猫的背影,这个规则就失效了。
  • 机器学习(数据驱动) :算法不再是由人手写的规则,而是从数据集 (Data) 中通过训练模型**自动"挖掘"**出来的计算逻辑。

2. 人工智能的方法论演进(为什么需要深度学习?)

视频中通过对比三种系统,解释了为什么深度学习能脱颖而出:

  1. 基于规则的系统 (Rule-based Systems)

    • 原理:由人类专家根据背景知识手动编写复杂的逻辑和规则。
    • 例子:早期自动求解微积分原函数的程序,需要预设大量原子公式和等价变形规则。
    • 瓶颈 :面对复杂问题(如图像识别),规则库会变得庞大到人类无法维护,且由于规则不全会导致算法存在严重缺陷。简单说,要解决无限个复杂问题,就要开发无限个规则去解决,很麻烦,也不实用。
  2. 经典机器学习 (Classic Machine Learning)

    • 原理 :采用特征提取器的设计思路。通过人工统计方法手动构建特征(例如将图像特定区域转换为固定长度的向量),然后基于输出结果寻找映射函数(如线性回归、支持向量机或逻辑回归等算法)。
    • 挑战(维度灾难) :当特征维度 n n n 增加时,所需样本量呈指数级 x n x^n xn 增长(单特征需10个样本,双特征需10×10,三特征则需10×10×10)。同时,人工设计的特征往往难以有效捕捉数据中潜在的复杂模式。
  1. 深度学习 (Deep Learning)

    • 原理 :模型直接输入原始数据(如像素点、语音波形),自动学习如何提取特征并输出结论。
    • 表征学习:旨在实现特征的自动学习。特征提取作为独立步骤,通过特定算法将复杂的非结构化输入数据转换为向量表示,该向量可输入到特征映射模型中。
    • 流形假设 (Manifold Hypothesis) :深度学习通过多层非线性变换,将高维空间的数据压缩映射到低维曲面(流形)上,从而绕过了维度的诅咒,抓住了数据的本质规律。
  2. 神经网络

    • 重要性 : 神经网络是深度学习重要组成部分,从原始数据中逐层提取特征,底层学简单基础特征(如图像的像素、文本的字符),高层学复杂抽象特征(如图像的物体轮廓、文本的语义),实现从 "原始数据" 到 "有效特征" 的自动转化,替代传统机器学习的人工特征工程,这种自动提取是机器学习和深度学习的主要区别。
  3. 卷积操作

    卷积操作是为处理图像、语音、视频等网格状 / 序列状数据设计的特殊运算,为了训练出更好的特征,有监督的训练出更好的卷积核,单独存在时确实不属于深度学习,和神经网络搭配成CNN成为一种深度学习。

3. 反向传播 (BP) 与计算图:神经网络的"学习"之魂

神经网络如何"自动"调整权重?

  • 计算图 (Computation Graph) :将复杂的数学运算分解为原子计算(如加法、乘法节点)构成的图。

  • 前馈 (Forward) :数据通过图流向输出,计算损失(Loss)。

  • 反馈 (Backward) :利用链式法则 (Chain Rule) 沿图反向传播偏导数。无需手动推导复杂的导数解析式,即可求得每个权重对 Loss 的贡献。

4. 深度学习与机器学习的区别

(1)特征处理方式(核心区别)

机器学习(传统ML)

  • 依赖人工特征工程,需领域专家手动提取和设计有效特征
  • 处理流程:原始数据 → 人工提取特征(如纹理、边缘、统计量)→ 输入模型(SVM/决策树/逻辑回归等)→ 输出结果
  • 模型无法自动学习抽象特征,特征质量直接影响模型性能上限

深度学习

  • 实现端到端学习,自动提取特征,减少人工干预
  • 处理流程:原始数据(图像像素/语音/文本)→ 深度神经网络逐层提取特征(从边缘到语义)→ 输出结果
  • 将特征提取与分类/回归融合为整体任务,模型自主优化特征表示

(2)网络结构与规模

传统机器学习

  • 浅层简单结构(单层或少量层),参数规模小
  • 典型模型:逻辑回归、朴素贝叶斯、KNN、SVM、决策树、随机森林、XGBoost等

深度学习

  • 深层神经网络结构(多层隐藏层),参数量级大(百万至千亿)
  • 典型架构:DNN、CNN、RNN、Transformer、BERT、GPT、ResNet等

5. 各种架构

与其学会所有的架构,不如学会每一个架构的基本组成结构

6. 为什么选择 PyTorch 框架?

在众多深度学习框架(如 TensorFlow、Caffe)中,PyTorch 凭借以下优势成为首选:

  • 动态计算图:实时构建计算图,运算完成后自动释放。支持使用常规 Python 控制流(如 for 循环)构建复杂网络结构。
  • 原生 Python 风格:采用符合 Python 习惯的编程范式,大幅简化调试过程。
  • 完善的组件库:内置丰富的神经网络基础模块(卷积层、池化层、优化器等),并原生支持 GPU 加速,无需直接操作 CUDA 接口。

关键技术差异:静态图 vs 动态图

  • TensorFlow(早期版本) :静态图机制
    • 需预先定义完整计算图结构
    • 运行时无法调整网络架构,灵活性受限
  • PyTorch :动态图机制
    • 实时构建并自动释放计算图
    • 支持迭代过程中动态调整网络结构,灵活度极高

动态图带来极佳的调试体验:

  • 可直接插入 print 语句
  • 可使用 pdb 等标准调试工具
  • 可实时查看中间张量数值
  • 便于快速定位问题

静态图调试相对复杂:

  • 需通过 tf.Print 等特殊操作
  • 必须将待检查节点作为 fetches 传入 sess.run()
  • 无法直接获取中间结果
  • 调试流程繁琐

总结

机器学习 的产生是因为 基于规则的系统 没有办法解决所有的复杂问题(解决无限个复杂问题,需要制定无限种规则)。机器学习先从人工制造特征提取器 ,通过结果求映射 来找到适用规则映射。深度学习通过自主特征提取 ,通过神经网络丰富参数使映射更加可靠。神经网络是深度学习的核心,它既能够满足自主提取特征,又能够丰富参数更有效求解映射。神经网络多和其他结构组成用于各种场景(如和卷积连接成为CNN)。

相关推荐
落雨盛夏1 小时前
深度学习|李哥考研——transformer
人工智能·深度学习·transformer
代码游侠2 小时前
C语言核心概念复习(三)
开发语言·数据结构·c++·笔记·学习·算法
一招定胜负2 小时前
从RNN到LSTM:循环神经网络的进化之路
人工智能·rnn·深度学习
卡布叻_星星2 小时前
清理缓存并重启 IDEA
笔记
Yaozh、2 小时前
【人工智能中的“智能”是如何实现的】从逻辑回归到神经网络(自用笔记整理)
人工智能·笔记·深度学习·神经网络·机器学习·逻辑回归
傻小胖2 小时前
18.ETH-GHOST-北大肖臻老师客堂笔记
笔记·区块链
今儿敲了吗2 小时前
11| 子集
c++·笔记·算法
Gain_chance2 小时前
29-学习笔记尚硅谷数仓搭建-DWD层交易域下单事务事实表和交易域支付成功事务事实表
数据仓库·hive·笔记·学习·datagrip
云游云记2 小时前
php 高精度数学扩展 bcmath 知识笔记
笔记·php·bcmath