ML Lecture 16: Unsupervised Learning - Auto-encoder
Auto-encoder的想法:
找一個encoder,可以input一個東西,output一個code(output dim通常遠小於input dim,達到一個壓縮的效果)圖中例子input是一張image,encoder本身是一個NN
code又稱作 Embedding, Latent Representation 或 Latent Code,這個code可以代表整個輸入,有一種input的壓縮版、精簡版的感覺
找一個decoder,input encoder的output (code),output一個東西,decoder本身是一個NN
這裏用output一張image來舉例,因為input也是image
由於沒有labeled data,所以沒辦法train這些NN,但如果把encoder與decoder接起來,就可以train了,這就是auto-encoder
這邊複習一下PCA:
PCA先有一個input $x$,乘上一個$W$,得到component $c$,乘上$W^T$得到 $\hat x$
minimize input跟reconstructure的結果,也就是讓 $x$ 與 $\hat x$ 越接近越好
如果看成NN,就是一個 input layer 一個 hidden layer (PCA中是linear) 與一個 output layer
這個hidden layer又稱bottleneck ,因為通常input跟output維度都很大,為了降維,這層的維度通常會小很多, 就像一個瓶口這樣
如果把component想成code的話,前面就是在做encode,後面就是在做decode,hidden layer output就是要找的code
PCA只有一層,但auto-encoder可以很deep