1.域对抗方式应对于源场景是有监督的、目标场景是无监督的学习问题,如下图是从数据集MNIST到MNIST-IN的迁移应用,通过有监督的MNIST数据来实现对有背景MNIST-IN图片的数字识别。
2.对于有标签到无标签的迁移问题,我们可以借用GAN的思想,构造下面的网络结构,创造这个模型的思路是:
[1]首先构建一个CNN网络模型,模型可以分为特征提取器和分类标签预测、域分类三大部分。
[2]我们会使用有监督的源场景数据进行上面部分网络的训练(我们只有源数据有标签),上面部分训练的目标是使得源场景的预测效果尽量好,会计算损失值进行梯度调参。
[3]下面的网络用于进行二分类,用于判断现在输入的样本是属于源场景还是目标场景, 下面网络训练的目标是尽量能识别出输入的数据属于哪个场景。
3.我们通过构建上面的网络结构,训练的目标函数是最大化标签分类的准确率、最大化域分类准确率。
*训练的最终目的是最大化标签分类的准确率、最小化域分类能力,也就是让下面的域分类器分不出来现在的数据属于哪个域,这样就可以说明对于这个网络两个域已经足够接近,抹去了域的区别作用,前面的特征提取部分具有针对两个域的特征提取效果,之后我们就可以使用上面训练好的网络在目标场景上进行分类预测。
*进行网络的优化时,会使用源任务和目标任务的数据集,走上面网络进行训练时只能使用源任务的数据,构造损失函数进行SGD反向调参。
*在进行域分类网络训练时(数据很多),计算统一的损失值,但是进行网络更新时是不同的,在域分类部分参数更新的目的是使得域分类损失函数变小,在特征提取部分更新的目的是使得域分类损失函数值变大,所以会在原来的SGD求梯度式子上加了负号。
4.使用域对抗训练的效果如下,可以发现对于Mnist数据集到Mnist-M的迁移上,只使用源任务训练好的的网络进行预测时,只达到了57%的准确率,而是用域对抗方式后,训练的准确率能达到81%。
1.零样本学习是针对目标场景无监督迁移的另一种方式。
零样本的基本思想是针对一个粒度(如动物),对动物的属性进行切分,让神经网络的输出是各个属性,这样我们就可以根据神经网络输出的效果和外界提供的知识库来判断输入的动物图像是什么种类。
2.可以看出这个模型有两大分布:对知识库表的构建(人采集)、对神经网络的训练。
*知识库类似于左图的图表结构,里面会包含动物属性和动物类别的一一对应,表内的属性刻画的越详细越好,越详细对不同动物之间的区分效果越好,一般这样的知识表是非常稀疏的。
*对于神经网络的优化会使用大量有标签的动物数据进行训练,神经网络的目标并不是识别输入图像属于哪个动物,而是识别出输入图像的属性。
3.对于训练出的神经网络的理解,可以想成是原始图片的大量特征映射到低纬稠密空间中(压缩成的特征数是NN输出的神经元数量)。
*如下图对压缩形式的展示,f(x)代表NN的输出特征向量,g(y)代表知识库中相应动物的特征向量,我们的目标是使得动物的NN输出特征和知识库中的特征向量尽量接近。
*设定的损失函数如下,我们既要令训练数据的f(x)和g(y)尽量接近,同时也要保持f(x)与其他动物的标签向量g(y')有一定的距离。