zoukankan      html  css  js  c++  java
  • 吴恩达读书笔记【5】-流水线与端到端

    首先,我们可以做这样简单的归纳:流水线适合传统机器学习算法,端到端适合深度学习算法;    【不绝对,但大多数情况下适用】

    模型1-情感分类

    假如我们正在构建一个情感分类的系统, 输入一句话,输出正面还是负面评论,如

    这个拖把非常好用----正面,

    这个产品非常不好用----负面,

    对于流水线系统

    可能包含多个组件,如下图

    解析器:一种通过关键词识别技术对文本进行注释的系统,如词性标注,获得如下句子:这个拖把(名词)非常好用(形容词)

    普遍情况下可以理解为特征工程

    情感分类器:一种学习算法,输入带标注的文本,输出句子情感

    解析器的标注对这个算法帮助很大:通过给形容词一个较高的权重,使得算法能很快找到“非常”这样的重要词汇,而忽略“这个”不重要的词汇

    对于端到端系统

    模型直接连接了输入和输出

     

    神经网络常用于端到端系统, 但是端到端系统不适用于所有情况,不严谨的总结一句:端到端系统需要大量的数据和大规模的模型

    模型2-自动驾驶系统

    流水线不只是串行的系统,也可以是并行的系统,如自动驾驶模型

    它包含了 3 个组件

    检测车辆:

    检测行人:

    路径规划:

    流水线中的系统并不一定都需要学习,如路径规划

    自动驾驶端到端系统如下

    显然自动驾驶端到端不如流水线好实现

     

    流水线 vs 端到端

    设计模型时如何选择流水线或者端到端呢,有如下依据

    1. 数据量大小

    流水线加入了认为设计的特征描述,使得算法更容易学到有用的知识,对于数据量不太大的模型,流水线能加速收敛,而端到端可能还没学到有用的知识就已经用完了样本

    2. 数据获取难度

    以自动驾驶为例,

    对于流水线系统,检测车辆、检测行人都很容易获取大量的数据,这方面的研究已经很成熟;

    对于端到端系统,直接获取<图像,操作方向>这样的数据是非常困难的;

    3. 任务的简单化

    详情参看下面参考资料 P96

    我简单总结如下:如果一个任务分解成流水线后变得简单,那就选择流水线

    4. 输出更为丰富的 label

    通常输出 label 为 0-1,假设我们需要更加丰富的输出,如

    输入一种图片,输出对图片的文字描述,一句话,

    此时选择端到端系统

    参考资料:

    吴恩达:完整翻译版《机器学习要领》

  • 相关阅读:
    JavaScript实现Map、Reduce和Filter
    Javascript常用对象的属性和方法
    自己封装的Ajax
    JavaScript函数调用规则
    JavaScript模板引擎使用
    java 简单贪吃蛇
    java邮件发送(含附件)
    java 读写Oracle Blob字段
    java 连接飞信API
    非常棒的Java REST服务器栈
  • 原文地址:https://www.cnblogs.com/yanshw/p/12185738.html
Copyright © 2011-2022 走看看