继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

吴恩达 Coursera 第二课记录

慕尼黑5497867
关注TA
已关注
手记 378
粉丝 23
获赞 77

Train sets 用来训练你的算法模型

Dev sets 用来验证不同算法的表现情况,从中选择最好的算法模型

Test sets 用来测试最好算法的实际表现,作为该算法的无偏估计

这 3 个集合在数量不大,如:100,1000,10000 的时候,设置为 60%、20%、20%,或者 70% 和 30%(无 dev);

大数据时代,对于 100 万的样本,往往也只需要 10000 个样本就够了,对于大数据样本,Train/Dev/Test sets 的比例通常可以设置为 98%/1%/1%,或者 99%/0.5%/0.5%。样本数据量越大,相应的 Dev/Test sets 的比例可以设置的越低一些。

上述这么划分数据的一个前提假设是:训练样本和测试样本来自于相同分布。

举个例子,假设你开发一个手机 app,可以让用户上传图片,然后 app 识别出猫的图片。在 app 识别算法中,你的训练样本可能来自网络下载,而你的验证和测试样本可能来自不同用户的上传。从网络下载的图片一般像素较高而且比较正规,而用户上传的图片往往像素不稳定,且图片质量不一。因此,训练样本和验证 / 测试样本可能来自不同的分布。

我们在参加比赛的时候,一般不需要去设置 testset,Test sets 的目标主要是进行无偏估计。我们可以通过 Train sets 训练不同的算法模型,然后分别在 Dev sets 上进行验证,根据结果选择最好的算法模型。

high bias。 减少 high bias 的方法通常是增加神经网络的隐藏层个数、神经元个数,训练时间延长,选择其它更复杂的 NN 模型等。

high variance。减少 high variance 的方法通常是增加训练样本数据,进行正则化 Regularization,选择其他更复杂的 NN 模型等。

传统机器学习算法中,Bias 和 Variance 通常是对立的,减小 Bias 会增加 Variance,减小 Variance 会增加 Bias。而在现在的深度学习中,通过使用更复杂的神经网络和海量的训练样本,一般能够同时有效减小 Bias 和 Variance。

问题优化方法高偏差增加复杂度高方差正则化,增加数据

吴恩达 Coursera 第二课记录

问题:为什么只对 w 进行正则化而不对 b 进行正则化呢?

答:因为 w 维数高,复杂度远超 b。

吴恩达 Coursera 第二课记录

L1 优点:节约存储空间,因为大部分 w 为 0。

缺点:微分求导方面比较复杂。

结论:选择 L2 regularization。

问:为什么 L2 正则化有效?

答:可以这么理解。

加入正则化后,参数 w 的更新变为:

吴恩达 Coursera 第二课记录

吴恩达 Coursera 第二课记录

此处显然

吴恩达 Coursera 第二课记录

也就意味着加入 L2 后,参数 w 的衰减加快,而我们在古玩论坛神经网络中一般会有一个激活函数,我们以 tanh 为例:

吴恩达 Coursera 第二课记录

如果 w 小话,意味着输出小,而 tanh 在 0 附近接近于线性,也就意味着网络的非线性整体减小了。

但是如果 w 过小,意味着某些神经元会不起作用,网络变为:

吴恩达 Coursera 第二课记录

此时网络的拟合能力变弱,因此我们要选择一个合适的 ,防止 w 衰减过快。

Dropout 有不同的实现方法,下面介绍:

Inverted dropout

keep_prob=0.8# 保留0.8dl=np.random.rand(al.shape[0],al.shape[1])

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP