Skip to main content
. Author manuscript; available in PMC: 2020 May 24.
Published in final edited form as: Neuroimage. 2018 Nov 5;186:557–569. doi: 10.1016/j.neuroimage.2018.10.072

Algorithm 1.

decentralized joint ICA (djICA)

Require: data {Xi,redr×Ni:i=1,2,,s}, where r is the same across sites, tolerance level t = 10−6, j = 0, maximum iterations J,ΔW(0)22=t, initial learning rate ρ = 0.015/ln(r)
1: Initialize Wr×r ⊳ for example, W = I
2: while j<J,ΔW(j)22t do
3: for all sites i = 1, 2, . . . , s do
4:   Zi(j)=W(j1)Xi+b(j1)1
5:   Yi(j)=g(Zi(j))
6:   Gi(j)=ρ(I+(12Yi(j))Zi(j))W(j1)
7:   hi(j)=ρm=1Ni(12ym,i(j))
8:   Send Gi(j) and hi(j) to the aggregator site.
9: end for
10:  At the aggregator site, update global variables
11: ΔW(j)=i=1sGi(j)
12: W(j)=Wi(j1)+ΔW(j)
13: b(j)=b(j1)+i=1shi(j)
14:  Check upper bound and learning rate adjustment.
15:  Send global W(j) and b(j) back to each site
16: end while