Autoencoder - BD-SEARCH/MLtutorial GitHub Wiki
Autoencoder(์คํ ์ธ์ฝ๋)๋ ์ธํ๊ณผ ์์ํ ๋ ธ๋์ ์๊ฐ ๊ฐ์ ์ธ๊ณต์ ๊ฒฝ๋ง์ ์ด์ฉํด Unsupervised Learning์ผ๋ก feature๋ฅผ ์ถ์ถํ๋ ๋ฐฉ๋ฒ์ด๋ค.
input layer ๋ ธ๋ ์์ output layer ๋ ธ๋ ์๊ฐ ๊ฐ์ผ๋ฏ๋ก hidden layer์ ์๊ฐ ๊ทธ๋ณด๋ค ๋ง๊ณ (sparsity) ์ ์(reconstructed)์ ์ฌ๋ถ๊ฐ ์ค์ํ๋ค. ๋ฐ๋ผ์ Autoencoder๋ฅผ ํตํด hidden layer์ input ๋ฐ์ดํฐ๋ฅผ ์์ถ์ ์ผ๋ก ์ ์ฅํจ์ผ๋ก์จ ์๋ณธ ๋ฐ์ดํฐ์ feature์ ํจ๊ณผ์ ์ผ๋ก ์ถ์ถํ ์ ์๋ค.
- hidden layer์์ ์ถ์ถํ feature๋ฅผ SVM, ์ธ๊ณต์ ๊ฒฝ๋ง, Softmax Classifier์ ์ง์ด๋ฃ์ด ๋ถ๋ฅ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์๋ค.
๊ณ ์ฐจ์์ vector ๊ฐ๋ค์ ์ ์ฐจ์์ vector๋ก ๋ํ๋ผ ์ ์๊ฒ ๋ชฉ์ ์ด๋ค. ์๋ฅผ ๋ค์ด Word2Vec๊ณผ ๊ฐ์ด One-hot encoding(์ด๋ ๋ฒกํฐ์์ ๊ฐ๊ฐ์ ๋จ์ด๊ฐ ํ๋์ ์ฐจ์์ ๊ฐ์ง๋๋ก ์ธ์ฝ๋ฉ) ์๋ง~์์ญ๋ง ๊ฐ์ ๋จ์ด๋ฅผ 200์ฐจ์์ vector๋ก ๋ง๋ค ๋ Autoencoder๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
Autoencoder์ ๊ตฌ์กฐ๋ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ๋ค. ์ด Model์ ๋ชฉ์ ์ ์ด๋ ๊ฐ์ ์ ๋ ฅํ๋ฉด ๋๊ฐ์ ๊ฐ์ ๊ทธ๋๋ก ์ถ๋ ฅํ๋ ๊ฒ์ด๋ค. encoder ๋ถ๋ถ์์ ์ถ์์ ์ธ feature๋ฅผ ์ฐพ๊ณ , decoder ๋ถ๋ถ์์ ์ถ์์ ์ธ feature๋ฅผ ๋ฐํ์ผ๋ก ๋ค์ ์๋ ๊ฐ์ ์ถ์ ํ๋ ๊ฒ์ด๋ค. Code Layer์ ๊ฐ์ด feature๊ฐ ์ถ์ถ๋ ๊ฐ์ด๋ค. ์ฌ๊ธฐ์ Code Layer์ ํฌ๊ธฐ๋ Input/Output Layer์ ํฌ๊ธฐ๋ณด๋ค ์์์ผ ํ๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด Input Layer์ ๊ฐ์ ๊ทธ๋๋ก ๋ณต์ ํด์ Output Layer๋ก ๋ด ๋๊ฒ ๋๋ฉฐ, ๊ณ ์ฐจ์์ vector๋ฅผ ์ ์ฐจ์ vector๋ก ์ค์ด๊ณ ์ ํ๋ Autoencoder์ ๋ชฉ์ ๊ณผ๋ ๋ง์ง ์๋๋ค.
- ๋น์ง๋ ํ์ต - ์คํ ์ธ์ฝ๋(Autoencoder): Autoencoder ์๊ฐ ๋ฐ MNIST ์์
- ์ธ๊ณต ์ ๊ฒฝ๋ง์ ๊ดํ ์ค๋ช . ์คํ ํฌ๋ ๋ํ ์ค๋๋ฅ ์ ๊ต์์ sparse autoencoder ์ ๋ฆฌ ๋ ธํธ๋ก ์ธ๊ณต์ ๊ฒฝ๋ง ์ดํดํ๊ธฐ
- ์คํ ์ธ์ฝ๋๋ฅผ ์ด์ฉํ ๋น์ ์ ๊ฑฐ๋ ๊ฒ์ถ ๋ชจ๋ธ์ ๊ตฌํ: Autoencoder์ decoder๊ฐ ํ์ต๋์ง ์์ ๋ฐ์ดํฐ์ ๋ํด์ ์ ๋์ํ์ง ์๋๋ค๋ ์ ์ ์ด์ฉํด ๋น์ ์ ๊ฑฐ๋ ๊ฒ์ถ ๋ชจ๋ธ์ ๋ง๋ค์์
- hidden layer์ ์๊ฐ ๋ ๋ง์ ๋, ์ฌ์ฉํ๋ sparsity๋ฅผ ์ํ์ ์ผ๋ก ์ดํดํ๊ธฐ