深度神经网络调参之道(learn to learn)
学习Deep learning 除了算法理解、代码练习、比赛强化之外,还有一个非常重要的环节**“超参数调参”**,在漫漫参数集中如何找到心仪的参数呢? 下面我为大家总结一下调参之道。
首先先看看Deep learning从业者在大家心中的位置,就知道调参工作有多重要了!
1. Grid Search
如此之多的参数,我该何去何从,如何用最短时间内,尝试最多的参数集
假设: 我们从参数集合中挑选top K 个结果就已经包含大多数组合
那么根据概率论:
如果存在 N 个点, K/N 是你的样本概率在 top K中:
抽样x次(选择的次数),我们有:
所以在1000个样本中,我们选择230次就可以选到top 10的结果,仅仅选择22次就可以选择到top100的结果。
2. Model-based Hyperparameter Optimization
接下来,我们就开始用机器学习来进行超参数选择,按照惯例,我们建立一个模型来预测超参数。
其中蓝色区域是可能的置信区间(confidence),绿色线条是我们的acquisition函数(寻找参数的模型)我们的目的是找到一个模型,能够使confidence减小,结果变好。
3. 强化学习 reinforcement learning
这么多参数组合,手工一个一个试,确实费事费力。 强化学习是一个重要的工具(我们后续专栏里面会仔细讲)。
(1) CNN 超参数的自动寻找
以CNN图片分类为例,到底每一层需要多少filter,filter的长、宽、高,通过强化学习不断地尝试,获得结果。
(2)learning rate 的调整
我们将操作:operatation
一元运算:unary
二元运算:binary
设定为选取的集合:
我们的RL方法,将从这些集合中选取并组合:
其实最终的SGD、RMSProp、Adam 都是这些元素的组合
(3) Activation 函数 的调整
我们设定一元运算、二元运算的集合:
于是我们有:
经过强化学习的不断选择,RL会帮我们找到计算机专家很难想到的激活函数图形
本专栏图片、公式很多来自台湾大学李弘毅老师、斯坦福大学cs229,斯坦福大学cs231n 、斯坦福大学cs224n课程。在这里,感谢这些经典课程,向他们致敬!