错误分析是改进深度学习应用的一种常用技术。举例来说,对一个图像分类网络,可以对分类出错的图片进行人工分析,找到错误原因,从而有针对性的改进训练数据或者网络模型,来提高应用的性能。
结合热图,对分类出错的图片进行可视化分析,可以更有效的发现网络的问题。这里说的“热图”是指使用Saliency map或者grad-CAM等技术显示网络对图像进行识别时,到底关注了图像的那些区域,就像下图展示的:
这张图来源于keras-vis, 它对Saliency和grad-CAM都提供支持。尽管这两种技术不同,但本质上都是从网络最终的输出反向求导,在图像上找出对最终输出有贡献的区域。这两种技术不仅限于在图像分类网络上使用,任何深度学习任务都可以使用相同的原理在输入数据中找到热点。
(文不在长,点出关键就可以,比如我的另外一篇SRNN ?)