2016.3.28 如何去确定初始参数

如何去确定初始参数

有那么多参数,比如说学习率yita,惩罚的大小lambda,以及minibatch还有网络什么时候停止。

一个比较宏观的思路是为了验证想法,没有必要用全部的数据集,而是采用其中的一部分,验证有效了,再去使用更大的数据集合,而且为了验证想法,可以适当的减小网络的层的深度,而且做更频繁的validation,其实就是相当于做快速的小实验,能够更快的训练网络,看到想法的效果。

所以这样的想法在实验时候非常有效。记住:使用小网络进行小样本的测试。

 

那么对于学习来说,到底什么样的参数合适呢?

学习率:数量级确定之后越大越好。

Early stop:由于学习的时候学习的正确率在震荡,因此难以确定到底是在哪一轮停止,所以采用比如说n轮准确率不上升来确定该停止了。有可能带来的一个问题就是可能在某一阶段,学习到了一个平台,多了一会儿就继续下降,不过这个问题在考虑的时候不用考虑这么多,因为这样的概率还是比较少的,或者觉得不够好,再修改n。不过这确实是一个即使停止训练的有效的方法。

Lambda:这是为了惩罚w过大,确定了学习率之后进行相关的调试,找到一个比较好的值,反过来再调整一下学习率lambda。这样相互交替,达到一个比较好的结果。其实学习率可以看成是步长,而梯度下降可以看成是方向,我要在某个方向上走长的距离,而lambda决定了方向,按照原来的思路,其实在某一个方向上的数值要进行改变的时候是稍微减小,也不会变化特别的大,于是就是相当于,我不是再当前的点上进行调整,而是稍微减小了一些之后再进行调整,不过总觉的怪怪的,因为虽然说是减小,但是实际上相当于再参数空间变换了一个位置,再按照原来的位置进行一个学习。

Minibatch size:为了充分发挥计算机的计算能力,可以采用想量化的变成或者是并行计算,这样的计算效率要高好多,所以通过这样的方式能够有效的减少训练的真实时间。

 

下面问题来了:

1.    有没有一个程序能够自动调参,当然,我说的不是枚举,而是通过某种可以和网络输出结果相互动的方式来进行参数的学习。

2.    lambda可以看成是希望减小w,小了之后对于特别奇葩的值就不是很敏感,但是如果从参数空间上来看,是缩放到了另一个点之后再调整,那么这两个点之间有什么关系?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值