深度学习中处理偏差和方差

偏差和方差

偏差

初始模型训练完成后,首先要知道算法的偏差高不高

如果偏差较高,试着评估训练集或训练数据的性能。如果偏差的确很高,甚至无法拟合训练集,那么你要做的就是:

  1. 选择一个新的网络,比如含有更多隐藏层或者隐藏单元的网络,
  2. 花费更多时间来训练网络,
  3. 或者尝试更先进的优化算法
  4. 你也可以尝试其他方法,可能有用,也可能没用。

采用规模更大的网络通常都会有所帮助,延长训练时间不一定有用,但也没什么坏处。

训练学习算法时,需要不断尝试这些方法,直到解决掉偏差问题,这是最低标准,反复尝试,直到可以拟合数据为止,至少能够拟合训练集。

方差

一旦偏差降低到可以接受的数值,检查一下方差有没有问题,为了评估方差,我们要查看验证集性能,我们能从一个性能理想的训练集推断出验证集的性能是否也理想。
如果方差高,可以:

  1. 采用更多数据,
  2. 正则化。

最好的解决办法就是采用更多数据,如果你能做到,会有一定的帮助。
但有时候,我们无法获得更多数据,我们也可以尝试通过正则化来减少过拟合。

有时候我们不得不反复尝试,但是,如果能找到更合适的神经网络框架,有时它可能会一箭双雕,同时减少方差和偏差。如何实现呢?想系统地说出做法很难,总之就是不断重复尝试,直到找到一个低偏差,低方差的框架,这时你就成功了。

关于正则化:

一、L2 regularization

The standard way to avoid overfitting is called L2 regularization. It consists of appropriately modifying your cost function,
from:
J = − 1 m ∑ i = 1 m ( y ( i ) log ⁡ ( a [ L ] ( i ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − a [ L ] ( i ) ) ) (1) J = -\frac{1}{m} \sum\limits_{i = 1}^{m} \large{(}\small y^{(i)}\log\left(a^{[L](i)}\right) + (1-y^{(i)})\log\left(1- a^{[L](i)}\right) \large{)} \tag{1} J=m1i=1m(y(i)log(a

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值