为什么L2损失函数会造成图像模糊?

  很多计算机视觉尤其是生成模型的相关论文中经常会提到一个现象: “使用L_2损失函数会产生模糊的图像”。大多论文中虽然给出了相关的对比实验结果加以佐证,但是如何用较通俗的方式来解释这个现象呢?

  首先来看看L_2损失函数的定义 (Squared L2 Norm)

                 \frac{1}{2M}\sum_{i}^{M}\sum_{j}^{M}(\hat{x}_{ij} - x_{ij})^2
                 =\frac{1}{2M}\sum_{i}^{M}\left \| \hat{x}_i - x_i \right \|_2^2
  其中M代表样本数,\hat{x}代表真实数据,x为重建数据。现在我们从概率的角度来解释这一现象。

解释:为什么L2 loss引入了模糊?

1. 热身——关于 “采样”

  生成模型中经常提到一个概念,采样,即Sampling。那么到底什么是采样?为啥要sample from distribution?

  假如我们有一批具有某种共同特点的数据,它们符合同一个但是未知的分布。比如说下图的g(X)。现在我们想要去估计这个分布(或者说去拟合这个函数)。

Fig. 1 目标分布

  由于神经网络是万能的估计器,我们只需要找一个参数化的模型,来近似这个分布,然后找个测度来衡量估计分布和真实分布之间的某种偏差(divergence),若能减小这个偏差到0,就可以说我们拟合了这个分布。但是一个问题在于,所谓“分布”是一个连续的概念,上述过程用公式表示应该为:
      \widehat{W}=\underset{W}{argmin}\int_{X}div(f(X;W),g(X))dX

其中f(X;W)表示由W参数化的关于输入X的函数(预测函数)。要优化这个公式,意味着我们需要知道对于每一个X,其对应的函数值g(X)(fully specified)。显然,我们并不知道函数g各处的函数值。那么上式该如何优化?

  采样(Sampling)为我们提供了一种解决方法。所谓采样就是去收集许多成对的输入-输出(X_i,d_i),where d_i=g(X_i) + noise。如果有足够多并且具有代表性的采样,我们就能通过离散的方式来近似上式的优化过程,即通过这些离散的样本来学习这些样本所在的分布。这些所谓的样本(许多的输入输出数据组合)就构成了我们的训练集。

  此外需要强调的一点是,这种采样的方法已经在几乎所有同类问上取得了可靠的结果。另外这种采样是十分简单和通用的,也正是我们一直在做的事情。比如图像描述(Image Caption)问题中,拿到一张图像和其对应的标注;再比如语音问题中拿到一段语音和其对应的文字,这些其实都是Sampling。只不过不同的sampling,其包含的噪声有大有小,反映出数据和真实分布的偏离,也就是最终我们训练集的质量差异。

Fig. 2 在真实分布上采样,得到训练集

2. 回到正题——概率解释

 我们从简单的一维高斯分布说起
          p(x \vert\mu, \sigma^2) = \frac{1}{Z}*\exp \left( -\frac{\Vert \mu - x \Vert_2^2}{2\sigma^2} \right)

其中Z为归一化因子,\mu为高斯分布均值,\sigma代表标准差。现在从机器学习的角度来理解这个式子:对于该高斯分布,如果我们确定了\mu\sigma,那这个分布就确定了。从理论上来说我们就可以从这个分布中采样,从概率估计(PDE)的角度来说,这样就算达到了目的。但是实际应用时\mu\sigma往往是不知道的,需要我们去确定。由1 知道,估计参数之前我们往往会sample一个训练集。然后根据这些训练样本 X,我们就可以得到一个关于X的参数化的,对于真实参数\mu的估计量\hat{y}(X;w)。注意这个式子是一种一般的写法,比如这个参数化模型可以用神经网络等等。总之这个估计量就是一个关于X的函数。既然都是X的函数,那么我们很容易想到一个最简单的估计量:

  没错!就是训练集X的统计均值\hat{X}。说实话,也没那么容易想到...我是看着Ian Goodfellow的花书公式(5.30)打的,上面是这么说的:

  “A common estimator of the Gaussian mean parameter is known as the sample mean.

另外,重要的一点在于,对于高斯分布而言,其样本均值是真实均值的一个无偏估计。

  所以这里我们可以令\hat{y}(X;w)=\hat{X},代进上面的那个高斯公式。假设我们取标准差为1,公式可以简化为:
           p(x \vert \hat{x}) \propto \exp \left( -\frac{1}{2} \Vert \hat{x} - x \Vert_2^2 \right)
对两边取对数,可以得到:
            \log \, p(x \vert \hat{x}) \propto -\frac{1}{2} \, \Vert \hat{x} - x \Vert_2^2

