当前位置:   article > 正文

风格迁移应用_快速图像风格迁移思想在无线通信中的另类应用:算法拟合

快速和慢速风格迁移

e0629b8858c1c3606d400f203a070911.png

在本文中,并不是介绍最新的一些论文,而是回顾自己在很早(半年前?)读过的几篇文章。[1]Learning to optimize: Training deep neural networks for wireless resource management

[2]Image style transfer using convolutional neural networks

[3]Perceptual losses for real-time style transfer and super-resolution

注:[2]是神经网络用于图像风格迁移的开山之作,[3]的作者是斯坦福大学CS231n课程中的那位小哥哥(导师是李飞飞)。

我自己本身的研究方向是深度学习在无线通信中的应用,所以会读到[1]这样的论文。论文[2]和论文[3]是使用CNN进行图像风格迁移这个领域最早的论文。如果看过专栏的同学,可以发现我对图像风格迁移这类文章的偏爱。但如何将论文[1]和论文[2][3]联系起来呢?

在知乎上已经有很多的文章解读图像风格迁移,还有相关的专栏图像风格化算法综述三部曲,如果有想了解的可以去看一下。

在这篇文章中主要是专注于由论文[2]演进到论文[3]用到的一个快速算法思想。

3fdc59e70df5f0200dd7f40e4bb2183f.png
论文[2]整体框图

大致意思就是将左边的风格图像“星空”的风格迁移到右边的内容图像“风景照”中,生成中间的图片——既保留内容图像的内容也具有风格图像的风格。

这里对还没有看过这篇论文的同学提一个醒,上面框图中的3个VGG16都是预训练好的,在整个图像风格迁移过程中,网络的参数(权重,偏置)都是不改变。网络在这个过程的作用都是用来计算损失的。不要看到Gradient descent就直接认为是反向传播中的梯度下降。梯度下降真正是的应用是在将初始化的噪声图像优化成最终结果图。从一张噪声图像到最终效果惊艳的风格化的图像,这中间需要经过多次的优化(或者称之为迭代),最终导致的结果就是耗费的时间非常多。在很多论文中称这种方法为慢速风格迁移,也有论文称之为基于优化的风格迁移。

在论文[2]发表后,马上就有学者意识到其缺点——慢。所以在论文[3]的题目也可以看到作者想突出的重点,real-time,也就是时间快。

b8c70f52f5df876b17de9303ceed740b.png
论文[3]整体框图

论文[3]中思想就是用神经网络(此时,这个神经网络则是需要进行训练的)去代替[2]的迭代优化算法。在线下训练(offline)时,使用大量的内容图像和一个特定的风格图去做训练,使得神经网络的输出都是风格化的图像。在测试阶段,输入任意一张内容图像到神经网络,都可以产生具有训练时选定风格的风格化图像。而这个过程是一个前向(forward)的过程,时间只有几十毫秒,故称为快速风格迁移。

讲完的[2][3],大家的思考是什么呢?我们将这个过程用数学公式表示一下(PS 看无线通信优化论文中的 problem formulation真的看吐了...):

这里我们只讨论一种风格图像的风格化,所以直接用

表示,所以最终的一个等式就是:

在论文[2]中这样一个优化问题并没有明显的闭式解,只能用一个迭代的优化算法去求解。但是这样一个过程可以认为是输入

到输出
的一种映射,可能存在一个映射函数。但是这样的函数如果用数学方法去求出显示表示式显然是困难的,这里便使用神经网络去做这个事情。

6630370c0dbe71749be244abe2dc92e2.png
论文[1]的整体框架

当开组会有同学讲论文[1],看到上面的框图时,眼前一亮:咦?这个套路我在哪里见过!

在传统的功率分配算法中,有一种经典的算法WMMSE(感兴趣可看论文[1]的参考文献)。这种算法是基于迭代的,基于迭代方法的算法一般都是会有一个迭代公式

和规定最大迭代次数和阈值。当达到最大迭代次数或者前后两次的优化结果之差小于一个很小的阈值,就会结束迭代。但是每次迭代都会经历一些复杂的运算,例如奇异值分解等,这样完成优化的过程就会很漫长。这种传统的优化算法和论文[2]就很相似,slow。

论文[1]的思想和[3]可谓是如出一辙,使用神经网络去拟合算法的输入和输出之间的关系,用于去拟合这个算法,从而在测试阶段,可以通过一个前向过程(运算只包含矩阵的乘法和加法)快速地得到结果。在5G中要求低时延,能够在几毫秒的TTI中得出功率控制的结果是很重要的。

这种使用神经网路去拟合算法的方法,能极大的减少运行时间,在性能上只有会少量的损失,但是泛化性会有一点问题(也就是训练数据与测试数据的不匹配)还有就是数据集的生成。

所以这篇文章就是希望给大家带来一些启发,或许在你们的研究领域内也有类似的一些基于迭代的,复杂度高的算法,都可以去尝试一下。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/530294
推荐阅读
相关标签
  

闽ICP备14008679号