IEEE Signal Processing - July 2018 - 43

square. For solving RPCA, it deliberately undersamples the
by thresholding out the very large entries of the data matrix
available full matrix M to speed up the algorithm. This algoM to return the first estimate of the sparse matrix. Thus,
t
rithm
is called NO-RMC.
S 0 = HT (M; g 0), where HT denotes the hard thresholdProjected GD is natural heuristic for using GD to solve coning operator and g 0 denotes the threshold used for it. After
strained optimization problems. To solve
this, it computes the residual M - St 0 and
projects it onto the space of rank-1 matrimin x ! C f (x), after each GD step, it projects
AltProj works by projecting the output onto the set C before moving on
ces. Thus, Lt 1 = P1 (M - St 0), where P1
the residual at each step
denotes a projection onto the space of rankto the next iteration.
1 matrices. It then computes the residual
onto the space of either
M - Lt 1 and projects it again onto the space
Robust principal component analysissparse matrices or
of sparse matrices but using a carefully
gradient descent [10]
onto the space of lowselected threshold g 1 that is smaller than
Notice that the matrix L can be decomrank matrices.
t 1; g 1). This prou u l , where Uu is an n # r
posed as L = UV
g 0 . Thus, St 1 = HT (M - L
cess is repeated until a halting criterion is
matrix and Vu is a d # r matrix. The algoreached. The algorithm then moves on to stage two. This stage
rithm alternately solves for S, Uu , Vu . Like AltProj, it also begins
proceeds similarly, but each low-rank projection is now onto
by first estimating the sparse component St 0 . Instead of hard
the space of rank rt = 2 matrices. This process is repeated for
thresholding, it uses a more complicated approach called maxsorting-thresholding for doing this. It then initializes Uut 0 and
r stages.
Vut 0 via r-SVD on M - St 0 followed by "projecting onto the set
of incoherent matrices" (we explain this in the next paragraph).
Why this works
After this, it repeats the following three steps at each iteration:
Once the largest outliers are removed, it is expected that pro1) use "max-sorting-thresholding" applied to M - Lt i - 1 to obtain
jecting onto the space of rank-1 matrices returns a reasonable
rank-1 approximation of L, Lt 1 . This means that the residual
St i; 2a) implement one GD step for minimizing the cost funcu u l + S - M 2F + 0.25 Uu l Uu - Vu l Vu F
tion L (Uu , Vu , S) : = UV
M - Lt 1 is a better estimate of S than M. Because of this, it
can be shown that St 1 is a better estimate of S than St 0 and so
over Uu while keeping Vu , S fixed at their previous values, and
the residual M - St 1 is a better estimate of L than M - St 0 .
2b) obtain Uut i by "projecting the output of step 2a onto the set of
This, in turn, means Lt 2 will be a better estimate of L than Lt 1 .
incoherent matrices"; and 3) obtain Vut i in an analogous fashion.
The proof that the initial estimate of L is good enough relies
The step "projecting onto the set of incoherent matrices"
involves the following. Recall that incoherence (denseness) of
on incoherence of left and right singular vectors of L and the
left and right singular vectors is needed for the static RPCA
fact that no row or column has too many outliers. These two
solutions to work. To ensure that the estimate of Uu after one
facts are also needed to show that each new estimate is better
than the previous.
step of GD satisfies this, RPCA-GD projects the matrix onto
the "space of incoherent matrices." This is achieved by clipping: if a certain row has norm larger than 2nr/n Uut 0 2, then
Time and memory complexity
2
each entry of that row is rescaled so that the row norm equals
The time complexity of AltProj is O (ndr log (1/e)). It operthis value.
ates on the entire matrix, so memory complexity is O (nd).

Nonconvex solutions: Projected gradient descent (Robust
principal component analysis-gradient descent and nearly
optimal-robust matrix completion)
While the time complexity of AltProj was lower than that
of PCP, there was still scope for improvement in speed. In
particular, the outer loop of AltProj that runs r times seems
unnecessary (or can be made to run fewer times). Two more
recent works [10], [17] try to address this issue. The question
asked in [10] was can one solve RPCA with computational
complexity that is of the same order as a single r-SVD? This
has complexity O (ndr (- log e)). The authors of [10] show that
this is indeed possible with an extra factor of l 2 in the complexity and with a tighter bound on outlier fractions. Here, l
is the condition number of L. To achieve this, they developed
an algorithm that relies on projected GD called RPCA-GD.
The authors of [17] use a different approach. They develop a
projected GD solution for RMC and argue that, even in the
absence of missing entries, the same algorithm provides a
very fast solution to RPCA as long as the data matrix is nearly

