Deep Learning_deeplearning.ai(course3)简单总结

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吗?

  • 尽量选择正交化的方式

    1. Fit training set well on cost function(bigger network, adam…)
    2. Fit dev set well on cost function(regularization, bigger training set…)
    3. Fit test set well on cost function(bigger dev set…..)
    4. 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上的过拟合程度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值