百面深度学习 | 第七期:贝叶斯超参数优化

“百面深度学习”系列连载 第七期

贝叶斯超参数优化

引言

超参数(Hyper-parameter)是机器学习算法的参数,与之相对应的是机器学习模型的参数(parameter)。模型的参数是需要通过训练数据集来训练的,而超参数是训练前人为指定的。在大数据时代,超参数一旦指定,我们通常就需要经过漫长的训练获得最终的模型并评估其效果。同时,调参老中医们都知道超参数对算法的评估效果影响很大。因此,如何设定超参数就成为了一个影响算法研发效率和最终质量的重要问题。

在大多数场景下,我们无法通过理论预测超参数对最终效果的影响,只能通过训练+评估来获得这个信息,因此超参数的调优是一个黑盒优化问题。同时,很多算法的超参数的个数比较多,例如对深度神经网络来说,隐藏层的层数、每层神经元的个数、**函数的种类、卷积核的大小等都是超参数。对于这种参数个数较多的黑盒优化问题,我们通常可以用领域知识去调参(瞎蒙),也可以用网格搜索或者随机搜索去调参。那么除了这些糙猛的方式以外(并不一定快),有没有什么更加优雅的调参姿势呢?答案是肯定的,一种很流行的姿势就是贝叶斯优化。

一些经验性结果表明贝叶斯优化可以用比网格搜索或者随机搜索更少的尝试次数接近最优解,甚至超过人类专家的调优效果。本节我们就来介绍一下贝叶斯优化。

问题1

贝叶斯超参数优化的流程是什么?

分析与解答

百面深度学习 | 第七期:贝叶斯超参数优化

百面深度学习 | 第七期:贝叶斯超参数优化

问题2

优化目标函数的后验分布如何计算?

分析与解答

百面深度学习 | 第七期:贝叶斯超参数优化

百面深度学习 | 第七期:贝叶斯超参数优化

百面深度学习 | 第七期:贝叶斯超参数优化

百面深度学习 | 第七期:贝叶斯超参数优化

百面深度学习 | 第七期:贝叶斯超参数优化

百面深度学习 | 第七期:贝叶斯超参数优化

百面深度学习 | 第七期:贝叶斯超参数优化

问题3

如何定义获得函数(Acquisition function)?

获得函数的意义是什么?

分析与解答

百面深度学习 | 第七期:贝叶斯超参数优化

百面深度学习 | 第七期:贝叶斯超参数优化

百面深度学习 | 第七期:贝叶斯超参数优化

百面深度学习 | 第七期:贝叶斯超参数优化

百面深度学习 | 第七期:贝叶斯超参数优化

Figure 1: 上图为目标函数的后验分布,红实线为后验分布的均值,红虚线为后验分布的置信区间。下图为由后验分布计算出的期望提升获得函数 [6]

百面深度学习 | 第七期:贝叶斯超参数优化

总结与扩展

贝叶斯超参数优化是自动化机器学习领域里相对成熟的技术,针对连续型、整型、种类型、层次型的参数调优都有相应的处理方法。这里列出一些贝叶斯优化的软件包供读者参考(可在 github 或者 google 上搜索):spearmint、SMAC、hyperopt、hpolib。另请读者思考,贝叶斯超参数优化有哪些不足之处?这些不足之处在自动化机器学习的其他分枝领域里得到了怎样的解决(例如神经网络架构搜索)?

[1] MOCKUS J, TIESIS V, ZILINSKAS A. The application of Bayesian methods for seeking the extremum[J]. Towards global optimization, 1978, 2(117-129): 2.

[2] SNOEK J, LAROCHELLE H, ADAMS R P. Practical bayesian optimization of machine learning algorithms[C]//Advances in neural information processing systems. 2012: 2951–2959.

[3] BERGSTRA J S, BARDENET R, BENGIO Y, 等. Algorithms for hyper-parameter optimization[C]//Advances in neural information processing systems. 2011: 2546–2554.

[4] THORNTON C, HUTTER F, HOOS H H, 等. Auto-WEKA: Combined selection and hyperparameter optimization of classification algorithms[C]//Proceedings of the 19th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2013: 847–855.

[5] SNOEK J, RIPPEL O, SWERSKY K, 等. Scalable bayesian optimization using deep neural networks[C]//International conference on machine learning. 2015: 2171–2180.

[6] FRAZIER P I. A tutorial on Bayesian optimization[J]. arXiv preprint arXiv:1807.02811, 2018.

[7] JONES D R, SCHONLAU M, WELCH W J. Efficient global optimization of expensive black-box functions[J]. Journal of Global optimization, Springer, 1998, 13(4): 455–492.

[8] SRINIVAS N, KRAUSE A, KAKADE S M, 等. Gaussian process optimization in the bandit setting: No regret and experimental design[J]. arXiv preprint arXiv:0912.3995, 2009.

下期预告

物体检测模型的发展概况

引言

物体检测问题是计算机视觉中极为重要的基础问题,也是解决场景理解、图像描述(Image Captioning)、实例分割(Instance Segmentation)、物体跟踪等问题的基础。物体检测期望判断输入图像中是否存在给定类别的物体,如果存在,则以包围框(Bounding Box)坐标的形式就给出该物体在图像中的位置和范围。物体检测模型主要分单步检测模型和两步检测模型两大类,本小节分析和对比了这两大类模型架构在性能和效率上的不同点、给出了原理解释,并介绍了其各自的典型模型和发展前沿,以帮助读者对物体检测建立一个较为全面的认识。

问题

什么是单步(one-stage)和两步(two-stage)物体检测模型?请列举几个典型的模型。

单步和两步模型在性能上有什么差异?什么导致了这种差异?目前单步和两步模型的SOTA(19年2月)分别是什么?简单介绍一下你的了解。

今天是丁老师的同事"小兰"

首次登场亮相!

丁老师的同事小兰,是坊间公认的“最美女博士”。去年去韩国之前,我问小兰推荐的彩妆品牌,她想了一会儿说“有一个牌子,叫啥来着……”(思考中)“就是那个,对,A3C!” 她一定是最近学习深度学习太入迷了……(A3C是一个增强学习模型,她实际想说的是3CE,一个韩国品牌)

丁老师二三事

说明:“丁老师二三事”是取材于Hulu日常的虚构创作,如有雷同,您别当真~

关注Hulu公众号

你就是最爱学习的仔~

百面深度学习 | 第七期:贝叶斯超参数优化