吴恩达深度学习课程2《优化神经网络》

转载和提炼自:https://blog.csdn.net/red_stone1/article/details/78208851

1. 深度学习的实用层面

如何有效的运作神经网络?超参数调优、如何构建数据、如何确保优化算法快速运行

  • 选择最佳的训练集(Training sets)、验证集(Development sets)、测试集(Test sets)对神经网络的性能影响非常重要。
  • 除此之外,在构建一个神经网络的时候,我们需要设置许多参数,例如神经网络的层数每个隐藏层包含的神经元个数学习因子(学习速率)、激活函数的选择等等。
  • 实际上很难在第一次设置的时候就选择到这些最佳的参数,而是需要通过不断地迭代更新来获得。
  • 即使是最有经验的深度学习专家也很难第一次就找到最合适的参数。因此,应用深度学习是一个反复迭代的过程,需要通过反复多次的循环训练得到最优化参数。

1.1 Train/Dev/Test sets

一般地,我们将所有的样本数据分成三个部分:Train/Dev/Test sets。

  • Train sets用来训练你的算法模型;
  • Dev sets用来验证不同算法的表现情况,从中选择最好的算法模型;
  • Test sets用来测试最好算法的实际表现,作为该算法的无偏估计。

数据量不是很大,如100,1k,10k,Train/Dev/Test sets 设置比例为60%、20%、20%。

数据量很大:100万,则:Train/Dev/Test sets 设置比例为98%/1%/1%,或者99%/0.5%/0.5%。

  • 训练样本和测试样本分布上不匹配,意思是训练样本和测试样本来自于不同的分布。如自己的和用户上传的!
    • 解决这一问题的比较科学的办法尽量保证Dev sets和Test sets来自于同一分布
    • 值得一提的是,训练样本非常重要,通常我们可以将现有的训练样本做一些处理,例如图片的翻转、假如随机噪声等,来扩大训练样本的数量,从而让该模型更加强大。
    • 即使Train sets和Dev/Test sets不来自同一分布,使用这些技巧也能提高模型性能。

1.2 方差与偏差

高偏差——欠拟合(对应着训练集)

高方差——过拟合(对应着测试集)

  • 假设Train set error为1%,而Dev set error为11%,即该算法模型对训练样本的识别很好,但是对验证集的识别却不太好。这说明了该模型对训练样本可能存在过拟合,模型泛化能力不强,导致验证集识别率低。这恰恰是high variance的表现
    • 过拟合,模型泛化能力不强。
  • 假设Train set error为15%,而Dev set error为16%,虽然二者error接近,即该算法模型对训练样本和验证集的识别都不是太好。这说明了该模型对训练样本存在欠拟合。这恰恰是high bias的表现。
    • 训练集和测试集误差都很高,欠拟合。
  • 假设Train set error为15%,而Dev set error为30%,说明了该模型既存在high bias也存在high variance(深度学习中最坏的情况)。
  • 再假设Train set error为0.5%,而Dev set error为1%即low bias和low variance,是最好的情况
  • 值得一提的是,以上的这些假设都是建立在base error是0的基础上,即人类都能正确识别所有猫类图片。base error不同,相应的Train set error和Dev set error会有所变化,但没有相对变化
  • 一般来说,Train set error体现了是否出现bias,Dev set error体现了是否出现variance(正确地说,应该是Dev set error与Train set error的相对差值)。
  • 模型既存在high bias也存在high variance,可以理解成某段区域是欠拟合的,某段区域是过拟合的。

1.3 减小偏差和方差的办法

  • 减少高偏差(训练集误差)欠拟合的办法:当前模型过于简单,需要增加复杂性
    • 增加神经网络的隐藏层个数——增加层数
    • 增加神经元的个数
    • 训练时间延长
    • 选择其他更复杂的模型

在base error不高的情况下,一般都能通过这些方式有效降低和避免high bias,至少在训练集上表现良好。

  • 减小高方差(测试集误差)过拟合的方法:
    • 增加训练样本数据
    • 进行正则化regularization
    • 选择其他更复杂的模型

这里有几点需要注意的。第一,解决high bias和high variance的方法是不同的。实际应用中通过Train set error和Dev set error判断是否出现了high bias或者high variance,然后再选择针对性的方法解决问题。

第二,Bias和Variance的折中tradeoff。传统机器学习算法中,Bias和Variance通常是对立的,减小Bias会增加Variance,减小Variance会增加Bias。而在现在的深度学习中,通过使用更复杂的神经网络海量的训练样本,一般能够同时有效减小Bias和Variance。这也是深度学习之所以如此强大的原因之一。

1.4 正则化

如果出现过拟合,即高方差,则需要采用正则化来解决。虽然扩大训练样本数量也是减小高方差的一种方法,但是通常获得更多训练样本的成本太高,比较困难。所以,更可行有效的办法就是使用regularization。

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值