๐ง Auto - Encoder
๐คซ Auto - Encoder๋?
input์ code(hidden layer)๋ก encodingํ๋ encoder๋ถ๋ถ๊ณผ
encoding๋ code๋ฅผ ๋ค์ decodingํ๋ decoder๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.Encoding์ ์๋ data๋ฅผ ์ฐจ์์ถ์(dimensionality reduction)ํ๋ ๊ฒ์ด๋ค.
- ์ด๋, ์ ๋ ฅ์ธต๋ณด๋ค ์ ์ ์์ ๋ ธ๋๋ก ์ด๋ฃจ์ด์ง ์๋์ธต(์ผ๋ช , code)์ ์ค๊ฐ์ ๋ฃ์ด ์ฐจ์์ ์ค์ธ๋ค.
Decoding์ ์ฐจ์์ถ์(dimensionality reduction)๋ data๋ฅผ ์๋ data๋ก ๋ณต์ํ๋ ๊ฒ์ด๋ค.
- code๋ฅผ ๋ค์ ์๋ ์ ๋ ฅ์ธต๊ณผ ๊ฐ์ ํฌ๊ธฐ์ ๊ฒฐ๊ณผ๋ฌผ๋ก ์ถ๋ ฅํ๋ค.
์๋ auto-encoder๋ ์ด์ ๊ธฐ๊ณํ์ต์์ ๋งํ๋ฏ, PCA(์ฃผ์ฑ๋ถ ๋ถ์)๊ณผ ๊ฐ์ ์ฐจ์์ถ์๋ฅผ ์ํด ์ฌ์ฉํ์๋ค.
ํ์ง๋ง, ํ์ฌ๋ ๋ฐ์ดํฐ ์์ฑ๋ชจํ์ผ๋ก๋ ์ฌ์ฉ๋๊ณ ์์ผ๋ฉฐ, ์ด๋ auto-encoder๋ ๋น์ง๋ํ์ต(unsupervised learning)์ ์ํ๋ค.
๐คซ Auto-Encoder์ ๋ด๋ถ ๊ตฌ์กฐ ๋ฐ formula์ ๋ ฅ๋ฐ์ดํฐ์ ์ถ๋ ฅ์ธต์ ๋ฒกํฐ๋ฅผ ๐, code(์๋์ธต)์ ํด๋นํ๋ ๋ฒกํฐ๋ฅผ ๐ ๋ผ ํ ๋,
encoder ษธ์ decoder ๐์ ๋ํด ์๋์ ์์๊ณผ ๊ฐ์๋,์๋์ธต์ ํด๋นํ๋ code๋ ์๋์ ๊ฐ์ด ๋ํ๋ผ ์ ์๋ค.
h = ษธ1 (W1x + b1). (์ด๋, ษธ๋ ์๋์ธต์ ํ์ฑํจ์๋ฅผ ์๋ฏธ, W์ b๋ randomํ๊ฒ ์ด๊ธฐํ, ์ญ์ ํ๋ฒ์ผ๋ก ํ์ต๋จ)
์๋์ธต์ ํด๋นํ๋ code๋ฅผ decodingํ๋ ๊ณผ์ ์ ์๋์ ๊ฐ์ด ๋ํ๋ผ ์ ์๋ค.
๐' = ษธ2 (W2x + b2).
์ดํ auto-encoder๋ ์ ๋ ฅ ๋ฐ์ดํฐ ๋ฒกํฐ ๐์ ์ถ๋ ฅ์ธต์ผ๋ก ๋ณต์๋ data๋ฒกํฐ๐'๊ฐ์ ๋ณต์ ์๋ฌ๋ฅผ ์ค์ด๋ ๋ฐฉํฅ์ผ๋ก ํ์ตํ๋ค.
= || x - ษธ2 (W2(ษธ1(W1x + b1)) + b2) || ^2
๐คซ Auto-Encoder์ ํจ๊ณผ
๐คซ Auto-Encoder vs. GANGAN: original๊ณผ ์๊ด์๋ ๊ฒฐ๊ณผ๋ฌผ์ ์์ฑ
Auto-Encoder: original์ ํน์ง์ ์ ์ด๋ฆฐ ๊ฒฐ๊ณผ๋ฌผ์ ์์ฑ
๐ง GAN (Generative Adversarial Networks)
๐คซ GAN์ด๋?
์ด๊ธฐ ๋ฅ๋ฌ๋: Drop-out๊ณผ BackPropagation์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ณ๋ชจ๋ธ(discriminative model)์ ์ฌ์ฉ
์ด๋ ๋ฐ์ดํฐ ํ๋ณ์์ ์ข์ ์ฑ๋ฅ์ ๋ฐํํ๋๋ฐ, ๋ํ์ ์ผ๋ก classification, regression์ด ์๋ค.
๋ฐ๋ฉด, ์์ฑ๋ชจ๋ธ(generative model)์ ๊ฒฝ์ฐ, ๋ณต์กํ ํ๋ฅ ๊ณ์ฐ์ผ๋ก ์ด๋ ค์์ ๊ฒช์๋ค.
GAN(Generative Adversial Network)์ ํ๋ณ๋ชจ๋ธ๊ณผ ์์ฑ๋ชจ๋ธ, ๋ ์ ๊ฒฝ๋ง์ ๊ฒฝ์(adversial)์ ํตํด ํ์ต์ํค๋ ์ ๊ฒฝ๋ง์ด๋ค.
ํ๋ณ๋ชจ๋ธ์ ๋ชฉ์ : ์ฃผ์ด์ง ๋ฐ์ดํฐ๊ฐ original์ธ์ง ์์ฑ๋ชจ๋ธ์ด ๋ง๋ ๊ฐ์ง์ธ์ง ๊ตฌ๋ถํ๋ ๊ฒ
์์ฑ๋ชจ๋ธ์ ๋ชฉ์ : ํ๋ณ๋ชจ๋ธ์ด ๊ตฌ๋ถํ ์ ์๋๋ก ์ง์ง๊ฐ์ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ ๊ฒ
์ด๋ฐ GAN์ ํ๋ณ๋ชจ๋ธ์ด ์ง์ง์ ๊ฐ์ง์ ๊ตฌ๋ถ์ด ๋ถ๊ฐํ ๋๊น์ง ๋ฐ์ ํ๋๋ฐ, ์๋์ ๊ฐ๋ค.
1. ๊ฐ์ง ๋ฐ์ดํฐ๋ ํ๋ณ๋ชจ๋ธ์ ํ์ต๋จ๊ณ์์ target data 0์ ๋ผ๋ฒจ๋งํด ํ๋ณ๋ชจ๋ธ์ ํ์ต๋์์ด ๋๋ค.
2. ์์ฑ๋ชจ๋ธ์ ํ์ต๋จ๊ณ์์ ๊ฐ์ง๋ฐ์ดํฐ์ target data๋ฅผ 1๋ก ์ค์ , ๊ฐ์ง๋ฅผ ์ง์ง๋ก ํ๋ณํ๋ ํ๋ฅ ์ ๊ตฌํ๋ค.
์ด๋, ๊ฒฝ์์ ๋์์ด ๋๋ ์ง์ง๋ ํ๋ณ๋ชจ๋ธ์ ํ์ต๋จ๊ณ์์ target data๋ฅผ 1๋ก ๋ฐ์ ํ๋ณ๋ชจ๋ธ์ ๊ฑฐ์น๋ค.
๐คซ Auto-Encoder vs. GAN
GAN: original๊ณผ ์๊ด์๋ ๊ฒฐ๊ณผ๋ฌผ์ ์์ฑ
Auto-Encoder: original์ ํน์ง์ ์ ์ด๋ฆฐ ๊ฒฐ๊ณผ๋ฌผ์ ์์ฑ
๐ง GAN Algorithm
1. ๋๋ค ๋ฐ์ดํฐ ๋ถํฌ Pz๋ก๋ถํฐ ๋๋ค๋ฐ์ดํฐ z๋ฅผ ์ถ์ถ.
2. 1์์ ์ถ์ถํ random data๋ฅผ ์์ฑ๋ชจ๋ธ์ ๋ฃ๊ณ ์์ฑ๋ชจ๋ธ์ ํตํด ๊ฐ์ง๋ฅผ ์์ฑ.
3. 2์์ ์ป์ ๊ฐ์ง์ค m๊ฐ๋ฅผ ์ถ์ถํด ๋ฏธ๋ ๋ฐฐ์น {z1, . . . , zm}์ผ๋ก ์ค์ .
4. ์ง์ง๋ฐ์ดํฐ์ธ train dataset ๋ถํฌ Pdata(x)์์ m๊ฐ๋ฅผ ์ถ์ถ, ๋ฏธ๋ ๋ฐฐ์น {x1, . . . , xm}์ผ๋ก ์ค์ .
5. ์๋์ ๊ฐ์ gradient๋ฅผ ์ด์ฉ, ํ๋ณ๋ชจ๋ธ์ update.
ํ๋ณ๋ชจ๋ธ์ ๊ฐ์นํจ์(value function)๋ฅผ ์ต์ํํ๋ ๊ฒ์ด ์๋ ์ต๋ํ ํ๋ ๊ฒ์ด ๋ชฉ์ .
๋ฐ๋ผ์ ์๋์ ๊ฐ์ gradient ascent๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.์ด์ ์ gradient descent๋ gradient์ (-)๋ถํธ๋ฅผ ๋ถ์ด์ง๋ง
gradient ascent๋ gradient์ (+)๋ถํธ๋ฅผ ๋ถ์ธ๋ค.
6. 1~5์ ๊ณผ์ ์ k๋ฒ ๋ฐ๋ณต (k๋ ํ๋ณ๊ธฐ ํ์ต๋จ๊ณ๋ก ์ฌ์ฉ์๊ฐ ์ง์ ์ค์ ๊ฐ๋ฅ)
7. ๋๋ค ๋ฐ์ดํฐ ๋ถํฌ Pz๋ก๋ถํฐ random data z๋ฅผ ์ถ์ถ
8. 7์์ ์ถ์ถํ random data๋ฅผ ์์ฑ๋ชจ๋ธ์ ๋ฃ๊ณ ๊ฐ์งdata ์์ฑ
9. 8์์ ์ป์ ๊ฐ์ง ์ค m๊ฐ๋ฅผ ์ถ์ถ, ๋ฏธ๋ ๋ฐฐ์น {z1, . . . , zm}์ผ๋ก ์ค์ .
10. ์๋์ ๊ฐ์ gradient๋ฅผ ์ด์ฉํด ์์ฑ๊ธฐ๋ฅผ update.
์์ฑ๋ชจ๋ธ์ ๊ฐ์นํจ์(value function)๋ฅผ ์ต์ํํ๋ ๊ฒ์ด ๋ชฉ์ .
๋ฐ๋ผ์ ์๋์ ๊ฐ์ gradient descent๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
11. 1~10๋จ๊ณ๋ฅผ ๋ฐ๋ณต
'A.I > Deep Learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
self.DL.(05-2). GAN ์ค์ต_MNIST (0) | 2023.01.19 |
---|---|
self.DL.(05-1). Auto - Encoder ์ค์ต_MNIST (0) | 2023.01.19 |
self.DL.(04-1). RNN (์ํ ์ ๊ฒฝ๋ง)์ค์ต_IMDB (0) | 2023.01.19 |
self.DL.(04). RNN, LSTM, GRU (Recurrent Neural Network, Long Short Term Memory, Gated Recurrent Unit) (0) | 2023.01.18 |
self.DL.(03-1). CNN (ํฉ์ฑ๊ณฑ ์ ๊ฒฝ๋ง)์ค์ต_MNIST (0) | 2023.01.18 |