目录
机器、深度学习任务问题
回归问题
- 回归问题使用的损失函数
- 回归问题使用的评估指标
- 回归问题网络的最后一层只有一个单元,没有激活,是一个线性层,
这是回归的典型设置,添加激活函数会限制输出范围
二分类问题
- 二分类问题使用的损失函数
- 对于二分类问题的 Sigmoid 标量输出,
binary_crossentropy
- 对于二分类问题,网络的最后一层应该是只有一个单元并使用 Sigmoid 激活的 Dense 层,
网络输出应该是 0~1 范围内的标量,表示概率值
数据预处理问题
- 在将原始数据输入神经网络之前,通常需要对其进行预处理
- 将取值范围差异很大的数据输入到神经网络中是有问题的
- 网路可能会自动适应这种取值范围不同的数据,但学习肯定变得更加困难
- 对于这种数据,普遍采用的最佳实践是对每个特征做标准化,
即对于输入数据的每个特征(输入数据矩阵中的列),
减去特征平均值,再除以标准差,这样得到的特征平均值为 0,标准差为 1
- 用于测试数据标准化的均值和标准差都是在训练数据上计算得到的。
在工作流程中,不能使用测试数据上计算得到的任何结果,
即使是像数据标准化这么简单的事情也不行
- 如果输入数据的特征具有不同的取值范围,应该首先进行预处理,对每个特征单独进行缩放
样本量问题
- 如果可用的数据很少,使用 K 折交叉验证可以可靠地评估模型
- 如果可用的训练数据很少,最好使用隐藏层较少(通常只有一到两个)的小型模型,以避免严重的过拟合
网络结构选择问题
- 如果可用的训练数据很少,最好使用隐藏层较少(通常只有一到两个)的小型模型,以避免严重的过拟合
- 如果数据被分为多个类别,那么中间层过小可能会导致信息瓶颈
优化器
- 无论问题是什么,
rmsprop
优化器通常都是足够好的选择