๐ ๊ต๋ด '์ธ๊ณต์ง๋ฅ' ์์ ์ ํตํด ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ฒ์ ๋๋ค.
1๏ธโฃ Generative model
๐ CNN, RNN
- ์ด๋ฏธ ์๋ ๋ฐ์ดํฐ ๋ถํฌ๋ฅผ ์ ์ถ์ถํ๋ ๋คํธ์ํฌ
- P(Y|X) ๐ ๋ฐ์ดํฐ ๊ฐ๊ฐ์ ์ ๊ตฌ๋ถํ๋ ํ๋ฅ ๋ถํฌ๋ฅผ ์ถ์ถ
- discriminative model
๐ ์์ฐ์ ์ ๋ ์ ๊ฒฝ๋ง GAN
- data instance ๋ฅผ ์๋ก ์์ฑํ๋ ๋คํธ์ํฌ
- ๋ฐ์ดํฐ๋ฅผ ๋ง๋๋ ์์
- ๋ค์ํ ์์ฉ๋ถ์ผ์ ์ ์ฉ๋ ์ ์์
โ So far we've learn
๐ Discriminative model
- ์ง๊ธ๊น์ง DNN, CNN, RNN ๋ฑ ์ฃผ์ด์ง ๋ฐ์ดํฐ ๋ถํฌ๋ฅผ ์ ๊ตฌ๋ถํ๊ธฐ ์ํด ์ค๊ณํ ๋ชจ๋ธ๋ค์ ๋ฐฐ์ ์
โก Generative model VS Discriminative model
๐ Discriminative model
- ๋ค๋ฅธ ์ข ๋ฅ์ Data instance ์ฌ์ด๋ฅผ ๊ตฌ๋ถํ๋ ๊ฒ
- P(Y|X) : ์ด๋ค input X ๋ฅผ ์ ๋ ฅํ์ ๋, Y ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ์กฐ๊ฑด๋ถ ํ๋ฅ ์ ๋ํด ํ์ตํจ
- ex. ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ฅผ ๋ฃ์์ ๋, ๊ณ ์์ด์ธ์ง ๊ฐ์์ง์ธ์ง ๊ตฌ๋ถํ๋ task
- ๋ฐ์ดํฐ ๊ณต๊ฐ์์์ ๊ฒฝ๊ณ์ ์ (boundaries) ๊ทธ๋ฆฌ๋ ๋ชจ๋ธ์ด๋ค.
๐ Generative model
- ์๋ก์ด data instance ๋ฅผ ๋ง๋๋ ์ญํ
- input X์ output Y ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๋ณด๊ณ ๊ทธ ์ฌ์ด์ ๊ด๊ณ๋ฅผ ํฌ์ฐฉํ๊ฑฐ๋ input ์์ฒด์ ํ๋ฅ ๋ง์ ํฌ์ฐฉํ๋ ๋ชจ๋ธ
- GAN ์ generative model ์ ์ฌ๋ฌ ์ข ๋ฅ ์ค์ ํ๋์
- GAN : ์ ๋์ ๊ฒฝ์๊ด๊ณ์ ๋์ธ ๋คํธ์ํฌ๊ฐ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ํ์ฑํ๋ค.
- ๋ฐ์ดํฐ๊ฐ ๊ณต๊ฐ์์์ ์ด๋ป๊ฒ ๋ถํฌ๋๋์ง ๋ฐ์ดํฐ ๋ถํฌ ์์ฒด๋ฅผ ๋ชจ๋ธ๋งํ๋ค.
โ ์ฃผ์ : ๊ธฐ๊ณ๋ฒ์ญ ๋ชจ๋ธ์ output ์ผ๋ก ๋ฒ์ญ๋ ๋ฌธ์ฅ์ด ์์ฑ๋์ด์ generative model ๋ก ํท๊ฐ๋ฆด ์ ์๋๋ฐ, ์ด ๋ํ ์ฃผ์ด์ง ์์ด ์ดํ ์์์ ํ๋์ค์ด ์ดํ์ ๋ง๋ ์ ์ ํ ๋จ์ด๋ฅผ ์ ํํ๋ ๊ฒ์ด๋ฏ๋ก discriminative model ์ ํด๋นํจ
โข Application of Generative models
๐ ๋ฏธ์ /์ด๋ฏธ์ง์์ญ
- ๋ชจ๋ค์ ๊ทธ๋ฆผ์ผ๋ก๋ถํฐ ์ฌ์ง์ฒ๋ผ ๋ณด์ด๋ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๊ฑฐ๋ ์ค์ ์ดฌ์ํ ์ฌ์ง์ผ๋ก๋ถํฐ ๋ชจ๋ค์ ๊ทธ๋ฆผ์ฒ๋ผ ๋ฌ์ฌํ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ๊ฒ ๐ ๊ธฐ์กด์ ์กด์ฌํ์ง ์์๋ data instance ๋ฅผ ์์ฑํด์ค๋ค.
- ์ฌ๋ ์ผ๊ตด ์ด๋ฏธ์ง์์ ๋จธ๋ฆฌ ์๊น์ ๋ฐ๊พธ๊ฑฐ๋, ์ฑ๋ณ/๋์ด/ํผ๋ถ์/ํ์ ์ ๋ฐ๊พธ๋ ๊ฒ ๐ ๊ธฐ์กด์ ์กด์ฌํ์ง ์์๋ data instance ๋ฅผ ์์ฑ
๐ ๋ฐ๋์ฒด ์์ญ
- Photomask ๋ฅผ ์ค๊ณํ ๋, Wafer ์ ์๋ํ๋๋ก ํ๋ก๊ฐ ์ ํ์ง๋๋ก ํ๋ GAN ๋ชจ๋ธ์ ๋ง๋ฆ
2๏ธโฃ GAN
โ Key Idea : Police-Criminal Analogy
๐ Generator VS Discriminator
- Generator network ์ discriminator network ๋ฅผ ์ ๋์ ๊ฒฝ์๊ด๊ณ๋ก ๋ง๋ค์ด ์ํ๋ (์๋ก์ด) ๋ฐ์ดํฐ๋ฅผ ์ ์์ฑํ ์ ์๋๋ก ํจ
- Criminal : ์์กฐ์งํ๋ฒ์ ์ง์ง์ฒ๋ผ ๋ณด์ด๋ ๊ฐ์ง ์งํ๋ฅผ ๋ง๋ค์ด ๊ฒฝ์ฐฐ์ ์์ด๋ ค๊ณ ํจ ๐ Generator
- Police : ์ง์ง์ ๊ฐ์ง์งํ๋ฅผ ๊ตฌ๋ถํ๊ณ ์ ํจ ๐ Discriminator
๐จ Generator ๋ ๋ ์ ๊ตํ๊ฒ ์งํ๋ฅผ ๋ง๋ค๊ณ ์ ํ ๊ฒ์ด๊ณ , Discriminator ๋ ์งํ๊ณผ ๊ฐํ์ ๊ตฌ๋ถํ๊ธฐ ์ํด ๋์ฑ ๋ ธ๋ ฅํ๋ฉฐ ์๋ก ์ ๋์ ๊ฒฝ์๊ด๊ณ๋ฅผ ๊ฐ์ง๋ค. ํ์ต์ ์งํํ ์๋ก fake data ๋ real data ์ ๊ตฌ๋ถํ ์ ์์ ์ ๋๋ก ๋น์ทํด์ง๊ฒ ๋๋ค.
โก GAN overview
๐ ์ฌ๋ ์ผ๊ตด ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ GAN model
- Input : random noise → ๋๋คํ ๋ ธ์ด์ฆ๋ฅผ input ์ผ๋ก ๋ฃ์
- Generator network ๋ ์ฌ๋์ฒ๋ผ ๋ณด์ด๋ ๊ฐ์ง ์ผ๊ตด ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์ด๋ด๊ณ , Discriminator ๋ ์ง์ง ์ฌ๋ ์ผ๊ตด ์ด๋ฏธ์ง์ ๊ฐ์ง ์ผ๊ตด ์ด๋ฏธ์ง๋ฅผ ๊ตฌ๋ถํ๊ณ ์ ํจ
- ๋ network ๋ ์ ๋์ ๊ฒฝ์๊ด๊ณ์ ๋์ฌ์ ธ ์๊ธฐ ๋๋ฌธ์ fake image ๊ฐ real image ์ ๊ฐ๊น์์ง๊ฒ ๋๋ค.
- ๊ฐ network ๋ DNN, CNN, RNN ๋ฑ ์ด๋ ์ข ๋ฅ์ ๋คํธ์ํฌ๋ผ๋ ์ฌ ์ ์๋ค. ์ด ์์ ์์๋ ์ด๋ฏธ์ง ๋ฐ์ดํฐ์ด๋ฏ๋ก CNN ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
โข Training GAN : Two-Player Minimax Game
๐ GAN ์ ์ํ์ ์ผ๋ก ๊ธฐ์ ํ๊ธฐ
๐ D(x) : Discriminator output ์ผ๋ก input ์ด real image ์ ํด๋นํ๋์ง ์ฌ๋ถ๋ฅผ 0๊ณผ 1 ์ฌ์ด์ ๊ฐ์ผ๋ก ํํํ๋ค. 1์ ๊ฐ๊น์ธ์๋ก real, 0์ ๊ฐ๊น์ธ์๋ก fake image ์ ํด๋นํ๋ ๊ฒ์ด๋ค.
๐จ D (discriminator) ์ ์ฅ์์๋ Value function ์ ์ต๋ํ
โญ real image ๋ real ๋ก, fake image ๋ fake ๋ก ์ ๊ตฌ๋ถํ๋๋ก ํ๋ จํ๋ค.
- X~Pdata(x) : training data ๋ก๋ถํฐ ์ถ์ถ๋ x ๋ real image ์ ํด๋นํ๋๋ฐ, D ์ ์ฅ์์ real ์ด๋ผ๊ณ ์ ํ๋จํด์ผ ํ๋ฏ๋ก D(x) ๊ฐ 1์ ๊ฐ๊น์์ง๋๋ก ํ๋ จํ๋ค ๐ log(D(x)) ์ต๋ํ
- Z~Pz(z) : noise input ์ ๋ํ์ฌ G(z) , ์ฆ generator network ๋ฅผ ๊ฑฐ์ณ์, D(G(z)) discriminator ์ ๋์ฐฉํ์ ๋, D ์ ์ฅ์์๋ fake image ๋ฅผ fake ๋ผ๊ณ ์ ๋ถ๋ฅํด์ผ ํ๋ฏ๋ก D(G(z)) ๋ฅผ 0์ ๊ฐ๊น์์ง๋๋ก ํ๋ จํ๋ค ๐ log(1-D(G(z))) ์ต๋ํ
๐จ G (generator) ์ ์ฅ์์๋ Value function ์ ์ต์ํ
โญ fake image ๋ฅผ discriminator ๊ฐ real ๋ก ์๋ชป ํ๋จํ๊ฒ๋ ๋ง๋ค๋๋ก ํ๋ จํ๋ค.
- random noise 'z' ๊ฐ Generator ๋ก๋ถํฐ ์ ๋ ฅ๋์ด fake image ๊ฐ ์์ฑ๋์์ ๋, G ์ ์ฅ์์๋ D(G(z)) ๊ฐ 1์ด ๋๋๋ก ์ฆ, fake image ๋ฅผ real ๋ก ํ๋จํ๋๋ก ํ๋ จํ๋ค ๐ log(1-D(G(z))) ์ต์ํ
โ ์ฐธ๊ณ : log x , log(1-x) ๊ทธ๋ํ ๋ชจ์
โฃ Training Steps
๐ ์๋์ ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉด์ ํ๋ จ์ ์งํํ๋ค.
1. Gradient ascent on disriminator ๊ฒฝ์ฌ ์์น๋ฒ (maximize์ด๋ฏ๋ก)
2. Gradient descent on disriminator ๊ฒฝ์ฌ ํ๊ฐ๋ฒ (minimize ์ด๋ฏ๋ก)
- discriminator ๊ฐ ๋ง์ถ ๊ฐ๋ฅ์ฑ likelihood ๋ฅผ ๋ฎ์ถ๋ค.
๐ ๊ฐ๋ ์ ์ผ๋ก๋ ๋ ์์์ด ์ ๋์ ๊ด๊ณ๋ฅผ ์ ๋ฌ์ฌํ๋ ์์ด ๋๋๋ฐ, ํ๋ จ ์ค์๋ ์ด๋ฌํ ๊ด๊ณ๊ฐ ์ ์๋๋์ง ์๋๋ค.
- ํ๋ จ ์ด๋ฐ๋ถ์ discriminator (๊ฒฝ์ฐฐ ์ญํ ) ์ ์ํ์ง๋ง, generator (์์กฐ์งํ์กฐ์๋ฒ) ๋ ์งํ๋ฅผ ์ ๋ง๋ค์ง ๋ชปํ๋ค.
- Gradient descent ๋ฐฉ๋ฒ์ผ๋ก generator ์ ๋ํด ํ๋ จ์ ์งํํ๋ฉด, ํ๋ จ ์ด๋ฐ์๋ gradient ๊ฐ ์์์ ํ๋ จ์ด ์ด๋ฐ์ ์ ์ด๋ฃจ์ด์ง์ง ์๊ฒ ๋๋ค ๐ log(1-x) ๊ทธ๋ํ์์ ๋ณด๋ฉด x๋ฅผ 1๋ก ๊ฐ๊น์์ง๊ฒ ๋ง๋๋ ๋ฐฉํฅ (์ฌ๊ธฐ์๋ D(G(z)) ๊ฐ 1์ ๊ฐ๊น์์ง๋๋ก ๋ง๋๋ ์ํฉ์ → fake ๋ฅผ real ๋ก ์คํํ๊ฒ ๋ง๋๋) ์ผ๋ก ๊ทธ๋ํ๋ฅผ ์ดํด๋ณผ ๋, ํ๋ จ ์ด๋ฐ ์์ญ์ธ ๊ทธ๋ํ ์ผ์ชฝ ์์ญ์์ ๊ธฐ์ธ๊ธฐ๊ฐ ๊ฐํ๋ฅด์ง ์์
๐ ๋ณํ
- G ์ ๋ํด value function ์ training ์ ์งํํ ๋, gradient descent ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ด๋ฐ์ ํ๋ จ์ด ์ ์ด๋ฃจ์ด์ง์ง ์๋๋ค๋ ์ ์ ๊ณ ๋ คํด์, ์์์ ๋ณ๊ฒฝํ์ฌ ํ๋ จ ๋ฐฉ๋ฒ์ ๋ฐ๊พธ์ด์ค ๐ Gradient ascent ๋ฐฉ๋ฒ์ผ๋ก ๋ณ๊ฒฝ
- D(G(z)) ๋ฅผ 1๋ก ๋ง๋๋ ์ํฉ์ ๋๊ฐ์๋ฐ, log(D(G(z)) ๋ก ์์ ๋ณ๊ฒฝํ์ฌ, ๊ฒฝ์ฐฐ์ด ์์กฐ ์งํ๋ฅผ ์๋ชป ๊ตฌ๋ถํ ํ๋ฅ ์ ๋์ด๋ ๋ฐฉ์์ผ๋ก training ์ ์งํํ๋ค.
- log(1-x) ๋ฅผ ์ต์ํ = log(x) ๋ฅผ ์ต๋ํ, x~[0,1]
- ์ฆ, ์์กฐ์งํ๋ฒ ์ ์ฅ์์๋ ๊ฒฝ์ฐฐ์ด ์๋ชป๋ ํ๋จ์ ํ์ ๋, ๊ทธ ์ ์ ๋ ธ๋ ค์ ๋ ๋ง์ ๊ฒ์ ํ์ตํ๋ ๊ผด์ด ๋๋ฏ๋ก ์ํ์ ์ผ๋ก ํด์ํ๋ฉด gradient ๊ฐ ์ปค์ง๋ค๊ณ ํ ์ ์๋ค.
- log(x) ๊ทธ๋ํ๋ฅผ ๋ณผ ๋๋, x๋ฅผ 1์ ๊ฐ๊น์์ง๋๋ก ํ๋ จ์ ์งํํ ๋, ํ๋ จ ์ด๋ฐ์ ๊ธฐ์ธ๊ธฐ (๊ทธ๋ํ์ ์ผ์ชฝ๋ฒ์) ๊ฐ ๋งค์ฐ ๊ฐํ๋ฆ์ ํ์ธํด๋ณผ ์ ์๋ค.
๐ GAN ์๊ณ ๋ฆฌ์ฆ์ ๋์๋ฐฉ์
- Discriminator ์ ๋ํด gradient ascent ๋ฅผ k ๋ฒ ๋ฐ๋ณตํด์ค ํ, generator ์ ๋ํด gradient descent ๋ฅผ ํ๋ฒ ๋ฐ๋ณตํ๋ ํํ๋ฅผ ์ทจํ๋ค. (์ค์ ๋ก generator ์ ๋ํด์๋ gradient ascent ๋ฅผ ์ ์ฉํ๋ค)
'1๏ธโฃ AIโขDS > ๐ Deep learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ธ๊ณต์ง๋ฅ] GNN (0) | 2022.06.14 |
---|---|
[์ธ๊ณต์ง๋ฅ] ์ถ์ฒ์์คํ (0) | 2022.06.13 |
[์ธ๊ณต์ง๋ฅ] Transformer Models (0) | 2022.06.11 |
[์ธ๊ณต์ง๋ฅ] NLP (0) | 2022.06.10 |
[์ธ๊ณต์ง๋ฅ] RNN (0) | 2022.06.07 |
๋๊ธ