Adam 算法同时获得了 AdaGrad 和 RMSProp 算法的优点。Adam 不仅如 RMSProp 算法那样基于一阶矩均值计算适应性参数学习率,它同时还充分利用了梯度的二阶矩均值(即有偏方差/uncentered variance)。
8. 超参数以下是介绍超参数的信息图,它在神经网络中占据了重要的作用,因为它们可以直接提升模型的性能。
众所周知学习率、神经网络隐藏单元数、批量大小、层级数和正则化系数等超参数可以直接影响模型的性能,而怎么调就显得非常重要。目前最常见的还是手动调参,开发者会根据自身建模经验选择「合理」的超参数,然后再根据模型性能做一些小的调整。而自动化调参如随机过程或贝叶斯优化等仍需要非常大的计算量,且效率比较低。不过近来关于使用强化学习、遗传算法和神经网络等方法搜索超参数有很大的进步,研究者都在寻找一种高效而准确的方法。
目前的超参数搜索方法有:
依靠经验:聆听自己的直觉,设置感觉上应该对的参数然后看看它是否工作,不断尝试直到累趴。
网格搜索:让计算机尝试一些在一定范围内均匀分布的数值。
随机搜索:让计算机尝试一些随机值,看看它们是否好用。
贝叶斯优化:使用类似 MATLAB bayesopt 的工具自动选取最佳参数——结果发现贝叶斯优化的超参数比你自己的机器学习算法还要多,累觉不爱,回到依靠经验和网格搜索方法上去。
因为篇幅有限,后面的展示将只简要介绍信息图,相信它们对各位读者都十分有帮助。
9. 结构化机器学习过程我们需要按过程或结构来设定我们的机器学习系统,首先需要设定模型要达到的目标,例如它的预期性能是多少、度量方法是什么等。然后分割训练、开发和测试集,并预期可能到达的优化水平。随后再构建模型并训练,在开发集和测试集完成验证后就可以用于推断了。
10. 误差分析在完成训练后,我们可以分析误差的来源而改进性能,包括发现错误的标注、不正确的损失函数等。
11. 训练集、开发集与测试集上图展示了三个分割数据集及其表现所需要注意的地方,也就是说如果它们间有不同的正确率,那么我们该如何修正这些「差别」。例如训练集的正确率明显高于验证集与测试集表明模型过拟合,三个数据集的正确率都明显低于可接受水平可能是因为欠拟合。
12. 其它学习方法机器学习和深度学习当然不止监督学习方法,还有如迁移学习、多任务学习和端到端的学习等。
卷积网络 13. 卷积神经网络基础计算机视觉任务涉及的数据体量是特别大的,一张图像就有上千个数据点,更别提高分辨率图像和视频了。这时用全连接网络的话,参数数量太大,因而改用卷积神经网络(CNN),参数数量可以极大地减小。CNN 的工作原理就像用检测特定特征的过滤器扫描整张图像,进行特征提取,并逐层组合成越来越复杂的特征。这种「扫描」的工作方式使其有很好的参数共享特性,从而能检测不同位置的相同目标(平移对称)。