Daily Notes 7.6

经久不衰的 Daily Notes 系列又来了!

今天读的这篇:Perceptual Losses for Real-Time Style Transfer and Super-Resolution

Terms

记录一些今天关注的内容

Transposed - conv

就是把卷积层反过来的感觉,

可视化效果:https://github.com/vdumoulin/conv_arithmetic

stride

cs231n 的课程页面上写得很清楚,就是步长

GAN basics

Dilated Convolutions

ref: Dilated Convolutions and Kronecker Factored Convolutions

它的一大优点是可以指数级地扩大感受域(receptive field),而参数是对数级的。这带来一个问题,需要加条件才能保证可以参数共享。

上文中表示需要卷积操作相当于Kronecker product才行

CNN channel

【CNN】理解卷积神经网络中的通道 channel - CSDN博客

置信区间

展现的是,这个总体参数的真实值有一定概率落在与该测量结果有关的某对应区间

SSIM — Structural SIMilarity

衡量两幅图像相似度,其值越大越好,最大为1

ref: https://blog.csdn.net/edogawachia/article/details/78756680

PSNR — Peak signal-to-noise ratio

峰值信噪比,是一种评价图像的客观标准

1
2
3
4
def cal_psnr(im1, im2):
mse = (np.abs(im1 - im2) ** 2).mean()
psnr = 10 * np.log10(255 * 255 / mse)
return psnr

Fractionally-strided convolution

ref: https://towardsdatascience.com/types-of-convolutions-in-deep-learning-717013397f4d

就是之前提到的反卷积,这东西别名太多

为什么叫分数步长呢?

我们通过在原矩阵中间补0来使得正向的卷积结果相当于是反向的卷积,这是在原矩阵中的步长就可能是分数了

Perceptual Loss — 《Perceptual Losses for Real-Time Style Transfer and Super-Resolution》

很多工作都可以看作是对图像进行转换操作 —— 输入一张图,输出转换后的一张图

按像素比较的loss function 不能捕捉全局的(?perceptual)信息

perceptual loss function 不比较对应位置像素的信息,而是比较high-level的信息,比如预先训练好的卷积神经网络中的特征表示(feature representations)

本文的工作是训练了一个用perceptual loss训练一个单向的(feed forward)网络,又快又好

本文主要关注图片风格转换和单张图的超分辨率重建(四倍和八倍)

Feed-forward image transformation 翻译过来是前馈神经网络

高品质的风格转换要求对较大的区域进行一致的,而本文方法使得感受域变大。

Residual Connections ,认为可以方便地让网络学到恒等变换,这对风格转换很重要,因为大多数地方输出和输入是相同的。

Loss Function有两部分,一个是Feature Reconstruction Loss,另一个是Style Reconstruction Loss

前者是feature representation的欧几里得距离除以feature map的大小($C H W$)。最小化第一个损失函数可以保留视觉内容和整体空间上的结构,但是颜色、纹理和具体的形状不一定保留。

后者在内容不同是进行惩罚,也惩罚风格上的不同。表达式是大小为$C * C$的Gram矩阵的L2距离。

注意到很有趣的一点,结果中人像比较清晰但是背景并不清晰。一种可能的解释是VGG-16的特征大多是在人像和动物上训练的,我们的风格转换网络是在学习保留VGG-16学到的特征,这样我们的网络学到的背景的信息比较少