# Help understanding training stacked autoencoders

I've been learning about stacked autoencoders, but wasn't entirely sure how to train them. From what I understand, given layers $h_1,h_2,...,h_n$, we greedily train as follows

For every h in hidden_layers:
let prev_hs be all the previously trained hidden layers
let transformed = prev_hs(input_x)
train h'(h(transformed)) ~ transformed
delete h'
add h to list of previously trained hidden layers


Then for fine tuning, we do

Initialize new hidden layers h1', h2',...,hn' with size hn, h(n-1),..., h2, h1
Train hn'(...(h2'(h1'(hn(...(h2(h1(input_x)))))))) ~ input_x


Is this correct, and if not, what does the training procedure look like?

• Thanks, that was a typo and I've just fixed it. How would it be possible to use the decoding layers? If h1'(h1(x)) ~ x  and h2'(h2(h1(x))) ~ x, how would you use h1'? – hyperdo Oct 21 '17 at 1:46