参考资料: 量子位-怎样构建深度学习模型?
- 第1步:损失函数
- 回归问题用MSE(均方误差)
- 多类别分类问题用交叉熵(衡量相似性)
- 二分类问题用二值交叉熵
- 第2步:初始神经网络架构
- 结构化学习(结构化数据):一个激活节点的个数数在输入和输出神经元数之间的全连接层,先不要太深太大
- 计算机视觉:从ResNet开始
- 第3步:训练集
- 用learning rate finder来选学习率,可以得到一个学习率的曲线,选取还在明显下降但快要平坦的地方。
- Adam或相关的优化器优化(Adam速度快但有可能不收敛)
- 模型表征能力还是不够,可以用余弦学习率衰减,但如果学习率本身就可以自学习就不需要了。
- 如果用了学习率衰减,适当的时候再学习率重启
- 如果做迁移学习,把前几层解冻尝试一下可微分学习率
- 隐藏层的神经元数量
- minibatch大小
- 隐藏层数量
- 第4步:验证集
- Dropout
- L2正则化 防止一些权重过大
- 输入特征归一化
- 批量归一化
- 数据扩增
- 为训练集补充数据
- 梯度消失或爆炸
- He初始化解决梯度消失或爆炸
- 梯度裁剪解决梯度爆炸
- 重新调整神经网络架构
- 第5步:测试集
- 如果有问题,扩大验证集,回到第4步,不要用测试集损失来调整超参数
- 第6步:真实世界
- 如果有问题,换个验证集和测试集,回到第4步,可能是分布不同