pytorch-深度学习-引言

1. 引言

  • (1)传统软件开发特点

    1. 多由开发者从零编码,依靠人工梳理业务逻辑制定运行规则,需兼顾各类边界场景。
    2. 程序功能固定,仅按预设逻辑运行,无法自主优化,性能提升依赖人为更新迭代。
    3. 典型案例:网上商城管理系统,交互、数据存储、操作规则均由人工定义。
  • (2)传统编程的局限

  1. 面对天气预测、问答、图像识别、个性化推荐等任务,人工难以设计完整逻辑:任务模式动态变化、内在关联极度复杂,相关计算也超出人类认知与设计能力。
  • (3)机器学习核心概念与优势

    1. 定义:是可从数据 / 经验中自主学习的技术,随着经验积累,算法性能会逐步提升。
    2. 区别于传统程序:无需人类预设全部规则,可自主适配复杂、动态的任务场景。
  • (4)深度学习定位

  1. 属于机器学习分支,是前沿技术,能赋能计算机视觉、自然语言处理、医疗、基因组学等多个领域的创新,也是本书重点讲解内容

1.1. 日常生活中的机器学习

利用机器学习算法,我们不需要设计一个"明确地"识别唤醒词的系统。 相反,我们只需要定义一个灵活的程序算法,其输出由许多参数(parameter)决定,然后使用数据集来确定当下的"最佳参数集",这些参数通过某种性能度量方式来达到完成任务的最佳性能。

(1)参数

参数可以被看作旋钮,旋钮的转动可以调整程序的行为。 任一调整参数后的程序被称为模型 (model)。 通过操作参数而生成的所有不同程序(输入-输出映射)的集合称为"模型族"。 使用数据集来选择参数的元程序被称为学习算法(learning algorithm)。

(2)学习算法

使用数据集来选择参数的元程序被称为学习算法(learning algorithm)。

在机器学习中,学习(learning)是一个训练模型的过程。 通过这个过程,我们可以发现正确的参数集,从而使模型强制执行所需的行为。

(3)数据训练(train)模型

  1. 从一个随机初始化参数的模型开始,这个模型基本没有"智能";

  2. 获取一些数据样本(例如,音频片段以及对应的是或否标签);

  3. 调整参数,使模型在这些样本中表现得更好;

  4. 重复第(2)步和第(3)步,直到模型在任务中的表现令人满意。

1.2. 机器学习中的关键组件

首先介绍一些核心组件。无论什么类型的机器学习问题,都会遇到这些组件:

  1. 可以用来学习的数据(data);

  2. 如何转换数据的模型(model);

  3. 一个目标函数(objective function),用来量化模型的有效性;

  4. 调整模型参数以优化目标函数的算法(algorithm)。

1.2.1. 数据

(1)数据基础核心概念

  1. 数据是数据科学与机器学习的基础,无数据则无算法应用价值。

  2. 数据集核心构成:由**样本(数据点/数据实例)**组成,多数样本遵循独立同分布原则。

  3. 样本核心属性:包含特征(协变量)标签(目标),模型依托特征运算,最终预测标签。

  4. 数据维数:样本特征类别数量固定时,形成固定长度特征向量,其长度即为数据维数,便于批量量化学习。

(2)数据的两种形态与深度学习优势

  1. 固定长度数据:标准化采集的数据可形成统一特征向量,如标准显微镜成像、规整结构化医疗数据。

  2. 可变长度数据:现实多数数据无固定规格,如互联网不同分辨率图像、长短不一的电商文本评论,传统机器学习难以适配。

  3. 深度学习核心优势:突破固定长度数据限制,可直接处理各类长度不统一的非标准化数据。

(3)数据体量的价值与局限

  1. 大数据赋能:数据量越大,训练的模型能力越强,可减少对人工预设假设的依赖,是现代深度学习成功的核心基础。

  2. 小数据短板:深度学习模型在小数据集上效能有限,效果不优于传统机器学习方法。

