超参数的重要性:
第一级:学习率
第二级:mmentum=0.9,mini-batch,隐藏单元结点的数量
第三级:学习率衰减,adam的值β
对数随机取值
随机但是非均匀取值:
想象一下对于学习率,取值范围是(0.0001,1)之间
如果是随机均匀取值,会有90%的权重落入01.-1之间,10%落入0.0001-0.1之间,是不是不合理呢?
正确的方法采用对数轴取值,对于(a,b)范围,利用A=loga,B=logb,得到值域(A.B),之后在(A,B)上均匀取值,取得值c进行10^c操作即合理的值。
例如(0.0001,1)取对数后得到(-4,0)之后随机均匀取值,即得到合理分布.25%落入0.0001-0.001
而特别的对于指数平均的β(0.9,0.999),正确的取值的方法是
对1-β取对数轴均匀取值(0.001,0.1)【转化为上述AB的问题】,取得后再减。
调试模型的方法:
熊猫方式(panda):当计算能力不足时,只能训练一个模型。
则根据魔心的Loss,accuracy曲线实时进行调整,比如第一天降低学习率,第二天增加β等等
鱼子酱方式(caviar):计算能力充足,尝试不同的超参数
BN归一化
对于简单的神经网络或者logistic回归。
对参数进行 (x-均值)/标准差是有效的【归一化,标准化,使得值收缩到某一范围 】此时转化为均值为0,方差