[Deep Learning] Deep Generative Models(2) - GAN

2023. 6. 1. 09:14
๐Ÿง‘๐Ÿป‍๐Ÿ’ป์šฉ์–ด ์ •๋ฆฌ
Deep Generative Models
Generative Model
Generative Adversarial Nets (GAN)

 

 

์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” GAN์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

Generative Adversarial Nets (GAN)

 

์ด GAN์€ ๋ฒˆ์—ญํ•˜๋ฉด ์ ๋Œ€์  ์ƒ์„ฑ ์‹ ๊ฒฝ๋ง ๋ชจ๋ธ๋กœ ์ง์—ญ์„ ํ•ฉ๋‹ˆ๋‹ค.

 

2014๋…„ ์ •๋„์— ๋‚˜์™”์Šต๋‹ˆ๋‹ค.

 

์šฐ์„  ๋‘ ๋ช…์˜ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์žˆ๋‹ค๊ณ  ๋ด…์‹œ๋‹ค.

 

ํƒ์ •, ์œ„์กฐ๋ฒ”.

 

๊ทธ๋ฆฌ๊ณ  2๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋ฏธ์ˆ ํ’ˆ๊ณผ ๋ชจ์กฐํ’ˆ.

 

ํƒ์ •์€ ๋ฏธ์ˆ ํ’ˆ์ธ์ง€ ๋ชจ์กฐํ’ˆ์ธ์ง€ ๋ถ„๊ฐ„ํ•ด๋ƒ…๋‹ˆ๋‹ค.

 

๋ฐ˜๋Œ€๋กœ ์œ„์กฐ๋ฒ”์€ ํƒ์ •์„ ์†์ž…๋‹ˆ๋‹ค. ์œ„์กฐ๋ฒ”์€ ๋ชจ์กฐํ’ˆ์„ ์ง„ํ’ˆ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ํ‰๊ฐ€๋ฐ›์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

 

 

์ฒ˜์Œ์—๋Š” ํ•™์Šต์ด ์ž˜ ๋˜์ง€ ์•Š์•„, ๋‘˜ ๋‹ค ๋ฉ์ฒญํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ, ๊ณ„์†ํ•ด์„œ ๋ชจ์กฐํ’ˆ์„ ์ž˜ ์ฐพ์•„๋‚ด๊ธฐ ์œ„ํ•ด, ๋” ์ž˜ ์†์ด๊ธฐ ์œ„ํ•ด ๋‘˜ ๋‹ค ๊ณต๋ถ€๋ฅผ ์—ด์‹ฌํžˆ ํ•ฉ๋‹ˆ๋‹ค.

 

์„œ๋กœ๋ฅผ ์ด๊ธฐ๊ธฐ ์œ„ํ•ด์„œ ์„œ๋กœ ์—ด์‹ฌํžˆ ๊ณต๋ถ€๋ฅผ ํ•ด์„œ,

 

์ฒ˜์Œ์—๋Š” 1์ ์งœ๋ฆฌ ํƒ์ •๊ณผ ์œ„์กฐ๋ฒ”์€, ๋‚˜์ค‘์— 99์  ์งœ๋ฆฌ ํƒ์ •๊ณผ ์œ„์กฐ๋ฒ”์ด ๋ฉ๋‹ˆ๋‹ค.

 

99์ ์งœ๋ฆฌ ํƒ์ •์„ ์†์ด๊ธฐ ์œ„ํ•œ ์œ„์กฐ๋ฒ”์˜ ๋ชจ์กฐํ’ˆ์€ ์ง„์งœ์™€ ๊ตฌ๋ถ„ํ•˜๊ธฐ ํž˜๋“ค ์ •๋„์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์€ ๊ทธ ์ •๋„์˜ ๋ชจ์กฐํ’ˆ์ž…๋‹ˆ๋‹ค.

 

 

 

์ด GAN์ด๋ผ๋Š” ๋ชจ๋ธ์€ ์ ๋Œ€์ ์ธ 2๊ฐœ์˜ ๋ชจ๋ธ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

๋‘ ํ”Œ๋ ˆ์ด์–ด์ฃ .

 

