1: |
inputs: maximum rank r, maximum range for regularization parameters ϵmax, number of regularization parameter grid points ngrid, training set indices Ttrain⊆{1, … , N} and cross-validation set indices TCV⊂{1, … , N} where Ttrain∩TCV = ∅, paired data samples (st, yt) for all t ∈ Ttrain∪TCV, initial guess for weights a, h, U, and V, set πk for all k = 1, … , r, maximum iterations Mmax, convergence precision δp, maximum failures to find a better solution σmax
|
2: |
initialization: J ← UVT, Lbest ← L(a, h, U, V)|TCV (evaluated over data indices t ∈ TCV), regularization grid resolution δϵ ← ϵmax/ngrid, early completion switch σ ← 1 |
3: |
|
4: |
for
m ← 1, … , Mmax
do
|
5: |
for
k ← 1, … , r
do
|
6: |
a′ ← a, h′ ← h, ,
|
7: |
J ← J − u′ v′T ⊳ remove block k from J
|
8: |
for
n ← 0, … , ngrid
do
|
9: |
ϵk ← nδϵ
|
10: |
a′, h′, u′, v′ ← Solve the block k subproblem (Equation 13) using an |
11: |
interior-point method algorithm with inputs a′, h′, u′, v′, J, |
12: |
ϵk, πk, (st, yt):∀t ∈ Ttrain
|
13: |
|
14: |
if
then
|
15: |
|
16: |
a ← a′, h ← h′, ,
|
17: |
σ ← 0 |
18: |
else if
then
|
19: |
a ← a′, h ← h′, , (or skip for monotonic convergence) |
20: |
⊳ include block k's solution in J
|
21: |
if σ = σmax
then
|
22: |
break ⊳ optimization has finished |
23: |
σ ← σ + 1 |
24: |
|
25: |
outputs:
a, h, J
|