deep learning toolbox学习使用2之NN

来源:互联网 发布:上海屹通java笔试题 编辑:程序博客网 时间:2024/05/29 02:02
继续总结NN中的一些参数的使用,基本都是为了防止过拟合
1.权重衰减项weightpenaltyl2,在经过bp过程之后,需要更新w的值,此时使用penalty项,个人理解为规则化项,代码中是增加dw的值,因为更新w时是减去dw,所以相当于减少了权重的幅度,目的是防止overfitting,这一项我理解相当于ufldl中更新w时多减去的lamda w部分,和之前效果比,错误率降低,说明还是有实际效果。
2.dropout,在这里设的是0.5(应该可以再0.5-0.9之间浮动),大体思想是每次神经元不应该都激活,而是部分激活(考虑sparity?),因此在train的ff阶段,通过生成一个随机矩阵(与激活矩阵大小相同),通过dropout的筛选,只有大于的才被认为该神经元可以被激活,也就是可以产生非0的激活值。在bp、阶段,还是通过之前的随机矩阵,对相对应激活的神经元才进行残差的计算,因为没激活,也就没有产生残差,无需bp,目的也是为了防止过拟合,从实验效果看,错误率有所提高,个人感觉可能是参数阀值的影响。
3.最后NN中也有把之前hidden层使用tanh的激活函数换成统一的sigmoid,实验效果有所提升,具体激活函数个人感觉应该视情况而定,sigmoid坡度更缓,而双曲正切函数更陡。
0 0
原创粉丝点击