๊ทธ๋ฆฌ๊ณ  G๋ผ๋Š” generator model์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด generator์˜ ์—ญํ• ์€ ๋ชจ์กฐํ’ˆ์„ ์ƒ์„ฑํ•ด๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ด๊ฒƒ์€ ๊ฒฐ๊ตญ data์˜ true distribution์„ ์บก์ณํ•ด๋‚ด๋Š” ๊ฒƒ์ด ๋ฉ๋‹ˆ๋‹ค.

 

์ง„์งœ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ค distribution์—์„œ ๋‚˜์™”๋Š”์ง€ ์•ˆ๋‹ค๋ฉด sampling์„ ํ†ตํ•ด ๊ณ„์†ํ•ด์„œ data๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒ ์ฃ .

 

๊ทธ๋ž˜์„œ ์ด G๋Š” ์ตœ๋Œ€ํ•œ ์‹ค์ œ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๋ฅผ ์ž˜ ์บก์ณํ•ด๋‚ด๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ž…๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ  diiscriminative model D๋Š” discriminator๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ ํŒ๋ณ„์ž๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

 

์ด๊ฒƒ์€ ์‹ค์ œ ๋ฐ์ดํ„ฐ์™€ G๊ฐ€ generatingํ•ด์„œ ์ฃผ๋Š” ๋ฐ์ดํ„ฐ์™€ ์ž˜ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒŒ ๋ชฉ์ ์ž…๋‹ˆ๋‹ค.

 

์‹ค์ œ์ธ training data, real data๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒŒ ์˜ค๋ฉด ๋†’์€ ํ™•๋ฅ  ๊ฐ’์„ ์ฃผ๊ณ ,

 

generated data G, fake data๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒŒ ์˜ค๋ฉด ๋‚ฎ์€ ํ™•๋ฅ  ๊ฐ’์„ ์ค๋‹ˆ๋‹ค.

 

 

 

์œ„ ์„ค๋ช…๊ณผ ๊ฐ™์ด ์‹ค์ œ ๋…ผ๋ฌธ์— ๋‚˜์˜จ ๊ตฌ์ ˆ์ž…๋‹ˆ๋‹ค.

 

G๋Š” ์œ„์กฐ ์ง€ํ๋ฅผ ๋งŒ๋“ค์–ด fake cuurency๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

D๋Š” ๊ฒฝ์ฐฐ๋กœ, ์‹ค์ œ ํ™”ํ์™€ G๊ฐ€ ๋งŒ๋“  fake currency๋ฅผ ๊ตฌ๋ถ„ํ•ด๋ƒ…๋‹ˆ๋‹ค.

 

 

์ด๋ ‡๊ฒŒ ์„œ๋กœ ์ด๊ธฐ๊ธฐ ์œ„ํ•ด ์—„์ฒญ๋‚˜๊ฒŒ ํ•™์Šต์„ ํ•˜๊ณ ,

 

๊ต‰์žฅํžˆ ํ›Œ๋ฅญํ•œ G๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ฒŒ ๋˜๋ฉด, ์ด๋กœ๋ถ€ํ„ฐ ์šฐ๋ฆฌ๊ฐ€ ์ข‹์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•ด๋‚ผ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 



 

์šฐ๋ฆฌ๊ฐ€ ์•ž์—์„œ ๋‹ค๋ฃฌ Generative Model์€ ํ™•๋ฅ  ๋ถ„ํฌ๋ฅผ ์ถ”์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 

์ด ๋ถ„ํฌ ์ถ”์ •์€ ์–ด๋ ต๊ณ  ๋ณต์žกํ•˜๊ณ  ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ VAE, DBN์€ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ต๋‹ค๊ณ  ์•Œ๋ ค์กŒ์ฃ .

 

 

๊ทธ๋Ÿฐ๋ฐ,

 

์ด GAN์ด๋ผ๋Š” ๋ชจ๋ธ์€ ์šฐ๋ฆฌ๊ฐ€ ๊ธฐ์กด์— ์ž˜ ์•Œ๊ณ  ์žˆ๋Š” MLP๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

 

์šฐ๋ฆฌ๊ฐ€ ์ž˜ ์•„๋Š” NN์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ ์–˜๊ธฐ๋Š”,

 

