《Python深度学习》第四章笔记
这里将介绍一种可用于解决任何机器学习问题的通用模板。这一模板将下面说到的概念串在一起:问题定义、评估、特征工程和解决过拟合。
- 定义问题,收集数据集:你的输入数据是什么?你要预测什么?你面对的是什么类型的问题?
- 选择衡量成功的指标:对于平衡分类问题(每个类别的可能性相同),精度和接收者操作特征曲线下面积(ROC AUC)是常用的指标。对于类别不平衡的问题,你可以使用准确率和召回率。对于排序问题或多标签分类,你可以使用平均准确率均值(mean average precision)。自定义衡量成功的指标也很常见。
- 确定评估方法:确定如何衡量当前的进展。
- 准备数据:该将数据格式化(标准化、特征工程),使其可以输入到机器学习模型中。
- 开发比基准更好的模型。
- 模型正则化与调节超参数:不断地调节模型、训练、在验证数据上评估(不是测试数据)、再次调节模型,然后重复这一过程,直到模型达到最佳性能。
1.机器学习的四个分支
- 监督学习,其目标是学习训练输入与训练目标之间的关系。给定一组样本(由人工标注好标签),它可以学会将输入数据映射到已知目标。监督学习主要包括分类和回归。近年来广受关注的深度学习应用几乎都属于监督学习,比如光学字符识别、语音识别、图像分类和语言翻译等。在第三章笔记中提到的二分类、多分类、回归问题都属于监督学习的例子。
- 无监督学习是指在没有目标的情况下寻找输入数据的有趣变换,其目的在于数据可视化、数据压缩、数据去噪或更好地理解数据中的相关性。在进行监督学习之前,为了更好地了解数据集,对数据进行分析,无监督学习通常是一个必要步骤。无监督学习方法主要包括降维和聚类。
- 自监督学习是监督学习的一个特例,是没有人工标注的标签的监督学习,可以将它看作没有人类参与的监督学习。标签仍然存在,但它们是从输入数据中生成的,通常是使用启发式算法生成的。给定视频中过去的帧来预测下一帧,或者给定文本中前面的词来预测下一个词,都是自监督学习的例子。
无监督学习、监督学习、自监督学习之间的区别有时很模糊,这三个类别更像是没有明确界限的连续体。
- 强化学习是指智能体接收有关其环境的信息,并学会选择使某种奖励最大化的行动。例如,神经网络会“观察”视频游戏的屏幕并输出游戏操作,目的是尽可能得高分,这种神经网络可以通过强化学习来训练。
分类和回归术语表
样本(sample)或输入(input):进入模型的数据点。
预测(prediction)或输出(output):从模型出来的结果。
目标(target):真实值。对于外部数据源,理想情况下,模型应该能够预测出目标。
预测误差(prediction error)或损失值(loss value):模型预测与目标之间的距离。
类别(class):分类问题中供选择的一组标签。例如,对猫狗图像进行分类时,“狗”和“猫”就是两个类别。
标签(label):分类问题中类别标注的具体例子。比如,如果 1234 号图像被标注为包含类别“狗”,那么“狗”就是 1234 号图像的标签。
真值(ground-truth)或标注(annotation):数据集的所有目标,通常由人工收集。
二分类(binary classification):一种分类任务,每个输入样本都应被划分到两个互斥的类别中。
多分类(multiclass classification):一种分类任务,每个输入样本都应被划分到两个以上的类别中,比如手写数字分类。
多标签分类(multilabel classification):一种分类任务,每个输入样本都可以分配多个标签。举个例子,如果一幅图像里可能既有猫又有狗,那么应该同时标注“猫”标签和“狗”标签。每幅图像的标签个数通常是可变的。
标量回归(scalar regression):目标是连续标量值的任务。预测房价就是一个很好的例子,不同的目标价格形成一个连续的空间。
向量回归(vector regression):目标是一组连续值(比如一个连续向量)的任务。如果对多个值(比如图像边界框的坐标)进行回归,那就是向量回归。
小批量(mini-batch)或批量(batch):模型同时处理的一小部分样本(样本数通常为 8~128)。样本数通常取 2 的幂,这样便于 GPU 上的内存分配。训练时,小批量用来为模型权重计算一次梯度下降更新。