关于《Domain Adaptation with Adversarial Training and Graph Embeddings》的理解

使用对抗学习和图像嵌入的域适应学习

本文将基于对抗学习和图像嵌入的域适应运用于危机状态下的舆情分析,主要处理的前提是:源域有labeled的数据和unlabeled的数据,而目标域unlabeled。模型则包含基于域适应的对抗学习基于图像的半监督学习。数据来源是 two real-world crisis datasets collected from Twitter。

作者做这个模型的立意是为了能有效判断危机状态下社交网络上的信息是否与危机有关,进而讲这些筛选出来的信息加以利用来 例及时营救或者减少损失。(吐槽一下,真正危机状态下还能发社交网络的人是真的“临危不惧”)。

模型的整体思想是:domain adaptation部分来处理 域之间的distribution drift问题,semi-supervised learning来学习两个域中的数据。模型亮点在于:将domain adaptation,semi-supervised learning两部分融合到一个统一的深度学习网络中。该网络中包含基本的CNN网络和domain adaptation部分以及semi-supervised learning部分。semi-supervised learning来学习内部的代表特征通过预测图中的上下文节点(该图则将labeled和unlabeled训练数据之间的相似性编码)。domain adaptation 通过训练特征提取器来实现。整体来讲:学习高度抽象的代表特征来处理主要的分类任务,但是这些特征在域之间保持不变。

得出三条结论:

1半监督+监督  优于   监督

2域适应+对抗   优于  域适应

3神经网络+ 对抗+ 半监督  效果赛高

目前代码还没给出,数据看了看倒是有。


神经网络模型图丢出来:

关于《Domain Adaptation with Adversarial Training and Graph Embeddings》的理解_第1张图片

可以看到整个的神经网络很清楚,通过shared层的处理过程,之后再分为三个不同的训练,最终反向传播,整个流程很清晰。模型训练的过程中使用SGD。

之后就是分别计算三个部分的损失,需要注意的是Semi-supervised Component部分中用到了graph embedding算法,这有个介绍graph embedding的网站,点我传送(网上关于介绍graph embedding的不多,我只找到这个,有同学找到更好的请评论留言)。


下面是作者给出的算法流程的伪代码:

关于《Domain Adaptation with Adversarial Training and Graph Embeddings》的理解_第2张图片

最终的结果:

1.

关于《Domain Adaptation with Adversarial Training and Graph Embeddings》的理解_第3张图片

可以看到 graph-based semi-supervised的方法明显要由于其他两种方法;

2.

关于《Domain Adaptation with Adversarial Training and Graph Embeddings》的理解_第4张图片

L代表supervised       L+U表示semi-supervised

可以看到semi-supervised的效果较与supervised有很大的提升,但是我们可以看到提升主要是在100-1000 batch size范围内,超出1000的batch后提升就不大了。所以作者说“The results obtained using batch sizes 500 and 1,000 are reasonably in the acceptable range when labeled and unlabeled instances are combined”当然500-1000也是训练的合适数量,原话“ which is also a reasonable number of training examples to obtain at the onset of an event.”

3.

关于《Domain Adaptation with Adversarial Training and Graph Embeddings》的理解_第5张图片

作者提出的domain adaptation with adversarial training along with graph-based semi-supervised learning的效果当然世界无敌,宇宙最高了。


总结:

1半监督学习是个好东西,遇到labeled、unlabeled的数据可以试一下

2 graph embedding是个好东西,得好好学习

3 对抗的域适应也是棒棒的,要多用

你可能感兴趣的:(迁移学习)