์šฐ๋ฆฌ๊ฐ€ ์ž˜ ์‚ฌ์šฉํ•˜๋Š” Standard Backpropagation์œผ๋กœ ํ•™์Šต์ด ๋œ๋‹ค๋Š” ์ด์•ผ๊ธฐ์ฃ .

 

๊ทธ๋ž˜์„œ approximate inference ๋‚˜ Markov process๊ฐ€ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.

 

 

 

 

๊ทธ๋ž˜์„œ ์‹ค์ œ ๋ชจ๋ธ์ด ์ด์™€ ๊ฐ™์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.

 

 

G model, D model์ด ๋ณด์ด๊ณ ,

 

์œ„ prior์€ noise๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด noise๋ผ๋Š” ๊ฒƒ์€ random์ด๋ผ๋Š” ์ด์•ผ๊ธฐ์ฃ .

 

์ด random ๊ฐ’์„ ๋ฐ›์•„์„œ, MLP๋‚˜ CNN ๋“ฑ ๋‹ค๋ฅธ NN์„ ์ญ‰ ํ†ต๊ณผ์‹œ์ผœ์„œ ์–ด๋–ค data๋ฅผ generationํ•˜๋Š” ๊ฒŒ ๋ชฉ์ ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์ด generated data๋Š” real data๋ฅผ ๋‹ฎ์œผ๋ ค๊ณ  ํ•˜๋Š” ๊ฒŒ ๋ชฉ์ ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์ด๊ฒƒ๊ณผ dimension์„ ๋งž์ถฐ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

G์—์„œ ์–ด๋–ค random noise๋ฅผ ๋ฐ›์•„์„œ MLP๋ฅผ ๋Œ๋ฆฐ ํ›„ ์ตœ์ข…์ ์œผ๋กœ real ๊ณผ ๊ฐ™์€ dimension์ด ๋‚˜์˜ค๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

 

์ด ๊ณผ์ •์ด generation, ๊ทธ๋ฆฌ๊ณ  ์ด generated data์™€ real data๋ฅผ D๋ผ๋Š” ๋ชจ๋ธ์— ๋„ฃ์–ด์„œ 1์ธ์ง€ 0์ธ์ง€ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ฒฐ๊ตญ G๋Š” ์™„์ „ random noise vector ๋ฅผ ๋ฐ›์•„์„œ, real data์™€ ๋˜‘๊ฐ™์€ dimension์„ ๊ฐ€์ง€๋Š” output์„ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ด output์€ ์ตœ๋Œ€ํ•œ real data์™€ ์œ ์‚ฌํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ž…๋‹ˆ๋‹ค.

 

 

 

๋งŒ์ผ,

 

๋ฐ์ดํ„ฐ๊ฐ€ 100๊ฐœ๊ฐ€ ๋“ค์–ด์˜จ๋‹ค๊ณ  ํ•˜๋ฉด,

 

์ด๊ฒƒ์— ๋Œ€ํ•ด real์ธ์ง€ fake์ธ์ง€์— ๋Œ€ํ•œ label์„ ๋ถ™์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ด ๊ณผ์ •์—์„œ binary classification์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œ„ sigmoid func.์ด ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.

 

training data == real data : 50๊ฐœ real, ... , real
generated data == fake data : 50๊ฐœ fake , ... , fake

 

์˜ ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ output์€ 1 or 0์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ด๊ฒƒ์„ ํ•™์Šต์‹œํ‚ค๋Š”๋ฐ,

 

D๋Š” real data x๊ฐ€ ๋“ค์–ด์˜ค๋ฉด 1์„ ์ถœ๋ ฅํ•˜๊ณ , fake data z (noise)๊ฐ€ ๋“ค์–ด์˜ค๋ฉด 0์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ๋ฐ์ดํ„ฐ๋Š” x : real data / G(z) = fake data ๋กœ ๋ฌถ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  z๋Š” noise๋กœ ์ž…๋ ฅ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ D์˜ ๋ชฉ์ ์€ D(x) = 1, D(G(z)) = 0์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  G์˜ ๋ชฉ์ ์€ D(G(z)) ์˜ ๊ฐ’์ด 1์— ๊ฐ€๊นŒ์›Œ์ง€๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

์ˆ˜์‹์„ ๋ณด๋ฉด,

 

