机器学习中的端到端学习(End-to-End Learning)

传统机器学习需要将一个任务的输入和输出之间人为地切割成很多子模块,或者多个阶段,每个子模块(阶段)分开学习。比如一个自然语言处理任务(NLP),一般需要分词、词性标注、句法分析、语义分析、语义推理等步骤。这种学习方式有两个问题:一是每一个模块都需要单独优化,并且其优化目标和任务总体目标并不能保证一致;二是错误传播,即前一步的错误会对后续的模型造成很大的影响。这样就增加了机器学习方法在实际应用中的难度。

端到端学习(End-to-End Learning),也称端到端训练,是指在学习过程中不进行分模块或分阶段训练,直接优化任务的总体目标。在端到端学习中,一般不需要明确地给出不同模块或阶段的功能,中间过程不需要人为干预。端到端学习的训练数据为“输入-输出”对的形式,无须提供其他额外信息。因此,端到端学习和深度学习一样,都是要解决贡献度分配问题。

贡献度分配问题是深度学习的一个问题,在多模块解决方案中,我们可以比较清晰检测到每个模块的性能,也就是贡献。而在端到端学习中,很难确定模型中的组件对最终目标的贡献是什么。也就是模型成为了一个黑盒,这就大大降低了网络的可解释性。

目前,大部分采用神经网络模型的深度学习也可以看作一种端到端的学习。

猜你喜欢

转载自blog.csdn.net/lipengfei0427/article/details/109146076