文章目录
摘要
本周主要的工作是,寻找到一个无监督或者自监督的方法,解决模型的域泛化的问题,探索了幅度损失和方向损失等函数的思路和局限性。
Abstract
The main work this week was to find an unsupervised or self-supervised method to address the model's domain generalization problem, and to explore the ideas and limitations of functions such as magnitude loss and direction loss.
内容一致性
循环一致性微调的流程:
第一步生成任务的目标是用target_glyph的内容替换img1原来的内容source_glyph得到img2_pred;第二步的目标是用source_glyph替换img2_pred的内容得到img1_pred,最后计算img1_pred与img1的损失。
问题:
1、模型会走捷径,将img1复制到img2_pred,再把img2_pred复制到img1_pred,过程忽略掉了target_glyph,模型什么都没有学到。
由此,尝试了几种方法
方向向量损失:
方向向量delta=source_glyph-target_glyph和alpha=img1-img2的方向应该是一致的,cos_sim = F.cosine_similarity(delta,alpha)应该接近1,即角度为0,实际上这个更要求域的不变性,例如字形域将字形图片source_glyph映射到(1,2)、target_glyph映射到(2,1),由于背景的影响可能会导致img1映射到(3,5),img2映射到(1,3)

向量图
可以看到两个向量的方向完全不一致,所以方向损失的一致性会出问题。
其实好的监督项就是图片的内容,文本内容就是限制了img2_pred的内容要和target_glyph一样,避免图片的复制,但是如果引入OCR,就需要多语言字典,加入其他语言就需要重新训练一个识别多语言的OCR模型。
不使用OCR,避免复制的一些方法:
幅度损失:
1、两个字形target_glyph和random_glyph,两个字形输入模型得到两个结果target_img、random_img,target_img和random_img在隐空间latent之间计算相对于source_img的变化量
\\alpha_1 = I_t - I_s \\ \\alpha_2 = I_r - I_s
\\delta_1 = G_t - G_s \\ \\delta_2 = G_r - G_s
如果字形空间的 δ 1 > δ 2 \delta_1>\delta_2 δ1>δ2,那么也应该 α 1 > α 2 \alpha_1 > \alpha_2 α1>α2,比如原始的字形是'Hello',目标的字形是'World',随机的字形是'am',那么am和Hello的差异比World和Hello的差异幅度更大,生成的图片也应该遵循这个关系,就避免模型直接复制原图,如果是走复制捷径,那么两个隐空间张量做差,幅度应该是很小的,不会体现出差异性。
自相似性,都是用一个内容,借助一个余弦相似度损失,target_glyph和忽略了背景的target_img应该是相似的。
问题:
1、隐空间可能会把所有的字形映射到同一个向量,然后所有的风格图片也是映射固定向量,然后幅值损失就是固定的。计算两个字形之间的差异,两个字形是不同的,那么就强调这两个字形的方向应该不一致,所以不会映射到固定的向量。 F . c o s i n e _ s i m i l a r i t y ( G t , G r ) F.cosine\_similarity(G_t,G_r) F.cosine_similarity(Gt,Gr)让这个相似度更接近1.
2、模型可能会随机加入噪声,来适应这种要求,不改变应该改变的文本内容,而是在背景加入噪声,引起这种幅度的差异。需要忽略背景的差异,因为字形图片的背景都是灰色,相互之间就只存在内容之间的变量。而风格图片之间由于背景的差异,相互之间的差异有背景和内容的差异,所以应该忽略背景的变化幅度,应该更关注内容的变化幅度。
总结
本周还是没有找到除了OCR之外更好的内容一致性损失,幅度损失和方向损失都不能抑制模型走捷径,还需要更多的思考。