log ( 1 - D(G(z)))์˜ ๊ฐ’์—์„œ D(G(z))์˜ ๊ฐ’์ด 1์— ๊ฐ€๊นŒ์›Œ์งˆ ์ˆ˜๋ก G์˜ ๋ชฉ์ ์„ ์ถฉ์กฑ์‹œํ‚ค๋Š” ๊ฒƒ์ด์ฃ .

 

๊ทธ๋Ÿผ log ( 1 - D(G(z)))์˜ ๊ฐ’์€ ์ž‘์„ ์ˆ˜๋ก ์ข‹์€ ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

 

์ด์ œ GAN์ด ์•„๋ž˜์™€ ๊ฐ™์€ Loss func.์„ ๋งŒ์กฑ์‹œํ‚ค๋Š” ํ•™์Šต์„ ํ•œ๋‹ค๊ณ  ๋ณด์‹œ๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ž ์šฐ์„  min max๊ฐ€ ๋ณด์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  log๋Š” monotomicํ•˜์—ฌ ๊ณ„์‚ฐ์˜ ํŽธ์˜๋ฅผ ์œ„ํ•ด ๋‚˜์™”๋‹ค๊ณ  ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์œ„ D(x)์™€ D(G(z))๊ฐ€ ๋ณด์ž…๋‹ˆ๋‹ค.

 

์œ„์—์„œ D์˜ ์ž…์žฅ์—์„œ ์ƒ๊ฐํ•ด๋ณด๋ฉด, x๊ฐ€ ๋“ค์–ด์™”์„ ๋•Œ, ํ™•๋ฅ ๊ฐ’์ด ํฌ๋ฉด ํด์ˆ˜๋ก ์ข‹์Šต๋‹ˆ๋‹ค. D(x)์˜ ๊ฐ’์ด ํฌ๋ฉด ํด์ˆ˜๋ก ์ข‹์ฃ .

 

๊ทธ๋ฆฌ๊ณ  fake data๊ฐ€ ๋“ค์–ด์™”์„ ๋•Œ, ํ™•๋ฅ ๊ฐ’ D(G(z)) ๊ฐ’์ด ์ž‘์œผ๋ฉด ์ž‘์„์ˆ˜๋ก ์ข‹๊ณ , ์—ฌ๊ธฐ์„œ ์ด๊ฒƒ์„ 1์—์„œ ๋บ์œผ๋‹ˆ ์—ญ์œผ๋กœ ํฌ๋ฉด ํด์ˆ˜๋ก ์ข‹์Šต๋‹ˆ๋‹ค.

 

 

์ฆ‰, Discrimininator๋Š” maximize ๋ฌธ์ œ๋ฅผ ํ’‰๋‹ˆ๋‹ค. ์ฆ‰, Loss term์— ๋Œ€ํ•ด์„œ maximizeํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ’‰๋‹ˆ๋‹ค.

 

์•ž ์ˆ˜์‹์€ real data, ๋’ท ์ˆ˜์‹์€ fake data์— ๋Œ€ํ•œ ๊ฒƒ์ด๋ผ๊ณ  ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

 

์ด๋ฒˆ์—” Generator๋ฅผ ๋ด…์‹œ๋‹ค.

 

G์˜ ์ž…์žฅ์—์„œ ์•ž ์ˆ˜์‹์— ๋Œ€ํ•ด, x์— ๋Œ€ํ•œ ์ˆ˜์‹์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ ,

 

์ด real data๊ฐ€ discriminator์— ๋“ค์–ด๊ฐˆ ๋•Œ Generator๋Š” ์•„๋ฌด๋Ÿฐ ์˜ํ–ฅ๋„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ด ์•ž์— term์€ generator ์ž…์žฅ์—์„œ ๊ด€์—ฌํ•˜์ง€ ์•Š๋Š” term์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ๋’ท term์„ ๋ณด๋ฉด,

 

G๋Š” D(G(z))์˜ ๊ฐ’์ด ์ปค์ง€๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

 

์ด ๊ฐ’ ๋˜ํ•œ 1์—์„œ ๋นผ๋‹ˆ, ์ด 1 - D(G(z))์˜ ๊ฐ’์ด ์ž‘์•„์ง€๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

 

 

๊ฒฐ๊ตญ D ์ž…์žฅ์—์„œ๋Š” ๋˜‘๊ฐ™์€ loss func.์„ ๊ฐ€์ง€๊ณ  maximize ๋ฌธ์ œ๋ฅผ ํ’€๊ณ ,

 

