note 2022-12-01 Deeplearning

经验总结

机器、深度学习任务问题

  • 二分类
  • 多分类
  • 标量回归

回归问题

  • 回归问题使用的损失函数
    • 均方误差(MSE)
  • 回归问题使用的评估指标
    • 平均绝对误差(MAE)
  • 回归问题网络的最后一层只有一个单元,没有激活,是一个线性层, 这是回归的典型设置,添加激活函数会限制输出范围

二分类问题

  • 二分类问题使用的损失函数
    • 对于二分类问题的 Sigmoid 标量输出,binary_crossentropy
  • 对于二分类问题,网络的最后一层应该是只有一个单元并使用 Sigmoid 激活的 Dense 层, 网络输出应该是 0~1 范围内的标量,表示概率值

数据预处理问题

  • 在将原始数据输入神经网络之前,通常需要对其进行预处理
    • 结构化数据
    • 图像数据
    • 文本数据
  • 将取值范围差异很大的数据输入到神经网络中是有问题的
    • 网路可能会自动适应这种取值范围不同的数据,但学习肯定变得更加困难
    • 对于这种数据,普遍采用的最佳实践是对每个特征做标准化, 即对于输入数据的每个特征(输入数据矩阵中的列), 减去特征平均值,再除以标准差,这样得到的特征平均值为 0,标准差为 1
    • 用于测试数据标准化的均值和标准差都是在训练数据上计算得到的。 在工作流程中,不能使用测试数据上计算得到的任何结果, 即使是像数据标准化这么简单的事情也不行
  • 如果输入数据的特征具有不同的取值范围,应该首先进行预处理,对每个特征单独进行缩放

样本量问题

  • 如果可用的数据很少,使用 K 折交叉验证可以可靠地评估模型
  • 如果可用的训练数据很少,最好使用隐藏层较少(通常只有一到两个)的小型模型,以避免严重的过拟合
    • 较小的网络可以降低过拟合

网络结构选择问题

  • 如果可用的训练数据很少,最好使用隐藏层较少(通常只有一到两个)的小型模型,以避免严重的过拟合
  • 如果数据被分为多个类别,那么中间层过小可能会导致信息瓶颈

优化器

  • 无论问题是什么,rmsprop 优化器通常都是足够好的选择