来源说明:
本文参考至知乎提问请问“端到端机器学习”中的“端到端”应如何理解?***中,盛夏的枯黄提供的回答。
提问:
请问“端到端机器学习”中的“端到端”应如何理解?
下面是查到的文字解释,不过还是感觉不是很容易理解,中间有了步骤就不是端到端了?但一般机器学习总归还是需要数据预处理、特征提取之类的步骤啊?
什么是端到端学习
端到端学习是一种解决问题的思路,与之对应的是多步骤解决问题,也就是将一个问题拆分为多个步骤分步解决,而端到端是由输入端的数据直接得到输出端的结果。但是一般情况下,更常见的是介于两者之间的解决思路,先把任务拆解为简单的两步解决。例如人脸识别门禁系统,不是由检测到的图片直接得到结果(识别出该员工的id),而是第一步将检测到的图片中的人脸部分放大居中,第二步通过识别得到该员工的id。
回答:
谢邀。没有专门去查过end-to-end的定义和解释,只说说自己的理解。先解释一下你问题中的那段话:端到端学习是一种解决问题的思路,与之对应的是多步骤解决问题,也就是将一个问题拆分为多个步骤分步解决,而端到端是由输入端的数据直接得到输出端的结果。其实也就是说,端到端将分步解决的中间步骤连接整合在一起,成为一个黑盒子,我能看看到的只是输入的数据和输出的结果,就是从数据的端,到了结果的端。比如,如果要对一幅图像分类,分步骤解决的办法是:先图像预处理,提取纹理,颜色,饱和度,边缘等等特征,然后按照这些特征设计分类器进行分类,每一步你都进行了设计,筛选,不是黑盒子的。而端到端的做法应该是输入一幅图像,特征提取和分类器在盒子中,你得到只有结果。而你的问题其实是在对输入端的理解。不能说进行了数据预处理就不算是端到端,比如图像送入卷积神经网络之前一般都要缩放到固定的尺寸(也可以通过池化等方式变换到固定尺寸),但是你预处理之后的结果还是一个图像,并不是你最终需要的分类结果;所以,从你预处理之后的数据到你的结果还是端到端的。再比如,要对一段文本进行情感分类;送入模型之前一般也要进行分词和word2vec,也算是预处理的过程,但是后面的特征学习和分类也是端到端的。所以,预处理只是为了让模型更好更快的学习,但是学习到了什么并不是人为设计的,是一个黑盒子。而且,一个模型是不是端到端,也是要基于你的任务而定的。比如,自然场景的文字识别,通常包含文字检测和文字识别两部分:输入一幅图像输出图像中包含文字的区域(检测);输入文字区域输出文字内容(识别);这两部分单独来看都是端到端的,但是就自然场景文字识别这任务而言,如果要分成这两个模型来做就不是端到端的,而应该是:输入一幅带文字的图像,输出图像中的文字内容,不管中间是如何检测和分类是别的,这才是端到端。如你问题中的那段话的后半部分,将分步骤和端到端进行结合才是通用的解决办法,而真正核心的部分在于后面的端到端,前面都可以看作是预处理过程。