【每一个人都是梵高】A Neural Algorithm of Artistic Style
文章地址:A Neural Algorithm of Artistic Style
代码:https://github.com/jcjohnson/neural-style
这篇文章我认为可以起个浪漫的名字——每一个人都是梵高。
主要做的一件事情非常有意思。就是例如以下图的等式,通过将a图的style和p图的content进行融合。得到第三幅图x。style+content=styled content
怎么做呢?首先他定义了两个loss。分别表示终于生成的图x和style图a的样式上的loss,以及x和content图p的内容上的loss。α,β是调节两者比例的參数。终于的loss function是两者的加和。
通过optimize总的loss求得终于的x。
Details
所用的CNN网络是VGG-16,利用了它16个卷积层和5个pooling层来生成feature。
如果某一层得到的响应是Fl∈RNl∗Ml,当中Nl为l层filter的个数,Ml为filter的大小。Flij表示的是第l层第i个filter在位置j的输出。
content loss
如果p和x在CNN中的响应分别为Pl和Fl。将他们内容上的loss表示成每一个pixel的二范数:
则用梯度下降法,content loss对F求导为:
Style Loss
图x的style表示为Gl∈RNl∗Nl,当中Glij=∑kFlik∗Fljk,即CNN同一层不同filter响应的互相关,至于为什么互相关可以表示style,well。I don’t know….
那么每一层style loss为
当中style图a的在CNN中的响应为A。
则总的style loss为每一层的加权和:
Total Loss
在定义好了两个loss的形式以后,又回到了最初的问题,就是最小化总的loss:
要注意的是。不同于一般的CNN优化,这里优化的參数不再是网络的w和b。而是初始输入的一张噪声图片x
终于我们想让他变成右图这样styled content。
Experiments
对同一张content图片运用不同style的结果例如以下图所看到的,fantastic!!
total loss中α和β的比例:
从上到下表示的是运用不同conv层的feature进行style,conv1->conv5是一个从总体到局部的过程;
从左到右表示的是不同的α/β的比例,10−5->10−2是指更注重style还是更强调content。
【每一个人都是梵高】A Neural Algorithm of Artistic Style的更多相关文章
- 【原创】梵高油画用深度卷积神经网络迭代十万次是什么效果? A neural style of convolutional neural networks
作为一个脱离了低级趣味的码农,春节假期闲来无事,决定做一些有意思的事情打发时间,碰巧看到这篇论文: A neural style of convolutional neural networks,译作 ...
- 【原创】梵高油画用深度卷积神经网络迭代10万次是什么效果? A neural style of convolutional neural networks
作为一个脱离了低级趣味的码农,春节假期闲来无事,决定做一些有意思的事情打发时间,碰巧看到这篇论文: A neural style of convolutional neural networks,译作 ...
- 同样级别iOS程序员,为啥比我菜的程序员薪资都比我高?
前言: 作为程序员,都有一种相同的焦虑——即当一次又一次的新技术浪潮袭来,总会不由自主的拼命跟随,总是担心如果不紧跟新技术的潮流,将会被时代所抛弃. 害怕年龄,害怕平庸,其实只是你在现实里的努力无法支 ...
- 人人都可以开发高可用高伸缩应用——论Azure Service Fabric的意义
今天推荐的文章其实是微软的一篇官方公告,宣布其即将发布的一个支撑高可用高伸缩云服务的框架--Azure Service Fabric. 前两天,微软Azure平台的CTO Mark Russinovi ...
- 深度学习入门实战(一):像Prisma一样算法生成梵高风格画像
本文由云+社区发表 作者:董超 导语:现在人工智能是个大热点,而人工智能离不开机器学习,机器学习中深度学习又是比较热门的方向,本系列文章就从实战出发,介绍下如何使用MXnet进行深度学习~ 既然是实战 ...
- box-sizing:border-box 将元素的内边距和边框都设定在宽高内计算
http://www.w3school.com.cn/cssref/pr_box-sizing.asp box-sizing: content-box|border-box|inherit; 值 描述 ...
- 瞎谈CNN:通过优化求解输入图像
本文同步自我的知乎专栏: From Beijing with Love 机器学习和优化问题 很多机器学习方法可以归结为优化问题,对于一个参数模型,比如神经网络,用来表示的话,训练模型其实就是下面的参数 ...
- Image Style Transfer:多风格 TensorFlow 实现
·其实这是一个选修课的present,整理一下作为一篇博客,希望对你有用.讲解风格迁移的博客蛮多的,我就不过多的赘述了.讲一点几个关键的地方吧,当然最后的代码和ppt也希望对你有用. 1.引入: 风格 ...
- [C4W4] Convolutional Neural Networks - Special applications: Face recognition & Neural style transfer
第四周:Special applications: Face recognition & Neural style transfer 什么是人脸识别?(What is face recogni ...
随机推荐
- 爪哇国新游记之七----使用ArrayList统计水果出现次数
之前学习制作了DArray,了解ArrayList就容易了. /** * 用于存储水果名及数量 * */ public class Fruit{ private String name; public ...
- Discuz常见小问题2-如何在新建的页面上只显示一部分板块
切换到论坛-版块管理,记住要只显示的板块的gid(比如我的是36) 为某个主导航设置一个单独的php页面(名字自己取) 如果这个页面内容跟首页forum.php完全一样,只是第三行增加了一句话 ...
- Php如何返回json数据
php返回json,xml,JSONP等格式的数据 返回json数据: header('Content-Type:application/json; charset=utf-8'); $arr = a ...
- windwos at 以及shutdown使用方法
at 12:00 shutdown -r如果今天12点没过去,今天12点重启,如果今天12点已经过去,明天12点重启.每天12点重启的命令是at 12:00 /every:Monday,Tuesday ...
- 【SSH进阶之路】Struts基本原理 + 实现简单登录(二)
上面博文,主要简单的介绍了一下SSH的基本概念,比較宏观,作为刚開始学习的人可以有一个总体上的认识,个人觉得对学习有非常好的辅助功能.它不不过一个"瞭望塔".更是检验是否真正掌握全 ...
- Arm Cache学习总结
cache,高速缓存,其原始意义是指访问速度比一般随机存取内存(RAM)快的一种RAM,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术. 1.cache映射方式 cache中 ...
- <转>LuaTinker的bug和缺陷
LuaTinker的bug和缺陷 LuaTinker是一套还不错的C++代码和Lua代码的绑定库,作者是韩国人Kwon-il Lee,作者应该是参考了LuaBind后,为了简化和避免过重而实现的.其官 ...
- Tomcat版本历史
https://en.wikipedia.org/wiki/Apache_Tomcat Apache Tomcat versions Series Declared stable Descriptio ...
- HTTP协议—— 简单认识TCP/IP协议(转载)
原文地址(http://www.cnblogs.com/roverliang/p/5176456.html) 1.什么是TCP/IP 如果要了解一个人,可以从他归属的集体聊起来.我们的HTTP协议就 ...
- <<Python基础教程>>学习笔记 | 第11章 | 文件和素材
打开文件 open(name[mode[,buffing]) name: 是强制选项,模式和缓冲是可选的 #假设文件不在.会报以下错误: >>> f = open(r'D:\text ...