(4)数据质量的核心原则与风险

  1. 核心准则:数据体量充足的同时,必须保证数据质量,遵循垃圾进、垃圾出原则,无效、错误数据会导致模型彻底失效。

  2. 数据不均衡风险:数据集样本覆盖不全,会导致模型适配性缺失,如医疗模型缺少特定人群样本,无法完成对应场景预测。

  3. 数据偏见风险:训练数据若包含历史社会偏见、不公平数据,模型会复刻并自动化放大偏见,在招聘、风控、医疗等敏感场景会引发严重问题。

1.2.2. 模型

度学习与经典方法的区别主要在于:前者关注的功能强大的模型,这些模型由神经网络错综复杂的交织在一起,包含层层数据转换,因此被称为深度学习(deep learning)。

1.2.3. 目标函数

可用数据集通常可以分成两部分:训练数据集用于拟合模型参数,测试数据集用于评估拟合的模型。 然后我们观察模型在这两部分数据集的性能。 "一个模型在训练数据集上的性能"可以被想象成"一个学生在模拟考试中的分数"。 这个分数用来为一些真正的期末考试做参考,即使成绩令人鼓舞,也不能保证期末考试成功。

1.2.4. 优化算法

深度学习中,大多流行的优化算法通常基于一种基本方法--梯度下降(gradient descent)。 在每个步骤中,梯度下降法都会检查每个参数,看看如果仅对该参数进行少量变动,训练集损失会朝哪个方向移动。 然后,它在可以减少损失的方向上优化参数。

1.3. 各种机器学习问题

1.3.1. 监督学习

  • 监督学习之所以能发挥作用,是因为在训练参数时,我们为模型提供了一个数据集,其中每个样本都有真实的标签。
  • 监督学习的学习过程一般可以分为三大步骤:
  1. 从已知大量数据样本中随机选取一个子集,为每个样本获取真实标签。有时,这些样本已有标签(例如,患者是否在下一年内康复?);有时,这些样本可能需要被人工标记(例如,图像分类)。这些输入和相应的标签一起构成了训练数据集;

  2. 选择有监督的学习算法,它将训练数据集作为输入,并输出一个"已完成学习的模型";

  3. 将之前没有见过的样本特征放到这个"已完成学习的模型"中,使用模型的输出作为相应标签的预测

1.3.1.1. 回归

回归(regression)是最简单的监督学习任务之一。

当人们在市场上寻找新房子时,可能需要估计一栋房子的公平市场价值。 为什么这个任务可以归类为回归问题呢?本质上是输出决定的。 销售价格(即标签)是一个数值。 当标签取任意数值时,我们称之为回归问题,此时的目标是生成一个模型,使它的预测非常接近实际标签值。

1.3.1.2. 分类

回归是训练一个回归函数来输出一个数值; 分类是训练一个分类器来输出预测的类别。

1.3.1.3. 标记问题

有些分类问题很适合于二项分类或多项分类。 例如,我们可以训练一个普通的二项分类器来区分猫和狗。 运用最前沿的计算机视觉的算法,这个模型可以很轻松地被训练。

学习预测不相互排斥的类别的问题称为多标签分类(multi-label classification)。 举个例子,人们在技术博客上贴的标签,比如"机器学习""技术""小工具""编程语言""Linux""云计算""AWS"。 一篇典型的文章可能会用5~10个标签,因为这些概念是相互关联的。

1.3.1.4. 搜索

有时,我们不仅仅希望输出一个类别或一个实值。 在信息检索领域,我们希望对一组项目进行排序。

1.3.1.5. 推荐系统

另一类与搜索和排名相关的问题是推荐系统(recommender system),它的目标是向特定用户进行"个性化"推荐。

尽管推荐系统具有巨大的应用价值,但单纯用它作为预测模型仍存在一些缺陷。 关于如何处理审查、激励和反馈循环的许多问题,都是重要的开放性研究问题。

1.3.1.6. 序列学习

(1)序列学习与传统固定输入模型的区别

传统模型 :输入、输出均为固定大小,仅利用当前输入计算结果,无记忆能力,不保存历史输入信息(如房价预测、固定尺寸图像分类)。

