编程技术网

关注微信公众号,定时推送前沿、专业、深度的编程技术资料。

 找回密码
 立即注册

QQ登录

只需一步,快速开始

极客时间

神经风格迁移系统- 代价函数(Cost function)

王智和 人工智能 2021-12-9 22:04 114人围观

腾讯云服务器

代价函数(Cost function)

要构建一个神经风格迁移系统,让我们为生成的图像定义一个代价函数,你接下看到的是,通过最小化代价函数,你可以生成你想要的任何图像。

记住我们的问题,给你一个内容图像$C$,给定一个风格图片$S$,而你的目标是生成一个新图片$G$。为了实现神经风格迁移,你要做的是定义一个关于$G$的代价函数$J$用来评判某个生成图像的好坏,我们将使用梯度下降法去最小化$J(G)$,以便于生成这个图像。

怎么判断生成图像的好坏呢?我们把这个代价函数定义为两个部分。

$J_{\text{content}}(C,G)$

第一部分被称作内容代价,这是一个关于内容图片和生成图片的函数,它是用来度量生成图片$G$的内容与内容图片$C$的内容有多相似。

$J_{\text{style}}(S,G)$

然后我们会把结果加上一个风格代价函数,也就是关于$S$和$G$的函数,用来度量图片$G$的风格和图片$S$的风格的相似度。

$J( G) = a J{\text{content}}( C,G) + \beta J{\text{style}}(S,G)$

最后我们用两个超参数$a$和$\beta$来来确定内容代价和风格代价,两者之间的权重用两个超参数来确定。两个代价的权重似乎是多余的,我觉得一个超参数似乎就够了,但提出神经风格迁移的原始作者使用了两个不同的超参数,我准备保持一致。

关于神经风格迁移算法我将在接下来几段视频中展示的,是基于Leon Gatys, Alexandra EckerMatthias Bethge的这篇论文。这篇论文并不是很难读懂,如果你愿意,看完这些视频,我也非常推荐你去看看他们的论文。

Leon A. Gatys, Alexander S. Ecker, Matthias Bethge, (2015). A Neural Algorithm of Artistic Style (https://arxiv.org/abs/1508.06576)

算法的运行是这样的,对于代价函数$J(G)$,为了生成一个新图像,你接下来要做的是随机初始化生成图像$G$,它可能是100×100×3,可能是500×500×3,又或者是任何你想要的尺寸。

然后使用在之前的幻灯片上定义的代价函数$J(G)$,你现在可以做的是使用梯度下降的方法将其最小化,更新$G:= G - \frac{\partial}{\partial G}J(G)$。在这个步骤中,你实际上更新的是图像$G$的像素值,也就是100×100×3,比如RGB通道的图片。

这里有个例子,假设你从这张内容图片(编号1)和风格(编号2)图片开始,这是另一张公开的毕加索画作,当你随机初始化$G$,你随机初始化的生成图像就是这张随机选取像素的白噪声图(编号3)。接下来运行梯度下降算法,最小化代价函数$J(G)$,逐步处理像素,这样慢慢得到一个生成图片(编号4、5、6),越来越像用风格图片的风格画出来的内容图片。

在这段视频中你看到了神经风格迁移算法的概要,定义一个生成图片$G$的代价函数,并将其最小化。接下来我们需要了解怎么去定义内容代价函数和风格代价函数,让我们从下一个视频开始学习这部分内容吧。

腾讯云服务器

相关推荐

阿里云服务器
关注微信
^