Skip to main content
. 2022 Mar 21;16:789253. doi: 10.3389/fncom.2022.789253

Algorithm 1.

Difference Target Propagation with pooling layers (single-step)

 1: Forward functions fl = conv + pooling, l = 1, …, L
 2: Backward functions gl = strided deconv, l = 1, …, L − 1
 3: Input x0
 4:
 5: for l = 1 to L do
 6:   xl = fl(xl − 1)
 7: end for
 8:
 9: for l = L to 2 do
10:   Llinv=gl(fl(xl-1))-xl-122
11:   Update parameters in gl by minimizing Llinv using SGD
12: end for
13:
14: Set the first target: x^L=xL-ηLLLxL
15: for l = L to 2 do
16:   x^l-1=xl-1-gl(xl)+gl(x^l)
17: end for
18:
19: for l = 1 to L do
20:   Ll=fl(xl-1)-x^l22 if l < L
21:   Ll=L if l = L
22:   Update parameters in fl by minimizing Ll using SGD
23: end for