General Convolutional Sparse Coding with Unknown Noise
Yaqing Wang, James T. Kwok, and Lionel M. Ni

TL;DR
This paper introduces a convolutional sparse coding model that effectively handles unknown, complex noise by modeling it with Gaussian mixture models, improving robustness and representation quality in noisy data.
Contribution
It proposes a novel CSC framework using Gaussian mixture models for noise, with an efficient EM-based solution and simultaneous dictionary and code updates.
Findings
Effective modeling of complex noise in biomedical data
Comparable computational complexity to existing CSC methods
High-quality filters and representations achieved
Abstract
Convolutional sparse coding (CSC) can learn representative shift-invariant patterns from multiple kinds of data. However, existing CSC methods can only model noises from Gaussian distribution, which is restrictive and unrealistic. In this paper, we propose a general CSC model capable of dealing with complicated unknown noise. The noise is now modeled by Gaussian mixture model, which can approximate any continuous probability density function. We use the expectation-maximization algorithm to solve the problem and design an efficient method for the weighted CSC problem in maximization step. The crux is to speed up the convolution in the frequency domain while keeping the other computation involving weight matrix in the spatial domain. Besides, we simultaneously update the dictionary and codes by nonconvex accelerated proximal gradient algorithm without bringing in extra alternating loops.…
| method | convolution operation | noise modeling | algorithm |
|---|---|---|---|
| DeconvNet [5] | spatial | Gaussian | BCD, updating codes and dictionary by gradient descent |
| ConvCod [19] | spatial | Gaussian | BCD, updating dictionary by gradient descent and codes by encoder |
| FCSC [20] | frequency | Gaussian | BCD, updating codes and dictionary by ADMM |
| FFCSC [7] | frequency | Gaussian | BCD, updating codes and dictionary by ADMM |
| CBPDN [21] | frequency | Gaussian | BCD, updating codes and dictionary by ADMM |
| CONSENSUS [22] | frequency | Gaussian | BCD, updating codes and dictionary by ADMM |
| SBCSC [23] | spatial | Gaussian | BCD, updating dictionary by ADMM and codes by LARS[34] |
| OCDL-Degraux [35] | spatial | Gaussian | BCD, updating codes and dictionary by projected BCD |
| OCDL-Liu [36] | frequency | Gaussian | BCD, updating codes and dictionary by proximal gradient descent |
| OCSC [37] | frequency | Gaussian | BCD, updating codes and dictionary by ADMM |
| CCSC [9] | frequency | Gaussian | BCD, updating codes and dictionary by ADMM |
| CSC [14] | spatial | alpha-stable | BCD, updating codes and dictionary by L-BFGS [38] |
| GCSC | frequency | Gaussian mixture | niAPG |
| MAE | RMSE | time (seconds) | ||
| no noise | CSC- | 0.0003590.000027 | 0.0008470.000109 | 419.6437.86 |
| CSC- | 0.0003640.000171 | 0.0008710.000183 | 651.6798.94 | |
| CSC | 0.0003620.000109 | 0.0008680.000122 | 2217.44345.96 | |
| GCSC | 0.0003300.000125 | 0.0008490.000141 | 414.3434.48 | |
| Gaussian noise | CSC- | 0.003680.00036 | 0.007750.00072 | 246.3355.39 |
| CSC- | 0.01040.0012 | 0.02490.0008 | 715.4493.86 | |
| CSC | 0.003530.00017 | 0.007660.00052 | 1986.08262.47 | |
| GCSC | 0.003430.00021 | 0.007620.00026 | 238.5219.78 | |
| Laplace noise | CSC- | 0.008350.00042 | 0.01140.0010 | 470.13 27.44 |
| CSC- | 0.003470.00026 | 0.007350.00038 | 358.64175.40 | |
| CSC | 0.006920.00042 | 0.009730.00013 | 2309.94724.53 | |
| GCSC | 0.003350.00017 | 0.007320.00020 | 350.7668.33 | |
| alpha-stable noise | CSC- | 0.07020.0060 | 0.08400.0091 | 597.8390.70 |
| CSC- | 0.01600.0025 | 0.03370.0047 | 476.2437.92 | |
| CSC | 0.004160.00039 | 0.008210.00024 | 2198.32470.57 | |
| GCSC | 0.004020.00030 | 0.008150.00041 | 412.4371.22 | |
| zero-mean mixture noise | CSC- | 0.03210.0007 | 0.05450.0010 | 344.0827.44 |
| CSC- | 0.06040.0055 | 0.08490.0059 | 588.5788.89 | |
| CSC | 0.01140.0002 | 0.01580.0003 | 1120.70 463.70 | |
| GCSC | 0.005310.00021 | 0.009710.00082 | 336.0077.85 | |
| nonzero-mean mixture noise | CSC- | 0.07320.0015 | 0.01510.0011 | 642.0384.44 |
| CSC- | 0.06700.0037 | 0.01300.0013 | 788.6088.89 | |
| CSC | 0.06670.0002 | 0.01270.0014 | 2882.26907.28 | |
| GCSC | 0.005560.00024 | 0.008180.00037 | 471.4087.90 |
| noise | distribution | SNR (dB) |
| Gaussian | 13.04 | |
| Laplace | 13.03 | |
| alpha-stable | 10.43 | |
| zero-mean mixture | 20% from , | 10.98 |
| 20% from , | ||
| 60% from | ||
| nonzero-mean mixture | 20% from , | 14.16 |
| 20% from , | ||
| 60% from |
| MAE | RMSE | time (seconds) | |
|---|---|---|---|
| BCD | 0.005570.00031 | 0.008210.00044 | 2562.37400.11 |
| niAPG | 0.005560.00024 | 0.008180.00037 | 471.4087.90 |
| LFP-cortical | LFP-striatal | |
| CSC- | 721.7147.21 | 802.3751.12 |
| CSC- | 737.6268.88 | 783.1676.10 |
| CSC | 2919.33290.77 | 3004.87320.81 |
| GCSC | 607.2357.56 | 611.2469.91 |
| AUC | best F-score | ||
| DRIVE | Expert | - | 0.8935 0.0000 |
| Hessian | 0.7314 0.0000 | 0.8755 0.0000 | |
| CSC- | 0.9044 0.0067 | 0.9806 0.0065 | |
| CSC- | 0.9383 0.0071 | 0.9821 0.0063 | |
| CSC | 0.9401 0.0051 | 0.9850 0.0064 | |
| GCSC | 0.9504 0.0048 | 0.9969 0.0066 | |
| STARE | Expert | - | 0.7790 0.0000 |
| Hessian | 0.6623 0.0000 | 0.8495 0.0000 | |
| CSC- | 0.9033 0.0089 | 0.9838 0.0080 | |
| CSC- | 0.8964 0.0087 | 0.9757 0.0073 | |
| CSC | 0.9101 0.0056 | 0.9907 0.0062 | |
| GCSC | 0.9203 0.0066 | 0.9999 0.0065 |
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
MethodsConvolution
General Convolutional Sparse Coding with Unknown Noise
Yaqing Wang, James T. Kwok, and Lionel M. Ni Y. Wang, J. T. Kwok and L.M. Ni are with the Department of Computer Science and Engineering, Hong Kong University of Science and Technology University, Hong Kong.©2019 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works.
Abstract
Convolutional sparse coding (CSC) can learn representative shift-invariant patterns from multiple kinds of data. However, existing CSC methods can only model noises from Gaussian distribution, which is restrictive and unrealistic. In this paper, we propose a general CSC model capable of dealing with complicated unknown noise. The noise is now modeled by Gaussian mixture model, which can approximate any continuous probability density function. We use the expectation-maximization algorithm to solve the problem and design an efficient method for the weighted CSC problem in maximization step. The crux is to speed up the convolution in the frequency domain while keeping the other computation involving weight matrix in the spatial domain. Besides, we simultaneously update the dictionary and codes by nonconvex accelerated proximal gradient algorithm without bringing in extra alternating loops. The resultant method obtains comparable time and space complexity compared with existing CSC methods. Extensive experiments on synthetic and real noisy biomedical data sets validate that our method can model noise effectively and obtain high-quality filters and representation.
Index Terms:
Convolutional sparse coding, Noise modeling, Gaussian mixture model
I Introduction
Given a set of samples, sparse coding tries to learn an over-complete dictionary and then represent each sample as a sparse combination (code) of the dictionary atoms. It has been used in various signal processing [1, 2] and computer vision applications [3, 4]. Albeit its popularity, sparse coding cannot capture shifted local patterns in the data. Hence, pre-processing (such as the extraction of sample patches) and post-processing (such as aggregating patch representation back into sample representation) are needed, otherwise redundant representations will be learned.
Convolutional sparse coding (CSC) [5] is a recent method which improves sparse coding by learning a shift-invariant dictionary. This is done by replacing the multiplication between codes and dictionary by convolution operation, which can capture local patterns of shifted locations in the data. Therefore, no pre-processing or post-processing are needed, and the sample can be optimized as a whole and represented as the sum of a set of filters from the dictionary convolved with the corresponding codes. It has been successfully used on various data types, including trajectories [6], images [7], audios [8], videos [9], multi-spectral and light field images [10] and biomedical data [11, 12, 13, 14]. It also succeeds on a variety of applications accompanying the data, such as recovering non-rigid structure from motion [6], image super resolution [15], image denoising and inpainting [10], music transcription [8], video deblurring [9], neuronal assembly detection [16] and so on.
All above CSC works use square loss, thus assume that the noise in the data is from Gaussian distribution. However, this can be restrictive and does not suit many real-world problems. For example, although CSC is popularly used for biomedical data sets [11, 13, 14, 16] where shifting patterns abound due to cell division, it cannot handle the various complicated noises in the data. In fact, biomedical data sets usually contain artifacts during recording, e.g., biomedical heterogeneities, large variations in luminance and contrast, and disturbance due to other small living animals [11, 17]. Moreover, as the target biomedical structures are often tiny and delicate, the existing of noises will heavily interfere the quality of the learned filters and representation [14].
Lots of algorithms have been proposed for CSC with square loss. While the objective is not convex, it is convex when codes of the dictionary are fixed. Thus, CSC is mainly solved by alternatively update the codes and dictionary by block coordinate descent (BCD) [18]. The difference of methods mainly lies in how to solve the subproblems (codes update or dictionary update) separately. The pioneering work Deconvolutional network [5] uses gradient descent for both subproblems. ConvCoD [19] uses stochastic gradient descent for dictionary update and additionally learns an encoder to output the codes. Recently, other works [7, 9, 20, 21, 22, 23] use alternating direction method of multipliers (ADMM) [24]. ADMM is favored since it can decompose the subproblem into smaller ADMM subproblems which usually have closed-form solutions. The decomposition allows solving CSC by separately performing faster convolution in frequency domain while enforcing the translation-variant constraints and regularizers in spatial domain. However, one needs another alternating loop between these ADMM subproblems so as to coordinate on the solution of the original subproblem.
Recently, there emerges one work which models the noise in CSC other than Gaussian. Jas et al. [14] proposed the alpha-stable CSC (CSC) which models the noise in 1D signals by the symmetric alpha-stable distribution [25]. This distribution includes a range of heavy-tailed distributions, and is known to be more robust to noise and outliers. However, the probability density function of the alpha-stable distribution does not have an analytical form, and its inference needs to be approximated by the Markov chain Monte Carlo (MCMC) [26] procedure, which is known to be computationally expensive. Moreover, as shown in Figure. 1, the alpha-stable distribution still restricts the noise to be of one particular type in advance, which is not appropriate due to unknown ground truth noise type.
In this paper, we propose a general CSC model (GCSC) which enables CSC to deal with complicated unknown noise. Specifically, we model the noise in CSC by the Gaussian mixture model (GMM), which can approximate any continuous probability density function. The proposed model is then solved by the Expectation-Maximization algorithm (EM). However, the maximization step becomes a weighted variant of the CSC problem which cannot be efficiently solved by existing algorithms, e.g., BCD and ADMM, since they bring extra inner loops in M-step. Besides, the weight matrix prevents us from solving the whole objective in the frequency domain to speed up the convolution. In our proposed method, we develop a new solver to update the dictionary and codes together by a nonconvex accelerated proximal algorithm without alternating loops. Moreover, we manage to efficiently speed up the convolution in the frequency domain and calculate the part involving the weight matrix in the spatial domain. The resultant algorithm achieves comparable time and space complexity compared with state-of-the-art CSC algorithms (for square loss). Extensive experiments are performed on both synthetic data and real-world biomedical data such as local field potential signals and retinal scan images. Results show that the proposed method can model the complex underlying data noise, and obtain high-quality filters and representations.
The rest of the paper is organized as follows. Section II briefly reviews CSC and proximal algorithm. Section III describes the proposed method, Experimental results are presented in Section IV, and the last section gives some concluding remarks.
Notations: For vector , its th element is denoted , its -norm is , its -norm is , and reshapes to a diagonal matrix with elements ’s. Given another vector , the convolution produces a vector , with . For matrix , denotes its transpose, denotes its complex conjugate, is its conjugate transpose (i.e., ). denotes pointwise product. The identity matrix is denoted . is the fast Fourier transform that maps from the spatial domain to the frequency domain, while is the inverse operator which maps back to .
II Related Work
II-A Convolutional Sparse Coding
Given samples ’s, where each , CSC learns a dictionary of filters ’s, each of length , such that each can be well represented as
[TABLE]
Here, is the (spatial) convolution operation, and ’s are the codes for , each of length . The filters and codes are obtained by solving the following optimization problem
[TABLE]
where ensures that the filters are normalized, and the regularizer encourages the codes to be sparse.
To solve (2), block coordinate descent (BCD) [18] is typically used [5, 7, 19, 20, 21, 22]. The codes and dictionary are updated in an alternating manner as follows.
II-A1 Code Update
Given ’s, the corresponding ’s are obtained as
[TABLE]
Convolution can be performed much faster in the frequency domain via the convolution theorem111, where is first zero-padded to -dimensional. [27]. Combining this with the use of Parseval’s theorem222 For , . [27] and the linearity of FFT, problem (3) is reformulated in [20, 7, 21] as:
[TABLE]
II-A2 Dictionary Update
Given ’s, ’s is updated by solving
[TABLE]
Similar to the code update, it is more efficient to perform convolution in the frequency domain, as:
[TABLE]
where is a matrix with and for which is used to crop the extra dimension to recover the original spatial support, and can pad to be -dimensional. The constraint scales all filters to unit norm.
The alternating direction method of multipliers (ADMM) [24] has been commonly used for the code update and dictionary update subproblems (4) and (5)) [7, 20, 21, 22]. Each ADMM subproblem has a closed-form solution that is easy to compute. Besides, with the introduction of auxiliary variables, ADMM separates computations in the frequency domain (involving convolutions) and spatial domain (involving the regularizer and unit norm constraint).
II-B Proximal Algorithm
The proximal algorithm [28] is used to solve composite optimization problems of the form
[TABLE]
where is smooth, is nonsmooth, and both are convex. To make the proximal algorithm efficient, its underlying proximal step (with stepsize )
[TABLE]
has to be inexpensive.
Recently, the proximal algorithm has been extended to nonconvex problems where both and can be nonconvex. A state-of-the-art is the nonconvex inexact accelerated proximal gradient (niAPG) algorithm [29], shown in Algorithm 1. It can efficiently converge to a critical point of the objective.
III Proposed Method
The square loss in (2) implicitly assumes that the noise is normally distributed. In this section, we relax this assumption, and assume the noise to be generated from a Gaussian mixture model (GMM). It is well-known that a GMM can approximate any continuous probability density function [30].
As in other applications of GMM, we will use the EM algorithm for inference. However, as will be shown, the M-step involves a difficult weighted CSC problem. In Section III-C, we design an efficient solver based on nonconvex accelerated proximal algorithm, with comparable time and space complexity as state-of-the-art CSC algorithms (for the square loss).
III-A GMM Noise
We assume that the noise associated with follows the GMM distribution:
[TABLE]
where is the number of Gaussian components, is the latent variable denoting which Gaussian component belongs to, and ’s are mixing coefficients with . Variable follows the multinomial distribution , and the conditional distribution of given follows the normal distribution with mean and diagonal covariance matrix . The regularizer in (2) corresponds to the prior Laplace distribution () on each th element of : .
III-B Using Expectation Maximization (EM) Algorithm
Let denote the collection of all parameters ’s, ’s, ’s, ’s and ’s. The log posterior probability for is:
[TABLE]
This can be maximized by the Expectation Maximization (EM) algorithm [31].
The E-step computes , the posterior probability that belongs to the th Gaussian given . Using Bayes rule, we have
[TABLE]
where , and in (1).
The M-step obtains by maximizing the following upper bound of in (6) as
[TABLE]
where .
III-B1 Updating ’s, ’s, ’s
in
Given ’s, ’s and ’s, let as in (1), we obtain ’s, ’s and ’s by optimizing (8) as:
[TABLE]
Taking the derivative of the objective to zero, the following closed-form solutions can be easily obtained:
[TABLE]
III-B2 Updating ’s and ’s
in
Given ’s, ’s, ’s and ’s, we obtain ’s and ’s from (8) as:
[TABLE]
This can be rewritten as
[TABLE]
where
[TABLE]
with , and
[TABLE]
Here, is the indicator function on (i.e., if , and otherwise).
Compared with the standard CSC problem in (2), problem (12) can be viewed as a weighted CSC problem (with weight ). A CSC variant [7] puts weights on , while ours are on . In [14], the model also leads to a weighted CSC problem. However, the authors there mentioned that it is not clear how to solve a weighted CSC problem in the frequency domain. Instead, they resorted to solving it in the spatial domain, which is less efficient as discussed in Section II-A.
III-C Solving the Weighted CSC Subproblem (12)
In this section, we solve the weighted CSC problem in (12) using niAPG [29] (Algorithm 1). Note that the weights ’s in (13) is the cause that prevents us from transforming the whole objective (12) to the frequency domain. Recall that (3) is transformed to (4) by first transforming everything in norm to frequency domain by Parseval’s theorem, separately computing and by linearity of FFT, then replacing the convolution in by pointwise product using convolution theorem. However, with ’s, cannot use convolution theorem to speed up. Therefore, the key in designing an efficient solver is to only transform terms involving convolutions to the frequency domain, while leaving the weight in spatial domain. Hence we replace the term in (13) by .
The core steps in the niAPG algorithm are computing (i) the gradient w.r.t. ’s and ’s , and (ii) the proximal step . We first introduce the following Lemmas.
Lemma 1**.**
Let for . Then, , which reshapes to a diagonal matrix with elements ’s.
Proof.
, where . Then, . ∎
Lemma 2**.**
[32]** For , and , where , is the th root of unity, and . Moreover, and .
Proposition 3**.**
For in (13),
[TABLE]
where .
Proof.
can be rewritten as , where , , , , , , .
Using Lemma 1, , , and . Using Lemma 2, , , . Finally , and .
Combining all these, using chain rule for denominator layout, we obtain
[TABLE]
∎
Note that in (14) is separable333 is separable if .. This simplifies the associated proximal step, as shown by the following Lemma.
Lemma 4**.**
[28*]**
If is separable, .*
Using Lemma 4, the component proximal steps can be easily computed in closed form as [28]: , and . In the sequel, we avoid tuning by using line search [33], which also speeds up convergence empirically. The procedure for the solving the weighted CSC subproblem (13) is shown in Algorithm 2. The whole algorithm, which will be called general CSC (GCSC), is shown in Algorithm 3.
III-D Complexity Analysis
In each EM iteration, the E-step in (7) takes time. The M-step is dominated by gradient computations in (15) and (16). These take time for the underlying FFT and inverse FFT operations, and time for the pointwise product. Thus, each EM iteration takes a total of time, where is the number of niAPG iterations. Empirically, is around 50. As for space, this is dominated by the -dimensional codes for each of the samples, leading to a space complexity of .
In comparison, the state-of-the-art batch CSC method (which uses the square loss) [7] takes time per iteration and space. Usually, .
III-E Discussion with Existing CSC Works
Table I compares GCSC with existing CSC algorithms. The key differences are in noise modeling and algorithm design. First, all methods except GCSC and CSC model the noise by Gaussian distribution, and CSC uses symmetric alpha-stable distribution. Recall that GMM can approximate any continuous distribution, the noises considered previously all are special case of GMM noise. Second, all algorithms except GCSC use BCD, which alternatively updates codes and dictionary, and a majority of methods then update the codes and dictionary by ADMM separately. As GCSC already has one alternating loop between E-step and M-step, using BCD and then ADMM will bring in two more alternating loops, resulting a much slower algorithm compared with existing CSC algorithms. Therefore, we use niAPG to directly update codes and dictionary together. Empirical results in next section validate the efficiency of solving the weighted CSC problem (12) in GCSC by niAPG, rather than BCD.
IV Experiments
In this section, we perform experiments on both synthetic and real-world data sets. Experiments are performed on a PC with Intel i7 4GHz CPU with 32GB memory.
IV-A Baseline Algorithms
The proposed GCSC is compared with the following CSC state-of-the-arts:
CSC- [7]444http://www.cs.ubc.ca/labs/imager/tr/2015/FastFlexibleCSC/, which models noise by the Gaussian distribution. 2. 2.
Alpha-stable CSC (CSC) [14]555https://alphacsc.github.io/, which uses symmetric alpha-stable distribution to models noise by setting the parameters of alpha-stable distribution (with stability parameter , skewness parameter , scale parameter and position parameter ) as and where is defined as in (1).666In [14], is simply set to 1.2. Here, we choose by using a validation set, which is obtained by randomly sampling 20% of the samples.
As a further baseline, we also compare with CSC-, a CSC variant which models noise by the Laplace distribution. It is formulated as the following optimization problem:
[TABLE]
Details are in Appendix A.
We follow the automatic pruning strategy in [39] to select the number of mixture components in GCSC. We start with a relatively large . At each EM iteration, the relative difference among all Gaussians are computed:
[TABLE]
For the Gaussian pair with the smallest relative difference, if this value is small (less than 0.1), they are merged as
[TABLE]
Stopping Criteria
The optimization problems in CSC and GCSC are solved by the EM algorithm. We stop the EM iterations when the relative change of log posterior in consecutive iterations is smaller than . In the M-step, we stop the updating of weighted CSC (Algorithm 2 for GCSC, and Algorithm in Appendix B of CSC paper [14]) if the relative change of the respective objective value is smaller than .
The optimization problems in CSC- and CSC- are solved by BCD. Alternating minimization is stopped when the relative change of objective value ((2) for CSC- and (17) for CSC-) in consecutive iterations is smaller than . As for the optimization subproblems of ’s (given ’s) and ’s (given ’s), we stop when the relative change of objective value is smaller than .
IV-B Synthetic Data
In this experiment, we first demonstrate the performance on synthetic data. Following [14], we use filters ’s (triangle, square, and sine), each of length (Figure 2(a)). Each is normalized to have zero mean and unit variance. Each has only one nonzero entry, whose magnitude is uniformly drawn from (Figure 2(b)). clean samples, each of length , are generated as: (Figure 2(c)).
Noise is then added to generate observations ’s. Following [39], different types of noise are considered (Table II). The alpha-stable noise we considered is Cauchy distribution, which is one representative symmetric alpha-stable distribution apart from Gaussian and should be modeled well by CSC and GCSC.
IV-B1 Quantitative Evaluation
Following [39, 40], performance is evaluated by the mean absolute error (MAE) and root mean squared error (RMSE):
[TABLE]
where is the reconstruction based on the obtained ’s and ’s. Results are averaged over five runs with different initializations of ’s and ’s.
Results are shown in Table III. When there is no noise, all methods obtain MAE and RMSE in the same order of magnitude. When there is noise, intuitively, the model whose underlying noise assumption matches the actual noise distribution will perform the best. Empirically, GCSC is the best or comparable with the best method on all types of noise.
As for time, CSC- and GCSC are the fastest in general. CSC- is slower as it needs more auxiliary variables in ADMM to handle the nonsmooth loss (details are in Appendix A). CSC is the slowest, as it performs in the spatial domain which is costly. Moreover, it requires expensive Markov chain Monte Carlo (MCMC) in its E-step.
IV-B2 Visual Comparison
Figure 3 compares the ground truth noise with those fitted by the models. As can be seen, GCSC models the noise well for all types of noise, while the other methods only model the noise well when its underlying noise distribution matches the actual noise.
Figure 4 shows the learned filters. As can be seen, GCSC can recover the underlying filters more reliably. Figure 5 further shows the reconstructions on synthetic data with nonzero-mean noise. GCSC is the only one that denoises well and recover the underlying the clean data.
IV-B3 Solving (12): niAPG vs BCD
We first consider solving (12) in the M-step of one EM iteration. The details of BCD solver are in Appendix B. Figure 6 shows convergence of solving (12) with time on synthetic data with nonzero-mean noise. As shown, niAPG converges much faster than BCD. It rapidly starts to reduce objective and converges to a smaller objective. Thus, using niAPG to solve the (weighted) CSC problem is a more efficient choice.
Further, we show the performance of the whole GCSC with GMM loss using different solvers for (12) in the M-step in Table IV. Although the two solvers obtain similar MAE and RMSE, BCD solver takes much longer time than niAPG solver.
IV-C Local Field Potential Data
In this section, experiments are performed on two real local field potential (LFP) data sets from [14]. LFP is an electrophysiological signal recording the collective activities of a group of nearby neurons. It is closely related to cognitive mechanisms such as attention, high-level visual processing and motor control. The first signal (LFP-cortical) is recorded in the rat cortex [17], while the second one (LFP-striatal) is recorded in the rat striatum [41]. Figure 8 shows samples from these two data sets. Note that LFP-striatal contains heavier artifact as shown in the local segment. Following [14], we extract non-overlapping segments, each of length , from each data set. The other preprocessing steps and parameter setting ( and ) are the same as in [14].
Figure 7 shows the learned filters. As there is no ground truth, we can only evaluate the results qualitatively. For LFP cortical, the learned filters are similar to the local regions in segments. As for LFP striatal, severe artifacts contaminate the filters learned by CSC- and CSC-, but do not prevent GCSC and CSC from learning filters similar in shape to the clean part of the segments. We also compare the time in Table V. On both LFP-cortical and LFP striatal, GCSC is the fastest.
IV-D Retinal Image Data
In this section, we perform vessel segmentation via pixelwise classification of retinal image data sets. The pixel on the retinal vessels is classified as 1 while the pixel on the background is classified as 0. Two popular retinal image data sets, DRIVE [42] and STARE [43] obtained from [44], are used. DRIVE contains 40 images of size and STARE contains 20 images of size . Training and testing images are split in half as in [44]. Both data sets are provided with manual segmentation results from two experts. Following [12, 44], we use the first expert’s segmentation as ground truth.
The proposed GCSC is compared with CSC-, CSC- and CSC (all with and ). Following [44], each pixel, represented by the learned codes, is classified using gradient boosting [45] with 500 weak learners. From each image, 15,000 vessel pixels are sampled as positive, and 15,000 background pixels are sampled as negative. As further baselines, we compare with the provided second expert’s manual segmentation (denoted “Expert”) and the state-of-the-art handcrafted multi-scale Hessian filter (denoted “Hessian”)777https://www.mathworks.com/matlabcentral/fileexchange/63171-jerman-enhancement-filter [46]. The experiment is repeated five times.
Figure 9 shows the Receiver Operating Characteristic (ROC) and Precision-Recall (PR) curves. Table VI shows the corresponding Area Under ROC Curve (AUC) and the best F-score. As can be seen, GCSC outperforms all the other methods. CSC performs slightly better than CSC- and CSC-. The multi-scale Hessian filter is much worse. The classification performance of Expert is low, which is also noted in [12].
Figures 10 and 11 show the segmentation results from a test image from DRIVE and STARE, respectively. As can be seen, the segmentation results produced by CSC, CSC- and CSC- are still noisy. The Hessian filter shows clearer vessels, but enlarges the pupil and shrinks some tiny vessels. In contrast, GCSC obtains cleaner segmented vessels.
V Conclusion
In this paper, we propose a CSC method which is able to deal with various kinds of noises. We model the noises by Gaussian mixture model, and solve it by expectation-maximization algorithm. In the maximization step, the problem reduces to be a weighted CSC problem and we use a nonconvex and inexact accelerated proximal gradient algorithm without alternating. Extensive experiments on synthetic and real noisy biomedical data sets show that our method can model the complicated noises well and in turn obtain high-quality filters and representation.
Appendix A CSC-: Detailed Algorithm
In robust learning, the loss, which corresponds to the Laplace distribution, is often used to handle outliers. Here, we present the detailed algorithm for CSC with loss, which is called CSC- in Section IV.
The objective of CSC- is:
[TABLE]
’s and ’s are updated by BCD until convergence.
A-A Dictionary Update
Given ’s, dictionary ’s are obtained by reformulating (18) as:
[TABLE]
where ’s and ’s are auxiliary variables. This can then be solved by ADMM. We first form the augmented Lagrangian as
[TABLE]
where is the ADMM penalty parameter, ’s and ’s are dual variables. At th iteration, ADMM alternately updates ’s, ’s, ’s, ’s and ’s until convergence.
’s are updated as
[TABLE]
Convolution is more efficient in frequency domain, we update ’s therein. Let , we transform all variables to frequency domain (denoted as symbol with hat) using FFT as , , , , and where is the padding matrix used as in (5). Using these frequency-domain variables, (19) can be written as:
[TABLE]
This can be solved by closed form solution. Using the reordering trick used in [21, 37], we first put all ’s in the columns of , as well as , , and . Then th row is updated as
[TABLE]
Then can be recovered as .
Each is then independently updated as
[TABLE]
with closed-form solution for th element:
[TABLE]
where .
is updated as
[TABLE]
with closed-form solution
[TABLE]
Finally, and are updated as:
[TABLE]
A-B Code Update
Given ’s, the codes ’s for for each sample can be obtained one by one by rewriting (18) as:
[TABLE]
where and ’s are auxiliary variables.
Using ADMM, we introduce and as dual variables, then the augmented Lagrangian is constructed as
[TABLE]
At th iteration, ADMM alternately updates ’s, , ’s, and ’s until convergence.
’s are updated as
[TABLE]
Similar to how we solve (19), we let , and transform all variables to frequency domain as , , , , and . Then (21) can be written as:
[TABLE]
Using the reordering trick, we define , , , and . Then th row is updated as
[TABLE]
Then is recovered as .
Each is then independently updated as
[TABLE]
Similar to (20), is updated in closed-form as
[TABLE]
where .
Each is updated as
[TABLE]
with closed-form solution:
[TABLE]
where .
Finally, and are updated as:
[TABLE]
Appendix B Solving (12) by BCD
As stated in the main text, we mention that solving (12) by niAPG is faster than BCD with both ’s and ’s being solved by ADMM. Here we detail how to solve (12) by BCD.
B-A Filter Update
Given ’s, ’s are obtained by solving the following objective:
[TABLE]
where ’s and ’s are auxiliary variables. This can then be solved by ADMM. We first form the augmented Lagrangian as
[TABLE]
where is the ADMM penalty parameter, ’s and ’s are dual variables. At th iteration, ADMM alternately updates ’s, ’s, ’s, ’s and ’s until convergence.
’s are updated as
[TABLE]
Since convolution is more efficient in frequency domain, we update ’s therein. Let , and transform all variables to frequency domain (denoted as symbol with hat) using FFT as , , , , and . Using these frequency-domain variables, (22) can be written as:
[TABLE]
This can be solved by closed form solution. Using the reordering trick used in [21, 37], we first put all ’s in the columns of , as well as , , and . Then th row is updated as
[TABLE]
where . can be recovered as .
Each is independently updated as
[TABLE]
with closed-form solution for th element:
[TABLE]
where .
is updated as
[TABLE]
with closed-form solution
[TABLE]
Finally, and are updated as:
[TABLE]
B-B Code Update
In the codes update subproblem, ’s can be independently updated for each . The objective to solve is:
[TABLE]
where ’s and ’s are auxiliary variables.
Using ADMM, we introduce ’s and ’s as dual variables, then the augmented Lagrangian is constructed as
[TABLE]
At th iteration, ADMM alternately updates ’s, ’s, ’s, ’s and ’s until convergence.
’s are updated as
[TABLE]
Let , and transform all variables to frequency domain as , , , , and . Then (24) can be written as:
[TABLE]
Using the reordering trick, we define , , , and . Then th row is updated as
[TABLE]
where . is recovered as .
Each is independently updated as
[TABLE]
Then similar to (23), is updated as
[TABLE]
where .
Each is updated as
[TABLE]
with closed-form solution:
[TABLE]
where .
Finally, and are updated as:
[TABLE]
The reference list from the paper itself. Each links out to its DOI / PubMed record.
- 1[1] M. Aharon, M. Elad, and A. Bruckstein, “K-SVD: An algorithm for designing overcomplete dictionaries for sparse representation,” IEEE Transactions on Signal Processing , vol. 54, no. 11, pp. 4311–4322, 2006.
- 2[2] H. Lee, A. Battle, R. Raina, and A. Ng, “Efficient sparse coding algorithms,” in Advances in Neural Information Processing Systems , 2007, pp. 801–808.
- 3[3] J. Mairal, F. Bach, J. Ponce, G. Sapiro, and A. Zisserman, “Non-local sparse models for image restoration,” in International Conference on Computer Vision , 2009, pp. 2272–2279.
- 4[4] J. Yang, K. Yu, Y. Gong, and T. Huang, “Linear spatial pyramid matching using sparse coding for image classification,” in Conference on Computer Vision and Pattern Recognition , 2009, pp. 1794–1801.
- 5[5] M. Zeiler, D. Krishnan, G. Taylor, and R. Fergus, “Deconvolutional networks,” in IEEE Conference on Computer Vision and Pattern Recognition , 2010, pp. 2528–2535.
- 6[6] Y. Zhu and S. Lucey, “Convolutional sparse coding for trajectory reconstruction,” IEEE Transactions on Pattern Analysis and Machine Intelligence , vol. 37, no. 3, pp. 529–540, 2015.
- 7[7] F. Heide, W. Heidrich, and G. Wetzstein, “Fast and flexible convolutional sparse coding,” in IEEE Conference on Computer Vision and Pattern Recognition , 2015, pp. 5135–5143.
- 8[8] A. Cogliati, Z. Duan, and B. Wohlberg, “Context-dependent piano music transcription with convolutional sparse coding,” IEEE/ACM Transactions on Audio Speech and Language Processing , vol. 24, no. 12, pp. 2218–2230, 2016.
