必要性
端到端的神经网络是个黑盒,虽然能够学习到一些可区分度好的特征,但是也会拟合到一些非重要特征,导致模型局部地区会有一些不好的特征表现,所以可以加入一些先验知识来优化这些区域表现。
首先给出可以有效的加入先验信息的框架:
基于pretrain模型给模型加入先验
给模型加入先验,最容易想到的方法就是将模型的权重给替换掉,替换成一个预训练的模型的权重。这些已经预先练的模型往往已经具备了识别到一些基本图片pattern的能力,如边缘,纹理,颜色等等。
基于输入给模型加入先验
加入有这样的一个先验:
你觉得鹦鹉的头是一个区别其它鸟类的重要部分,也就是说相当于身体,头部具有更多的attention。
这时候怎么让网络更加关注英语的头部呢,这是可以这样做,把整个英语和它头部的照片作为网络的两路输入,在网络的后端再把两路输入的信息融合。这样既关注于头部,又关注到了整个身体。
基于CAM图激活限制给模型加入先验
基于辅助学习给模型加入先验知识
什么是辅助学习?以及辅助学习和多任务学习的区别:
上图的左侧是多任务学习的例子,右侧是辅助学习的例子。左侧是个典型的face attribute的task,意思是输入一张人脸,通过多个branch来输出这一张人脸的年龄,性别,发型等等信息,各个branch的任务是独立的,同时又共享同一个backbone。右边是一个典型的辅助学习的task,意思是出入一张人脸,判断这一张人脸的性别,同时另外开一个(或几个)branch,通过这个branch来让网络学一些辅助信息,比如发型,皮肤等等,来帮助网络主任务(分男女)的判别。
















