DL | DeepDream过程和原理概要

1.过程

1.1 输入准备和输出

输入:训练好的神经网络模型,例如Inception-V3模型;
   一张需要加工的图片,记做original_image,如下图所示;
模型输入

输出:经过DeepDream加工之后的图片,如下图所示,记做image。image初始值设置为original_image。
模型输出

1.2 选定输入的模型的某个(些)层,构造目标函数L

目标函数L是对选定的所有的层的输出(官方文档说‘activation’说的稍微有点不明白,其实就是每层的输出),每层求均值,对这些均值再求和。

1.3 计算目标函数L关于图片每个像素的梯度grad(L,image)

计算得到的梯度的维度和图片的维度是相同的。

1.4 根据梯度更新image

image=image+grad(L,image)*learning_rate,普通的SGD是‘减’梯度,这里是‘加’;所以可以理解这里的方向是增加目标函数L。

1.5 重复1.3~1.4直到达到给定的步数

例如100步

2. 原理理解

可以看到上述过程主要步骤是:计算目标函数L对于输入图片的梯度,然后用这个梯度来更新image,更新的方向是使目标函数L增大。

我理解的DeepDream就是根据某个(些)层的输出对于输入(输入的图片)的敏感度(导数的含义)来更新原图片,就是原图片加上模型中提取的某些特征,造成很多奇怪同时看上去有些规律的图片,就像做梦一样(人做梦也是奇怪又有些规律)。

3.参考资料

DeepDeam参考资料

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值