首页 » 信息技术 »

训练神经网络时,如果cost越来越大...

2018年12月7日 / 50次阅读

  • 打开支付宝,搜索“ 529018372 ”,领取专属红包!每日支付每日领。

训练神经网络时,如果cost越来越大,一定是不对的。我们训练神经网络,目的就是让cost越来越小,进而提高网络的预测水平。

我自己在测试代码的时候,发现一个现象,如果learning rate设置为0.05,就一切正常,如果设置为0.5,就会导致cost越来越大。

一开始以为是代码有bug,查来查去,发现是learning rate设置过大导致的。

>>> import test
>>> from f3cl_nn import *
>>> from neuron import *
>>> from costfunc import *
>>> tr_d = test.dd1()
>>> nn = f3cl_nn((1,1))
>>> nn.setup(norescale, quadratic_cost_x)
>>> nn.b
[array([[-0.56699084]])]
>>> nn.w
[array([[0.90312502]])]
>>> nn.bgd_learn(tr_d, 0.5)
333333,wb= ([array([[-47.31239568]])], [array([[-8.50292825]])])
>>> nn.b
[array([[3.68447328]])]
>>> nn.w
[array([[24.55932286]])]
>>> nn.bgd_learn(tr_d, 0.5)
333333,wb= ([array([[646.02083133]])], [array([[102.20142616]])])
>>> nn.b
[array([[-47.4162398]])]
>>> nn.w
[array([[-298.4510928]])]
>>> 
>>> nn.bgd_learn(tr_d, 0.05)
333333,wb= ([array([[-8789.72922396]])], [array([[-1402.44615741]])])
>>> nn.b
[array([[22.70606807]])]
>>> nn.w
[array([[141.0353684]])]
>>> nn.bgd_learn(tr_d, 0.05)
333333,wb= ([array([[4051.1853056]])], [array([[645.36522585]])])
>>> nn.b
[array([[-9.56219322]])]
>>> nn.w
[array([[-61.52389688]])]
>>> nn.bgd_learn(tr_d, 0.05)
333333,wb= ([array([[-1866.9609307]])], [array([[-298.4197292]])])
>>> nn.b
[array([[5.35879324]])]
>>> nn.w
[array([[31.82414965]])]
>>> 

看上面调试情况,我设置了一个1:1的网络,做线性回归的验证,训练数据来自于函数y=2x+3。

正常情况,应该是w越来越靠近2,b越来越靠近3。

但是看上面的信息,如果learning rate设置为0.5(一开始并没有觉得这是个多大的数),每一个EPOCH之后,b和w都在变大,越来越大。而将learning rate设置为0.05之后,b和w就开始缩小,最后会趋近于正确的。(33333那一行,是将w和b的梯度打印出来观察的)

这个就有了一个问题:learning rate应该如何设置呢?

这只是个线性回归的case,应该不能将很容易能够观察到的现象总结为一般情况。比如:w的梯度在逐渐变大,这就是不对,如果是个复杂的网络,某一个w的梯度变大,可能就是对的呀。

我们是否可以将cost值来作为参考,如果cost在变大,是不是能够说明learning rate有点大,要缩小一点?(上面的信息没有把cost的值打印出来)

这个问题有待以后再慢慢研究了。

 

2018-12-08:

如果拟合的函数是个线性函数,cost没有上限,会达到计算的极限,inf或nan。

如果神经元采用sigmoid函数,每一个数据的cost,最大就是output layer神经元的个数(假设最坏的情况,每个神经元的输出都有正确的值相差1)。

 

2018-12-23:

有个专业术语,叫overshooting:

overshooting

overshooting

本文链接:http://www.maixj.net/ict/cost-da-19492

相关文章

留言区

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:
推一篇:可靠正规,长期稳定,网络兼职项目!!

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top