6
LEARNED CONVOLUTIONAL SPARSE CODING Hillel Sreter * Raja Giryes School of Electrical Engineering, Tel Aviv University, Tel Aviv, Israel, {hillelsr@mail., raja@}tau.ac.il ABSTRACT We propose a convolutional recurrent sparse auto-encoder model. The model consists of a sparse encoder, which is a convolutional extension of the learned ISTA (LISTA) method, and a linear convolutional decoder. Our strategy offers a sim- ple method for learning a task-driven sparse convolutional dictionary (CD), and producing an approximate convolutional sparse code (CSC) over the learned dictionary. We trained the model to minimize reconstruction loss via gradient de- cent with back-propagation and have achieved competitve results to KSVD image denoising and to leading CSC meth- ods in image inpainting requiring only a small fraction of their run-time. Index TermsSparse Coding, ISTA, LISTA, Convolu- tional Sparse Coding, Neural networks. 1. INTRODUCTION Sparse coding (SC) is a powerful and popular tool used in a variety of applications from classification and feature extrac- tion, to signal processing tasks such as enhancement, super- resolution, etc. A classical approach to use SC with a signal is to split it into segments (or patches), and solve for each min ||z|| 0 s.t. x = Dz, (1) where z R m is the sparse representation of the (column stacked) patch x R n in the dictionary D R n×m . There are two painful points in this approach: (i) performing SC over all the patches tends to be a slow process; and (ii) learn- ing a dictionary over each segment independently loses spa- tial information outside it such as shift-invariance in images. One prominent approach for addressing the first point is using approximate sparse coding models such as the learned iterative shrinkage and thresholding algorithm (LISTA) [1]. LISTA is a recurrent neural network architecture designed to mimic ISTA [2], which is an iterative algorithm for approxi- mating the solution of (1). As to the second point, one may impose an additional prior on the learned dictionary such as being convolutional, i.e., a concatenation of Toeplitz matri- ces. In this case each element (known also as atom) of the * This research is supported by Wipro ltd. One of the GPUs used for this research was donated by the NVIDIA Corporation. dictionary is learned based on the whole signal. Moreover, the resulting dictionary is shift-invariant due to it being con- volutional. In this paper, we introduce a learning method for task driven CD learning. We design a convolutional neural net- work that both learns the SC of a family of signals and their CSCs. We demonstrate the efficiency of our new approach in the tasks of image denoising and inpainting. 2. THE SPARSE CODING PROBLEM 2.1. Sparse coding and ISTA Solving (1) directly is a combinatorial problem, thus, its complexity grows exponentially with m. To resolve this de- ficiency, many approximation strategies have been developed for solving (1). A popular one relaxes the 0 pseudo-norm using the 1 norm yielding (the unconstrained form): arg min D,z 1 2 ||x - Dz|| 2 2 + λ||z|| 1 . (2) A popular technique to minimize (2) is the ISTA [2] iteration: z k+1 = S λ/L (z k + 1 L D T (Dx - z)), (3) where L σ max (D T D), σ max (A) is the largest eigenvalue of A and S θ (x) is the soft thresholding operator: S θ (x)= sign(x)max(|x|- θ, 0). (4) ISTA iterations are stopped when a defined convergence cri- terion is satisfied. 2.2. Learned ISTA (LISTA) In approximate SC, one may build a non-linear differentiable encoder that can be trained to produce quick approximate SC of a given signal. In [1], an ISTA like recurrent network de- noted by LISTA is introduced. By rewriting (3) as z k+1 = S λ/L ((I - D T D)z k + D T x), (5) LISTA can be derived by substituting in (5) D T for W e R m×n , I - 1 L D T D for S R m×m and λ L for θ R m + (using a separate threshold value for each entry instead of a single arXiv:1711.00328v2 [eess.SP] 17 Jan 2020

LEARNED CONVOLUTIONAL SPARSE CODING Hillel Sreter Raja … · LEARNED CONVOLUTIONAL SPARSE CODING Hillel Sreter Raja Giryes School of Electrical Engineering, Tel Aviv University,

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

Page 1: LEARNED CONVOLUTIONAL SPARSE CODING Hillel Sreter Raja … · LEARNED CONVOLUTIONAL SPARSE CODING Hillel Sreter Raja Giryes School of Electrical Engineering, Tel Aviv University,

LEARNED CONVOLUTIONAL SPARSE CODING

Hillel Sreter∗ Raja Giryes

School of Electrical Engineering, Tel Aviv University, Tel Aviv, Israel, {hillelsr@mail., raja@}tau.ac.il

ABSTRACT

We propose a convolutional recurrent sparse auto-encodermodel. The model consists of a sparse encoder, which is aconvolutional extension of the learned ISTA (LISTA) method,and a linear convolutional decoder. Our strategy offers a sim-ple method for learning a task-driven sparse convolutionaldictionary (CD), and producing an approximate convolutionalsparse code (CSC) over the learned dictionary. We trainedthe model to minimize reconstruction loss via gradient de-cent with back-propagation and have achieved competitveresults to KSVD image denoising and to leading CSC meth-ods in image inpainting requiring only a small fraction oftheir run-time.

Index Terms— Sparse Coding, ISTA, LISTA, Convolu-tional Sparse Coding, Neural networks.

1. INTRODUCTION

Sparse coding (SC) is a powerful and popular tool used in avariety of applications from classification and feature extrac-tion, to signal processing tasks such as enhancement, super-resolution, etc. A classical approach to use SC with a signalis to split it into segments (or patches), and solve for each

min ||z||0 s.t. x = Dz, (1)

where z ∈ Rm is the sparse representation of the (columnstacked) patch x ∈ Rn in the dictionary D ∈ Rn×m. Thereare two painful points in this approach: (i) performing SCover all the patches tends to be a slow process; and (ii) learn-ing a dictionary over each segment independently loses spa-tial information outside it such as shift-invariance in images.

One prominent approach for addressing the first point isusing approximate sparse coding models such as the learnediterative shrinkage and thresholding algorithm (LISTA) [1].LISTA is a recurrent neural network architecture designed tomimic ISTA [2], which is an iterative algorithm for approxi-mating the solution of (1). As to the second point, one mayimpose an additional prior on the learned dictionary such asbeing convolutional, i.e., a concatenation of Toeplitz matri-ces. In this case each element (known also as atom) of the

∗This research is supported by Wipro ltd. One of the GPUs used for thisresearch was donated by the NVIDIA Corporation.

dictionary is learned based on the whole signal. Moreover,the resulting dictionary is shift-invariant due to it being con-volutional.

In this paper, we introduce a learning method for taskdriven CD learning. We design a convolutional neural net-work that both learns the SC of a family of signals and theirCSCs. We demonstrate the efficiency of our new approach inthe tasks of image denoising and inpainting.

2. THE SPARSE CODING PROBLEM

2.1. Sparse coding and ISTA

Solving (1) directly is a combinatorial problem, thus, itscomplexity grows exponentially with m. To resolve this de-ficiency, many approximation strategies have been developedfor solving (1). A popular one relaxes the `0 pseudo-normusing the `1 norm yielding (the unconstrained form):

argminD,z

1

2||x−Dz||22 + λ||z||1. (2)

A popular technique to minimize (2) is the ISTA [2] iteration:

zk+1 = Sλ/L(zk +1

LDT (Dx− z)), (3)

where L ≤ σmax(DTD), σmax(A) is the largest eigenvalue

of A and Sθ(x) is the soft thresholding operator:

Sθ(x) = sign(x)max(|x| − θ, 0). (4)

ISTA iterations are stopped when a defined convergence cri-terion is satisfied.

2.2. Learned ISTA (LISTA)

In approximate SC, one may build a non-linear differentiableencoder that can be trained to produce quick approximate SCof a given signal. In [1], an ISTA like recurrent network de-noted by LISTA is introduced. By rewriting (3) as

zk+1 = Sλ/L((I−DTD)zk +DTx), (5)

LISTA can be derived by substituting in (5) DT for We ∈Rm×n, I − 1

LDTD for S ∈ Rm×m and λ

L for θ ∈ Rm+ (usinga separate threshold value for each entry instead of a single

arX

iv:1

711.

0032

8v2

[ee

ss.S

P] 1

7 Ja

n 20

20

Page 2: LEARNED CONVOLUTIONAL SPARSE CODING Hillel Sreter Raja … · LEARNED CONVOLUTIONAL SPARSE CODING Hillel Sreter Raja Giryes School of Electrical Engineering, Tel Aviv University,

threshold for all values as in [3]). Thus, LISTA iteration isdefined as:

z0 = 0, k = 0..K − 1

zk+1 = Sθ(Szk +Wex)

zLISTA = zK ,

(6)

where K is the number of LISTA iterations and the parame-ters We, S and θ are learned by minimizing:

L =1

2||z∗ − zLISTA||22, (7)

where z∗ is either the optimal SC of the input signal (if attain-able) or the ISTA final solution after its convergence.

There have been lots of work on LISTA like architectures.In [3], a LISTA auto-encoder is introduced. Rather than train-ing to approximate the optimal SC, LISTA is trained directlyto minimize the optimization objective (2) instead of (7). Adiscriminative non-negative version of LISTA is introducedin [4]. It contains a decoder that reconstructs the approxi-mate SC back to the input signal and a classification unit thatreceives the approximate SC as an input. Thus, the modeldescribed in [4] is named discriminative recurrent sparseauto-encoder and the quality of the produced approximateSC is quantified by the success of the decoder and classi-fier. The work in [5] used a cascaded sparse coding networkwith LISTA building blocks to fully exploit the sparsity ofan image for the super resolution problem. In [6] and [7], atheoretical explanation is provided for the reason LISTA likemodels are able to accelerate SC iterative solvers.

3. CONVOLUTIONAL SPARSE CODING

The CSC model [8], [9], [10], [11], [12] can be derived fromthe classical SC model by substituting matrix multiplicationwith the convolution operator:

x =

m−1∑i=0

di ∗ zi, (8)

where x ∈ Rn1×n2 is the input signal, di ∈ Rk×k a localconvolution filter and zi ∈ Rn1×n2 a sparse feature map ofthe convolutional atom di. The `1 minimization problem in(2) for CSC may be formulated as:

argmind,z

1

2||x−

m−1∑i=0

di ∗ zi||22 + λ

m−1∑i=0

||zi||1. (9)

It is important to note that unlike traditional SC, x is not splitinto patches (or segments) but rather the CSC is of the fullinput signal. The CSC model is inherently spatially invariant,thus, a learned atom of a specific edge orientation can glob-ally represent all edges of that orientation in the whole image.

Unlike CSC, in classical SC multiple atoms tend to learn thesame oriented edge for different offsets in space.

Various methods have been proposed for solving (9). Thestrategies in [8] and [9] involve transformation to the fre-quency domain and optimization using Alternating DirectionMethod of Multipliers (ADMM). These methods tend to op-timize over the whole train-set at once. Thus, the whole train-set must be held in memory while learning the CDC, which ofcourse limits the train-set size. Moreover, inferring zi from xis an iterative process that may require a large number of iter-ations, thus, less suitable for real-time tasks. Work on speed-ing up the ADMM method for CD learning is done in [13].In [14], a consensus-based optimization framework has beenproposed that makes CSC tractable on large-scale datasets.In [15], a thorough performance comparison among differ-ent CD learning methods is done as well as proposing a newlearning approach. More work on CD learning has been donein [10] and [16]. In [17], the effect of solving in the fre-quency domain on boundary artifact is studied, offering dif-ferent types of solutions.The work in [18] shows the potentialof CSC for image super-resolution.

4. LEARNED CONVOLUTIONAL SPARSE CODING

In order to have computationally efficient CSC model, we ex-tend the approximate SC model LISTA [1] to the CSC model.We perform training in an end-to-end task driven fashion. Ourproposed approach shows competitive performance to clas-sical SC and CSC methods in different tasks but with orderof magnitude fewer computations. Our model is trained viastochastic gradient-descent, thus, naturally it can learn the CDover very large datasets without any special adaptations. Thisof course helps in learning a CD that can better represent thespace in which the input signals are sampled from.

4.1. Learning approximate CSC

Due to the linear properties of convolutions and the fact thatCSC model can be thought of as a classical SC model, wherethe dictionary Dconv is a concatenation of Toepltiz matrices,the CSC model can be viewed as a specific case of classicalSC. Thus,the objective in (9) can be formatted to be like (2),by substituting the general dictionary D with Dconv . Obvi-ously, naively reformulating CSC model as matrix multipli-cation is very inefficient both memory-wise because Dconv ∈R(n1n2)×(n1n2m) and computation wise, as each element of xis computed with n1n2mmultiply and accumulate operations(MACs) versus the convolution formation, where only s2mMACs are needed (realistically assuming s� {n1, n2}).

Thus, instead of using standard LISTA directly on Dconv ,we reformulate ISTA to the convolutional case and then pro-pose its LISTA version. ISTA iterations for CSC reads as:

zk+1 = Sλ/L(zk +1

Ld ? (x− d ∗ zk)), (10)

Page 3: LEARNED CONVOLUTIONAL SPARSE CODING Hillel Sreter Raja … · LEARNED CONVOLUTIONAL SPARSE CODING Hillel Sreter Raja Giryes School of Electrical Engineering, Tel Aviv University,

where d ∈ Rs×s×m is an array of m s × s filters, d ? x =[flip(d0)∗x, ..., f lip(dm−1)∗x] and d∗z =

∑m−1i=0 di ∗zi.

The operartion flip(di) reverses the order of entries in di inboth dimensions. Modeling (10) in a similar way to (6) (withsome differences) leads to the convolutional LISTA structure:

zk+1 = Sθ(zk +we ∗ (x−wd ∗ zk)), (11)

where we ∈ Rs×s×c×m, wd ∈ Rs×s×m×c and θ ∈ Rm+ arefully trainable and independent variables. Note that we haveadded here also the variable c that takes into account havingmultiple channels in the original signal (e.g., color channels).

4.2. Learning the CD

When learning a CD, we expect to produce x̂ as close as pos-sible to x given the approximate CSC (ACSC) produced bythe model described in (11). Thus, we learn the CD by addinga linear encoder that consists of a filter array d at the end ofthe convolutional LISTA iterations. This leads to the follow-ing network that integrates both the calculation of the CSCand the application of the dictionary:

z0 = 0, , k = 0 : K − 1

zk+1 = Sθ(zk +we ∗ (x−wd ∗ zk))zACSC = zK

x̂ = d ∗ zACSC

(12)

4.3. Task driven convolutional sparse coding

This formulation makes it possible to train a sparse inducedauto-encoder, where the encoder learns to produce ACSC andthe decoder learns the correct filters to reconstruct the signalfrom the generated ACSC. The whole model is trained viastochastic gradient decent aiming at minimizing:

L = dist(x, x̂), (13)

where x is the target signal and x̂ is the one calculated in (12).We tested different types of distance functions and found (15)to yield best results. Unlike the sparse auto-encoder proposedin [19], where the encoder is a feed-froward network and spar-sity is induced via adding sparsity promoting regularizationto the loss function, our model is inherently biased to pro-duce sparse encoding of its input due to the special design ofits architecture. From a probabilistic point of view, as shownin [20], sparse auto-encoder can be thought of as a generativemodel that has latent variables with a sparsity prior. Thus, thejoint distribution of the model,output and CSC is

pmodel(x, z) = pmodel(z)pmodel(x|z). (14)

The soft thresholding operation used in the network encour-ages pmodel(z) to be large when z is sparse. Thus, when train-ing our model we found it sufficient to minimize a reconstruc-tion term representing−log(pmodel(x|z)) without the need toadd a sparsity inducing term to the loss.

5. EXPERIMENTS

5.1. Learned CSC network parameters

We used our model as specified in (12). We found 3 recurrentsteps to be sufficient for our tasks. The filters used in the ex-periments have the following dimensions: we ∈ R7×7×1×64,wd ∈ R7×7×64×1, θ ∈ R1×64

+ , d ∈ R7×7×64×1.As initialization is important for convergence, wd and d

are initialized with the same random values and and we is ini-tialized with the transposed and flipped filters of 1

10wd. Thefactor 1

10 takes into consideration 1L from (3). We initialized

the threshold θ to 110 , thus implicitly initializing λ to 1. We

tested different types of reconstruction loss including stan-dard `1 and `2 losses. We found the loss function proposedin [21] to retrieves the best image quality,

L(x, x̂) = α(1−ms ssim(x, x̂))+(1−α)||x− x̂||1, (15)

wherems ssim is the multiscale SSIM loss. We have trainedthe model using the Adam optimizer [22],with this recon-struction loss and α = 0.8. We use PASCAL VOC [23]dataset due to its large amount of high quality images. All im-ages are normalized by 255 before feeding them to the model.

5.2. Image denoiseing

To test our model for image denoising we have added randomnoise to a given original image x producing y = x+ ε, whereσn = 20 and ε ∼ N (0, σ2

n).As can be seen in Fig. 1 and Table 2, the learned CD gen-

eralizes well and the reconstruction is competitive both qual-itatively and quantitatively to the results of KSVD denoising.

We show the atoms of the learned CD in Fig. 2. Thelearned CD does not have any image specific atoms but rathera mixture of high pass DCT like and Gabor like filters. Table1 presents the average run time per image. We used KSVD’spublicly available code [24]. Our model is faster by an orderof magnitude on a CPU and by two orders on a GPU.

ours CPU ours GPU KSVD CPUruntime [sec] 0.81 0.03 4.21

Table 1: Run time on the image denoising task.

5.3. Image inpainting

We further test our model on the inpainting problem, in whichy = M � x, where � is as an element wise multiplicationoperator and M is a binary mask such that y contains onlypart of the pixels in x. Rewriting (8) while taking M intoconsideration, we have

y = M�D ∗ z, (16)

Page 4: LEARNED CONVOLUTIONAL SPARSE CODING Hillel Sreter Raja … · LEARNED CONVOLUTIONAL SPARSE CODING Hillel Sreter Raja Giryes School of Electrical Engineering, Tel Aviv University,

Fig. 1: Denoising of Lena. From left to right: original, noisy, our method denoising,KSVD denoising.

Image Proposed KSVDLena 32.11 32.09

House 32.55 32.7Pepper 30.65 30.89Couple 30.14 30.05Fgpr 27.44 28.48Boat 30.3 30.37Hill 30.23 29.5Man 30.29 29.67

Barbara 28.91 30.57

Table 2: Denoising PSNR results for σn = 20

Fig. 2: Convolutional dictionary learned on denoising taskcontaining 64 7×7 filters with gabor and high-pass structure.

Thus, (5) becomes,

zk+1 = Sλ/L(zk +1

Ld ? (M� (x− d ∗ zk))), (17)

The ACSC version of (17) is given by

zk+1 = Sθ(zk +we ∗ (M� (x−wd ∗ zk))). (18)

In our experiment M(i, j) ∼ Ber(0.5), thus, we randomlysample half of the input pixels. The objective is to recon-struct x. We took a pre-trained ACSC network on denoisingtask, plugged in it M to be the form of (18), and optimizedit for the inpainting task over the PASCAL VOC [23] dataset.We compare our inpainting results to [8] and [10] over thesame test images used [8]. The image numbering convention

ours CPU ours GPU [8] CPU [10] CPUruntime [sec] 0.6 0.023 163 65.49

Table 3: Run time on image inpainting.

Image Heide et al. Papyan et al. Proposed1 28.76 29.55 28.842 31.54 31.63 31.953 30.59 30.76 30.484 27.41 26.8 27.645 33.65 33.59 33.816 33.03 27.7 33.277 28.69 30.61 28.338 30.39 32.36 30.239 28.07 28.68 28.10

10 31.59 33.46 31.6511 29.77 33.5 29.6012 26.40 26.45 26.4913 29.01 30.95 28.8614 29.48 30.76 29.515 28.95 29.44 28.2816 29.59 30.45 29.4817 27.69 28.27 28.6518 31.69 31.61 31.3619 26.79 28.57 26.8820 31.93 32.01 32.0421 28.81 28.91 28.9122 26.27 27.36 26.47

Table 4: Inpainting PSNR for [8], [10] and ACSC on test-setfrom [8].

is consistent to [8]. All test images are preprocessed with lo-cal contrast as in [8]. Table. 4 shows that our model producescompetitive results to the ones of [8] and [10]. The main ad-vantage of the proposed approach as can be seen in Table 3is its significant speed-up in running time (by more than threeorders of magnitude).

1

6. CONCLUSION

Approximate convolutional sparse coding as proposed in thiswork is a powerful tool. It combines both the computationalcapabilities and approximation power of convolutional neural

1source code can be found https://github.com/benMen87/AppriximateConvolutionalSparseCoding

Page 5: LEARNED CONVOLUTIONAL SPARSE CODING Hillel Sreter Raja … · LEARNED CONVOLUTIONAL SPARSE CODING Hillel Sreter Raja Giryes School of Electrical Engineering, Tel Aviv University,

networks and the strong theory of sparse coding. We demon-strated the efficiency of this strategy both in the tasks of imagedenoising and inpainting.

7. REFERENCES

[1] K. Gregor and Y. LeCun, “Learning fast approxima-tions of sparse coding,” in Proceedings of the 27th Inter-national Conference on Machine Learning (ICML-10),2010, pp. 399–406.

[2] I. Daubechies, M. Defrise, and C. De Mol, “An iterativethresholding algorithm for linear inverse problems witha sparsity constraint,” Communications on pure andapplied mathematics, vol. 57, no. 11, pp. 1413–1457,2004.

[3] P. Sprechmann, A.M. Bronstein, and G. Sapiro, “Learn-ing efficient sparse and low rank models,” IEEE transac-tions on pattern analysis and machine intelligence, vol.37, no. 9, pp. 1821–1833, 2015.

[4] J. Rolfe and Y. LeCun, “Discriminative recurrent sparseauto-encoders,” ICLR, 2013.

[5] Z. Wang, D. Liu, J. Yang, W. Han, and T. Huang, “Deepnetworks for image super-resolution with sparse prior,”in Proceedings of the IEEE International Conference onComputer Vision, 2015, pp. 370–378.

[6] R. Giryes, Y. Eldar, A.M. Bronstein, and G. Sapiro,“Tradeoffs between convergence speed and reconstruc-tion accuracy in inverse problems,” arXiv preprintarXiv:1605.09232, 2016.

[7] T. Moreau and J. Bruna, “Adaptive acceleration ofsparse coding via matrix factorization,” ICLR, 2017.

[8] F. Heide, W. Heidrich, and G. Wetzstein, “Fast and flex-ible convolutional sparse coding,” in Proceedings ofthe IEEE Conference on Computer Vision and PatternRecognition, 2015, pp. 5135–5143.

[9] H. Bristow, A. Eriksson, and S. Lucey, “Fast convo-lutional sparse coding,” in Proceedings of the IEEEConference on Computer Vision and Pattern Recogni-tion, 2013, pp. 391–398.

[10] V. Papyan, Y. Romano, J. Sulam, and M. Elad, “Convo-lutional dictionary learning via local processing,” ICCV,2017.

[11] H. Bristow and S. Lucey, “Optimization methodsfor convolutional sparse coding,” arXiv preprintarXiv:1406.2407, 2014.

[12] M. Zeiler, D. Krishnan, G. Taylor, and R. Fergus, “De-convolutional networks,” in Computer Vision and Pat-tern Recognition (CVPR), 2010 IEEE Conference on.IEEE, 2010, pp. 2528–2535.

[13] Y. Wang, Q. Yao, J. T. Kwok, and L. Ni, “Online con-volutional sparse coding,” 06 2017.

Page 6: LEARNED CONVOLUTIONAL SPARSE CODING Hillel Sreter Raja … · LEARNED CONVOLUTIONAL SPARSE CODING Hillel Sreter Raja Giryes School of Electrical Engineering, Tel Aviv University,

[14] B. Choudhury, R. Swanson, F. Heide, G. Wetzstein, andW. Heidrich, “Consensus convolutional sparse coding,”2017.

[15] C. Garcia-Cardona and B. Wohlberg, “Convolutionaldictionary learning,” arXiv preprint arXiv:1709.02893,2017.

[16] B. Wohlberg, “Efficient convolutional sparse coding,”in Acoustics, Speech and Signal Processing (ICASSP),2014 IEEE International Conference on. IEEE, 2014,pp. 7173–7177.

[17] B. Wohlberg, “Boundary handling for convolutionalsparse representations,” in Image Processing (ICIP),2016 IEEE International Conference on. IEEE, 2016,pp. 1833–1837.

[18] S. Gu, W. Zuo, Q. Xie, D. Meng, X. Feng, andL. Zhang, “Convolutional sparse coding for imagesuper-resolution,” in The IEEE International Confer-ence on Computer Vision (ICCV), December 2015.

[19] A. Ng, “Sparse autoencoder,” CS294A Lecture notes,vol. 72, no. 2011, pp. 1–19, 2011.

[20] I. Goodfellow, Y. Bengio, and Courville A., DeepLearning, MIT Press, 2016, http://www.deeplearningbook.org.

[21] H. Zhao, O. Gallo, I. Frosio, and J. Kautz, “Loss func-tions for image restoration with neural networks,” IEEETransactions on Computational Imaging, vol. 3, no. 1,pp. 47–57, 2017.

[22] D. Kingma and J. Ba, “Adam: A method for stochasticoptimization,” arXiv preprint arXiv:1412.6980, 2014.

[23] M. Everingham, L. Van Gool, C. K. I.Williams, J. Winn, and A. Zisserman, “ThePASCAL Visual Object Classes Challenge2012 (VOC2012) Results,” http://www.pascal-network.org/challenges/VOC/voc2012/workshop/index.html.

[24] R. Rubinstein, M. Zibulevsky, and M. Elad, “Efficientimplementation of the k-svd algorithm using batch or-thogonal matching pursuit,” Cs Technion, vol. 40, no. 8,pp. 1–15, 2008.