序列学习模型 :针对连续、时序相关、可变长度 的输入/输出数据,具备记忆能力,可依托历史序列信息推导当前结果,是机器学习重要应用方向。

典型场景需求:视频帧关联预测、机器翻译、重症病人时序病情监测(需全程留存历史数据,不能仅靠最新数据判断)。

(2)序列学习核心特征

  1. 处理对象:输入、输出为可变长度序列数据

  2. 核心逻辑:数据前后存在关联,历史信息影响当前结果,依赖时序逻辑推理;

  3. 核心能力:实现序列到序列的转换适配。

(3)四大经典序列学习任务(核心分类)

1. 序列标记与解析(输入输出长度基本一致)

对文本序列逐单元添加属性注释、拆解结构。例:命名实体识别、主谓成分划分,给句子对应词汇标注实体、语法属性。

2. 自动语音识别(输入长、输出短)

输入为高频采样的音频序列,输出为对应文本序列。核心难点:音频采样帧数量远多于文本词汇,音频与文本无一一对应关系。

3. 文本转语音(输入短、输出长)

语音识别的反向任务:输入为简短文本序列,输出为超长音频序列,计算机难以精准匹配自然发音逻辑。

4. 机器翻译(长度、顺序均不对齐)

不仅输入输出长度不同,语句语序存在颠倒、错位(如德语动词后置),无法按原顺序对齐转换,是复杂的序列转换任务。

(4)拓展应用场景

  1. 网页二维布局分析:识别用户网页阅读时序顺序;

  2. 人机对话:需结合完整对话历史、现实知识推导下一轮回复,是复杂度更高的序列学习研究方向。

1.3.2. 无监督学习

"监督学习"模型像一个打工仔,有一份极其专业的工作和一位极其平庸的老板。

老板可能会给我们一大堆数据,然后要求用它做一些数据科学研究,却没有对结果有要求。 这类数据中不含有"目标"的机器学习问题通常被为无监督学习(unsupervised learning)

1.3.3. 与环境互动

有人一直心存疑虑:机器学习的输入(数据)来自哪里?机器学习的输出又将去往何方? 到目前为止,不管是监督学习还是无监督学习,我们都会预先获取大量数据,然后启动模型,不再与环境交互。 这里所有学习都是在算法与环境断开后进行的,被称为离线学习 (offline learning)。 对于监督学习,从环境中收集数据的过程类似于 图1.3.6

这种简单的离线学习有它的魅力。 好的一面是,我们可以孤立地进行模式识别,而不必分心于其他问题。 但缺点是,解决的问题相当有限。 这时我们可能会期望人工智能不仅能够做出预测,而且能够与真实环境互动。

1.3.4. 强化学习

如果你对使用机器学习开发与环境交互并采取行动感兴趣,那么最终可能会专注于强化学习 (reinforcement learning)。 深度强化学习(deep reinforcement learning)将深度学习应用于强化学习的问题,是非常热门的研究领域。

强化学习框架的通用性十分强大。 例如,我们可以将任何监督学习问题转化为强化学习问题。 假设我们有一个分类问题,可以创建一个强化学习智能体,每个分类对应一个"动作"。 然后,我们可以创建一个环境,该环境给予智能体的奖励。 这个奖励与原始监督学习问题的损失函数是一致的。

当然,强化学习还可以解决许多监督学习无法解决的问题。 例如,在监督学习中,我们总是希望输入与正确的标签相关联。 但在强化学习中,我们并不假设环境告诉智能体每个观测的最优动作。 一般来说,智能体只是得到一些奖励。 此外,环境甚至可能不会告诉是哪些行为导致了奖励。

当环境可被完全观察到时,强化学习问题被称为马尔可夫决策过程 (markov decision process)。 当状态不依赖于之前的操作时,我们称该问题为上下文赌博机 (contextual bandit problem)。 当没有状态,只有一组最初未知回报的可用动作时,这个问题就是经典的多臂赌博机(multi-armed bandit problem)。

