参考教程

关键组件

  1. 数据
    • 与传统机器学习方法相比,深度学习的一个主要优势是可以处理不同长度的数据。
  2. 目标函数
    • 当任务为试图预测数值时,最常见的损失函数是平方误差(squared error),即预测值与实际值之差的平方。 当试图解决分类问题时,最常见的目标函数是最小化错误率,即预测与实际情况不符的样本比例。
    • 有些目标函数(如平方误差)很容易被优化,有些目标(如错误率)由于不可微性或其他复杂性难以直接优化。 在这些情况下,通常会优化替代目标

各种机器学习问题

监督学习

  1. 回归
    • 关注最小化平方误差损失函数
  2. 分类
    • 分类问题的常见损失函数被称为交叉熵(cross-entropy)
    • 最常见的类别不一定是你将用于决策的类别,不确定风险的影响远远大于收益。
    • 假设分类器80%确定我们的蘑菇不是死帽蕈。 尽管如此,我们也不会吃它,因为我们不值得冒20%的死亡风险。 换句话说,不确定风险的影响远远大于收益。 因此,我们需要将“预期风险”作为损失函数。 也就是说,我们需要将结果的概率乘以与之相关的收益(或伤害)。 在这种情况下,食用蘑菇造成的损失为 0.2×∞+0.8×0=∞0.2×∞+0.8×0=∞,而丢弃蘑菇的损失为0.2×0+0.8×1=0.80.2×0+0.8×1=0.8
  • 分类可能变得比二元分类、多类分类复杂得多。 例如,有一些分类任务的变体可以用于寻找层次结构,层次结构假定在许多类之间存在某种关系。 因此,并不是所有的错误都是均等的。 我们宁愿错误地分入一个相关的类别,也不愿错误地分入一个遥远的类别,这通常被称为层次分类(hierarchical classification)。 层次结构相关性可能取决于你计划如何使用模型。 例如,响尾蛇和乌梢蛇血缘上可能很接近,但如果把响尾蛇误认为是乌梢蛇可能会是致命的。 因为响尾蛇是有毒的,而乌梢蛇是无毒的。
  1. 标记问题
    • 学习预测不相互排斥的类别的问题称为多标签分类(multilabel classification)。例如人们在技术博客上贴的标签,比如“机器学习”、“技术”、“小工具”、“编程语言”、“Linux”、“云计算”、“AWS”。 一篇典型的文章可能会用5-10个标签,因为这些概念是相互关联的。
  2. 搜索
    • 在信息检索领域,我们希望对一组项目进行排序。 搜索结果的排序也十分重要,我们的学习算法需要输出有序的元素子集。
  3. 序列学习
    • 如果输入的样本之间是连续的,有关系的,我们的模型可能就需要拥有“记忆”功能了。
    • 标记和解析、自动语音识别、文本到语音、机器翻译

无监督学习

  1. 聚类(clustering)问题:没有标签的情况下给数据分类
  2. 主成分分析(principal component analysis)问题:找到少量的参数来准确地捕捉数据的线性相关属性
  3. 因果关系(causality)和概率图模型(probabilistic graphical models)问题:描述观察到的许多数据的根本原因。例如,如果我们有关于房价、污染、犯罪、地理位置、教育和工资的人口统计数据,我们能否简单地根据经验数据发现它们之间的关系?
  4. 生成对抗性网络(generative adversarial networks):提供一种合成数据的方法,甚至像图像和音频这样复杂的结构化数据。潜在的统计机制是检查真实和虚假数据是否相同的测试,它是无监督学习的另一个重要而令人兴奋的领域。

与环境互动

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

强化学习

  1. 强化学习和环境之间的相互作用
    强化学习和环境之间的相互作用
  2. 在强化学习问题中,agent 在一系列的时间步骤上与环境交互。 在每个特定时间点,agent 从环境接收一些观察(observation),并且必须选择一个动作(action),然后通过某种机制(有时称为执行器)将其传输回环境,最后 agent 从环境中获得 奖励(reward)。 此后新一轮循环开始,agent 接收后续观察,并选择后续操作,依此类推。
  3. 当环境可被完全观察到时,我们将强化学习问题称为马尔可夫决策过程(markov decision process)。 当状态不依赖于之前的操作时,我们称该问题为上下文赌博机(contextual bandit problem)。 当没有状态,只有一组最初未知回报的可用动作时,这个问题就是经典的多臂赌博机(multi-armed bandit problem)。