赞
踩
解决问题:图像处理的像素级奖励强化学习(reinforcement learning with pixel-wise rewards (pixelRL) for image processing)
Pixel IRL:每个像素都有一个代理,这个代理通过采用一个动作来更新像素值,
本实验提出一种PixelRL方法,该方法可应用于图像去噪、图像恢复和局部颜色增强。
1、提出了一种新的问题设置:PixelRL用于图像处理,现有的多智能体RL技术无法应用。
2、提出reward map convolution,它是PixelRL的一种有效学习方法,能提高性能。
3、将PixelRL应用于图像去噪、图像恢复和局部颜色增强。
4、agents执行的动作是人类可理解的,与传统CNN不同。
A3C(asynchronous advantage actor-critic)具有policy network 和 value network两个网络。将这两个网络的参数表示为 θ p θ_p θp和$ θ_v , 它 们 都 是 使 用 当 前 状 态 时 间 步 长 t 时 的 ,它们都是使用当前状态时间步长t时的 ,它们都是使用当前状态时间步长t时的s^{(t)} 作 为 输 入 , t h e v a l u e n e t w o r k s 输 出 作为输入,the value networks 输出 作为输入,thevaluenetworks输出V(s{(t)})$:状态$s{(t)}$的期待总奖励,显示当前状态有多好。
θ v θ_v θv的梯度计算:
R ( t ) = r ( t ) + γ r ( t + 1 ) + γ 2 r ( t + 2 ) + ⋅ ⋅ ⋅ + γ n − 1 r ( t + n − 1 ) + γ n V ( s ( t + n ) ) R^{(t)} = r^{(t)}+γr^{(t+1)}+γ^2r^{(t+2)} + · · ·+γ^{n−1}r^{(t+n−1)}+γ^nV (s^{(t+n)}) R(t)=r(t)+γr(t+1)+γ2r(t+2)+⋅⋅⋅+γn−1r(t+n−1)+γnV(s(t+n))
KaTeX parse error: Unexpected character: '' at position 15: dθ_v = ∇_{θ_v}̲ \left(R^{(t)} …
γ i γ^i γi是第 i i i次幂的discount factor γ γ γ 。
策略网络输出采取 a ( t ) ∈ A a^{(t)}∈ A a(t)∈A的策略 π ( a ( t ) ∣ s ( t ) ) π(a^{(t)}|s^{(t)}) π(a(t)∣s(t))(通过softmax的概率),策略网络的输出维数为 ∣ A ∣ |A| ∣A∣, θ p θ_p θp的梯度:
A ( a ( t ) , s ( t ) ) = R ( t ) − V ( s ( t ) ) A(a^{(t)}, s^{(t)}) = R^{(t)} − V(s^{(t)}) A(a(t),s(t))=R(t)−V(s(t))
d θ p = − ∇ θ p l o g π ( a ( t ) ∣ s ( t ) ) A ( a ( t ) , s ( t ) ) dθ_p = −∇_{θ_p}log π(a^{(t)}|s^{(t)})A(a^{(t)}, s^{(t)}) dθp=−∇θplogπ(a(t)∣s(t))A(a(t),s(t))
A ( a ( t ) , s ( t ) ) A(a^{(t)},s^{(t)}) A(a(t),s(t))是advantage,在 A ( a ( t ) , s ( t ) ) = R ( t ) − V ( s ( t ) ) A(a^{(t)}, s^{(t)}) = R^{(t)} − V(s^{(t)}) A(a(t),s(t))=R(t)−V(s(t))中减去 V ( s ( t ) ) V(s^{(t)}) V(s(t))来减少梯度的方差。
输入图像 I I I拥有N个像素 ( i = 1 , … … , N ) (i = 1,……,N) (i=1,……,N), I i I_i Ii表示输入图像 I I I的第 i i i个像素。
每个像素拥有agent,它的策略表示为 π i ( a i ( t ) ∣ s i ( t ) ) π_i(a^{(t)}_i|s^{(t)}_i) πi(ai(t)∣si(t)), a i ( t ) ( ∈ A ) a^{(t)}_i(∈ A) ai(t)(∈A)表示第 i i i个agent在时间步长t时的动作, s i ( t ) s^{(t)}_i si(t)表示时间步长t时的状态。
A是预定义的动作集, s i ( 0 ) = I i s^{(0)}_i = I_i si(0)=Ii,agents通过环境中获得下一个状态 s ( t + 1 ) = ( s 1 ( t + 1 ) , ⋅ ⋅ ⋅ , s N ( t + 1 ) ) s^{(t+1)} = \left(s^{(t+1)}_1, · · · , s^{(t+1)}_N \right) s(t+1)=(s1(t+1),⋅⋅⋅,sN(t+1)),
和奖励 r ( t ) = ( r 1 ( t ) , ⋅ ⋅ ⋅ , r N ( t ) ) r^{(t)} = (r^{(t)}_1, · · · , r^{(t)}_N ) r(t)=(r1(t),⋅⋅⋅,rN(t))。
问题的目标是学习最优策略 π = ( π 1 , ⋅ ⋅ ⋅ , π n ) π = (π_1,···,π_n) π=(π1,⋅⋅⋅,πn),使所有像素点的总期望回报均值最大化“
π ∗ = a r g m a x π E π ( ∑ t = 0 ∞ γ t r ‾ ( t ) ) π^∗ = \underset{π}{argmax}E_π\left(\sum^∞_{t=0}γ^t\overline{r}^{(t)}\right) π∗=πargmaxEπ(∑t=0∞γtr(t))
r ‾ ( t ) = 1 N ∑ i = 1 N r i ( t ) \overline{r}^{(t)} = \frac{1}{N}\sum^N_{i=1}r^{(t)}_i r(t)=N1∑i=1Nri(t)
r ‾ ( t ) \overline{r}^{(t)} r(t)是 r i ( t ) r^{(t)}_i ri(t)的所有像素的奖励均值。
(1)第一种简单的解决方案是训练一个网络,输出Q-value或所有可能的行动集 a ( t ) a^{(t)} a(t)的策略。 然而,由于最后一个全连接层的尺寸必须是 ∣ A ∣ N |A|^N ∣A∣N,这在计算上是不切实际的。
(2)第二种解决方案是将问题分解为N个独立的子问题,训练N个网络,我们训练第 i i i个agent,使第
i i i个像素处的期望总回报最大化。
π i ∗ = a r g m a x π i E π i ( ∑ t = 0 ∞ γ t r i ( t ) ) π^∗_i = \underset{πi}{argmax}E_{πi}\left(\sum^∞_{t=0}γ^tr^{(t)}_i\right) πi∗=πiargmaxEπi(∑t=0∞γtri(t))
当像素数量大时,训练N个网络在计算上时不实际的,其只能处理固定大小的图像。因此本实验采用FCN代替N网络,通过使用FCN使得N个agent共享参数,并可以在GPU上并列化agent的计算,提高训练效率。
agent的数量N非常大,超过 1 0 5 10^5 105。所以multi-agent RL无法直接应用于PixelRL 。
当 R ( t ) = r ( t ) + γ r ( t + 1 ) + γ 2 r ( t + 2 ) + ⋅ ⋅ ⋅ + γ n − 1 r ( t + n − 1 ) + γ n V ( s ( t + n ) ) R^{(t)} = r^{(t)}+γr^{(t+1)}+γ^2r^{(t+2)} + · · ·+γ^{n−1}r^{(t+n−1)}+γ^nV (s^{(t+n)}) R(t)=r(t)+γr(t+1)+γ2r(t+2)+⋅⋅⋅+γn−1r(t+n−1)+γnV(s(t+n))中 n = 1 n = 1 n=1时,FCNs的接受域为1*1(即策略和值网络中的所有卷积滤波器都为1x1),N个子问题是完全独立的,与原A3C相比,计算两个网络的梯度:
R i ( t ) = r i ( t ) + γ V ( s i ( t + 1 ) ) R^{(t)}_i = r^{(t)}_i + γV (s^{(t+1)}_i) Ri(t)=ri(t)+γV(si(t+1))
d θ v = ∇ θ v 1 N ∑ i = 1 N ( R i ( t ) − V ( s i ( t ) ) ) 2 dθ_v = ∇_{θ_v}\frac{1}{N}\sum^N_{i=1}\left(R^{(t)}_i − V(s^{(t)}_i)\right)^2 dθv=∇θvN1∑i=1N(Ri(t)−V(si(t)))2
A ( a i ( t ) , s i ( t ) ) = R i ( t ) − V ( s i ( t ) ) A(a^{(t)}_i, s^{(t)}_i) = R^{(t)}_i − V(s^{(t)}_i) A(ai(t),si(t))=Ri(t)−V(si(t))
d θ p = − ∇ θ p 1 N ∑ i = 1 N l o g π ( a i ( t ) ∣ s i ( t ) ) A ( a i ( t ) , s i ( t ) ) dθ_p = −∇_{θ_p}\frac{1}{N}\sum^N_{i=1}logπ\left(a^{(t)}_i|s^{(t)}_i)A(a^{(t)}_i, s^{(t)}_i\right) dθp=−∇θpN1∑i=1Nlogπ(ai(t)∣si(t))A(ai(t),si(t))
如 d θ v = ∇ θ v 1 N ∑ i = 1 N ( R i ( t ) − V ( s i ( t ) ) ) 2 dθ_v = ∇_{θ_v}\frac{1}{N}\sum^N_{i=1}\left(R^{(t)}_i − V(s^{(t)}_i)\right)^2 dθv=∇θvN1∑i=1N(Ri(t)−V(si(t)))2和 d θ p = − ∇ θ p 1 N ∑ i = 1 N l o g π ( a i ( t ) ∣ s i ( t ) ) A ( a i ( t ) , s i ( t ) ) dθ_p = −∇_{θ_p}\frac{1}{N}\sum^N_{i=1}logπ\left(a^{(t)}_i|s^{(t)}_i)A(a^{(t)}_i, s^{(t)}_i\right) dθp=−∇θpN1∑i=1Nlogπ(ai(t)∣si(t))A(ai(t),si(t))所示,每个网络参数的梯度为所有像素点上梯度的平均值。
本实验的网络架构具有很大的receptive field,策略和值网络需要观察第 i i i个像素 s i ( t ) s^{(t)}_i si(t)和相邻像素,为了可以在第 i i i个像素处输出策略 π π π和值 V V V,动作 a i ( t ) a^{(t)}_i ai(t)会影响 s i ( i + 1 ) s^{(i+1)}_i si(i+1),还影响下一个时间 N ( i ) N(i) N(i)中的策略和值, N ( i ) N (i) N(i)是位于第 i i i个像素中心的局部窗口。
将 R i R_i Ri代入 R i ( t ) = r i ( t ) + γ V ( s i ( t + 1 ) ) R^{(t)}_i = r^{(t)}_i + γV (s^{(t+1)}_i) Ri(t)=ri(t)+γV(si(t+1))中
R i ( t ) = r i ( t ) + γ ∑ j ∈ N ( i ) w i − j V ( s j ( t + 1 ) ) R^{(t)}_i = r^{(t)}_i + γ\sum_{j∈N(i)}w_{i-j}V (s^{(t+1)}_j) Ri(t)=ri(t)+γ∑j∈N(i)wi−jV(sj(t+1))
w i − j w_{i−j} wi−j是权值,表示在下一个时间步(t + 1)中考虑邻居像素值V的程度。
w w w是一个卷积滤波权值,可以与网络参数 θ p θ_p θp和 θ v θ_v θv同时学习。
γ ∑ j ∈ N ( i ) w i − j V ( s j ( t + 1 ) ) γ\sum_{j∈N(i)}w_{i-j}V (s^{(t+1)}_j) γ∑j∈N(i)wi−jV(sj(t+1))是一个2D卷积,因为每个像素 i i i都有一个2D坐标 ( i x , i y ) (i_x, i_y) (ix,iy)。
利用矩阵的形式,定义 n n n步情况下的 R ( t ) R^{(t)} R(t):
R ( t ) = r ( t ) + γ w ∗ r ( t + 1 ) + γ 2 w 2 ∗ r ( t + 2 ) + ⋅ ⋅ ⋅ + γ n − 1 w n − 1 ∗ r ( t + n − 1 ) + γ n w n ∗ V ( s ( t + n ) ) R^{(t)} = r^{(t)} + γw ∗ r^{(t+1)} + γ^2w^2∗ r^{(t+2)} + · · ·+γ^{n−1}w^{n−1}∗ r^{(t+n−1)} + γ^nw^n∗ V(s^{(t+n)}) R(t)=r(t)+γw∗r(t+1)+γ2w2∗r(t+2)+⋅⋅⋅+γn−1wn−1∗r(t+n−1)+γnwn∗V(s(t+n))
w w w的梯度计算:
d w = − ∇ w 1 N ∑ i = 1 N l o g π ( a i ( t ) ∣ s i ( t ) ) ( R i ( t ) − V ( s i ( t ) ) ) + ∇ w 1 N ∑ i = 1 N ( R i ( t ) − V ( s i ( t ) ) ) 2 dw = −∇_w\frac{1}{N}\sum^N_{i=1}log π(a^{(t)}_i|s^{(t)}_i)(R^{(t)}_i − V(s^{(t)}_i))+∇_w\frac1N\sum^N_{i=1}(R^{(t)}_i − V (s^{(t)}_i))^2 dw=−∇wN1∑i=1Nlogπ(ai(t)∣si(t))(Ri(t)−V(si(t)))+∇wN1∑i=1N(Ri(t)−V(si(t)))2
− ∇ w 1 N ∑ i = 1 N l o g π ( a i ( t ) ∣ s i ( t ) ) ( R i ( t ) − V ( s i ( t ) ) ) −∇_w\frac{1}{N}\sum^N_{i=1}log π(a^{(t)}_i|s^{(t)}_i)(R^{(t)}_i − V(s^{(t)}_i)) −∇wN1∑i=1Nlogπ(ai(t)∣si(t))(Ri(t)−V(si(t)))鼓励更高的预期总回报
∇ w 1 N ∑ i = 1 N ( R i ( t ) − V ( s i ( t ) ) ) 2 ∇_w\frac1N\sum^N_{i=1}(R^{(t)}_i − V (s^{(t)}_i))^2 ∇wN1∑i=1N(Ri(t)−V(si(t)))2作为正则化,防止 R i R_i Ri不会通过卷积偏离预测 V ( s i ( t ) ) V(s^{(t)}_i) V(si(t))
输入图像 I ( = s ( 0 ) ) I(= s^{(0)}) I(=s(0))为带噪声的灰度图像,agent通过执行动作迭代进行去噪。
reward r i ( t ) r^{(t)}_i ri(t): r i ( t ) = ( I i t a r g e t − s i ( t ) ) 2 − ( I i t a r g e t − s i ( t + 1 ) ) 2 r^{(t)}_i = (I^{target}_i − s^{(t)}_i)^2 − (I^{target}_i − s^{(t+1)}_i)^2 ri(t)=(Iitarget−si(t))2−(Iitarget−si(t+1))2
I i t a r g e t I^{target}_i Iitarget为原始干净图像的第i个像素值。
设定训练集数为30000集,每集长度 t m a x t_{max} tmax为5集。 我们将 w w w的过滤大小设置为33×33,等于policy and value networks的receptive field大小。
RMC:reward map convolution
aug.: 测试图像的数据增强
通过左右翻转和 9 0 ∘ 90^{\circ} 90∘、 18 0 ∘ 180^{\circ} 180∘、 27 0 ∘ 270^{\circ} 270∘旋转,将单个测试图像增强到8张图像。
在策略网络中加入convGRU后,PSNR提高了约0.1dB。 σ = 15时,RMC显著提高了PSNR,但σ = 25和50时,RMC提高不大。这是因为当噪声较强时,agent通过在自己的像素上去除噪声而不是考虑邻近像素,可以获得较大的奖励。
图1显示了在BSD68测试集上进行高斯去噪(σ = 50)时,本实验在每个时间步长所执行的动作数。
结果表明,agent首先采用强滤波器(box filter, bilateral filter σc = 1.0, and Gaussian filter σ = 1.5)去除噪声,然后通过其他动作调整像素值(像素值+=1和-=1)。
表3为Salt和Pepper去噪的比较。 观察到RMC显著地改善了性能。 此外,在噪声密度为0.5和0.9时,本文方法优于CNN (Zhang et al. 2017)。
由于原始像素值的信息丢失(即像素值被噪声改变为0或255),CNN很难对噪声进行回归。本方法可以通过迭代滤波动作从相邻像素点预测出真实像素值。
将该方法应用于“blind”图像恢复中,不提供空白区域的掩模,该方法通过执行动作迭代地绘制空白区域。
使用与图像去噪相同的动作和奖励函数。
使用25,295幅图像和11,343个文档进行训练,在训练过程中,我们从25,295张图像中随机选择一张图像,从11,343个文档中随机选择一个文档,并将其覆盖在图像上,从而创建每个训练图像。
表4为输出图像与ground truth图像的平均PSNR比较。
将Net-D、Net-E和CNN之间进行比较,发现RMC显著提高了绩效,本方法通过过滤动作迭代传播相邻像素值来预测真实像素值,规避了文本叠加会丢失原始像素值信息,回归比较困难的问题。
使用了(Yan et al. 2016)创建的数据集,其中有70张列车图像和45张从Flicker下载的测试图像。使用Photoshop,所有的图像都由专业摄影师为三种不同风格的局部效果增强:Foreground Pop-Out, Local Xpro, and Watercolor.
给定一个输入图像I,所提出的方法通过执行一个动作来改变每个像素处的三个通道像素值。 将I输入到网络时,将RGB颜色值转换为CIELab颜色值。 将奖励函数定义为CIELab颜色空间中L2距离的减小:
r i ( t ) = ∣ I i t a r g e t − s i ( t ) ∣ 2 − ∣ I i t a r g e t − s i ( t + 1 ) ∣ 2 r^{(t)}_i = |I^{target}_i − s^{(t)}_i|_2 − |I^{target}_i − s^{(t+1)}_i|_2 ri(t)=∣Iitarget−si(t)∣2−∣Iitarget−si(t+1)∣2
所有超参数和设置与图像恢复时相同,除了episodes长度 t m a x = 10 t_{max} = 10 tmax=10。
表6显示了45幅测试图像的平均L2误差的比较。在所有三种增强方式上,本文提出的方法都比DNN (Yan et al. 2016)取得了更好的结果,并且比pix2pix取得了类似或稍好的结果。观察到RMC改进了性能,尽管它们的改进程度取决于风格。 值得注意的是,现有使用深度RL的颜色增强方法 (Park et al. 2018; Hu et al. 2018)不能应用于这个局部增强应用,因为它们只能执行全局操作。
提出一种新的PixelRL方法,并应用于图像去噪、图像恢复和局部颜色增强。
提高PixelRL代理的性能,
该方法能最大化像素级奖励,可以最小化像素级的不可微目标函数。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。