在传统的数据处理系统或学习系统中,有一些工作需要多个步骤进行,但是端到端的学习就是用一个神经网络来代替中间所有的过程。
举个例子,在语音识别中:
X(Audio)----------MFCC---------->features----------ML---------->phonemes--------->words-------------->Y(transcript)
首先输入音频,使用MFCC提取低层次特征,使用机器学习的方法得到音位(声音最小划分),转化为单词,最后形成文本
在end-to-end learning中:
X(Audio)------------------------------------------------------------------------------------------------------------------->Y(transcript)
实际上,如果训练数据较少的时候,传统的流水线式做法更加的出色。只有在拥有大量数据的时候,end-to-end方法才能发出耀眼光芒。
当你的数据集适中的时候,其实还可以使用神经网络代替流水线中的一些步骤,比如绕过MFCC和ML,直接从Audio中提取音位,这算是不完善的end-to-end学习。
在百度的人脸识别中,采用了分步的end-to-end learning。
首先将采集到的图片采用第一个算法分割出人脸的部分然后中心化放大。
接着采用第二个网络来对比数据库,返回人脸是否为员工。
end-to-end deep learning优点和缺点:
优点:
1.let tthe data speak让机器自己选择数据的训练方式,而不是人为的筛选特征。比如在上面的语音识别例子中,传统的方式是人工找到音位最后完成工作。但是音位也只是人为设计的概念,所以让机器自己理解可能效果更好。
2.less hand-designing of components needed所需手工设计组件更少,这有助于简化工作流程,而不是每一阶段都需要大量投入人力物力和时间。
缺点:
1.may need large amount of data需要大量的数据
2.excludes potentially useful hand-designed components排除了一些很有用的手工设计组件在外