了解人工智能的最短路径,不是从媒体那里反复的看到它,而是设身处地的直接去学习它,这里有一份内容满满的录取通知书,给每一个想要掌控未来五十年的技术人。 “基于人工智能”、“不同于传统滤镜”这些用词,加上看作品画风,让人联想起 2016 年大火、仅次于 Pokeman Go 的 APP——Prisma。 之前看到一篇文章说,困扰 Prisma 团队最大问题就是 --- 我们没有在 marketing 投入过一分钱,但还是火得太快,我们的服务器承载能力完全跟不上用户的增长。 火得太快,火得太快,火得太快,不得不说,这个装逼我必须给满分! Prisma 背后的原理其实起源于论文 Gatys et al, “Image Style Transfer using Convolutional Neural Networks”, CVPR 2016。这篇惊世之作一出,在学术界和工业界刮起来两股热潮。学术界陆续提出融合多种风格的算法,转换视频的算法,一次输出多种风格的算法,等等。工业界则做出网站,应用,小工具让人们给自己的照片加上梵高的风格。可以称得上是所有人的狂欢了。 什么?论文太高大上这辈子都和我没关系? 女神 Kristen Stewart 你们认不认识?人家拍电影拍着拍着都拍进学术界了,在世界最顶级的计算机图像会议CVPR发了篇 Bringing Impressionism to Life with Neural Style Transfer in Come Swim。可见人人都能发 CVPR 啊,你还不赶紧来学吗? 那究竟这篇论文是做什么的呢? 融合一张图片的内容,和一张图片的风格,生成一张新的图片。 接下来就来详细说说这篇论文的算法原理,再给出一个我的实现,最后再说说学术界后续的一些研究和相关的其他算法。Prisma 真实使用的算法应该是在这篇论文的基础上发展过的更高效率的算法,因为这第一篇论文中的算法效率实在不怎么样,直播,当然这丝毫不影响这篇论文的伟大。 量化问题算法的任务很简单,输入一张内容图片,一张风格图片,输出风格化以后的内容图片。 输入:Content Image,Style Image 输出:Stylized Image 风格化以后的内容图片 这个表达很主观,算法需要一个客观的判断,一个可以量化的标准。这样才有前进的方向。换一个数学一点的表达,我们需要找一个图片,内容上和内容图片差不多,风格上和风格图片差不多。这两个表达我们也需要量化,也就是要有一个数字来衡量差不多,所以我们需要有两个函数来分别衡量内容和风格上的差异。 最后我们需要找到图片来同时降低这两个差异。所以风格转化的问题变成了如下的优化问题(Optimization Problem) 其中c代表 content image 内容图片,s代表 style image 风格图片,x代表 stylized image 合成图片。我们要找到使得整体偏差最小的x作为最后的结果。整体偏差就是内容偏差和风格偏差的加权平均。 α,β是两者的权重。希望风格更明显,风格的权重就大一些,希望内容更明显,内容的权重就大一些。 现在,有三个问题放在眼前 如何定义? 如何定义? 如何最小化? 我们一个个来搞定 卷积神经网络所有的偏差函数都依赖卷积神经网络,所以必须要来简单介绍一下。时下最流行的深度学习模型就是卷积神经网络了。干嘛的呢?做常见的应用,他是做图片分类的。 我们用神经网络来表达一个函数,输入一张图片,输出各个类的概率。为什么叫神经网络我就不说了,他和人的神经系统其实最多只有半毛钱关系。重要的是,这个神奇的神经网络,分析了输入图片的多种特征。 底层的网络分析了细节特征,例如直线,曲线,三角,方块,等等。高层的网络分析了高层一些的特征,例如鼻子,眼睛,嘴巴等等。 我们来看一下一张汽车图片放到卷积神经网络里面,会是如何的样子? (责任编辑:本港台直播) |