Course 3主要是针对机器学习的方法论研究。
Course 3、Structuring Machine Learning Projects
设想我们训练了一个猫咪分类器,预测是猫或者不是猫,此时分类器的准确率是90%,我们想要提升准确率,有很多方法:
- Collect more data
- Collect more diverse training set
- Train algorithm longer with gradient descent
- Try Adam instead of gradient descent
- Try bigger network
- Try smaller network
- Try dropout
- Add L2 regularization
- Change network architecture
- Change activation function
- Change the number of hidden units
- …
这么多的方法,我们究竟要选择哪一种呢?有什么选择的rule吗?
尽量选择正交化的方式
- Fit training set well on cost function(bigger network, adam…)
- Fit dev set well on cost function(regularization, bigger training set…)
- Fit test set well on cost function(bigger dev set…..)
- Performs well in real world(change dev set, change cost function….)
“正交化”means我们应该选择可以只调节一个效果的方法;
因此,“early stop”不推荐使用,它会导致对training set拟合下降,同时对test set拟合上升。
另外,我们上面讲了准确率,用准确率来度量一个分类器好坏,这就涉及到了评估度量的问题。
- 设定评估度量:设定目标
- Precision:查准率,判为猫的样本中,有多少是真的猫?
- Recall:查全率,所有真猫,分类器正确分出了多少?
- F1 Score:P和R的调和平均(2/(1/P + 1/R))
深度学习需要巨多的数据,很多时候,会把乱七八糟的数据都喂给系统,这会导致训练集和测试集的分布不匹配,这种时候要怎么办呢?我们应该怎么划分数据集?最后又该怎么根据不同数据集上的错误率分析系统性能呢?
- 不匹配的训练集和测试集
- 怎么划分?
- shuffle,再分train/dev/test,不可取,这样我们的目标就变了,即使训练效果很好,但和我们想要得到的真正测试集的效果相差很大;
- 正确的方法:把真正的测试集留着,给dev和test,这样我们系统的目标才是想要的目标;然后在训练集中再分出一个training dev set,方便后续分析。
- 怎么划分?
ok,现在我们可以总结一下怎样提升模型表现了,下面讨论有数据不匹配问题的情况,数据集划分是Train/Train-dev/Dev/Test,其中Train和Train-dev同分布,Dev和Test同分布。
- Improving model performance
- Human level与Training set error的差距是avoidable bias,为了降低bias,我们可以尝试以下方法:
- Train bigger model
- Train longer/better optimization algorithms: Momentum, Adam, RMSprop….
- NN architecture search: RNN, CNN, change the number of hidden units…
- Training error与Training dev error的差距是Variance,为了降低variance,我们可以尝试以下方法:
- More data
- Regularization: L2, dropout, data augment…
- NN architecture search: RNN, CNN, change the number of hidden units….
- Training dev error与Dev set error的差距是Data mismatched,我们可以构造与测试集更加相似的训练数据。
- Dev error与Test error的差距是模型在Dev set上的过拟合程度
- Human level与Training set error的差距是avoidable bias,为了降低bias,我们可以尝试以下方法: