在计算机学科中有一种算法叫分治法,简单来说是分而治之,将大问题分成若干小问题,想着如果在每个子问题上得到最优解,是不是就能在大问题上得到最优解,其实不一定。
在深度学习中,以前在处理问题的时候,就经常需要进行多个阶段的处理,往往通过分治法将其分解为预处理、特征提取与选择、分类器设计等若干步骤。
比如在一个典型的自然语言处理(Natural Language Processing)问题中,包括分词、词性标注、句法分析、语义分析等多个独立步骤,每个步骤是一个独立的任务,其结果的好坏会影响到下一步骤,从而影响整个训练的结果,这是非端到端的。
深度学习则为我们提供了另一种范式(Paradigm)即“端到端”学习方式,整个学习流程完全交给深度学习模型直接学习从原始输入到期望输出的映射。而端到端深度学习就是忽略所有这些不同的阶段,用单个神经网络代替它,输入为未经任何人为加工的原始样本形式,经过神经网络,输出结果(“就是输入一头猪,输出的是香肠”————来自知乎)。
**理解:**区别于分治法,端对端就是需要关注输入和输出就可。
相比分治策略,“端到端”的学习方式具有协同增效的优势,有更大可能获得全局最优解。
非端到端学习(传统的语音识别系统)
传统的语音识别需要把语音转换成语音特征向量,然后把这组向量通过机器学习,分类到各种音节上(根据语言模型),然后通过音节,还原出最大概率的语音原本要表达的单词,一般包括以下模块:
特征提取模块 (Feature Extraction):该模块的主要任务是从输入信号中提取特征,供声学模型处理。一般也包括了一些信号处理技术,尽可能降低环境噪声、说话人等因素对特征造成的影响,把语音变成向量。
声学模型 (Acoustic Model): 用于识别语音向量
发音词典 (Pronnuciation Dictionary):发音词典包含系统所能处理的词汇集及其发音。发音词典提供了声学模型与语言模型间的联系。
传统的语音识别中的语音模型和语言模型是分别训练的,缺点是不一定能够总体上提高识别率。
端到端学习(端到端的语音识别系统)
端到端学习的思路则非常简单:音频→学习算法→转录结果;而现在,我们可以直接通过深度学习将语音直接对标到我们最终显示出来的文本。通过深度学习自己的特征学习功能来完成从特征提取到音节表达的整个过程。在给定了足够的有标注的训练数据时(语音数据以及对应的文本数据),端到端的语音识别方法的效果会很好。
【Tips】在训练样本很少的情况下,End to End的效果可能不如传统方法,但当训练样本数量足够多,End to End的优势越发明显。
https://blog.csdn.net/SunshineSki/article/details/83695713?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-1-83695713-blog-105532287.235v38pc_relevant_sort_base2&spm=1001.2101.3001.4242.2&utm_relevant_index=4