预训练和正式训练,预选练是正式训练的第一阶段但二者损失不同
注意:本论文是对字母的风格迁移在未来对汉字进行风格迁移时预训练的笔画划分(或常用字形)可能存在挑战
预训练:通过对抗网络对26个字母的平均字形进行学习。输入某种风格现存的几个字形(如:abhjm)通过对抗网络生成26个字母的骨架,判别器有局部判别器和全局判别器构成确保字体风格一致。为了充分利用数据采用留一法进行训练,以abhjm为例子分六个堆栈进行训练前五个是分别缺少一个字母最后一个是全部5个字母作为训练集进行训练,取平均。
损失函数:与整体训练的损失存在区别
加入L1损失确保生成的骨架与真实字母相接近,同时有对抗网产生的损失
为什么最后一项没有减1?这不就会导致生成的图像远离真实图像了吗?
这种“不严谨”的公式表达在 GAN 早期论文中屡见不鲜,这通常是论文写作中的简写习惯,即将整个对抗系统的损失函数(Objective Function)统一写出,但在实际代码实现中,生成器和判别器会分别朝着相反的方向优化对抗项。且由于超参数λ和L1损失使得生成器生成的图像不会偏离真实数据(惩罚力度更大,eg100:1)如果正常书写格式是:
真实训练方法:
分为两个阶段,第一阶段生成字体骨架,第二阶段添加字体风格。同样第二阶段对抗网络的判别器也分为全局和局部;第一阶段不再有判别器,改为通过与预训练的损失进行对比加上与真实字体的对比损失优化第一阶段。
损失函数:
第二阶段的损失由对抗网络的损失+真实字体同生成字体差异损失+为了生成一组具有清晰轮廓的彩色图像的输出和输入之间的二值掩码的均方误差(使得字形结构清晰二值掩码字形里为1,背景为0使生成字体的字形轮廓更加清晰)构成。
第一阶段损失:与预训练的损失使得字形更接近平均骨架(在小样本时效果更好)加上与真实字体的对比损失趋近于特色字体的骨架。