2020-9-25 吴恩达DL学习-C4 CNN-W4 人脸识别和神经风格转换(4.8 代价函数J(G)-神经风格迁移算法概要)

274 篇文章 24 订阅
233 篇文章 0 订阅

1.视频网站:mooc慕课https://mooc.study.163.com/university/deeplearning_ai#/c
2.详细笔记网站(中文):http://www.ai-start.com/dl2017/
3.github课件+作业+答案:https://github.com/stormstone/deeplearning.ai

4.8 代价函数 Cost function

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

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

代价函数定义

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

  • 第一部分 J c o n t e n t ( C , G ) J_{content}(C,G) Jcontent(C,G)

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

  • 第二部分 J s t y l e ( S , G ) J_{style}(S,G) Jstyle(S,G)

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

J ( G ) = α J c o n t e n t ( C , G ) + β J s t y l e ( S , G ) J(G)=\alpha J_{content}(C,G)+\beta J_{style}(S,G) J(G)=αJcontent(C,G)+βJstyle(S,G)

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

神经风格迁移算法概要

关于神经风格迁移算法我将在接下来几节课中展示的,是基于Leon Gatys, Alexandra Ecker和Matthias Bethge的这篇论文。这篇论文并不是很难读懂,非常推荐你去看看他们的论文。

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

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

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

下面有个例子
在这里插入图片描述

假设你从上图的内容图片和风格图片开始,右边这是另一张公开的毕加索画作。
在这里插入图片描述

当你随机初始化 G G G,生成图像就是上图第一张随机选取像素的白噪声图。接下来运行梯度下降算法,最小化代价函数 J ( G ) J(G) J(G),逐步处理像素,这样慢慢得到一个生成图片(上图第二、三、四张图),越来越像用风格图片的风格画出来的内容图片。

在本节课中你看到了神经风格迁移算法的概要,定义一个生成图片 G G G的代价函数,并将其最小化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值