1.4. 起源

神经网络(neural networks)的得名源于生物灵感。

其核心是当今大多数网络中都可以找到的几个关键原则:

  • 线性和非线性处理单元的交替,通常称为(layers);

  • 使用链式规则(也称为反向传播(backpropagation))一次性调整网络中的全部参数。

1.5. 深度学习的发展

表1.5.1 数据集vs计算机内存和计算能力

年代 数据规模 内存 每秒浮点运算
1970 100 (鸢尾花卉) 1 KB 100 KF (Intel 8080)
1980 1 K (波士顿房价) 100 KB 1 MF (Intel 80186)
1990 10 K (光学字符识别) 10 MB 10 MF (Intel 80486)
2000 10 M (网页) 100 MB 1 GF (Intel Core)
2010 10 G (广告) 1 GB 1 TF (Nvidia C2050)
2020 1 T (社交网络) 100 GB 1 PF (Nvidia DGX-2)

(1)、近十年深度学习核心算法创新(寒武纪式爆发)

1.容量控制(Dropout):通过向网络注入随机噪声、随机替换权重,有效缓解模型过拟合问题,提升模型泛化能力。

  1. 注意力机制:以可学习指针结构替代全局记忆,无需存储完整序列,不增加参数即可提升模型记忆与复杂推理能力,大幅优化长序列任务精度。

  2. 多阶段推理结构:代表为记忆网络、神经编程器-解释器,支持迭代推理,可反复更新网络内部状态,模拟人类分步推理逻辑。

  3. 生成对抗网络GAN:突破传统生成模型的概率分布局限,用可微算法替代采样器,通过生成器与鉴别器对抗训练,可生成高清真实图像、创意内容,极大拓展生成式任务边界。

(2)、算力与并行计算突破

  1. 分布式大批量训练:解决单GPU算力不足问题,通过多GPU并行,将小批量样本聚合为超大批次,大幅压缩训练时长(ResNet-50训练从数天缩短至7分钟内)。

  2. 赋能强化学习:海量并行仿真迭代能力,让AI在围棋、星际争霸、物理仿真等场景超越人类水平,强化学习依赖大量试错数据的短板被补齐。

深度学习的一个关键优势是它不仅取代了传统学习管道末端的浅层模型,而且还取代了劳动密集型的特征工程过程。 此外,通过取代大部分特定领域的预处理,深度学习消除了以前分隔计算机视觉、语音识别、自然语言处理、医学信息学和其他应用领域的许多界限,为解决各种问题提供了一套统一的工具

相关推荐
云烟成雨TD1 小时前
Spring AI Alibaba 1.x 系列【72】集成 MCP 客户端
java·人工智能·spring
ZHW_AI课题组1 小时前
利用DeepLab在PascalVOC数据集中实现简单物体的多类别分割
人工智能·计算机视觉
SilentSamsara1 小时前
MLflow 实验追踪与模型注册:从实验到生产的可复现工作流
开发语言·人工智能·pytorch·python·青少年编程
SAP上海工博云署1 小时前
生产采购财务一体化ERP选型指南(中小制造/工贸企业适用)
大数据·人工智能·信息可视化·制造·信息与通信
装不满的克莱因瓶1 小时前
掌握多头自注意力机制(Multi-Head Self-Attention)——Transformer 强大表达能力的核心来源
人工智能·python·深度学习·数学·ai·transformer
花间相见1 小时前
【AI工作流搭建n8n】—— Docker + PostgreSQL 生产环境部署全攻略:MCP 集成与 Skills 技能实战
人工智能·docker·postgresql
doiito1 小时前
【Agent Harness实战】我让 Agent 的上下文“瘦身”成功,Token 省了,记忆反而更好了
人工智能·架构
意图共鸣1 小时前
技术视角:意图共鸣科技《AI记忆链商业化白皮书3.0》中的第二大脑与AI参谋架构
人工智能
大模型最新论文速读1 小时前
06-10 · LLM 最新论文速览
论文阅读·人工智能·深度学习·机器学习·自然语言处理