Python深度学习之机器学习基础
一、前言
本文记录 弗朗索瓦·肖莱的《Python深度学习》第四章 机器学习基础有关笔记。
二、笔记
2.1机器学习的四个分支
-
监督学习
序列生成(sequence generation)
语法树预测(syntax tree prediction)
目标检测(object detection)
图像分割(image segmentation) -
无监督学习
降维(dimensionality)和聚类(clustering)都是无监督学习方法。
-
自监督学习
自编码器(autoencoder)
-
强化学习
2.2评估机器学习模型
(1)训练集、验证集、测试集
(2)经典的评估方法
- 留出验证(hold-out validation)
- K折验证(K-fold validation)
- 带有打乱数据的重复K 折验证(iterated K-fold validation with shuffling)
2.3评估模型的注意事项
2.4数据预处理、特征工程和特征学习
- 向量化
- 标准化
- 处理缺失值
- 特征提取
2.5过度拟合 与欠拟合
机器学习的根本问题是优化和泛化之间的对立。
优化(optimization是指调节模型以在训练数据上得到最佳性能(即机器学习中的学习)。
泛化(generalization是指训练好的模型在前所未见的数据上的性能好坏。机器学习的目的当然是得到良好的泛化,但你无法控制泛化,只能基于训练数据调节模型。
训练开始时,优化和泛化是相关的:训练数据上的损失越小,测试数据上的损失也越小。这时的模型是欠拟合(underfit)的,即仍有改进的空间,网络还没有对训练数据中所有相关模式建模。但在训练数据上迭代一定次数之后,泛化不再提高,验证指标先是不变,然后开始变差,
即模型开始过拟合。这时模型开始学习仅和训练数据有关的模式,但这种模式对新数据来说是错误的或无关紧要的。
为了防止模型从训练数据中学到错误或无关紧要的模式,最优解决方法是获取更多的训练数据。模型的训练数据越多,泛化能力自然也越好。如果无法获取更多数据,次优解决方法是调节模型允许存储的信息量,或对模型允许存储的信息加以约束。如果一个网络只能记住几个模式,那么优化过程会迫使模型集中学习最重要的模式,这样更可能得到良好的泛化。
这种降低过拟合的方法叫作正则化(regularization)。
- 减小网络大小
- 添加权重正则化
L1正则化
L2正则化 - dropout 正则化
2.6机器学习的通用工作流程
- 定义问题,收集数据集
- 选择衡量成功的指标
- 确定评估方法
- 准备数据
- 开发比基准更好的模型
- 扩大模型规模:开发过拟合的模型
- 模型正则化与调节超参数