对偶学习的提出

现实中,很多AI任务都是成对出现的。

比如,中英互译,既要从中文翻译成英文,又要从英文翻译成中文。这样的任务就叫做对偶任务。

 

对偶学习利用人工智能处理任务的对称属性,使其获得更有效的反馈,从而引导、加强学习过程,其中primal表示求解原始问题,dual表示求解与其相对的问题。

 

对偶的学习原理

假设:学习过程中有两个智能体A和B:

                A从事原任务:从x映射到y的学习任务;

                B从事对偶任务:从y再映射回x。

 

在一次对偶学习过程中,先用A的模型 f 将 x 映射成 y:y = f(x);

再用B的模型 g 将 y 映射为 x': x' = g(y)。

然后,比较 x 和 x':如果 x = x',就说明 f 和 g 都是成功的模型;

如果它们相差大,则说明 f 和 g 至少有一个不好。


 

例子:机器翻译

首先,要有两个比较弱的模型 f 和 g。

然后,开始对偶学习训练,大致过程是这样的:

1. 取一个英文句子 x,通过英译中模型 f,翻译为一个中文句子 y。

其中,可以得到一些反馈信息:比如:

                是不是符合语法,是不是通畅,是否和英汉词典一致等等。

 

2. 用中译英模型 g ,把 y 再翻译为英文句子 x'。

反馈信息:

                x' 是否符合语法、通畅,x'与 y 的关系是否与英汉词典一致,x'和 x是否相似等。

 

3. 用这些反馈信息,然后用各种具体的算法,反复迭代,更新模型,直到最终 f 和 g 都令人满意。

 

4. 不断循环前面的步骤,直至过程收敛。

 

对偶学习的扩展应用非常多:

比如:它和GAN结合,形成对偶学习生成对抗网络(DualGAN):把图像处理看成是“图片翻译”的问题。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