fill_SVT: Singular Value Thresholding for Nuclear Norm Optimization

Description Usage Arguments Value References See Also Examples

Description

fill.SVT is an iterative updating scheme for Nuclear Norm Minimization problem. An unconstrained parahrase of the problem introduced in fill.nuclear is

\mathrm{minimize}\quad \frac{1}{2}\|P_{Ω}(X-A) \|_F^2 + λ \| X \|_*

where P_{Ω}(X)=X_{ij} if it is observed, or 0 otherwise. It performs iterative shrinkage on newly computed singular values.

Usage

1
fill.SVT(A, lambda = 1, maxiter = 100, tol = 0.001)

Arguments

A

an (n\times p) partially observed matrix.

lambda

a regularization parameter.

maxiter

maximum number of iterations to be performed.

tol

stopping criterion for an incremental progress.

Value

a named list containing

X

an (n\times p) matrix after completion.

References

\insertRef

cai_singular_2010filling

See Also

fill.nuclear

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
## Not run: 
## load image data of 'lena128'
data(lena128)

## transform 5% of entries into missing
A <- aux.rndmissing(lena128, x=0.05)

## apply the method
fill1 <- fill.SVT(A, lambda=0.1)
fill2 <- fill.SVT(A, lambda=1.0)
fill3 <- fill.SVT(A, lambda=20)

## visualize
opar <- par(no.readonly=TRUE)
par(mfrow=c(2,2), pty="s")
image(A, col=gray((0:100)/100), axes=FALSE, main="5% missing")
image(fill1$X, col=gray((0:100)/100), axes=FALSE, main="lbd=0.1")
image(fill2$X, col=gray((0:100)/100), axes=FALSE, main="lbd=1")
image(fill3$X, col=gray((0:100)/100), axes=FALSE, main="lbd=10")
par(opar)

## End(Not run)

filling documentation built on Aug. 21, 2021, 5:09 p.m.