Step1:Data Processing 前面的章节已经介绍了。
Step2:choose the architecture
Step3:Babysitting the Learning Process
Step4:Hyperparameter Optimization
整体而言,这是一个从粗到细的过程,先定一个相对较大的参数的范围,然后对这个区间进行一个粗略的研究,然后从中选择一个表现比较好的小区间,然后重复这个过程,最终得到一个最优的参数。可以借助一些可视化的方法。
在运行的过程中,输出Accuracy,以及对应的参数(learning Rate/ 正规化系数)。
如下图可以看到,某些参数已经可以做到Accuracy达到40%~50%了,可以对Learning Rate 和正规化系数可能的范围进行一下估测了。
注:在设定learning Rate和正规化系数参数的范围时,最好在对数空间中进行取样,如上reg = 10 ** uniform(-5,5),就是指10^x,因为在反向传播时,这两个参数是相乘的,而且会对他们取Log。
根据上图的结果,调整参数的范围为表现更好的一个区间。
对于图中的问题,似乎是因为reg的取数与上一张图中的表现较好的reg的取值相差过大,是否陷入局部最优解之类的。(不确定)
插入一个概念:Grid Search,确定一个固定的步长,对于Learning Rate和Reg进行循环,每一步去一个值,有两个循环。
性能方面:Grid < Random。因为参数的重要性是不同的,有些参数的影响很大,有些参数影响很小,在一个范围内随机取值,更容易找到最优的解。(如下图所示,那条绿色的线表示表现程度,可能是准确度之类的)
Hyper-parameters
一般用可视化的方法来优化如下这些参数。
示例1:当Loss如左图的时候,我们估计它是因为Learning Rate太低了
示例2:Loss 刚开始有段时间是平的,然后到某个节点突然开始下降,我们初步判定初始化做的不好。
在实验过程中,可以记录这些Loss Curve,找到原因,积累经验啦~