注意,我们得到了和L_2损失函数相同的优化目标。总结一下就是:

  • 最小化L_2损失函数(或MSE),等同于最大化一个高斯分布的对数似然,也等同于最小化训练集上的经验分布和一个高斯分布的交叉熵,也等同于最小化两分布的KL散度。
    (注意区分训练集上的经验分布E_{x\sim\hat{p}_{data}})和训练数据所在的真实分布E_{x\sim{p}_{data}}
  • 我们得到一个等式:(前三项的证明见花书第五章)
    优化KL散度=优化交叉熵=优化对数似然=优化Gaussian条件下的MSE。

  可以放一张经典的图:


Fig. 3 MSE的本质是数据集经验分布于高斯分布的交叉熵

  回顾下上面的讨论,我们实际上相当于做了一个假定:这一批数据都是Sample自同一个高斯分布。这个高斯分布的均值是样本均值,标准差为1。注意,在极大似然估计的框架下假设高斯分布是一个很常用的套路,因为高斯分布是所有分布中熵(不确定度)最大的分布,也就是说高斯分布本身注入了最少的先验知识。

3. 这和图像模糊有啥关系?

  那说了这么多,L2损失函数和图像模糊到底有什么关系呢?我们来考虑一个例子,来看看生活中真实的数据是啥样的。

  【假如我们在Google图片中搜索一个词“Car”,会得到很多结果。这里面包括了各种颜色和类型的Car,甚至能搜到车模(哪个车模?)...换句话说,根据一个简单的词Car,有很多种生成图像的方式,不同方式生成的图像可能具有相同的概率(比如我们看到宾利或者汽车总动员都会想到Car)。进一步,我们可以认为,在所有和Car有关的图像构成的真实分布上,有许多个峰值,比如跑车是一个峰,车模是一个峰,等等。对于这种图像分布,我们称之为:多模态(Multimodal)。】

注:这里其实还是不是很明白Multimodal的意思,Ian说的Multi-modal是说很多任务对于同一个输入,对应着多个正确的输出。那么那些不属于Multimodal呢?很多图像去噪任务,输入噪声图像,输出去噪图像,算不算Multimodal呢?还是说生活中的图像都是multimodal??

  所以问题就出现了。假如我们用MSE(或者L_2)作为损失函数,其潜在的假设是我们采集到的样本是都来在同一个高斯分布。但是生活中的实际图像,由于具有多种特征,大部分图像分布的流形都不只有一个峰。如果我们强行用一个单峰的高斯分布,去拟合一个多模态的数据分布,会产生什么样的结果呢?

  我们举一个两个峰的分布(bimodal distribution)作为例子。假如我们的数据集是由两种明显不同类型的数据构成的,表现在数据分布上有两个峰值。因为L_2损失函数需要减小生成分布和数据集经验分布(双峰分布)直接的差距,而生成分布具有两种类型,我们的模型会尽力去“满足”这两个子分布,最后得到的优化结果如下图所示,即一个位于双峰之间的高斯分布。直观上说,这是由于模型位于中间位置时,总体的距离最小。

  扩展到实际应用上就是说,当我们在使用L_2损失训练出来的分布中采样时,虽然采集到的样本属于数据集真实分布的几率很低,但是由于处于中间位置,会被大量采集出来。故我们最终得到的生成样本实质上是两种模式(mode)的数据集采集的样本的平均的效果,故产生了模糊图像。

Fig. 4 使用高斯分布拟合一个双峰分布

  更具体的说,假如这两种模式是"小轿车"和"SUV",那我们生成的图像很可能不属于这两类中的任何一类。再进一步,假如我们在更高维的图像空间,综合所有Car的属性之后,可能会得到更多不同的mode。我们最终生成的图像就是这些所有可能mode平均值后的结果。

  有许多L_2loss的替代品可以用于缓解这一现象。如GAN loss,甚至L_1loss都会取得相对sharp的结果。从直观上说,对于同一个输入,GAN loss不会平均所有可能的Sample,而是随机拿出一个Sample作为生成的样本。(这一现象有没有理论一点的解释?GAN loss为什么可以实现这种操作?)

Fig. 5 MSE和GAN loss生成的图像对比

在2017年的一篇论文 The Unreasonable Effectiveness of Texture Transfer for Single Image Super-resolution 中,作者也提到了在优化MSE时由于"regression-to-the-mean"问题,导致预测结果损失高频信息的情况。

Fig. 6 Regression-to-the-mean

4 遗留问题

    1. 花书例5.5.1
    1. L_1loss生成的图像为什么会相对sharper?
    1. 本文是从“真实世界的数据往往具有多峰分布”来说明multimodal的。而一些GAN的论文中说的multimodal是指多个可能输出。这两种解释之间能找到联系吗?

5. 参考文献

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271