方差与偏差

方差和偏差都是不好的,他们都会损害算法的性能。神经网络如此成功原因之一是你的网络连同大数据的想法或希望拥有大数据集,他为我们提供了一种解决高偏差和高方差的新方法。太简单的模型有高偏差,太复杂的模型高方差。要找一个平衡。如果神经网络足够大,几乎能很好地适应训练集,只要你的训练集不是很大。所以说可以根据需要尝试减少偏差或减少方差,而无需在两者之间进行真正的权衡。先在神经网络上通过训练集训练您的算法,然后询问模型在训练集上是否表现良好。因此,测量Jtrain并查看他是否高,减少偏差的一种方法是只使用更大的神经网络(更多的隐藏层或每层更多的隐藏单元。然后持续这个循环,让您的神经网络越来越大,直到他在训练集上表现良好。查看他是否具有高方差,如果模型在交叉验证集上的表现与训练集上的表现差异很大,那么我们可以认为模型具有高方差,那么可以得出该算法具有高方差,所以训练集上的表现不能推广到交叉验证集上。所以Jcv和Jtrain之间有巨大差异表明可能存在高方差问题,尝试修复它的一种方法是获取更多数据。要获取更多数据并返回训练模型并仔细检查,你只需要更多的训练集吗?如果没有获取更多数据,而有一个更大的网络,或者当跨基础设置时可以。如果你能继续绕着这个循环绕来绕去,直到最终他在交叉验证集表现良好。

当然这个循环的应用也存在局限性,训练更大的神经网络不会减少偏差,但有时候他确实会增加成本。即使硬件加速器超过一定程度,神经网络也非常庞大,训练需要很长时间变得不可行。另一个限制是更多数据。有时很难获得更多数据。(深度学习在早期适用于有大量数据的应用程序,然后能够训练大量神经网络可以让你最终在很多应用程序上获得相当好的性能。) 

如果有适当的正则化,那神经网络的复杂程度不重要了,如果没有适当的正则化,神经网络多一点没有坏处,就是计算时变慢了。

中间代码是tensorflow中代码,如果要添加正则化,只需要像下面一样在后面添加kernel_regularizer后面是lambda的值每层可以选不同的值,但为了简单就选一样的 。

一个更大的神经网络会减慢你的算法,但他很大程度上不会伤害你的专辑表现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值