Loading...
  • 机器学习出现的背景:实现过于复杂,程序员不能处理的自动化问题

机器学习的 Main Components

  1. 供以学习的Data

    • 数据集由样本组成
    • 样本由“特征”(feature)组成
      • 每个样本特征类别数量固定时,特征向量的固定长度被称为数据的维数(dimensionality)
      • 不是所有的数据都可以用固定长度的向量表示的,深度学习的优势就是处理这样的数据。深度学习模型的效能一般在数据量大时相比传统机器学习模型有优势
    • 监督学习中,“特征”是用于预测“标签”(label)的
      • 对于一组医疗数据,特征可以是年龄、生命体征和诊断;
        而要预测的标签可以是患者存活与否
    • 除了数据的数量,质量也很重要。垃圾数据会给敏感场景增加风险。不均衡的数据会导致预测失效甚至产生系统性的不公正

      想象一下,假设我们想要训练一个皮肤癌识别模型,但它(在训练数据集中)从未“见过”黑色皮肤的人群,这个模型就会顿时束手无策。

      再比如,如果用“过去的招聘决策数据”来训练一个筛选简历的模型,那么机器学习模型可能会无意中捕捉到历史残留的不公正,并将其自动化。 然而,这一切都可能在不知情的情况下发生。 因此,当数据不具有充分代表性,甚至包含了一些社会偏见时,模型就很有可能有偏见

  2. 转换数据的Model

    • D2L主要探讨深度学习模型,也会涉及一些传统的机器学习模型。
    • 深度学习与经典方法的区别主要在于:前者关注的功能强大的模型,这些模型由神经网络错综复杂的交织在一起,包含层层数据转换
  3. 目标函数Objective function

    • AKA Loss function,解决预测问题时最常见的是平方误差(square error),比如线性回归的残差平方和(RSS)、在RSS的基础上取平均的均方误差和(MSE);解决分类问题的时候,最常见的是错误率。
    • 在最小化的时候,有些目标函数,如错误率不可微导致难以优化
    • 一个模型在训练集上表现良好而不能推广到测试集的情况被称为过拟合(overfitting)
  4. 用于优化objective function的Algorithm

    • 找到一种算法,能够寻找出最佳的参数。对于Loss Function,即找到使其最小时的参数。
    • 对于深度学习,这个优化算法通常基于一个基本算法:梯度下降(gradient decent)
    • 简单地说,梯度下降法会在每步中检查参数,看看将参数增大或减小后损失函数会向哪个方向移动。

常见的机器学习问题

  1. 监督学习(supervised learning)

    • 回归(regression):“有多少”
      • 训练一个回归函数输出预测数值
    • 分类(classification):“哪一个”
      • 训练一个分类器输出类别
      • “是”或“不是”可以用概率表示
      • 常见的损失函数为交叉熵(cross-entropy)
      • 最常见的类别不一定是最终用于决策的类别,比如在决策是否能食用一个蘑菇(可能有毒)的应用上,输出图片中的蘑菇80%无毒还不够,要将这个概率乘上预期风险来进行决策
    • 标记(tagging):分类问题的推广,“有什么”
      • 假设一张图片中又有哈基米又有哈基旺时,我们更希望模型能识别出“这张图里有哈吉米和哈吉旺”,而非输出简单的“是”或“不是”。前者是识别问题,而后者是二项分类问题。
      • 学习预测不相互排斥的类别的问题称为多标签分类(multi-label classification)
    • 搜索(search)
      • 检索出一组项目并进行排序,排序很重要
      • 为集合中的每个元素分配相应的相关性分数,然后检索评级最高的元素,一种传统的算法是谷歌的PageRank
      • 机器学习现在越来越多地参与到相关性分数的计算
    • 推荐系统(recommender systems)
      • 对特定用户用户进行个性化推荐
      • 目前推荐系统的缺陷在于用户的购买习惯往往是遵循推荐算法,但学习算法并不总是考虑到这一细节,进而更频繁地被推荐
    • 序列学习(sequence learning)
      • 机器学习中最令人兴奋的应用之一
      • 如果输入是连续的,模型可能就需要拥有“记忆”功能。比如输入的是视频或语音
      • 序列学习需要摄取输入序列或预测输出序,或两者兼而有之。其中输入和输出的都是长度可变的序列(在上面的大部分问题中输入与输出的序列都是固定的)
      • 以下是几种特殊的序列转换
        1. 标记和解析(Tagging and Parsing):涉及到用属性注释文本序列
        2. 自动语音识别(Automatic Speech Recognition):输入语音,输出语音内容文本。挑战在于语音到文本没有一比一的对应关系,数千个样本可能才能对应一个单词。这是输出比输入短的多的“序列到序列”问题。
        3. 文本到语音(Text to Speech):与自动语音识别相反输出比输入长得多。
        4. 机器翻译(Machine Translation):还是将一个序列转换成另一个序列,但是由于语言语法等的不同,输入与输出的数量和相对应的顺序都大不相同
  2. 无监督学习(Unsupervised and Self-Supervised Learning)

    • 数据中不含有“目标”的机器学习问题通常被为无监督学习
    • 无监督学习可以回答下类问题:
      • 聚类(clustering):没有标签的情况下,给数据分类
      • 主成分分析(principal component analysis):找到少量的的参数来准确地捕捉数据的线性相关属性
      • 因果关系(causality)和概率图(probabilistic graphical models):根据经验数据描述观察到的许多数据的根本原因
      • 生成对抗网络(generative adversarial networks):提供一种合成数据的方法,甚至能合成像图像和音频这样复杂的非结构化数据

        ps:这里我本来想查一下“(非)结构化数据”的准确定义,结果找不到Wikipedia,看英语原书也没有这个表达。拿学过的统计学的定义套感觉又不对,,,

  3. 与环境互动(Interacting with an Enviroment)

    • 离线学习(offline learning):启动模型后不再与环境交互,缺点是能解决的问题有限。
      • 与“预测模型”区分的“智能代理”,还要考虑其行为对未来观测结果的影响
      • 考虑与环境的互动后将打开一套新的建模问题,比如下面的强化学习(reinforcement learning)
  4. 强化学习(Reinforcement Learning)

    • 强化学习问题中,智能体(agent)在一系列的时间步骤上与环境交互,智能体从环境中接收观察(observation),然后通过受策略(policy)控制选择一个动作(action)并且这个动作将通过执行器(actuator)回传影响环境,最后智能体从环境中获得奖励(reward),完成一轮循环。

    • 强化学习的目标是产生一个好的策略(policy)。 强化学习智能体选择的“动作”受策略控制,即一个从环境观察映射到行动的功能。

    • 可以把监督学习转化为强化学习,比如对于一个分类问题,每一个“分类”对应一个“动作”,环境给予的“奖励”则可对应Loss Function

    • 强化学习中,我们不假设环境告诉智能体每个最优动作,甚至不会告诉智能体是哪些动作使其得到了奖励

    • 强化学习可能还必须处理部分可观测性问题,因为观测这部不一定能获得所有所需要的信息

      强化学习是一个比较复杂的问题,智能体的动作会影响后续的观察,为了约束这种复杂性学者们研究了以下几种特殊情况的强化学习:

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