generator ์ž…์žฅ์—์„œ๋Š” ๋˜‘๊ฐ™์€ loss func.์„ ๊ฐ€์ง€๊ณ  minimize ๋ฌธ์ œ๋ฅผ ํ’‰๋‹ˆ๋‹ค.

 

๋‹จ, ์•ž term์€ ์˜ํ–ฅ์„ ๋ผ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

 

 

์ด๊ฒƒ์— ๋Œ€ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ž ์‹œ ์‚ดํŽด๋ด…์‹œ๋‹ค.

 

hyperparameter ์ธ k = 1์ด ๋“ฑ์žฅํ•ฉ๋‹ˆ๋‹ค.

 

์ผ๋‹จ ํฐ for loop๋Š” epoch์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์ž‘์€ for loop๊ฐ€ max D์ด๊ณ , ์ด ์ž‘์€ loop๋ฅผ ๋‚˜์˜จ ๋ถ€๋ถ„์ด min G๋ผ๊ณ  ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

k๋ฒˆ ๋จผ์ € maximization์„ ํ•œ๋‹ค๋Š” ๊ฒƒ์€, k๋ฒˆ ๋จผ์ € D๋ฅผ ๋˜‘๋˜‘ํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์„  k๋ฅผ 1์ด๋ผ ํ–ˆ์œผ๋‹ˆ D, G๊ฐ€ ๋˜‘๊ฐ™์ด ํ•™์Šต๋ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ  ๋จผ์ € minibatch noise samples์„ ๋ฝ‘์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ fake data๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์žฌ๋ฃŒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ๊ทธ minibatch ๋˜‘๊ฐ™์€ size์˜ real data sample m๊ฐœ๋ฅผ ๋ฝ‘์Šต๋‹ˆ๋‹ค.

 

 

์œ„๋Š” fake data, ์•„๋ž˜๋Š” real data.

 

์ด๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ์•„๋ž˜ loss func.์— D์˜ maximize ์‹œ์ผœ์ค€๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  fake์˜ ์žฌ๋ฃŒ๋ฅผ ๊ฐ€์ง€๊ณ , G์— ๋Œ€ํ•ด minimizeํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  loss func. ์ค‘ ์•ž term์€ generation์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋‹ˆ ๋’ท term ๊ฐ€์ง€๊ณ ๋งŒ minimizeํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ  ๋‚˜๋จธ์ง€๋Š” standard gradient descent (standard gradient-based learning)์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

์ž˜ ์•„์‹œ๋Š” Adam optimizationํ•˜๋ฉด ๋˜๊ฒ ์ฃ .

 

 

์ˆœ์„œ๋ฅผ ๋ณด๋‹ˆ,

 

ํƒ์ • ํ•œ ๋ฒˆ ๋˜‘๋˜‘ํ•˜๊ฒŒ ๋งŒ๋“  ๋’ค, ์œ„์กฐ๋ฒ” ๋˜‘๋˜‘ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉด์„œ ๋˜‘๋˜‘ํ•˜๊ฒŒ ํ•™์Šต์‹œํ‚ต๋‹ˆ๋‹ค.

 

ํ•œํŽธ, k๊ฐ€ 1์ด ์•„๋‹Œ ์ƒ์ˆ˜๋ผ๋ฉด,

 

๋งŒ์ผ 2๋ผ๋ฉด,

 

max -> max -> min -> max -> max -> min -> ... ๊ณผ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ด ์ด์œ ๋Š”,

 

Discriminator์™€ Generator๊ฐ€ ๋น„๋“ฑ๋น„๋“ฑํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ ์ด์œ ๋Š” ์„œ๋กœ ๊ธ‰์ด ์•ˆ ๋งž์•„๋ฒ„๋ฆฌ๋ฉด ๋‘˜ ๋‹ค ๋ฐœ์ „์„ ๋ชปํ•˜๊ธฐ์— ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ํ•œ ์ชฝ์— ์ ๋ฆฌ์ง€ ์•Š๊ณ  ๋‘˜ ๋‹ค ๋น„๋“ฑ๋น„๋“ฑํ•œ ์ƒํƒœ์—์„œ ๊ฒฝ์Ÿ์„ ํ•ด์•ผ ๋ฐœ์ „์ด ๋” ์ƒ๊น๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ, ๋…ผ๋ฌธ์—์„œ๋Š” Generator ํ•œ ๋ฒˆ ๋˜‘๋˜‘ํ•˜๊ฒŒ ํ•™์Šต์‹œํ‚ฌ ๋•Œ, Discriminator๋ฅผ ๋ช‡ ๋ฒˆ ๋” ํ•™์Šต์‹œ์ผœ์•ผ ๋”ฐ๋ผ์˜ค๊ธฐ์— ๊ทธ๋ ‡๊ฒŒ ํ•œ ๊ฒƒ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

์–ด๋–ป๊ฒŒ ๋ณด๋ฉด D์—๊ฒŒ ์กฐ๊ธˆ ๋” ํ•™์Šตํ•  weight๋ฅผ ์ค€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์–ด์งธํŠผ ๋ฐธ๋Ÿฐ์Šค๊ฐ€ ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 



 

์œ„ ๊ทธ๋ฆผ์—์„œ ๋ณด์‹œ๋ฉด,

 

์—ฐ๋‘์ƒ‰์ด fake data์˜ ๋ถ„ํฌ๋ผ๊ณ  ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  p๋Š” real, D๋Š” ํƒ์ •์ž…๋‹ˆ๋‹ค.

 

generator์™€ discriminator๋ฅผ ๋ณด๋ฉด ๋‘˜ ๋‹ค ์ž˜ ์ƒ์„ฑํ•˜๊ณ  ํƒ์ง€ํ•ด๋‚ด์ง€ ๋ชปํ•˜๋Š” ๋ชจ์Šต์ด (a)์—์„œ ๋ณด์ž…๋‹ˆ๋‹ค.

 

epoch์„ ์ง„ํ–‰ํ•˜๋‹ค๋ณด๋ฉด,

 

real๊ณผ fake๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ ํ™•๋ฅ  ๊ฐ’์ด D์ž…๋‹ˆ๋‹ค.

 

After updating D์ด๊ธฐ ๋•Œ๋ฌธ์—, ๊ทธ ๊ฐ’์ด ์œ„ (b)์—์„œ๋Š” ์ž˜ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ ๋‹ค์Œ ์ด๋Ÿฐ ํƒ์ •๋„ ์†์ผ ์ˆ˜ ์žˆ๋Š” G๋ฅผ upgrade์‹œํ‚ต๋‹ˆ๋‹ค.

 

After updating, fake๊ฐ€ ์กฐ๊ธˆ ๋” real์— ๊ฐ–๋‹ค ๋ถ™๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์ด๊ฒƒ์„ ๋ฌด์ˆ˜ํžˆ ๋ฐ˜๋ณต์‹œํ‚ค๋‹ค๋ณด๋ฉด real๊ณผ fake๊ฐ€ ๊ฐ™์•„์ง€๋Š”, ์ฆ‰, ์œ„ Discriminator ์ž…์žฅ์—์„œ๋Š” real๊ณผ fake๊ฐ€ ๊ฐ™์•„์ง€๋Š”,

 

p_g == p_data == 0.5์ธ ์ˆ˜์ค€์ด ๋ฉ๋‹ˆ๋‹ค.

 

 

์•„๋ž˜ ๊ทธ๋ฆผ์„ ๋ด…์‹œ๋‹ค.

 

GAN์œผ๋กœ ๋งŒ๋“ค์–ด๋‚ธ sample์ž…๋‹ˆ๋‹ค.

 

์ •๋ง ์ž…๋ ฅ์œผ๋กœ random gaussian noise๋ฅผ ๋„ฃ๊ณ , network๋ฅผ ๋„ฃ๊ณ  ํ•™์Šต์‹œ์ผฐ๋”๋‹ˆ ์œ„์™€ ๊ฐ™์€ ๊ฒƒ๋“ค์ด ๋‚˜์™”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

ํ•™์Šต์„ ์œ„ ๊ณผ์ •๊ณผ ๊ฐ™์ด ์‹œํ‚ค๊ณ ,

 

random gaussian noise๋ฅผ ์ฃผ๋ฉด ์œ„์™€ ๊ฐ™์€ ๊ทธ๋ฆผ์„ ์ƒ์„ฑํ•ด๋‚ธ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ด๊ฒƒ์˜ ๊ถ๊ทน์ ์ธ ๋ชฉ์ ์€, ์ข‹์€ generator๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

์ด๊ฒƒ์€ ์•„๋ฌด๋Ÿฐ random vector๋งŒ ์ฃผ๋ฉด, ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ์–ด๋– ํ•œ ๊ฒƒ๋„ ๋งŒ๋“ค์–ด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ GAN์œผ๋กœ ์ •๋ง ๋งŽ์€ ๊ฒƒ์„ ํ•ด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ์„  ์šฐ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์•Œ๊ณ  ์žˆ๋Š”, MLP, CNN. Backpropagation๊ณผ ๊ฐ™์€ ์ด๋Ÿฌํ•œ technique์ด ์“ฐ์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ๋‹ค ์“ฐ์ฃ .

 

๊ทธ๋Ÿฌํ•œ ๊ฒƒ๋“ค์„ ๊ฐ€์ ธ๋‹ค ์“ฐ๋‹ค๋ณด๋‹ˆ,, ๊ฐ€์ •, ๋ถ„ํฌ, ๊ทผ์‚ฌ์™€ ๊ฐ™์€ ๊ฒƒ๋“ค์ด ํ•„์š”์—†์–ด์ง‘๋‹ˆ๋‹ค.

 

๋ถ„ํฌ ์ถ”์ • ์‹œ ์–ด๋ ค์šด ์ ๋“ค์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์ˆ˜์‹๋„ ์ •๋ง ์ข‹์Šต๋‹ˆ๋‹ค.

 

 

์—ฌ๊ธฐ์„œ ์‹œ์‚ฌํ•˜๋Š” ์ ์€, ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” MLP ๋ช‡ ๊ฐœ ๊ฐ–๋‹ค ๋ถ™์—ฌ์„œ, ์šฐ๋ฆฌ์˜ ๋ชฉ์ ์— ๋งž๊ฒŒ loss๋งŒ ์ž˜ ๋งŒ๋“ค๋ฉด, ํ•™์Šต์€ Backpropgation์ด ์•Œ์•„์„œ ์ž˜ ํ•ด์ฃผ๋‹ˆ, ์ •๋ง ์—„์ฒญ๋‚œ ํ™œ์šฉ๋„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์ด Neural Network๋ผ๋Š” ๊ฒƒ์„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ผ๊นจ์›Œ ์ค€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

๊ทธ๋Ÿฐ๋ฐ ๋‹จ์ ์€ G์™€ D์˜ ๋ฐธ๋Ÿฐ์Šค๋ฅผ ์ž˜ ๋งž์ถฐ์•ผ ํ•™์Šต์ด ์ž˜ ๋˜๋ฏ€๋กœ, ๊ต‰์žฅํžˆ sensitiveํ•ฉ๋‹ˆ๋‹ค.

 

์–ด๋Š ํ•˜๋‚˜๊ฐ€ ๋” ํŒŒ์›Œํ’€ํ•ด์ง€๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

 

๋˜‘๋˜‘ํ•œ ๋…€์„๋ผ๋ฆฌ ๊ณ„์†ํ•ด์„œ ์„œ๋กœ๋ฅผ ์†์ด๋ฉฐ ๊ฐ•ํ•ด์ ธ์•ผํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์•ผ ํ•™์Šต์ด ์ž˜ ์ด๋ฃจ์–ด์ง€๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

Model collapse๋ผ๋Š” ๊ฒƒ์€, ๋„ˆ๋ฌด ์†์ด๊ธฐ ์‰ฌ์šด ๋ฐ์ดํ„ฐ๋งŒ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค๋“ ์ง€, ์ „์ฒด ๋ฐ์ดํ„ฐ ์˜์—ญ์„ ๋ณด์ง€ ์•Š๊ณ  ํ•œ ๋ถ€๋ถ„์— ๊ฝ‚ํ˜€๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ณจ๊ณ ๋ฃจ ๋˜์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ model๋“ค์ด ๋‹ค ๋ฌด๋„ˆ์ง€๋ฉฐ ๋ช‡ ๊ฐœ๋งŒ ์‚ด์•„๋‚จ๊ฒŒ ๋˜๋Š” ๊ตฌ์กฐ๊ฐ€ ๋  ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ฒฐ๊ณผ์ ์œผ๋กœ G๋Š” D๋งŒ ์ž˜ ์†์ด๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์—,

 

D๊ฐ€ ํŠน์ • ๋ถ€๋ถ„์—๋งŒ ๊ฝ‚ํžˆ๋ฉด G๋„ ๊ทธ ๋ถ€๋ถ„์—์„œ๋งŒ ์†์ด๊ฒŒ ๋˜๊ฒ ์ฃ .

 

๊ทธ๋Ÿฐ์‹์œผ๋กœ, ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๋‹ค๋ฉด ์ด๋ฏธ์ง€ ์ „์ฒด์— ๋Œ€ํ•ด ํŒ๋‹จํ•ด์•ผํ•˜๋Š”๋ฐ, ๊ตญ์†Œ์ ์ธ ์˜์—ญ๋งŒ ๊ฐ€์ง€๊ณ  D๊ฐ€ ์ข‹๋‹ค๊ฑฐ๋‚˜ G๊ฐ€ ์ข‹๋‹ค๊ณ  ํŒ๋‹จํ•ด๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ด๋Ÿฐ์‹์œผ๋กœ ๋ชจ๋ธ์ด ์ด์ƒํ•˜๊ฒŒ ์ˆ˜๋ ด๋˜๋Š” ๊ฒƒ์„ model collapse๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ๋‹จ์ ์€ ํ•™์Šต์‹œํ‚ค๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค๋Š” ๊ฒŒ ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

์ด๋ ‡๊ฒŒ Generative models์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

์ด์ œ ์ €์ž๋“ค์ด practical method๋ผ๊ณ  ํ•˜์—ฌ ์ €์ž๋“ค์ด ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ์“ธ ๋•Œ ๋‹จ๊ณ„๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ •๋ฆฌํ•œ ๊ฒŒ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

3๊ฐ€์ง€ ๋‹จ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

1. ์„ฑ๋Šฅ์ง€ํ‘œ์™€ ๊ด€๋ จ๋œ ๋ชฉํ‘œ๋ฅผ ์„ธ์›Œ๋ผ.

 

2. ํ•˜๋‚˜๋กœ ๋‹ค ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค์–ด๋ผ.

 

3. ๋ฐ์ดํ„ฐ์— ๊ธฐ๋ฐ˜ํ•ด์„œ ์ž˜ ๊ฐœ์„ ํ•ด ๋‚˜๊ฐ€๋ผ.

 

 

 

 

 

์ •ํ™•๋„์— ๋”ฐ๋ผ ๋‚˜๋ˆŒ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

๊ทธ๋ฆฌ๊ณ  ์œ„์™€ ๊ฐ™์ด ๋ฌธ์ œ์— ๋”ฐ๋ฅธ metric์„ ๊ณจ๋ผ์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

๊ทธ๋ฆฌ๊ณ  ์œ„์™€ ๊ฐ™์€ end-to-end system์„ ๋งŒ๋“œ๋Š” ๋ฒ•๋„ ๋‚˜์™€์žˆ์Šต๋‹ˆ๋‹ค.

 

SOTA๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ์ข‹์Šต๋‹ˆ๋‹ค.

 

 

MLP

 

CNN

RNN

 

๊ทธ๋ฆฌ๊ณ  RNN์˜ ๊ฒฝ์šฐ activation func.์„ tanh๋ฅผ ์“ฐ๋Š” ๊ฒŒ ์ข‹๊ฒ ์ฃ .

๊ทธ๋ฆฌ๊ณ  training error๊ฐ€ ๋†’๋‹ค๋ฉด ์œ„์™€ ๊ฐ™์€ ๊ฒƒ๋“ค์„ ๊ฒ€์‚ฌํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  test error๊ฐ€ ๋†’๋‹ค๋ฉด ์œ„์™€ ๊ฐ™์€ ๊ฒƒ๋“ค์„ ๊ฒ€์‚ฌํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด ๋”ฅ๋Ÿฌ๋‹์„ ์ตœ์ข…์ ์œผ๋กœ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

BELATED ARTICLES

more