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: |
| 11: Update parameters in gl by minimizing using SGD |
| 12: end for |
| 13: |
| 14: Set the first target: |
| 15: for l = L to 2 do |
| 16: |
| 17: end for |
| 18: |
| 19: for l = 1 to L do |
| 20: if l < L |
| 21: if l = L |
| 22: Update parameters in fl by minimizing using SGD |
| 23: end for |