Nearly optimal-robust matrix completion [17]
The NO-RMC algorithm is designed to solve the more general
RMC problem. Let X denote the set of observed entries, and
let P X denote projection onto a subspace formed by matrices
supported on X . Thus, P X (A) zeroes out entries of A whose
indices are not in X and keeps other entries the same. The
set X is generated uniformly at random. NO-RMC modifies
AltProj as follows. First, instead of running the algorithm in r
stages, it reduces the number of stages needed. In the qth outer
loop, it projects onto the space of rank k q matrices (instead of
rank q matrices in case of AltProj). The second change is in
t which now also includes a GD step before
the update step of L,
the projection. Thus, the ith iteration of the qth outer loop now
computes Lt i = Pk q (Lt i - 1 + (1/p) PX (M - Lt i - 1 - St i - 1)). On
first glance, the projection onto the space of rank k q matrices
should need O (ndk q) time. However, as the authors explain,
because the matrix that is being projected is a sum of a low-rank
matrix and a matrix with many zeroes (sparse matrix as used
in fast matrix algorithms' terminology), the computational cost

IEEE Signal Processing Magazine

|

July 2018

|

43



Table of Contents for the Digital Edition of IEEE Signal Processing - July 2018

Contents
IEEE Signal Processing - July 2018 - Cover1
IEEE Signal Processing - July 2018 - Cover2
IEEE Signal Processing - July 2018 - Contents
IEEE Signal Processing - July 2018 - 2
IEEE Signal Processing - July 2018 - 3
IEEE Signal Processing - July 2018 - 4
IEEE Signal Processing - July 2018 - 5
IEEE Signal Processing - July 2018 - 6
IEEE Signal Processing - July 2018 - 7
IEEE Signal Processing - July 2018 - 8
IEEE Signal Processing - July 2018 - 9
IEEE Signal Processing - July 2018 - 10
IEEE Signal Processing - July 2018 - 11
IEEE Signal Processing - July 2018 - 12
IEEE Signal Processing - July 2018 - 13
IEEE Signal Processing - July 2018 - 14
IEEE Signal Processing - July 2018 - 15
IEEE Signal Processing - July 2018 - 16
IEEE Signal Processing - July 2018 - 17
IEEE Signal Processing - July 2018 - 18
IEEE Signal Processing - July 2018 - 19
IEEE Signal Processing - July 2018 - 20
IEEE Signal Processing - July 2018 - 21
IEEE Signal Processing - July 2018 - 22
IEEE Signal Processing - July 2018 - 23
IEEE Signal Processing - July 2018 - 24
IEEE Signal Processing - July 2018 - 25
IEEE Signal Processing - July 2018 - 26
IEEE Signal Processing - July 2018 - 27
IEEE Signal Processing - July 2018 - 28
IEEE Signal Processing - July 2018 - 29
IEEE Signal Processing - July 2018 - 30
IEEE Signal Processing - July 2018 - 31
IEEE Signal Processing - July 2018 - 32
IEEE Signal Processing - July 2018 - 33
IEEE Signal Processing - July 2018 - 34
IEEE Signal Processing - July 2018 - 35
IEEE Signal Processing - July 2018 - 36
IEEE Signal Processing - July 2018 - 37
IEEE Signal Processing - July 2018 - 38
IEEE Signal Processing - July 2018 - 39
IEEE Signal Processing - July 2018 - 40
IEEE Signal Processing - July 2018 - 41
IEEE Signal Processing - July 2018 - 42
IEEE Signal Processing - July 2018 - 43
IEEE Signal Processing - July 2018 - 44
IEEE Signal Processing - July 2018 - 45
IEEE Signal Processing - July 2018 - 46
IEEE Signal Processing - July 2018 - 47
IEEE Signal Processing - July 2018 - 48
IEEE Signal Processing - July 2018 - 49
IEEE Signal Processing - July 2018 - 50
IEEE Signal Processing - July 2018 - 51
IEEE Signal Processing - July 2018 - 52
IEEE Signal Processing - July 2018 - 53
IEEE Signal Processing - July 2018 - 54
IEEE Signal Processing - July 2018 - 55
IEEE Signal Processing - July 2018 - 56
IEEE Signal Processing - July 2018 - 57
IEEE Signal Processing - July 2018 - 58
IEEE Signal Processing - July 2018 - 59
IEEE Signal Processing - July 2018 - 60
IEEE Signal Processing - July 2018 - 61
IEEE Signal Processing - July 2018 - 62
IEEE Signal Processing - July 2018 - 63
IEEE Signal Processing - July 2018 - 64
IEEE Signal Processing - July 2018 - 65
IEEE Signal Processing - July 2018 - 66
IEEE Signal Processing - July 2018 - 67
IEEE Signal Processing - July 2018 - 68
IEEE Signal Processing - July 2018 - 69
IEEE Signal Processing - July 2018 - 70
IEEE Signal Processing - July 2018 - 71
IEEE Signal Processing - July 2018 - 72
IEEE Signal Processing - July 2018 - 73
IEEE Signal Processing - July 2018 - 74
IEEE Signal Processing - July 2018 - 75
IEEE Signal Processing - July 2018 - 76
IEEE Signal Processing - July 2018 - 77
IEEE Signal Processing - July 2018 - 78
IEEE Signal Processing - July 2018 - 79
IEEE Signal Processing - July 2018 - 80
IEEE Signal Processing - July 2018 - 81
IEEE Signal Processing - July 2018 - 82
IEEE Signal Processing - July 2018 - 83
IEEE Signal Processing - July 2018 - 84
IEEE Signal Processing - July 2018 - 85
IEEE Signal Processing - July 2018 - 86
IEEE Signal Processing - July 2018 - 87
IEEE Signal Processing - July 2018 - 88
IEEE Signal Processing - July 2018 - 89
IEEE Signal Processing - July 2018 - 90
IEEE Signal Processing - July 2018 - 91
IEEE Signal Processing - July 2018 - 92
IEEE Signal Processing - July 2018 - 93
IEEE Signal Processing - July 2018 - 94
IEEE Signal Processing - July 2018 - 95
IEEE Signal Processing - July 2018 - 96
IEEE Signal Processing - July 2018 - 97
IEEE Signal Processing - July 2018 - 98
IEEE Signal Processing - July 2018 - 99
IEEE Signal Processing - July 2018 - 100
IEEE Signal Processing - July 2018 - 101
IEEE Signal Processing - July 2018 - 102
IEEE Signal Processing - July 2018 - 103
IEEE Signal Processing - July 2018 - 104
IEEE Signal Processing - July 2018 - 105
IEEE Signal Processing - July 2018 - 106
IEEE Signal Processing - July 2018 - 107
IEEE Signal Processing - July 2018 - 108
IEEE Signal Processing - July 2018 - 109
IEEE Signal Processing - July 2018 - 110
IEEE Signal Processing - July 2018 - 111
IEEE Signal Processing - July 2018 - 112
IEEE Signal Processing - July 2018 - 113
IEEE Signal Processing - July 2018 - 114
IEEE Signal Processing - July 2018 - 115
IEEE Signal Processing - July 2018 - 116
IEEE Signal Processing - July 2018 - 117
IEEE Signal Processing - July 2018 - 118
IEEE Signal Processing - July 2018 - 119
IEEE Signal Processing - July 2018 - 120
IEEE Signal Processing - July 2018 - 121
IEEE Signal Processing - July 2018 - 122
IEEE Signal Processing - July 2018 - 123
IEEE Signal Processing - July 2018 - 124
IEEE Signal Processing - July 2018 - 125
IEEE Signal Processing - July 2018 - 126
IEEE Signal Processing - July 2018 - 127
IEEE Signal Processing - July 2018 - 128
IEEE Signal Processing - July 2018 - 129
IEEE Signal Processing - July 2018 - 130
IEEE Signal Processing - July 2018 - 131
IEEE Signal Processing - July 2018 - 132
IEEE Signal Processing - July 2018 - 133
IEEE Signal Processing - July 2018 - 134
IEEE Signal Processing - July 2018 - 135
IEEE Signal Processing - July 2018 - 136
IEEE Signal Processing - July 2018 - 137
IEEE Signal Processing - July 2018 - 138
IEEE Signal Processing - July 2018 - 139
IEEE Signal Processing - July 2018 - 140
IEEE Signal Processing - July 2018 - Cover3
IEEE Signal Processing - July 2018 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201809
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201807
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201805
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201803
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201801
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1117
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0917
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0717
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0517
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0317
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0117
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1116
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0916
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0716
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0516
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0316
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0116
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1115
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0915
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0715
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0515
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0315
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0115
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1114
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0914
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0714
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0514
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0314
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0114
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1113
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0913
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0713
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0513
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0313
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0113
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1112
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0912
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0712
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0512
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0312
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0112
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1111
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0911
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0711
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0511
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0311
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0111
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1110
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0910
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0710
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0510
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0310
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0110
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1109
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0909
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0709
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0509
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0309
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0109
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1108
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0908
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0708
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0508
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0308
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0108
https://www.nxtbookmedia.com