训练过程监控 Babysitting the Learning Process

训练过程监控 Babysitting the Learning Process

数据预处理,我们要把数据进行零均值处理

我们要做的第一件事,初始化我们的网络,网络进行前向传播,我们想确定最终的损失函数是合理的。接下来我们想做的是加入0正则化项,如果不加入它,那么损失值就是数据的损失值,在2.3左右,现在我们想要启动这个正则化,当我们启动时,我们希望看到我们的损失值上升了,因为我们添加了额外的正则化项,这是完整性,检查过程中很好的一步。

现在我们开始训练,我们最好先从小数据集开始,因为如果你有一个小数据集,你能够把他们拟合的非常好,获得非常小的训练损失。这里我们要关闭正则化操作,只是为了观察我们是否能够把训练损失降为0,我们看到训练损失正在降低,当我们训练多个epoch,我们在每一个epoch计算我们的损失,我们希望看到最终损失降为0。另一方面我们也看到训练集的准确率上升为1 ,所以如果你有一个小数据集,你能够完美地拟合这些数据。

如果你现在完成了完整性检查的操作,你可以开始真正的的训练了,现在你可以拿出你的所有训练数据,加上一个小的正则化项,让我们确定下什么才是最优的学习率,学习率是最重要的参数之一,它是你想要首先调整的参数,你可以是一些学习率的值,这里我用的是1e-6,你可以看到损失基本不变化。损失不变化的原因通常是,你设置的学习率太低了。当学习率很小的时候,你的梯度更新就会很小,你的cost也一样。

这里我想指出的一点是,即使我们的损失基本不变,但是训练集和验证集的准确率都非常快地提升到了20%。这里的原因是:虽然这里的分布依然很分散,因此我们的损失项很接近,但是我们把这些所有的分布都朝着正确的方向在轻微的移动,我们的权重参数在朝着正确的方向改变,现在准确率可能发生突变,因为我们正选取最大的准确率,所以准确率会得到一个很大的提升,虽然损失还是相当分散。

一般情况下,我们的学习率设置于在1e-3到1e-5之间,这是一个我们想要交叉验证的粗略范围,你在这个范围里尝试不同的学习率,取决于你的损失变化太小亦或者太大,在这个原则上调整。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值