1: |
inputs: maximum rank r, paired data samples (st, yt) for all t, initial guess for weights a, h, U, and V, set πk for all k = 1, … , r, maximum number of iterations Mmax, regularization parameter precision δϵ, convergence precision δx
|
2: |
initialization: J ← UVT
|
3: |
|
4: |
for m ← 1, … , Mmax
do
|
5: |
for
k ← 1, … , r
do
|
6: |
a′ ← a, h′ ← h, U′ ← U, V′ ← V
|
7: |
⊳ remove block k from J
|
8: |
λL ← max(|λmax(∇JL)|, |λmin(∇JL)|) evaluated with primed variables and J
|
9: |
do
|
10: |
ϵk ← λL
|
11: |
a′, h′, , Solve the block k subproblem (Equation 13) using an |
12: |
interior-point method algorithm with inputs a′, h′, , , J, |
13: |
ϵk, πk, (st, yt):∀t
|
14: |
λL ← max(|λmax(∇JL)|, |λmin(∇JL)|) ⊳ update eigenvalue threshold |
15: |
while ϵk ∉ [λL, λL + δϵ] |
16: |
⊳ include kth block solution in J
|
17: |
a ← a′, h ← h′, U ← U′, V ← V′ |
18: |
if
and {ϵk:ϵk ∉ [λL, λL + δϵ], ∀k} = ∅ then
|
19: |
(where
and
x′ is the analogous vector for primed weights)
|
20: |
break ⊳ optimization has finished |
21: |
|
22: |
outputs:
a, h, J
|