试题整理

mAP指标的含义

平均准确率均值mAP(Mean Average Precision)
对于每类事件根据每个样本得到的预测分值绘制准确率-召回率(precision-recall)曲线
计算曲线下区域面积即AP(Average precision)
对所有事件类别计算AP的均值,即mAP

caffe实现中使用了大量的虚函数、类模板,请介绍一下虚函数、类模板以及虚基类的使用场景

虚函数:是使基类指针指向派生类,用来方便通过基类调用不同派生类的函数实现,例如caffe中各种layer的forward方法。
类模板:多个类有共同操作,只是数据类型不同时候使用类模板。
虚基类:主要用在多重继承的派生类中,使派生类只保留间接基类的一份成员,多重继承较为复杂容易出错,不推荐这种用法

softmaxloss在深度学习中为何最为流行,有哪些优势;为何将softmax和交叉熵损失放在一起,有什么好处

https://zhuanlan.zhihu.com/p/25723112
http://freemind.pluskid.org/machine-learning/softmax-vs-softmax-loss-numerical-stability/
这两篇文章对于softmax解释的非常好,在深度学习中使用最为广泛,有两个原因,一是其输出为类别的概率值,二是因为其梯度求导特别简单。交叉熵的函数形式为

Loss = -sum(y_i*ln(z_i)) // z_i为softmax输出,y_i为ground_truth

由于softmax的特点,其导数特别友好,非常方便计算。如果将softmax和交叉熵分成两部分,就会多计算一个乘z_j再除z_j的过程,由于z_j为softmax输出,很可能非常小,会有可能导致float数据类型溢出,从而结果错误。