一、什么是端到端(End-to-End)
端到端说白了就是省去了中间过程,直接从输入端到输出端,没有中间层次的步骤参与到整个系统的处理过程中。在传统图像领域,中间层次的过程,可以理解为特征(HOG、HOF、SIFT)提取过程(输入图像->特征提取->输出结果);那么端到端的过程就是没有单独的特征提取过程(输入图像->输出结果)。
从NLP的角度对端到端进行理解:
相对于深度学习,传统机器学习的流程往往由多个独立的模块组成,比如在一个典型的自然语言处理(Natural Language Processing)问题中,包括分词、词性标注、句法分析、语义分析等多个独立步骤,每个步骤是一个独立的任务,其结果的好坏会影响到下一步骤,从而影响整个训练的结果,这是非端到端的。
而深度学习模型在训练过程中,从输入端(输入数据)到输出端会得到一个预测结果,与真实结果相比较会得到一个误差,这个误差会在模型中的每一层传递(反向传播),每一层的表示都会根据这个误差来做调整,直到模型收敛或达到预期的效果才结束,这是端到端的。
两者相比,端到端的学习省去了在每一个独立学习任务执行之前所做的数据标注,为样本做标注的代价是昂贵的、易出错的。
从图像处理的角度来理解:
端到端指的是输入是原始数据,输出是最后的结果,原来输入端不是直接的原始数据,而是在原始数据中提取的特征,这一点在图像问题上尤为突出,因为图像像素数太多,数据维度高,会产生维度灾难,所以原来一个思路是手工提取图像的一些关键特征,这实际就是就一个降维的过程。
那么问题来了,特征怎么提?
特征提取的好坏异常关键,甚至比学习算法还重要,举个例子,对一系列人的数据分类,分类结果是性别,如果你提取的特征是头发的颜色,无论分类算法如何,分类效果都不会好,如果你提取的特征是头发的长短,这个特征就会好很多,但是还是会有错误,如果你提取了一个超强特征,比如染色体的数据,那你的分类基本就不会错了。
这就意味着,特征需要足够的经验去设计,这在数据量越来越大的情况下也越来越困难。于是就出现了端到端网络,特征可以自己去学习,所以特征提取这一步也就融入到算法当中,不需要人来干预了。
所以经典的机器学习,其实也可以叫做feature engineering(特征工程)。End-to-End的好处就在于可以通过所见人工预处理和后续处理,尽可能使模型从原始输入到最终输出,给模型更多可以根据数据自动调节的空间,增加模型的整体契合度。
后来兴起了deep learning,实现了多层次的特征提取器和识别器统一训练和预测
参考文献:https://www.zhihu.com/question/50454339/answer/257372299
二、什么是mAP
AP主要是针对二分类问题,是或不是,同时也延伸出“样本为正,预测为负”、“样本为负,预测为正”等四个子评价。
但是在多分类任务中,存在多个标签,所以就不能单纯的以AP为评价标准,而是在AP之上提出mAP(平均AP)
AP这篇文章讲的很明白了~
https://blog.csdn.net/xiezongsheng1990/article/details/89608923
以下两篇也讲的很有意思
https://blog.csdn.net/hysteric314/article/details/54093734
https://blog.csdn.net/NooahH/article/details/90140912
最直观的计算公式
https://www.cnblogs.com/simpleDi/p/10085356.html