๐ ์ด์ ๊ธ # ๋ณ์ดํ ์คํ ์ธ์ฝ๋, Variational AutoEncoder
[ํธ์ฆ์จ ๋จธ์ ๋ฌ๋] 17์ฅ(3) - ๋ณ์ดํ ์คํ ์ธ์ฝ๋, Variational AutoEncoder
[AI/Hands-on ML] - [ํธ์ฆ์จ ๋จธ์ ๋ฌ๋] 17์ฅ(2) - ํฉ์ฑ๊ณฑ ์คํ ์ธ์ฝ๋, ์ํ ์คํ ์ธ์ฝ๋, ์ก์ ์ ๊ฑฐ ์คํ ์ธ์ฝ๋, ํฌ์ ์คํ ์ธ์ฝ๋ [ํธ์ฆ์จ ๋จธ์ ๋ฌ๋] 17์ฅ(2) - ํฉ์ฑ๊ณฑ ์คํ ์ธ์ฝ๋, ์ํ ์คํ ์ธ์ฝ๋, ์ก์
kdeon.tistory.com
17. 9 ์์ฑ์ ์ ๋ ์ ๊ฒฝ๋ง
- 2014๋ ๋ ผ๋ฌธ์์ ์ ์๋ ์์ด๋์ด๋ก, ํ๊ธฐ์ ์ด์ง๋ง GAN ํ๋ จ์ ์ด๋ ค์์ ๊ทน๋ณตํ๋ ๋ฐ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ ธ์
- ์ ๊ฒฝ๋ง์ ์๋ก ๊ฒจ๋ฃจ๊ฒ ํ๊ณ ๊ฒฝ์์ ํตํด ์ ๊ฒฝ๋ง์ ํฅ์ํ๋ ๊ฒ์ ๊ธฐ๋ํจ
์์ฑ์
๋๋คํ ๋ถํฌ(ex. ๊ฐ์ฐ์์ ๋ถํฌ)๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์ ์ด๋ฏธ์ง์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅ
- ๋๋คํ ์ ๋ ฅ์ ์์ฑํ ์ด๋ฏธ์ง์ ์ ์ฌ ํํ(=์ฝ๋ฉ)
- ๋ณ์ดํ ์คํ ์ธ์ฝ๋์ ๋์ฝ๋์ ๊ฐ์ ๊ธฐ๋ฅ (๊ฐ์ฐ์์ ์ก์ -> ์๋ก์ด ์ด๋ฏธ์ง ์์ฑ, ํ๋ จ ๋ฐฉ์์ ๋ค๋ฆ)
โ๏ธ ๋ชฉํ: ํ๋ณ์๋ฅผ ์์ผ ๋งํผ ์ง์ง ๊ฐ์ ์ด๋ฏธ์ง ์์ฑ
ํ๋ณ์
์์ฑ์์์ ์ป์ ๊ฐ์ง ์ด๋ฏธ์ง๋ ํ๋ จ ์ธํธ์์ ์ถ์ถํ ์ง์ง ์ด๋ฏธ์ง๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์, ์ ๋ ฅ๋ ์ด๋ฏธ์ง๊ฐ ๊ฐ์ง์ธ์ง ์ง์ง์ธ์ง ๊ตฌ๋ถํจ
โ๏ธ ๋ชฉํ: ์ง์ง ์ด๋ฏธ์ง์ ๊ฐ์ง ์ด๋ฏธ์ง๋ฅผ ์ ๊ตฌ๋ถ
GAN์ ๋ค๋ฅธ ๋ชฉํ๋ฅผ ๊ฐ์ง ๋ ๋คํธ์ํฌ๋ก ๊ตฌ์ฑ๋๋ฏ๋ก, ํ๋ จ ๋ฐ๋ณต์ด ๋ ๋จ๊ณ๋ก ์ด๋ฃจ์ด์ง
๐ ๋จ๊ณ 1 # ํ๋ณ์ ํ๋ จ
- ํ๋ จ ์ธํธ์์ ์ค์ ์ด๋ฏธ์ง ๋ฐฐ์น๋ฅผ ์ํ๋งํ๊ณ
- ์์ฑ์์์ ์์ฑํ ๋์ผํ ์์ ๊ฐ์ง ์ด๋ฏธ์ง๋ฅผ ํฉ์นจ
- ๊ฐ์ง ์ด๋ฏธ์ง์ ๋ ์ด๋ธ์ 0, ์ง์ง ์ด๋ฏธ์ง๋ 1๋ก ์ธํ
- ํ๋ณ์๋ ์ด์ง ํฌ๋ก์ค ์ํธ๋กํผ๋ฅผ ์ฌ์ฉํด ํ ์คํ ๋์ ์์ฒ๋ผ ๋ ์ด๋ธ๋ ๋ฐฐ์น๋ก ํ๋ จ
- ์ด ๋จ๊ณ์์, ์ญ์ ํ๋ ํ๋ณ์์ ๊ฐ์ค์น๋ง ์ต์ ํ
๐ ๋จ๊ณ 2 # ์์ฑ์ ํ๋ จ
- ์์ฑ์๋ฅผ ์ฌ์ฉํด ๋ค๋ฅธ ๊ฐ์ง ์ด๋ฏธ์ง ๋ฐฐ์น๋ฅผ ๋ง๋ฆ
- ๊ทธ ํ, ํ๋ณ์๋ฅผ ์ฌ์ฉํด ์ด๋ฏธ์ง๊ฐ ์ง์ง์ธ์ง ๊ฐ์ง์ธ์ง ํ๋ณํจ
- ๋ฐฐ์น์ ์ง์ง ์ด๋ฏธ์ง๋ฅผ ์ถ๊ฐํ์ง ์๊ณ , ๋ ์ด๋ธ์ ๋ชจ๋ 1(์ง์ง)๋ก ์ธํ
-> ์ฆ, ์์ฑ์๋ ํ๋ณ์๊ฐ ์ง์ง๋ผ๊ณ ๋ฏฟ์๋งํ ์ด๋ฏธ์ง๋ฅผ ๋ง๋๋ ๊ฒ์ด ๋ชฉ์
-> ์์ฑ์๊ฐ ๋ง๋ ๊ฐ์ง๋ฐ์ดํฐ๋ฅผ ํ๋ณ์๊ฐ ์ค์ ๋ฐ์ดํฐ๋ผ๊ณ ์ถ์ ํ ํ๋ฅ ์ ์ต๋ํํ๋๋ก ํ์ต
- ํ๋ณ์์ ๊ฐ์ค์น๋ฅผ ๋๊ฒฐํด, ์ญ์ ํ๋ ์์ฑ์์ ๊ฐ์ค์น์๋ง ์ํฅ
- ์์ฑ์๊ฐ ์ ๋ ฅ์ผ๋ก ๋ฐ๋ ๊ฒ์ ํ๋ณ์๋ฅผ ํตํด ์ ๋ฌ๋๋ ๊ทธ๋๋์ธํธ๊ฐ ์ ๋ถ
-> ์ฆ, ์์ฑ์๋ ์ง์ง ์ด๋ฏธ์ง๋ฅผ ๋ณด์ง ์๊ณ , ํ๋ณ์์ ๋ฐ์๋ง์ ๋ณด๊ณ ํ์ต์ ํจ
ํจ์ MNIST ๋ฐ์ดํฐ์ ์ผ๋ก GAN ํ์ตํ๊ธฐ
1. ์์ฑ์์ ํ๋ณ์ ์์ฑ
codings_size = 30
generator = keras.models.Sequential([
keras.layers.Dense(100, activation="selu", input_shape=[codings_size]),
keras.layers.Dense(150, activation="selu"),
keras.layers.Dense(28 * 28, activation="sigmoid"),
keras.layers.Reshape([28, 28])
])
discriminator = keras.models.Sequential([
keras.layers.Flatten(input_shape=[28, 28]),
keras.layers.Dense(150, activation="selu"),
keras.layers.Dense(100, activation="selu"),
keras.layers.Dense(1, activation="sigmoid")
])
gan = keras.models.Sequential([generator, discriminator])
- ์์ฑ์๋ ์คํ ์ธ์ฝ๋์ ๋์ฝ๋์ ๋น์ทํ ๋ชจ์ต
- ํ๋ณ์๋ ์ผ๋ฐ์ ์ธ ์ด์ง ๋ถ๋ฅ๊ธฐ (์ด๋ฏธ์ง ์ ๋ ฅ, ํ๋์ ์ ๋, sigmoid์ Dense์ธต)
- ํ๋ จ ๋ฐ๋ณต์ ๋ ๋ฒ์งธ ๋จ๊ณ์์ ์์ฑ์์ ํ๋ณ์๊ฐ ์ฐ๊ฒฐ๋ ์ ์ฒด GAN ๋ชจ๋ธ ํ์
2. GAN ๋ชจ๋ธ ์ปดํ์ผ
discriminator.compile(loss="binary_crossentropy", optimizer="rmsprop")
discriminator.trainable = False
gan.compile(loss="binary_crossentropy", optimizer="rmsprop")
- ํ๋ณ์๋ ์ด์ง ๋ถ๋ฅ๊ธฐ์ด๋ฏ๋ก, ์ด์ง ํฌ๋ก์ค ์ํธ๋กํผ ์์ค ์ฌ์ฉ
- ์์ฑ์๋ gan ๋ชจ๋ธ์ ํตํด์๋ง ํ๋ จ๋๋ฏ๋ก, ๋ฐ๋ก ์ปดํ์ผํ ํ์X
- gan ๋ชจ๋ธ๋ ์ด์ง ๋ถ๋ฅ๊ธฐ์ด๋ฏ๋ก, ์ด์ง ํฌ๋ก์ค ์ํธ๋กํผ ์์ค ์ฌ์ฉ
* ๋ ๋ฒ์งธ ๋จ๊ณ์์ ํ๋ณ์๋ฅผ ํ๋ จํ์ง ์์ -> gan ๋ชจ๋ธ์ ์ปดํ์ผํ๊ธฐ ์ ์ ํ๋ณ์๊ฐ ํ๋ จ๋์ง ์๋๋ก ์ค์
๐ trainable ์์ฑ : ๋ชจ๋ธ์ ์ปดํ์ผํ ๋๋ง ์ํฅ์ ๋ฏธ์นจ
- ์ ์ฝ๋ ์คํ ํ, discriminator์ fit() ๋๋ train_on_batch()๋ฅผ ํธ์ถํด๋, ํ๋ณ์๋ ํ๋ จ๋จ
- ๋ฐ๋ฉด, gan ๋ชจ๋ธ์ method์ ํธ์ถํ ๋๋ ํ๋ จ๋์ง ์์
3. ์ด๋ฏธ์ง๋ฅผ ์ํํ๋ Dataset ์์ฑ
batch_size = 32
dataset = tf.data.Dataset.from_tensor_slices(X_train).shuffle(1000)
dataset = dataset.batch(batch_size, drop_remainder=True).prefetch(1)
4. ํ๋ จ ๋ฐ๋ณต ์ฝ๋ ๊ตฌํ
- ํ๋ จ์ด ์ผ๋ฐ์ ์ธ ๋ฐ๋ณต์ด ์๋๊ธฐ ๋๋ฌธ์, fit() method๋ฅผ ์ฌ์ฉํ์ง ์์
- ์ฌ์ฉ์ ์ ์ ํ๋ จ ๋ฐ๋ณต๋ฌธ์ ๋ง๋ค์ด ์ฌ์ฉ
def train_gan(gan, dataset, batch_size, codings_size, n_epochs=50):
generator, discriminator = gan.layers
for epoch in range(n_epochs):
for X_batch in dataset:
# ํ๋ณ์ ํ๋ จ
noise = tf.random.normal(shape=[batch_size, codings_size])
generated_images = generator(noise)
X_fake_and_real = tf.concat([generated_images, X_batch], axis=0)
y1 = tf.constant([[0.]] * batch_size + [[1.]] * batch_size)
discriminator.trainable = True
discriminator.train_on_batch(X_fake_and_real, y1)
# ์์ฑ์ ํ๋ จ
noise = tf.random.normal(shape=[batch_size, codings_size])
y2 = tf.constant([[1.]] * batch_size)
discriminator.trainable = False
gan.train_on_batch(noise, y2)
train_gan(gan, dataset, batch_size, codings_size)
์ฒซ ๋ฒ์งธ ๋จ๊ณ
- ๊ฐ์ฐ์์ ์ก์์ ์์ฑ์์ ์ฃผ์ ํ์ฌ ๊ฐ์ง ์ด๋ฏธ์ง๋ฅผ ์์ฑ
- ์์ฑํ ์ด๋ฏธ์ง์ ๋์ผํ ๊ฐ์์ ์ง์ง ์ด๋ฏธ์ง๋ฅผ ํฉ์ณ ๋ฐฐ์น๋ฅผ ๊ตฌ์ฑ
- ํ๊น y1์ ๊ฐ์ง ์ด๋ฏธ์ง์ผ ๊ฒฝ์ฐ 0, ์ง์ง ์ด๋ฏธ์ง์ผ ๊ฒฝ์ฐ 1๋ก ์ค์
- ์ด ๋ฐฐ์น์์ ํ๋ณ์๋ฅผ ํ๋ จ
๋ ๋ฒ์งธ ๋จ๊ณ
- GAN์ ๊ฐ์ฐ์์ ์ก์์ ์ฃผ์
- ์์ฑ์๊ฐ ๋จผ์ ๊ฐ์ง ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๊ณ , ํ๋ณ์๊ฐ ๊ทธ ์ด๋ฏธ์ง๊ฐ ๊ฐ์ง์ธ์ง ์ง์ง์ธ์ง ์ถ์ธก
- ํ๋ณ์๊ฐ ๊ฐ์ง ์ด๋ฏธ์ง๋ฅผ ์ง์ง๋ก ๋ฏฟ๊ฒ ๋ง๋ค๊ณ ์ถ๊ธฐ ๋๋ฌธ์, ํ๊น y2๋ฅผ 1๋ก ์ง์
5. ์์ฑ๋ ์ด๋ฏธ์ง ์ถ๋ ฅ
- ์ฒซ ๋ฒ์งธ epoch์์ ํจ์ MNIST์ฒ๋ผ ๋ณด์ด๋ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ๋ชจ์ต
- ํ์ง๋ง ์ด๋ณด๋ค ๋ ์ข์ ์ด๋ฏธ์ง๊ฐ ์์ฑ๋์ง ์๊ณ , ์คํ๋ ค ์ด๋ค epoch์์๋ GAN์ด ํ์ตํ ๊ฒ์ ์์ด๋ฒ๋ฆฐ ๋ฏํ ๋ชจ์ต์ ๋ณด์
17. 9. 1 GAN ํ๋ จ์ ์ด๋ ค์
ํ๋ จ ๊ณผ์ ์์ ์์ฑ์์ ํ๋ณ์๋ ๋์์์ด ์๋ก ์์๋ ค๊ณ ํจ -> ์ ๋ก์ฌ ๊ฒ์
=> ์ด์ ๋ฐ๋ผ, ํ๋ จ์ด ๋ด์ ๊ท ํ์ด๋ผ๋ ์ํ์ ๋๋ฌํ ์ ์์
โ๏ธ ๋ด์ ๊ท ํ
๋ค๋ฅธ ํ๋ ์ด์ด๊ฐ ์ ๋ต์ ์์ ํ์ง ์์ ๊ฒ์ด๋ฏ๋ก, ์ด๋ค ํ๋ ์ด์ด๋ ์์ ์ ์ ๋ต์ ์์ ํ์ง ์๋ ์ํ
ex. ๋ชจ๋ ์ฌ๋์ด ๋๋ก ์ผ์ชฝ์ผ๋ก ์ด์ ํ ๋, ์ด๋ค ์ด์ ์๋ ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ์ด์ ํ๋ ๊ฒ์ด ๋์์ด ๋์ง ์๋ ์ํ
-> ์ด ์์์์๋, ๊ท ํ์ ๋ค๋ค๋ฅด๋ ์ต์ ์ ๋ต์ด ์์ = ๋ค๋ฅธ ์ฌ๋๊ณผ ๋์ผํ ๋ฐฉํฅ์ผ๋ก ์ด์ ํ๊ธฐ
- ๋ด์ ๊ท ํ ํ๋๋ ๊ฒฝ์ ์ ๋ต๋ ํฌ๊ดํ ์ ์์
ex. ํฌ์์๋ ๋จน์ด๋ฅผ ์ซ๊ณ ๋จน์ด๊ฐ์ ๋๋ง์นจ -> ๋ ๋ค ์ ๋ต์ ๋ฐ๊พธ์ง ์์ ๊ฒ
GAN์ ํ๋์ ๋ด์ ๊ท ํ์๋ง ๋๋ฌํ ์ ์์
- ์์ฑ์๊ฐ ์๋ฒฝํ๊ฒ ์ค์ ์ ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์ด๋ด, ํ๋ณ์๊ฐ ์ถ์ธก๋ฐ์ ํ ์ ์์ ๋
=> ์ฆ, ํ๋ณ์๊ฐ 50% ํ๋ฅ ๋ก ์ ๋ต์ ๋ง์ถ๋ ์ํ๋ฅผ ์ ์งํ๊ฒ ๋ ๋
- GAN์ ์ถฉ๋ถํ ํ๋ จํ๋ฉด ์๋ฒฝํ ์์ฑ์๋ฅผ ๋ง๋ค์ด ์ด ๊ท ํ์ ๋๋ฌํ๊ฒ ์ง๋ง, ๋ณด์ฅํ ์ ์์
=> ์ด๋ ๊ฐ์ฅ ํฐ ์ด๋ ค์์ ๋ชจ๋ ๋ถ๊ดด
๐ ์ด๋ ค์ 1 # ๋ชจ๋ ๋ถ๊ดด
์์ฑ์์ ์ถ๋ ฅ์ ๋ค์์ฑ์ด ์ค์ด๋ค ๋ ๋ฐ์
๐ค ์์ฑ์๊ฐ ๋ค๋ฅธ ํด๋์ค๋ณด๋ค ์ ๋ฐ์ ๋ ๊ทธ๋ด๋ฏํ๊ฒ ๋ง๋ ๋ค๊ณ ๊ฐ์
1. ์ ๋ฐ์ด ํ๋ณ์๋ฅผ ์์ด๊ธฐ ์ฝ๊ธฐ ๋๋ฌธ์, ๋ ๋ง์ ์ ๋ฐ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๋๋ก ์ ๋๋จ
-> ์์ฑ์๋ ์ ์ฐจ ๋ค๋ฅธ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์๊ฒ ๋จ
2. ๊ทธ๋์ ํ๋ณ์๊ฐ ๋ณด๊ฒ ๋ ๊ฐ์ง ์ด๋ฏธ์ง๋, ์ ๋ฐ์ด ์ ์ผํ๊ฒ ๋ ๊ฒ
-> ๋ฐ๋ผ์ ํ๋ณ์๋ ๋ค๋ฅธ ํด๋์ค์ ๊ฐ์ง ์ด๋ฏธ์ง๋ฅผ ๊ตฌ๋ณํ๋ ๋ฐฉ๋ฒ์ ์์ด๋ฒ๋ฆฌ๊ฒ ๋จ
3. ํ๋ณ์๊ฐ ์ ๋ฐ์ ์ ๊ตฌ๋ณํ๊ฒ ๋๋ฉด, ์์ฑ์๋ ๋ค๋ฅธ ํด๋์ค๋ก ์ฎ๊ฒจ๊ฐ์ผ ํจ
-> ์ ์ธ ๋ก ์ฎ๊ฒจ๊ฐ์ ์ ํ๋ จ์ ํ๊ฒ๋๋ฉด, ์ ๋ฐ์ ๋ํด์๋ ๋ ์์ด๋ฒ๋ฆฌ๊ฒ ๋จ
4. ๊ทธ๋ ๊ฒ ๋๋ฉด, ํ๋ณ์๋ ๋ค๋ฐ๋ผ ๊ฐ๊ฒ ๋จ
=> ๊ฒฐ๋ก ์ ์ผ๋ก, ์ด GAN์ ๋ช ๊ฐ์ ํด๋์ค๋ฅผ ์ค๊ฐ๋ค๊ฐ, ์ด๋ค ํด๋์ค์์๋ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ง ๋ชปํ ์ ์์
๐ ์ด๋ ค์ 2 # ํ๋ผ๋ฏธํฐ์ ๋ณ๋
์์ฑ์์ ํ๋ณ์๊ฐ ์ง์์ ์ผ๋ก ์๋ก์๊ฒ ์ํฅ์ ์ฃผ์ด, ํ๋ผ๋ฏธํฐ ๋ณ๋์ด ํฌ๊ณ , ๋ถ์์ ํด์ง ์ ์์
- ํ๋ จ์ด ์์ ์ ์ผ๋ก ์์๋์ด๋, ์ด์ ์์ด ๊ฐ์๊ธฐ ๋ฐ์ฐํ ์ ์์
=> ์ฌ๋ฌ ์์ธ์ด ์ด๋ฐ ๋ณต์กํ ๊ด๊ณ์ ์ํฅ์ ์ฃผ์ด GAN์ ํ์ดํผํ๋ผ๋ฏธํฐ๋ ๋งค์ฐ ๋ฏผ๊ฐํ๋ฉฐ, ์ด๋ฐ ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋์ ์ํด์ ๋ง์ ๋ ธ๋ ฅ์ด ํ์
์์ ๊ฐ์ ๋ฌธ์ ๋ค๋ก, ์ด ์ฃผ์ ์ ๊ด๋ จ๋ ๋ ผ๋ฌธ์ด ๋ง์ด ์ถ๊ฐ๋์์
- ์๋ก์ด ๋น์ฉ ํจ์๋ฅผ ์ ์ํ๊ฑฐ๋ (-> 2018๋ ๊ตฌ๊ธ ๋ ผ๋ฌธ์์, ์ด๋ฐ ํจ์๋ค์ ํจ์จ์ฑ์ ์๋ฌธ ์ ๊ธฐ)
- ์์ ์ ์ผ๋ก ํ๋ จํ๊ฑฐ๋, ๋ชจ๋ ๋ถ๊ดด๋ฅผ ํผํ๊ธฐ ์ํ ๊ธฐ๋ฒ์ ์ ์
์์ ์ ์ธ ํ๋ จ์ ์ํ ๋ฐฉ๋ฒ?
โ๏ธ ๊ฒฝํ ์ฌ์
- ๋งค ๋ฐ๋ณต์์ ์์ฑ์๊ฐ ๋ง๋ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ ๋ฒํผ์ ์ ์ฅํ๊ณ
- ์ค์ ์ด๋ฏธ์ง์ ์ด ๋ฒํผ์์ ๋ฝ์ ๊ฐ์ง ์ด๋ฏธ์ง๋ฅผ ๋ํด ํ๋ณ์๋ฅผ ํ๋ จ
=> ํ๋ณ์๊ฐ ์์ฑ์์ ๊ฐ์ฅ ์ต๊ทผ ์ถ๋ ฅ์ ๊ณผ๋์ ํฉ๋ ๊ฐ๋ฅ์ฑ์ ์ค์
โ๏ธ ๋ฏธ๋๋ฐฐ์น ํ๋ณ
- ๋ฐฐ์น ๊ฐ์ ์ผ๋ง๋ ๋น์ทํ ์ด๋ฏธ์ง๊ฐ ์๋์ง ์ธก์ ํ์ฌ, ์ด ํต๊ณ๋ฅผ ํ๋ณ์์๊ฒ ์ ๊ณต
- ํ๋ณ์๋ ๋ค์์ฑ์ด ๋ถ์กฑํ ๊ฐ์ง ์ด๋ฏธ์ง ๋ฐฐ์น ์ ์ฒด๋ฅผ ์ฝ๊ฒ ๊ฑฐ๋ถํ ์ ์์
=> ์์ฑ์๊ฐ ๋ค์ํ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋๋ก ์ ๋ํด, ๋ชจ๋ ๋ถ๊ดด์ ์ํ์ ์ค์
๋ค๋ฅธ ๋ ผ๋ฌธ๋ค์์๋, ํ๋ จ์ด ์ ์ํ๋๋ ๋คํธ์ํฌ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๊ธฐ๋ ํจ
๐ก ๊ฒฐ๋ก ์ ์ผ๋ก, ์ด ๋ถ์ผ๋ ์ฌ์ ํ ํ๋ฐํ ์ฐ๊ตฌ ์ค์ด๋ฉฐ, GAN์ ์ญํ์ ์์ง ์๋ฒฝํ๊ฒ ํ์ ํ์ง ๋ชปํจ
ํ์ง๋ง ๋ง์ ์ง์ ์ด ์์๊ณ , ์ผ๋ถ ๋ชจ๋ธ์ ๋งค์ฐ ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ์์
๐ ๋ค์ ๊ธ # ์ฌ๋ฌ๊ฐ์ง GAN ๋ชจ๋ธ : DCGAN, ProGAN, StyleGAN
[ํธ์ฆ์จ ๋จธ์ ๋ฌ๋] 17์ฅ(5) - DCGAN, ProGAN, StyleGAN
๐ ์ด์ ๊ธ # ์์ฑ์ ์ ๋ ์ ๊ฒฝ๋ง, GAN์ด๋? [ํธ์ฆ์จ ๋จธ์ ๋ฌ๋] 17์ฅ(4) - GAN, ์์ฑ์ ์ ๋ ์ ๊ฒฝ๋ง [AI/Hands-on ML] - [ํธ์ฆ์จ ๋จธ์ ๋ฌ๋] 17์ฅ(3) - ๋ณ์ดํ ์คํ ์ธ์ฝ๋, Variational AutoEncoder [ํธ์ฆ์จ ๋จธ์ ๋ฌ..
kdeon.tistory.com