参考链接:
https://zh.d2l.ai/chapter_introduction/index.html#id8

1.1 日常生活中的机器学习

  • 示例
    • 唤醒词
      • 天猫精灵、小爱同学
      • hey Siri
    • 语音识别
  • 一个典型的训练过程如下:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VXD1AAdq-1662218586600)(https://zh.d2l.ai/_images/ml-loop.svg)]
    • 从一个随机初始化参数的模型开始,这个模型基本毫不“智能”。
    • 获取一些数据样本(例如,音频片段以及对应的是否标签)。
    • 调整参数,使模型在这些样本中表现得更好。
    • 重复第2步和第3步,直到模型在任务中的表现令你满意。

1.2 关键组件

机器学习的基本组件:

  • 我们可以学习的数据(data)。
  • 如何转换数据的模型(model)。
  • 一个目标函数(objective function),用来量化模型的有效性。
  • 调整模型参数以优化目标函数的算法(algorithm)。

1.2.1 数据

  • 每个数据集由一个个样本(example, sample)组成

    • 样本有时也叫做数据点(data point)或者数据实例(data instance)
    • 每个样本由一组称为特征(features,或协变量(covariates))的属性组成
    • 特征、标签(label,或目标(target))
  • 数据的维数(dimensionality)
    当每个样本的特征类别数量都是相同的时候,其特征向量是固定长度的,这个长度被称为数据的维数

  • 数据的正确性和充分性
    Garbage in, garbage out

1.2.2 模型

深度学习与经典方法的区别主要在于:

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

1.2.3 目标函数

  • 在机器学习中,我们需要定义模型的优劣程度的度量,这个度量在大多数情况是“可优化”的,我们称之为目标函数(objective function)。
  • 有时被称为损失函数(loss function,或cost function)
  • 试图预测数值时,最常见的损失函数是平方误差(squared error),即预测值与实际值之差的平方。
  • 解决分类问题时,最常见的目标函数是最小化错误率,即预测与实际情况不符的样本比例。
  • 损失函数是根据模型参数定义的,并取决于数据集
  • 训练集、测试集
    • training dataset,或称为训练集(training set)
    • test dataset,或称为测试集(test set)

1.2.4 优化算法

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

1.3 各种机器学习问题

1.3.1 监督学习

  • feature,label 。给定输入特征的预测标签
  • 目标是生成一个模型,能够将任何输入特征映射到标签,即预测。
  • 监督学习过程
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lMDEkFXo-1662218586601)(https://zh.d2l.ai/_images/supervised-learning.svg)]
    监督学习也可以采取多种形式的模型,并且需要大量不同的建模决策,这取决于输入和输出的类型、大小和数量。
1 回归
  • 定义
    当标签取任意数值时,我们称之为回归问题
    label 是多少,有多少
  • 任何有关“多少”的问题很可能就是回归问题。比如:
    • 这个手术需要多少小时?
    • 在未来六小时,这个镇会有多少降雨量?
2 分类
  • 定义

    • 这种“哪一个?”的问题叫做分类(classification)问题
    • 在分类问题中,我们希望模型能够预测样本属于哪个类别(category,正式称为类(class))
  • 二元分类
    最简单的分类问题是只有两类

  • 多元分类
    有两个以上的类别时,我们把这个问题称为多元分类

3 标记问题

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

4 搜索

搜索结果的排序也十分重要,我们的学习算法需要输出有序的元素子集。

  • 如果要求我们输出字母表中的前5个字母,返回“A、B、C、D、E”和“C、A、B、E、D”是不同的。
  • 结果集是相同的,集内的顺序有时却很重要。
  • 为集合中的每个元素分配相应的相关性分数,然后检索评级最高的元素
  • PageRank
5 推荐系统

目标是向特定用户进行“个性化”推荐

6 序列学习

以上大多数问题都具有固定大小的输入和产生固定大小的输出
序列学习需要摄取输入序列或预测输出序列,或两者兼而有之; 输入和输出都是可变长度的序列。

  • 标记和解析
    用属性注释文本序列
Tom has dinner in Washington with Sally
Ent  -    -    -     Ent      -    Ent

使用“标记”来注释一个句子,该标记指示哪些单词引用命名实体。 标记为“Ent”,是实体(entity)的简写

  • 自动语音识别
    输入序列是说话人的录音,输出序列是说话人所说内容的文本记录。
    image
    与文本相比,音频帧多得多(声音通常以8kHz或16kHz采样),其中输出比输入短得多。

  • 文本到语音
    输入是文本,输出是音频文件。
    这种情况下,输出比输入长得多。 虽然人类很容易识判断发音别扭的音频文件,但这对计算机来说并不是那么简单。

  • 机器翻译

    • 机器翻译中,颠倒输入和输出的顺序非常重要。
    • 虽然我们仍将一个序列转换成另一个序列,但是输入和输出的数量以及相应序列的顺序大都不会相同
德语:           Haben Sie sich schon dieses grossartige Lehrwerk angeschaut?
英语:          Did you already check out this excellent tutorial?
错误的对齐:  Did you yourself already this excellent tutorial looked-at?

错误的对齐”反应了德国人喜欢把动词放在句尾的特殊倾向。

1.3.2 无监督学习

数据中不含有“目标”的机器学习问题为无监督学习(unsupervised learning)。
例子:

  • 聚类(clustering)问题
    • 给定一组照片,我们能把它们分成风景照片、狗、婴儿、猫和山峰的照片吗?
    • 给定一组用户的网页浏览记录,我们能否将具有相似行为的用户聚类呢?
  • 主成分分析(principal component analysis)问题
    能否找到少量的参数来准确地捕捉数据的线性相关属性
  • 因果关系(causality)和概率图模型(probabilistic graphical models)问题
    • 我们能否描述观察到的许多数据的根本原因?
    • 例如,如果我们有关于房价、污染、犯罪、地理位置、教育和工资的人口统计数据,我们能否简单地根据经验数据发现它们之间的关系?
  • 生成对抗性网络(generative adversarial networks)
    • 我们提供一种合成数据的方法,甚至像图像和音频这样复杂的非结构化数据。
    • 潜在的统计机制是检查真实和虚假数据是否相同的测试,它是无监督学习的另一个重要而令人兴奋的领域。

1.3.3 与环境互动

机器学习的输入(数据)来自哪里?机器学习的输出又将去往何方?

  • 不管是监督学习还是无监督学习,我们都会预先获取大量数据,然后启动模型,不再与环境交互。
  • 所有学习都是在算法与环境断开后进行的,被称为离线学习(offline learning)

对于监督学习,从环境中收集数据的过程类似于下图。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Doylys8x-1662218586602)(https://zh.d2l.ai/_images/data-collection.svg)]

  • 好的一面是,我们可以孤立地进行模式识别,而不必分心于其他问题
  • 缺点是,解决的问题相当有限

期望人工智能不仅能够做出预测,而且能够与真实环境互动。 们必须考虑到它的行为可能会影响未来的观察结果。
考虑“与真实环境互动”将打开一整套新的建模问题。以下只是几个例子:

  • 环境还记得我们以前做过什么吗?

  • 环境是否有助于我们建模?例如,用户将文本读入语音识别器。

  • 环境是否想要打败模型?例如,一个对抗性的设置,如垃圾邮件过滤或玩游戏?

  • 环境是否重要?

  • 环境是否变化?例如,未来的数据是否总是与过去相似,还是随着时间的推移会发生变化?是自然变化还是响应我们的自动化工具而发生变化?

1.3.4 强化学习(reinforcement learning)

深度强化学习(deep reinforcement learning)将深度学习应用于强化学习的问题,是非常热门的研究领域。
示例:

  • 深度Q网络(Q-network)在雅达利游戏中仅使用视觉输入就击败了人类,
  • 以及 AlphaGo程序在棋盘游戏围棋中击败了世界冠军

在强化学习问题中,agent在一系列的时间步骤上与环境交互。 在每个特定时间点,agent从环境接收一些观察(observation),并且必须选择一个动作(action),然后通过某种机制(有时称为执行器)将其传输回环境,最后agent从环境中获得奖励(reward)。 此后新一轮循环开始,agent接收后续观察,并选择后续操作,依此类推。 强化学习的过程在 图中进行了说明。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kh3CqJq6-1662218586603)(https://zh.d2l.ai/_images/rl-environment.svg)]
强化学习的目标是产生一个好的策略(policy)。

特殊情况下强化学习问题:

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

1.4 起源

问题的产生
数据分析和预测
算法
模型
算力

1.5 深度学习之路

  • 大规模的数据
  • 模型、框架
  • 算力

1.6 成功案例

  • 智能助理
  • 游戏
  • 自驾
  • 。。。。

1.7 小结

  • 机器学习研究计算机系统如何利用经验(通常是数据)来提高特定任务的性能。它结合了统计学、数据挖掘和优化的思想。通常,它是被用作实现人工智能解决方案的一种手段。

  • 表示学习作为机器学习的一类,其研究的重点是如何自动找到合适的数据表示方式。深度学习是通过学习多层次的转换来进行的多层次的表示学习。

  • 深度学习不仅取代了传统机器学习的浅层模型,而且取代了劳动密集型的特征工程。

  • 最近在深度学习方面取得的许多进展,大都是由廉价传感器和互联网规模应用所产生的大量数据,以及(通过GPU)算力的突破来触发的。

  • 整个系统优化是获得高性能的关键环节。有效的深度学习框架的开源使得这一点的设计和实现变得非常容易。

更多推荐