笔记:Andrew Ng's Deeping Learning视频
参考:https://xienaoban.github.io/posts/41302.html
参考:https://blog.csdn.net/u012328159/article/details/80210363
1. 训练集、验证集、测试集(Train, Dev, Test Sets)
-
当数据量小的时候, 70% 训练, 30% 测试;或 60% 训练、20% 验证、20%测试.
-
训练集( training set):用来训练模型,即被用来 学习 得到系统的 参数取值.
-
测试集( testing set):用于最终报告模型的评价结果,因此在训练阶段测试集中的样本应该是不可见的.
-
对训练集做进一步划分为 训练集、验证集 validation set.
-
验证集:与测试集类似,也是用于评估模型的性能.
-
区别:是 验证集 主要 用于 模型选择 和 调整超参数,因而一般不用于报告最终结果.
-
-
-
当我们有大于100万条数据时, 测试集验证集各取1万条即可, 足以评估单个分类器.
-
确保验证集和测试集的数据来自同一分布.
-
如果不需要无偏估计, 可以不设置测试集; 当没设立测试集的时候, 验证集通常被人们称为测试集.
2. 偏差、方差(Bias, Variance)
-
高偏差(high bias)称为"欠拟合"(underfitting), 训练集误差与验证集误差都高.
- 选择一个新的网络,比如含有更多隐藏层或者隐藏单元的网络,或者花费更多时间来训练网络,或者尝试更先进的优化算法【后面深入讲解】
-
高方差(high variance)称为"过拟合"(overfitting), 训练集误差很低,而验证集误差很高.
-
解决方法是 正则化
-
准备更多的数据.
-
![](https://i-blog.csdnimg.cn/blog_migrate/eca65844d93be3bc9156b6ecc8f23f08.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f5560d452daaef05a1d7c35650b02ad8.png)
3. 正则化(Regularization)
- 避免过拟合
- 减少网络误差
3.1 逻辑回归中的L1正则化, L2正则化
对于L1正则化, 为代价函数添加L1范数:(几乎不用了)
其中:
- 使用L1正则化, w最终会是稀疏的(w中含很多0), 有利于压缩模型
- 但也没有降低太多内存, 所以不能将压缩作为L1正则化的目的。通常我们使用L2正则化.
对于L2正则化, 为代价函数添加L2范数:
其中: