-
传统机器学习的流程往往由多个独立的模块组成,比如在一个典型的自然语言处理(Natural Language Processing)问题中,包括分词[1]、词性标注[2]、句法分析[3]、语义分析[4]等多个独立步骤,每个步骤是一个独立的任务,其结果的好坏会影响到下一步骤,从而影响整个训练的结果,这是
非端到端
的。
-
而
端到端
模型在训练过程中,从输入端(输入数据)到输出端会得到一个预测结果,与真实结果相比较会得到一个误差,这个误差会在模型中的每一层传递(反向传播),每一层的表示都会根据这个误差来做调整,直到模型收敛或达到预期的效果才结束,中间所有的操作都包含在神经网络内部,不再分成多个模块处理。由原始数据输入,到结果输出,从输入端到输出端,中间的神经网络自成一体(也可以当做黑盒子看待),这是端到端
的。
📌 两者相比,端到端的学习省去了在每一个独立学习任务执行之前所做的数据标注,为样本做标注的代价是昂贵的、易出错的。
-
来自Quora上的回答:
原文:
The phrase “end-to-end” doesn’t mean anything particular to deep learning. Much like that VC favorite “from soup to nuts”, it’s just an emphatic adverbial phrase that’s thrown in to convey a vague aura that what you’re doing is somehow more complete, total, and more general than what others are doing.
I repeat, there is no “end-to-end model”. Such a term does not exist. If someone tells you “it’s an end-to-end deep learning model”, they’re trying to communicate completeness without being specific. If you’re reading a paper or blog, then just ignore and look for the details (either in math or in figures). If you’re talking to someone, just ignore and ask questions until the specifics emerge.
Sometimes people do want to emphasize that they are doing less pre-processing or post-processing than others, and then they might invoke a term such as “end-to-end” meaning that they removed some extra processing step that was at common at some point. But it’s never total. There’s always some sort of unpacking and repacking on either end of a real-world system.- 他大致意思是说
end-to-end
其实并不严谨,有时候为了想说明自己的模型与人家的模型相比数据预处理和数据后处理更少,称自己的模型是end-to-end
,事实上现实世界的系统总是存在处理过程的。
- 他大致意思是说
📌 总之大致明白end-to-end
大概是不依赖其他的模块,结果也是通过模型直接输出了,这样就差不多了,不用太过于深究。