机器学习系列 九 -3. Tips for Deep Learning - for testing data

 
下图所说的testing data 不是真正的testing data, 而是我们已经labeled 数据,是validation set



一. Early Stopping
理想情况下,在training set上如果leraning rate 调的对的话,total loss 会越来越小;
但我们也知道在testing set 和training set 上他们的distribution 分布 不完全一样。
所有有可能出现,在training set 上loss 会逐渐减小,反而在testing set 上却逐渐上升。
那么假如我们知道testing data 的loss的变化,那我们不应该停在traing set 的loss最小,而应该停在testing set的loss最小
但问题是,实际上我们并无法知道testing set的loss最小在哪里。一般的我们会使用validation set 去verify 一下而已。
来模拟一下,在什么时候validation set 的loss 最小点停下来。就是early stopping。
keras里面文档提供了如何做这件事


二. Regularization 正则化
L2 
虽然Regularization很重要,但是在Deep learning 里面的效果并没有那么显著! 为什么?
如果去看前面的early stopping我们可以决定在什么时候training 应该要被停下来, 
    1.因为我们在做Neural network的时候,初始参数通常都是从很小或者接近0的值开始初始参数的。
    2.在做update的时候,通常在做的事情都是让参数离0 越来越远...
    3.而做regularization,他的效果就是希望我们的参数不要离0太远,
    4.那么加上regularization term造成的效果跟减少update 次数所造成的效果其实可能是很像的。
    5.其实我们在做early stopping减少update次数也会避免你的参数离接近0的值太远。
    6.这样early stopping 跟regularization做的事情可能是很接近的。
所以在neural network里面regularization 也很重要,但没那么重要,跟SVM里面相比重要性差很远。

regularization所做的事情就类似于把没有用的连接给去掉一样
也就是说我们做Regularization的目的就是希望我们的参数的权重 越接近0 越好,不希望我们的参数太大
他修改了我们的loss function
原来的loss 是希望最小化我们的方差或者交叉熵
现在又加上了一项,regularization term L2  Norm 

2Norm就是讲参数集合中的每一个参数进行平方然后求和,通常我们不考虑bias的。

好了,那我们一方面希望minimize 原先的Loss function(cross entropy) 一方面希望minimize 参数的L2 norm

那么minimize L2 norm的事情就叫做L2 Regularization。



























三. Dropout


















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值