吴恩达 深度学习 deeplearning.ai 学习笔记( 3 ) 结构化机器学习项目

1.Orthogonalization(正交化)  

比如,老式电视调节画面的旋钮,每一个都具有相对独立的功能,如负责调节画面的宽度、长度等,这样才便于将画面调节到中间。又比如,控制汽车时,有三个功能独立的区块:方向、加速和刹车,而不是某一个既能操作方向又带有一定加速,这样才便于我们更好的控制汽车。这种功能设计就叫做Orthogonalization。

对于ML系统来讲,需要保证4件事情能做好,对应于每件事情,都有改进它们的相对独立的“旋钮”用于调整。

  1. 首先,很好地符合training set,通常是能达到接近人类能力。(更大的网络,更好的优化方法...)
  2. 然后,很好地符合dev set。(正则化,更多的数据)
  3. 然后,在test set也表现良好。(更大的dev set)
  4. 最后,在真实应用中表现良好。(更换dev set或者cost function,因为可能是用于调整的dev set不合适造成,也可能是cost function没有指示优化正确的东西)

比较不倾向于使用early stopping,它是一个很多人使用的并不糟糕的方法,但是它在使dev set拟合更好的同时,会使training set的拟合变得差一些,是一个相对不独立的“旋钮”,因此它的作用比较难以衡量。

2.衡量分类器的指标

①查准率和查全率

  • Precision(查准率): 

    假设在是否为猫的分类问题中,查准率代表:所有模型预测为猫的图片中,确实为猫的概率。
  • Recall(查全率): 

    假设在是否为猫的分类问题中,查全率代表:真实为猫的图片中,预测正确的概率。
  • F1 Score: 

    相当与查准率和查全率的调和平均值

          

② 运行时间

假设有三个不同的分类器性能表现如下:

è¿å¨è·¯ä¸ï¼ç¨ç­...

这里以准确度为优化指标,运行时间为满足指标,所以得出分类器B性能最好。

一般地,如果有N个评测指标,选择一个为优化指标,其余N-1个为满足指标。

扫描二维码关注公众号,回复: 2765330 查看本文章

3.改善模型的表现

基本假设:

  • 模型在训练集上有很好的表现;
  • 模型推广到开发和测试集啥会给你也有很好的表现。

减少可避免偏差 :

  • 训练更大的模型
  • 训练更长时间、训练更好的优化算法(Momentum、RMSprop、Adam)
  • 寻找更好的网络架构(RNN、CNN)、寻找更好的超参数

减少方差 :

  • 收集更多的数据
  • 正则化(L2、dropout、数据增强)
  • 寻找更好的网络架构(RNN、CNN)、寻找更好的超参数

è¿å¨è·¯ä¸ï¼ç¨ç­...

详细 

4. 迁移学习、多任务学习、端到端的学习  

1. 迁移学习:将训练好的模型,直接拿到新的应用场景来。

使用前提:

① 输入形式相似

② 来源问题有很多数据,而目标问题没有那么多数据
 

2. 多任务学习: 所有任务并行,希望每个任务都能帮助到其它所有任务,output 和 label 有多个

使用前提

①训练的一组数据可以共用低层次特征。例如无人驾驶中,识别行人、红绿灯、道路等具有相似形式特征

②每个任务的数据量差不多

③神经网络足够大

3. 端到端的学习(end to end):简而言之,以前有一些数据处理系统或学习系统,需要多个阶段的处理,而端到端可以忽略这些处理阶段,用单个神经网络来替代,能加快训练速度。

例如

使用前提:有足够多的数据

参考1

参考2

猜你喜欢

转载自blog.csdn.net/qq_37717661/article/details/81591492