[๋ ผ๋ฌธ๋ฆฌ๋ทฐ]
๋ ผ๋ฌธ์์ ์ฌ์ฉ๋๋ ๋จ์ด ์ ์
- attribute : ์ด๋ฏธ์ง์ ํน์ง (๋จธ๋ฆฌ์, ์ฑ๋ณ ๋ฑ)
- attribute value : ๊ฐ๊ฐ์ attribute๊ฐ ๊ฐ์ง ์ ์๋ ๊ฐ์ ์๋ฏธ. ์๋ฅผ ๋ค์ด ๋จธ๋ฆฌ์์ ๋ํ value๋ ๊ธ๋ฐ, ๊ฐ์ ๋ฑ
- domain : ๊ฐ์ attribute value๋ฅผ ๊ฐ์ง๋ ๋ฐ์ดํฐ ์งํฉ์ ์๋ฏธ. ๊ฒ์์ ๋จธ๋ฆฌ, ๊ธ๋ฐ ๋จธ๋ฆฌ, ๋จ์ฑ, ์ฌ์ฑ ๋ฑ์ด ๋๋ฉ์ธ์ ์์
<๋ค์ค ๋๋ฉ์ธ์์์ ํจ์จ์ ์ธ image-to-image translation ๋คํธ์ํฌ์ธ StarGAN์ ์ ์>
๊ธฐ์กด์ GAN ๋ชจ๋ธ๋ค์ ์์ฑํ๊ณ ์ถ์ ๋๋ฉ์ธ์ ๊ฐ์๋งํผ์ ๋ชจ๋ธ์ด ํ์ํ๋ค๋ ๋จ์ ์ด ์กด์ฌ.
์ด ๋จ์ ์ ๋ณด์ํ๊ณ ์ StarGAN์ ์ ์. StarGAN์ ํ ๊ฐ์ Generator(์์ฑ์)์ ํ ๊ฐ์ Discriminator(๊ตฌ๋ณ์)๋ก ์ํํจ.
Generator(์์ฑ์) : ๊ตฌ๋ณ์๋ฅผ ์์ด๊ธฐ ์ํ ๊ฐ์ง ์ด๋ฏธ์ง๋ฅผ ์์ฑ
Discriminator(๊ตฌ๋ณ์) : ์์ฑ์๊ฐ ์์ฑํด๋ธ ์ด๋ฏธ์ง๊ฐ ์ง์ง์ธ์ง ๊ฐ์ง์ธ๊ธฐ ๊ตฌ๋ณํ๋ ์ญํ
๋ ผ๋ฌธ์์ ์ ์ํ๋ ์ข์ I2I ๋ชจ๋ธ์ด ๊ฐ์ ธ์ผ ํ ํน์ฑ
- ๋ค์ํ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ๊ฒ
- ๋ค์ํ ๋๋ฉ์ธ์ผ๋ก์ ํ์ฅ์ด ๊ฐ๋ฅํ ๊ฒ
StarGAN v1์์๋ ์๋ณธ ์ด๋ฏธ์ง์ ๋ฐ๋ผ ๊ฐ ๋๋ฉ์ธ๋ง๋ค ๋น์ท๋น์ทํ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๋ ๋ฌธ์ ์
→ StarGAN v2๋ ๊ทธ๋ฌํ ๋ฌธ์ ์ ์ ๋ณด์ํ๊ณ ์์ฑํ๋ ์ด๋ฏธ์ง์ ๋ค์์ฑ๊ณผ, ์ฌ๋ฌ ๋๋ฉ์ธ์ ๋ํ ํ์ฅ์ฑ์ ๊ฐ์ถ ๋ชจ๋ธ
(a) Training the discriminator
Discriminator์ ๊ตฌ์กฐ์ ๋ํด์ ์์๋ณด๋ฉด, D๋ ์ด๋ฏธ์ง๊ฐ Real์ธ์ง Fake์ธ์ง ๊ตฌ๋ถํ๋ ์ญํ ์ ํจ.
์ผ๋ฐ์ ์ธ GAN์ D์ ์ญํ ์ ์ฌ๊ธฐ๊น์ง์ง๋ง StarGAN์ D๋ ‘Domain classification’์ด๋ผ๋ ํ ๊ฐ์ง ์ญํ ์ ์ถ๊ฐํจ.
์ธํ ์ด๋ฏธ์ง๊ฐ ์ด๋ค ๋๋ฉ์ธ์ ๊ฐ์ง๋์ง ๋ถ๋ฅํ๊ฒ ๋๋ ๊ฒ์ด๋ค. (ex. ๋จ์ฑ ์ด๋ฏธ์ง๋ฅผ ๋จ์ฑ์ผ๋ก ๋ถ๋ฅํ๋์ง, ๊ธ๋ฐ ์ด๋ฏธ์ง๋ฅผ ๊ธ๋ฐ๋ก ๋ถ๋ฅํ๋์ง)
(b) Original-to-target domian
G๋ ์ด๋ฏธ์ง์ ํ๊ฒ ๋๋ฉ์ธ์ ์ธํ์ผ๋ก ๋ฐ๊ณ G๋ฅผ ํตํด ๊ฐ์ง ์ด๋ฏธ์ง๋ฅผ ์์ฑํด๋
→ (c) Target-to-original domain์ ํตํด ์๋ ์ด๋ฏธ์ง์ ๋๋ฉ์ธ์ ๋ํ๋ด๋ ๋ฒกํฐ์ ํจ๊ป ๋ค์ G๋ก ๋ค์ด๊ฐ์ Reconstructed image๋ฅผ ์๋์ ์ด๋ฏธ์ง์ ๋น๊ตํด ๊ทธ ์ฐจ์ด๊ฐ ์์์ง๋๋ก ํ์ตํ๋ ๊ตฌ์กฐ
→ (d) Fooling the discriminator์์๋ (b)์์ ์์ฑํ ๊ฐ์ง ์ด๋ฏธ์ง๋ฅผ ์ธํ์ผ๋ก ๋ฐ์, ์ง์ง์ธ์ง ๊ฐ์ง์ธ์ง ๊ตฌ๋ถ. (a)์ ๋ง์ฐฌ๊ฐ์ง๋ก classification์ ์งํํ๋ค. ๋ ๊ฒฐ๊ณผ ๋ชจ๋ G์ ํผ๋๋ฐฑ ๋์ด ๋ ์ง์ง ๊ฐ๊ณ , ํด๋น ๋๋ฉ์ธ์ ์ ํฉํ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค ์ ์๊ฒ ํจ.
[StarGAN Loss Function]
StarGAN : Adversarial loss + Domain classification loss + Reconstruction loss
Adversarial loss
- Generator๋ก ํ์ฌ๊ธ ์ง์ง์ฒ๋ผ ๋ณด์ผ ์ ๋๋ก ์ฌ์ค์ ์ธ ๊ฐ์ง ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋๋ก ํ์ตํ๋ ์๊ณ ๋ฆฌ์ฆ
- $ G(x,c) $์์ c๋ ํน์ ๋๋ฉ์ธ์ ์๋ฏธํ๊ณ , ํน์ ๋๋ฉ์ธ์ผ๋ก ํด๋น ์ด๋ฏธ์ง๋ฅผ ๋ฐ๊พธ๋๋ก ๋ง๋ฆ. → Real์ด๋ฏธ์ง๋ก ๋ถ๋ฅ๋ ์ ์๊ฒ๋ ํ์ต์ ์งํ
- $ D$src $ ๊ฐ์ ๊ฒฝ์ฐ๋ ๊ฐ์ง์ด๋ฏธ์ง๋ก ๋ถ๋ฅ๋๋๋ก ํ์ต์ ์งํํ๋ค.
- $ Ldiscriminator $ ๊ฐ์ ๊ฒฝ์ฐ์ Adversarial loss์ ๋ง์ด๋์ค๋ฅผ ๋ถ์ฌ์ minimize๋ฅผ ํจ์ผ๋ก์จ(adversarial loss๋ฅผ maximize ํ๊ฒ ๋ค)
- $ Lgenarator $ ๊ฐ์ ๊ฒฝ์ฐ๋ Adversarial loss๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํด์ loss๊ฐ์ minimizeํ๋ ๋ฐฉํฅ์ผ๋ก ํ์ต์ ์งํ
Domain classification loss
- cGAN์ ํน์ง์ฒ๋ผ c(๋๋ฉ์ธ ์ ๋ณด) ํน์ ๋๋ฉ์ธ์ผ๋ก ๋ฐ๊พผ๋ค์์ ๋ฐ๋ ์ด๋ฏธ์ง๊ฐ ํ๊ฒ ๋๋ฉ์ธ์ผ๋ก ๋ถ๋ฅ๋ ์ ์๋ ํํ๋ก ํ์ต์ ์งํ
- Discriminator์๋ง ๋ค์ด๊ฐ์๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค.
Reconstruction loss
- Generator๊ฐ ๋ง๋ ์ด๋ฏธ์ง๊ฐ tranlation์ ์งํํ ๋ ์๋ณธ์ด๋ฏธ์ง์ ์ปจํ ์ธ ๊ฐ ์ ์ง๋ ์ ์๋๋ก → ์ฆ ๋๋ฉ์ธ ์ ๋ณด๋ง ๋ฐ๋ ์ ์๋๋ก Cycle loss๋ฅผ ์ด์ฉํ๋ ํํ
- Mask Vector๋ฅผ ์ฌ์ฉํด์ ์ด๋ค ๋๋ฉ์ธ์ ์ธ ๊ฒ์ธ์ง์ ๋ํ mask๋ฅผ ์งํํ๋ ๊ฒ
(์ฌ์ง์ mask vector : [๋ธ๋ํค์ด, ๊ธ๋ฐ, ๊ฐ์ํค์ด, ์ฑ๋ณ, ๋์ด])
StarGAN v2์์ ์ฐจ์ด์
- mapping network์ style encoder ๋ชจ๋์ ์ถ๊ฐํ์ฌ ๋ค์ํ ๋๋ฉ์ธ์ ๋ํ style transfer๊ฐ ๊ฐ๋ฅํ๋๋ก ๋ฐ์ ์์ผฐ๋ค.