《Python 深度学习》第四章 机器学习基础

主要内容:

  1. 机器学习形式
  2. 评估机器学习模型的规范流程
  3. 为深度学习准备数据
  4. 特征工程
  5. 解决过拟合
  6. 处理机器学习问题的通过流程

机器学习核心难题:过拟合


4.1  机器学习的四个分支

  1. 监督学习:分类、回归、序列生成(sequence generation)、语法树预测(syntax tree prediction)、目标预测(object detection)、图像分割(image segmentation)
  2. 无监督学习:降维(dimensionality reduction)、聚类(clustering)
  3. 自监督学习:自编码器(autoencoder)
  4. 强化学习:选择使奖励最大化的行动

相关术语:

样本(sample)或输入(input)

预测(predict)或输出(output)

目标(target)

预测误差(prediction error)

类别(class)

标签(label)

真值(ground-truth)或标注(annotation)

二分类(binary classification)

多分类(multiclass classification)

多标签分类(multilabel classification)

标量回归(scalar regression)

向量回归(vector regression)

小批量(mini-batch)或批量(batch):通常是2的幂次。8~128


4.2  评估机器学习模型

机器学习目的:得到好的泛化(generalize)模型

4.2.1  训练集、验证集和测试集

验证模型时,有可能会发生消息泄露(information leak)

评估方法:

  1. 简单的留出验证(hold-out validation)
  2. K折验证(K-fold validation)
  3. 带打乱数据的重复K折验证(iterated K-fold validation with shuffling)

4.2.2  评估模型的注意事项

  1. 数据代表性(data representativeness):随机打乱数据
  2. 时间箭头(the arrow of time):预测与时间相关,不能随机打乱;且确保测试集数据晚于训练集数据
  3. 数据冗余(redundancy in your data):确保训练集和数据集没有交集

4.3  数据预处理、特征工程和特征学习

4.3.1  神经网络的数据预处理

预处理目的:使原始数据更适合于神经网络处理,向量化、标准化、处理缺失值和特征处理

  1. 向量化:输入和预测值必须是浮点数张量。数据向量化(data vectorization)
  2. 值标准化:取值较小,同质化(homogeneous)平均值为0,标准差为1。   x-=x.mean(axis=0)   x/=x.std(axis=0)
  3. 处理缺失值:缺失值设为0,让网络学到,0意味着缺失值。当测试集有缺失值,而训练集没有时,要手动给训练集加缺失值。

4.3.2  特征工程(feature engineering)

特征工程:将数据输入模型前,利用人对数据的认识,先对数据进行处理。

本质:更简单的方式表述问题,是问题变得简单。

例:钟表识别

良好的特征可以用较少的资源解决问题。


4.4  过拟合与欠拟合

优化(optimization)

泛化(generalization)

4.4.1  减小网络大小

4.4.2  添加权重正则化

奥卡姆剃刀(Occam/s razor)

成本(cost)

L1正则化:系数绝对值

L2正则化:系数平方

惩罚只在训练时有,所以测试误差会小很多。

4.4.3  添加dropout正则化

训练过程中随机把改层输出特征舍弃

dropout比率:通常0.2~0.5

测试时没有单元舍弃,层输出需要按dropout比率缩小。

 

防止过拟合:

  1. 更多数据
  2. 减小网络容量
  3. 添加正则化
  4. 添加dropout

4.5  机器学习的通用工作流程

4.5.1  定义问题,收集数据集

假设:

  1. 输出可由输入进行预测
  2. 数据包含足够信息,能够学习输入和输出的关系

非平稳问题(nonstationary problem):如随季节变化问题

4.5.2  选择衡量成功的指标

平衡分类问题:精度和接受者操作特征曲线下面积(area under the receiver operating characteristic curve,ROC AUC)

非平衡分类问题:准确率和召回率

排序和多标签分类:平均准确率均值(mean average precision)

4.5.3  选择评估方法

  1. 简单的留出验证(hold-out validation):数据量大
  2. K折验证(K-fold validation):数据量小,无法保证准确性
  3. 带打乱数据的重复K折验证(iterated K-fold validation with shuffling):数据量小,准确性要求高

4.5.4  准备数据

张量

较小值,[-1,1],[0,1]

标准化

缺失值

特征工程

4.5.5  开发比基准好的模型

统计功效(statistical power)

纯随机基准(dumb baseline)

  1. 最后一层的激活
  2. 损失函数
  3. 优化配置

ROC AUC不可直接优化,用交叉熵替代。两者成逆相关。

问题类型 最后一层激活函数 损失函数
二分类 sigmoid binary_rossentropy
多分类、单标签 softmax catrgorical_crossentropy
多分类、多标签 sigmoid binary_crossentropy
回归 mse
回归,0~1取值 sigmoid mse或binary_crossentropy

4.5.6  扩大模型规模:开发过拟合的模型

使模型过拟合:

  1. 添加更多层
  2. 让每一层变得更大
  3. 训练更多轮次

4.5.7  模型正则化与调节超参数

  1. 添加dropout
  2. 尝试不同的架构:增加或减少层数
  3. 添加L1和L2正则化
  4. 尝试不同的超参数
  5. 做特征工程

 

你可能感兴趣的:(深度学习)