fill.SVT {filling} | R Documentation |
Singular Value Thresholding for Nuclear Norm Optimization
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_{\Omega}(X-A) \|_F^2 + \lambda \| X \|_*
where P_{\Omega}(X)=X_{ij}
if it is observed, or 0
otherwise.
It performs iterative shrinkage on newly computed singular values.
Usage
fill.SVT(A, lambda = 1, maxiter = 100, tol = 0.001)
Arguments
A |
an |
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
Cai J, Candès EJ, Shen Z (2010). “A Singular Value Thresholding Algorithm for Matrix Completion.” SIAM Journal on Optimization, 20(4), 1956–1982. ISSN 1052-6234, 1095-7189.
See Also
Examples
## 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)