首先,我们可以做这样简单的归纳:流水线适合传统机器学习算法,端到端适合深度学习算法; 【不绝对,但大多数情况下适用】
模型1-情感分类
假如我们正在构建一个情感分类的系统, 输入一句话,输出正面还是负面评论,如
这个拖把非常好用----正面,
这个产品非常不好用----负面,
对于流水线系统
可能包含多个组件,如下图
解析器:一种通过关键词识别技术对文本进行注释的系统,如词性标注,获得如下句子:这个拖把(名词)非常好用(形容词)
普遍情况下可以理解为特征工程
情感分类器:一种学习算法,输入带标注的文本,输出句子情感
解析器的标注对这个算法帮助很大:通过给形容词一个较高的权重,使得算法能很快找到“非常”这样的重要词汇,而忽略“这个”不重要的词汇
对于端到端系统
模型直接连接了输入和输出
神经网络常用于端到端系统, 但是端到端系统不适用于所有情况,不严谨的总结一句:端到端系统需要大量的数据和大规模的模型
模型2-自动驾驶系统
流水线不只是串行的系统,也可以是并行的系统,如自动驾驶模型
它包含了 3 个组件
检测车辆:
检测行人:
路径规划:
流水线中的系统并不一定都需要学习,如路径规划
自动驾驶端到端系统如下
显然自动驾驶端到端不如流水线好实现
流水线 vs 端到端
设计模型时如何选择流水线或者端到端呢,有如下依据
1. 数据量大小
流水线加入了认为设计的特征描述,使得算法更容易学到有用的知识,对于数据量不太大的模型,流水线能加速收敛,而端到端可能还没学到有用的知识就已经用完了样本
2. 数据获取难度
以自动驾驶为例,
对于流水线系统,检测车辆、检测行人都很容易获取大量的数据,这方面的研究已经很成熟;
对于端到端系统,直接获取<图像,操作方向>这样的数据是非常困难的;
3. 任务的简单化
详情参看下面参考资料 P96
我简单总结如下:如果一个任务分解成流水线后变得简单,那就选择流水线
4. 输出更为丰富的 label
通常输出 label 为 0-1,假设我们需要更加丰富的输出,如
输入一种图片,输出对图片的文字描述,一句话,
此时选择端到端系统
参考资料:
吴恩达:完整翻译版《机器学习要领》
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)