๋ณธ ๊ธ์ ๋ค์ ๊ฐ์๋ฅผ ๋ฃ๊ณ ์ ๋ฆฌํ์์ต๋๋ค.
https://www.youtube.com/watch?v=9mf4maQU7UY&list=PLQASD18hjBgyLqK3PgXZSp5FHmME7elWS&index=7
# Autoencoder
Autoencoder์ input๊ณผ output์ด ๋์ผํ ๋ฅ๋ฌ๋ ๋ชจ๋ธ์ด๊ณ ,
Encoding์ ๊ณ ์ฐจ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฐจ์์ผ๋ก ์์ถํ๋ ๊ณผ์ ์ ์๋ฏธํ๋ค. (ex. ์์ ๊ทธ๋ฆผ, 100์ฐจ์ -> 2์ฐจ์)
๊ทธ๋ฆฌ๊ณ ์์ถํ ๊ฒ์ ๋ค์ ์๋์ input ํํ์ ํฌ๊ธฐ๋ก ๋ณต์ํ๋ Decoding์ด ์๋ค.
์์ถํ ๋ถ๋ถ์ ์๋ฏธํ๋ $z$๋ code, latent variable, feature, hidden representation ๋ฑ ๋ค์ํ๊ฒ ๋ถ๋ฅธ๋ค.
๋ถ๋ช ๋ณธ ์ฐจ์์ ์ค์ฌ latent variable๋ฅผ ๋ง๋ค์์ผ๋ฉด, ๋ง์ ์ ๋ณด๋ค์ด ์์ค์ด ๋์์ํ ๋ฐ
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ decoding์ ํ์ ๋ input๊ณผ ๋น์ทํ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ง ์ ์๋ ์ด์ ๋ ๋ฌด์์ผ๊น?
๋ฐ๋ก latent variable์๋ 'ํต์ฌ ์ ๋ณด'๋ง์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ด๋ค.
์์ ๋ฐฐ์ด, ์ฐจ์ ์ถ์์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์๊ฐ Autoencoder์ด๋ค.
input ์ด๋ฏธ์ง $x$์ output ์ด๋ฏธ์ง $y$์ ์ฌ์ด์ฆ๋ ๋์ผํ๊ณ ,
์ด ๋ ์ฌ์ด์ ์ฐจ์ด๊ฐ์ธ loss $L(x,y)$์ ์ค์ฌ๋๊ฐ๋ ๋ฐฉ์์ผ๋ก ํ์ต์ด ๋๋ค.
(์ฌ๊ธฐ์๋ $x$์ $y$์ ์ฐจ์ด๋ฅผ ํฝ์ ๋น MSE๋ก ๋น๊ต)
์ฌ์ค label์ ์ฃผ์ด์ง์ง ์์๊ธฐ ๋๋ฌธ์ unsupervised๊ฐ ๋ง์ง๋ง,
์ ๋ ฅ ์ด๋ฏธ์ง ์์ฒด๊ฐ label ์ญํ ์ ํด์ฃผ๊ธฐ ๋๋ฌธ์ supervised์ฒ๋ผ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
Autoencoder์ ๋ชฉ์ ์ encoder์ด๊ธฐ ๋๋ฌธ์ ์ ์์ถํ๋ ๊ฒ์ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ค.
์ด๋ฐ์ Encoder๊ณผ Decoder์ ๊ตฌ์กฐ๋ NN์ด์์ง๋ง,
์ต๊ทผ์์๋ CNN ๊ตฌ์กฐ๋ ๋ง์ด ์ฐ์ด๊ณ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ Convolutional AE (CAE)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ค์ ๋ก ์ด๋ฏธ์ง๋ฅผ ์์ถํ ๋, NN๋ณด๋ค CNN์ ์ฌ์ฉํ์ ๋ ํ๋ฆฌํฐ๊ฐ ๋ ์ข์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ค์ ๋ก ์ฝ๋๋ฅผ ์ดํด ๋ณด๋ฉด, ๊ธฐ์กด ๋ค๋ฅธ ์ฝ๋์์ model.fit(x,y)ํ ๊ฒ๊ณผ ๋ฌ๋ฆฌ
autoencoder์์๋ ์๊ธฐ ์์ ์ label์ฒ๋ผ ์ฌ์ฉํ๋ฏ๋ก model.fit(x_train, x_train)์ผ๋ก ์ฝ๋๋ฅผ ์ด ๊ฒ์ ํ์ธํ ์ ์๋ค.
# Autoencoder Application 1 - Supervised Learning
autoencoder์ transfer learning์๋ ์ฌ์ฉ๋ ์ ์๋ค.
unlabeled ์ด๋ฏธ์ง๋ค์ autoencoder๋ก ํ์ต์ ํ๊ณ decoder ๋ถ๋ถ์ ๋๋ค.
์ดํ encoder ๋ถ๋ถ์ frozen์ํค๊ณ classifier๋ฅผ ๋ถ์ฌ label์ด ์๋ data์ ๋ํด์ finetuning์ ํ์ฌ ํ์ต์ ํ๋ ๊ณผ์ ์ด๋ค.
์๋ฅผ ๋ค์ด, ๊ธฐ์กด์ ์ฌ์ง์์๋ ๋ง, ๊ณ ์์ด, ์ฌ์ ๋ฑ ๋ค์ํ ๋ฐ์ดํฐ์ ์ด ์๋ค ํ๋๋ผ๋
์ค๋ฅธ์ชฝ ๊ฒฝ์ฐ์์๋ label์ด ์๋ ๊ณ ์์ด๋ง ๋ค์ ํ์ต์ ํ๋ ๊ฒ์ด๋ค.
์ด๋ ๊ฒ encoder๋ฅผ ์ด์ฉํ๋ฉด supervised learning์์๋ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ค.
# Autoencoder Application 2 - Anomaly Detection
์ด์์น ํ์ง์๋ ๋ง์ด ์ฌ์ฉ์ด ๋๋ค.
์ ์์ธ data์ ๋ํด์๋ง autoencoder๋ฅผ ํ์ต์ํจ ํ
์ด์์น์ธ data๊ฐ ๋ค์ด์์ ๋ reconstruction error๊ฐ ์ปค์ง๋ ๊ฒ์ ์ฌ์ฉํ ๋ฐฉ๋ฒ์ด๋ค.
์ฆ, reconstruction error๊ฐ ํน์ threshold ์ด์์ด ๋์จ๋ค๋ฉด anomaly ์ด์์น๋ก ๋ถ๋ฅํ๋ ๊ฒ์ด๋ค.
๊ฒฝ์ฐ์ ๋ฐ๋ผ Type1์ด ๋ ํฐ ์๋ฌ์ผ ์๋, Type2๊ฐ ๋ ํฐ ์๋ฌ์ผ ์๋ ์๋ค.
์๋ฅผ ๋ค์ด positive๊ฐ ์์ด๋ผ๊ณ ํ๋จ์ ํ๋ค๋ฉด, ์์ด ๊ฑธ๋ ธ๋๋ฐ ์ ์์ด๋ผ๊ณ ํ๋จํ Type2๊ฐ ๋ ํฐ ์๋ฌ์ด๋ค.
๊ทธ์๋ ๋ฐ๋๋ก positive๊ฐ ์ ์ฃ๋ผ๊ณ ํ๋ค๋ฉด, ๋ฌด์ฃ์ธ๋ฐ ์ ์ฃ๋ผ๊ณ ํ๋จํ Type1์ด ๋ ํฐ ์๋ฌ์ผ ์ ์๋ค.
๊ฐ๊ฐ์ case์ ๋ง๊ฒ ์ฑ๋ฅ ์งํ๋ฅผ ๋ถ์ํ ์ ์๋ค.
'๐ Study > AI' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฅ๋ฌ๋๊ณผ ์ค๊ณ] GAN (0) | 2024.07.11 |
---|---|
[๋ฅ๋ฌ๋๊ณผ ์ค๊ณ] VAE(Variational AutoEncoder) (0) | 2024.07.10 |
[๋ฅ๋ฌ๋๊ณผ ์ค๊ณ] Unsupervised Learning ๋น์ง๋ํ์ต๊ธฐ์ด (1) | 2024.07.10 |
[cs231n] Variational Autoencoders (VAE) (0) | 2024.07.09 |
[์ธ๊ณต์ง๋ฅ] 3์ฃผ์ฐจ | ์ ํํ๊ท pytorch๋ก ๊ตฌํํ๊ธฐ 1 (๋ฐฐ์ถ๊ฐ๊ฒฉ) (0) | 2022.09.18 |