๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Data Science/Generative AI

[GenAI] ์›๋ณธ์€ ์œ ์ง€ํ•˜๋˜ ์Šคํƒ€์ผ๋งŒ ๋‹ค๋ฅด๊ฒŒ ํ•˜๊ธฐ: CycleGAN, Style Transfer

๋ฐ˜์‘ํ˜•

๐Ÿ”Š ํ•ด๋‹น ํฌ์ŠคํŒ…์€  OREILLY์˜ '๋ฏธ์ˆ ๊ด€์— GAN ๋”ฅ๋Ÿฌ๋‹ ์‹ค์ „ ํ”„๋กœ์ ํŠธ' ์„œ์ ์„ ์ฝ๊ณ  ๊ฐœ์ธ์ ์ธ ๋ชฉ์  ํ•˜์— ์ž‘์„ฑ๋˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. ํฌ์ŠคํŒ…์— ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  ์ž๋ฃŒ๋Š” ์ œ๊ฐ€ ์ง์ ‘ ์žฌ๊ตฌ์„ฑํ•˜์˜€์Œ์„ ์•Œ๋ฆฝ๋‹ˆ๋‹ค.

 

์ถœ์ฒ˜: Yes24


์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ทธ๋™์•ˆ ๋ฐฐ์›Œ์˜จ ๊ธฐ์ดˆ์ ์ธ ์ƒ์„ฑ ๋ชจ๋ธ๋ง ๊ธฐ๋ฒ•์„ ํ™œ์šฉํ•ด์„œ ๊ทธ๋ฆฌ๊ธฐ ์ž‘์—…์„ ์ ์šฉํ•ด๋ณด๋„๋ก ํ•˜์ž. ์—ฌ๊ธฐ์„œ '๊ทธ๋ฆฌ๊ธฐ'๋ž€ ์›๋ณธ ๋ฐ์ดํ„ฐ๋Š” ์œ ์ง€ํ•˜๋˜ ์•ฝ๊ฐ„ ์Šคํƒ€์ผ๋งŒ ๋‹ค๋ฅด๊ฒŒ ํ•˜์—ฌ ๊ฐ€์งœ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ๋กœ๋Š” ์Šคํƒ€์ผ ํŠธ๋ Œ์Šคํผ ์ž‘์—…์ด ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ”ผ์นด์†Œ ๊ทธ๋ฆผ์ด ์›๋ณธ์ด์ง€๋งŒ ๋ฐ˜ ๊ณ ํ๊ฐ€ ํ•ด๋‹น ๊ทธ๋ฆผ์„ ๊ทธ๋ ธ์„ ๋•Œ์˜ ์ƒˆ๋กœ์šด ๊ทธ๋ฆผ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

Style Transfer ์˜ˆ์‹œ(์ถœ์ฒ˜ : https://towardsdatascience.com/light-on-math-machine-learning-intuitive-guide-to-neural-style-transfer-ef88e46697ee)

 

 

์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ๋Š” ์ž…๋ ฅ๋˜๋Š” ์ด๋ฏธ์ง€์— ๋‚ด์žฌ๋œ ๋ถ„ํฌ๋ฅผ ๋ชจ๋ธ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ฆ‰, ๊ธฐ์กด์— ๋ฐฐ์› ๋˜ GAN ๋ชจ๋ธ์ฒ˜๋Ÿผ ์›๋ณธ ์ด๋ฏธ์ง€๋ž‘ ๋น„์Šทํ•œ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ž…๋ ฅ๋œ ์ด๋ฏธ์ง€์—์„œ ์Šคํƒ€์ผ์„ ๊ฒฐ์ •ํ•˜๋Š” ์š”์†Œ๋งŒ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ์ถ”์ถœ๋œ ์š”์†Œ๋“ค์„ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€(์ด๋ฅผ ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€๋ผ ํ•จ)์— ์ฃผ์ž…ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.  ์œ„ ๊ทธ๋ฆผ์—์„œ ์Šคํ‹ฐ๋ธŒ ์žก์Šค๊ฐ€ ๋‚˜์™€์žˆ๋Š” ์‚ฌ์ง„์„ ์˜ˆ์‹œ๋กœ ๋“ค์–ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

Style Transfer ๋™์ž‘ ์˜ˆ์‹œ

 

๋”ฐ๋ผ์„œ ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ๋Š” ์ž…๋ ฅ๋œ ์ด๋ฏธ์ง€๋“ค์— ์ ์šฉ๋œ ์Šคํƒ€์ผ์„ ํ•™์Šตํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์›๋ณธ ์ž‘ํ’ˆ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๋‹ค๋ฅธ ์ž‘ํ’ˆ์˜ ์Šคํƒ€์ผ ๊ธฐ๊ต๋กœ ์™„์„ฑํ•˜๋Š” ๋“ฏํ•œ ํšจ๊ณผ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ด๋‹ค. ํ•ด๋‹น ํฌ์ŠคํŒ…์—์„œ๋Š” ๋Œ€ํ‘œ์ ์ธ ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ ๋ชจ๋ธ๋กœ์„œ CycleGAN ๊ณผ Neural Style Transfer ๋ชจ๋ธ์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•˜๊ณ , ์ด๋ฅผ pytorch๋กœ ๊ตฌํ˜„ํ•ด๋ณด๋„๋ก ํ•˜์ž.

1. 2๊ฐœ์˜ ์ƒ์„ฑ์ž์™€ 2๊ฐœ์˜ ํŒ๋ณ„์ž๋กœ ๊ตฌ์„ฑ๋œ GAN : CycleGAN 

CycleGAN ๋ชจ๋ธ์€ ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ ๋ถ„์•ผ์—์„œ ํฐ ์ง„์ „์„ ์ด๋ฃจ์–ด ๋‚ธ ๊ฒƒ์œผ๋กœ ํ‰๊ฐ€๋ฐ›๋Š”๋‹ค. CycleGAN์ด ๋“ฑ์žฅํ•˜๊ธฐ ์ด์ „์˜ pix2pix ๊ฐ™์€ ๋ชจ๋ธ์—์„œ๋Š” ๋ฐ˜๋“œ์‹œ ํ•™์Šต ๋ฐ์ดํ„ฐ์…‹์— ์†Œ์Šค์™€ ํƒ€๊นƒ ๋„๋ฉ”์ธ์˜ ์Œ(pair) ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ๋‘ ์กด์žฌํ•ด์•ผ ํ–ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠน์ • ์ธ๋ฌผ์˜ ํ‘๋ฐฑ ์‚ฌ์ง„๊ณผ ์ปฌ๋Ÿฌ ์‚ฌ์ง„์ด ์žˆ๋‹ค๋ฉด ๊ฐ๊ฐ์ด ์†Œ์Šค์™€ ํƒ€๊นƒ์ด ๋œ๋‹ค. ๋‹ค๋ฅธ ์˜ˆ์‹œ๋กœ๋Š” ํŠน์ • ์ง€์—ญ์˜ ์ง€๋„ ์‚ฌ์ง„๊ณผ ์œ„์„ฑ ์‚ฌ์ง„์ด ์žˆ๋‹ค๋ฉด ์ด ๊ฐ๊ฐ์ด ์†Œ์Šค์™€ ํƒ€๊นƒ์ด ๋œ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ์†Œ์Šค์™€ ํƒ€๊นƒ์ด ๋ชจ๋‘ ์กด์žฌํ•˜๋Š” ์ผ€์ด์Šค๋Š” ํ”ํ•˜์ง€ ์•Š๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ญ‰ํฌ์˜ ์ ˆ๊ทœ๋ผ๋Š” ๊ทธ๋ฆผ ์ž‘ํ’ˆ์ด ์žˆ๋‹ค๊ณ  ํ•˜์ž. ์ด ๊ทธ๋ฆผ์€ ๋ญ‰ํฌ๊ฐ€ ๊ทธ๋ฆฐ ๊ฒƒ ๋ฐ–์— ์—†๋‹ค. ์ฆ‰, ํ”ผ์นด์†Œ ๋˜๋Š” ๊ณ ํ์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์˜ˆ์ˆ ๊ฐ€๋“ค์ด ๊ทธ๋ฆฐ ์ ˆ๊ทœ๋ผ๋Š” ๊ทธ๋ฆผ์€ ์„ธ์ƒ์— ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ์„ธ์ƒ์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ทธ๋ฆผ๋“ค์€ pix2pix์—์„œ {์†Œ์Šค - ํƒ€๊นƒ} ์Œ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค์ง€ ๋ชปํ•˜๋Š” ํ•œ๊ณ„์ ์ด ์กด์žฌํ•œ๋‹ค.

 

ํ•˜์ง€๋งŒ CycleGAN์€ ์†Œ์Šค์™€ ํƒ€๊นƒ ์Œ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์–ด๋„ ๋ชจ๋ธ์„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์„ ๋ณด์˜€๋‹ค. CycleGAN์€ [์†Œ์Šค โžก๏ธ ํƒ€๊นƒ] ๊ทธ๋ฆฌ๊ณ  [ํƒ€๊นƒ โžก๏ธ ์†Œ์Šค] ์–‘๋ฐฉํ–ฅ์œผ๋กœ ๋ชจ๋‘ ๋™์‹œ์— ํ•™์Šต์„ ํ•œ๋‹ค. ์ด์ œ CycleGAN์— ๋Œ€ํ•ด์„œ ์ข€ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž.

 

CycleGAN์€ 4๊ฐœ์˜ ๋ชจ๋ธ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. 2๊ฐœ์˜ ์ƒ์„ฑ์ž ๋ชจ๋ธ๊ณผ 2๊ฐœ์˜ ํŒ๋ณ„์ž ๋ชจ๋ธ์ด๋‹ค. 2๊ฐœ์˜ ์ƒ์„ฑ์ž ๋ชจ๋ธ์€ 2๊ฐœ์˜ ๋„๋ฉ”์ธ์—์„œ ์„œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ชจ๋ธ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํŒ๋ณ„์ž๋Š” ์ƒ์„ฑ์ž๊ฐ€ ๋ณ€ํ™˜ํ•œ ์ด๋ฏธ์ง€๊ฐ€ ์ •๋ง ํ’ˆ์งˆ์ด ์ข‹์€ ์ด๋ฏธ์ง€์ธ์ง€ ์•„๋‹Œ์ง€ ์ž˜ ํŒ๋‹จํ•˜๋„๋ก ํ•™์Šตํ•œ๋‹ค. ๋ง๋กœ ํ•ด์„œ๋Š” ์ž˜ ์ดํ•ด๊ฐ€ ์•ˆ๋  ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ ๊ฐ„๋‹จํ•œ ๋„์‹ํ™”๋ฅผ ํ†ตํ•ด ์•Œ์•„๋ณด์ž.

 

CycleGAN์€ ์ด 4๊ฐœ์˜ ๋ชจ๋ธ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค

 

์ด์ œ CycleGAN์„ ๊ตฌ์„ฑํ•˜๋Š” ์ƒ์„ฑ์ž์™€ ํŒ๋ณ„์ž ๋ชจ๋ธ์„ ๊ตฌ์ถ•ํ•ด๋ณด์ž.

2. ์ƒ์„ฑ์ž ๋ชจ๋ธ ๋งŒ๋“ค๊ธฐ : U-Net

CycleGAN์—์„œ ์ƒ์„ฑ์ž ๋ชจ๋ธ์€ (์—ฌ๊ธฐ์—์„œ๋Š”) U-Net๊ณผ ResNet ๋‘ ๋ชจ๋ธ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด ๊ตฌํ˜„ํ•œ๋‹ค. pix2pix ๋…ผ๋ฌธ์—์„œ๋Š” U-Net ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ CycleGAN ๋ชจ๋ธ์—์„œ๋Š” ResNet์„ ์„ ํƒํ–ˆ๋‹ค. ์ฑ…์—์„œ๋Š” ๋‘ ๋ชจ๋ธ ๋ชจ๋‘ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋ฒ•์„ ์†Œ๊ฐœํ•œ๋‹ค. ResNet์—์„œ๋Š” ์˜ˆ์ „ ํฌ์ŠคํŒ…์—์„œ ๋‹ค๋ฃฌ ์ ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์—์„œ๋Š” U-Net ๋ชจ๋ธ์—์„œ๋งŒ ๋‹ค๋ฃจ๋„๋ก ํ•˜๊ฒ ๋‹ค.

 

U-Net ๋ชจ๋ธ์€ ๋ง ๊ทธ๋Œ€๋กœ ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž U ๋ชจ์–‘์„ ๊ฐ–์ถ”๊ณ  ์žˆ์–ด์„œ ๊ทธ๋ ‡๋‹ค. U-Net ๋ชจ๋ธ ๊ตฌ์กฐ๋ฅผ ๋ณด์ž.

 

์ถœ์ฒ˜ : https://arxiv.org/pdf/1505.04597.pdf

 

AE, VAE ์™€ ๋น„์Šทํ•œ ๋ฐฉ์‹๋Œ€๋กœ U-Net์€ ๋‹ค์šด์ƒ˜ํ”Œ๋ง๊ณผ ์—…์ƒ˜ํ”Œ๋ง์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์—ฌ๊ธฐ์„œ ๋‹ค์šด์ƒ˜ํ”Œ๋ง์€ ์ž…๋ ฅ๋œ ์ด๋ฏธ์ง€๋ฅผ ๊ณต๊ฐ„ ๋ฐฉํ–ฅ ์ฆ‰, ๋†’์ด์™€ ๋„ˆ๋น„ ๋ฐฉํ–ฅ์œผ๋กœ ์••์ถ•ํ•˜์ง€๋งŒ ์ฑ„๋„ ๋ฐฉํ–ฅ์œผ๋กœ๋Š” ํ™•์žฅ์„ ํ•œ๋‹ค.(๊ทธ๋ž˜์„œ ๋‹ค์šด์ƒ˜ํ”Œ๋ง ์‹œ ์ฑ„๋„ ์ˆ˜(ํ•„ํ„ฐ ์ˆ˜)๊ฐ€ ๋Š˜์–ด๋‚จ) ๋ฐ˜๋ฉด์— ์—…์ƒ˜ํ”Œ๋ง์€ ๊ณต๊ฐ„ ๋ฐฉํ–ฅ ์ฆ‰, ๋†’์ด์™€ ๋„ˆ๋น„ ๋ฐฉํ–ฅ์œผ๋กœ ํ‘œํ˜„์„ ํ™•์žฅ์‹œํ‚ค์ง€๋งŒ ์ฑ„๋„ ๋ฐฉํ–ฅ์œผ๋กœ๋Š” ์••์ถ•ํ•œ๋‹ค. 

 

AE, VAE์™€์˜ ์ฐจ์ด์ ์ด ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด U-Net์—์„œ๋Š” skip-connection์ด ์กด์žฌํ•œ๋‹ค. ์œ„ ๊ทธ๋ฆผ์—์„œ ํšŒ์ƒ‰ ํ™”์‚ดํ‘œ๋กœ ๋˜์–ด ์žˆ๋Š” 'copy and crop' ๋ถ€๋ถ„์ด๋‹ค. ์ฆ‰, U-Net์˜ ๋‹ค์šด์ƒ˜ํ”Œ๋ง ๊ณผ์ •์—์„œ ์–ป์–ด์ง„ ์ •๋ณด๋ฅผ ์—…์ƒ˜ํ”Œ๋ง ๊ณผ์ •์—์„œ๋„ ๋ณด์ถฉํ•ด์ค€๋‹ค.

 

๋” ๊ตฌ์ฒด์ ์œผ๋กœ, U-Net์—์„œ ๋‹ค์šด์ƒ˜ํ”Œ๋ง ๊ณผ์ •์—์„œ๋Š” ๋ชจ๋ธ์ด ์ ์  ์ด๋ฏธ์ง€๊ฐ€ ๋ฌด์—‡์ธ์ง€๋ฅผ ๊ฐ์ง€ํ•œ๋‹ค. ์ด๋ฅผ ๊ณ ์ˆ˜์ค€ ์ถ”์ƒ ์ •๋ณด๋ฅผ ์ธ์ง€ํ•œ๋‹ค๊ณ  ํ•˜๋ฉฐ, ์—ฌ๊ธฐ์—์„œ๋Š” '์ด๋ฏธ์ง€์˜ ์Šคํƒ€์ผ'์„ ๊ฐ์ง€ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๋Š” ๋ณดํ†ต ํ•„ํ„ฐ ์ˆ˜ ์ฆ‰, ์ฑ„๋„ ์ˆ˜๋ฅผ ํ™•์žฅํ•ด๋‚˜๊ฐ์œผ๋กœ์จ ์–ป๊ฒŒ ๋˜๋Š” ์ด์ ์ด๋‹ค. ํ•˜์ง€๋งŒ ๊ณต๊ฐ„ ๋ฐฉํ–ฅ์œผ๋กœ๋Š” ์••์ถ•ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ์ง€ ์† ๊ฐ์ฒด๋“ค์˜ ์œ„์น˜ ์ •๋ณด๋Š” ์žƒ์–ด๋ฒ„๋ฆฌ๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ดํ›„์— ์—…์ƒ˜ํ”Œ๋ง ๊ณผ์ •์—์„œ ๋‹ค์šด์ƒ˜ํ”Œ๋ง ์‹œ์— ์žƒ์–ด๋ฒ„๋ ธ๋˜ ์œ„์น˜ ์ •๋ณด๋ฅผ ๋‹ค์‹œ ํšŒ๋ณต์‹œํ‚จ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๋‹ค์šด ์ƒ˜ํ”Œ๋ง ์‹œ์— ์–ป์—ˆ๋˜ ๊ณ ์ˆ˜์ค€์˜ ์ •๋ณด ์ฆ‰, ์ด๋ฏธ์ง€์˜ ์Šคํƒ€์ผ์„ ์—…์ƒ˜ํ”Œ๋ง ์‹œ์— ๋‹ค์‹œ ํšŒ๋ณตํ•˜๋Š” ๊ณต๊ฐ„ ์ •๋ณด์™€ ํ•จ๊ป˜ ์„ž๋Š”๋‹ค. 

 

U-Net์„ ๊ตฌํ˜„ํ•˜๋‹ค๋ณด๋ฉด Instance Normalization ๊ธฐ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋“ฑ์žฅํ•œ๋‹ค. ๊ธฐ์กด์— ์šฐ๋ฆฌ๋Š” Batch Normalization ์ด๋ผ๋Š” ๊ฒƒ์€ ์‚ฌ์šฉํ•ด๋ณด์•˜๋Š”๋ฐ, Instance Normalization์— ๋Œ€ํ•ด์„œ๋Š” ์ฒ˜์Œ ๋“ค์–ด๋ณด์•˜๋‹ค. ์ด์— ๋Œ€ํ•ด์„œ ์ž ์‹œ ์•Œ์•„๋ณด์ž. U-Net์€ Batch Normalization ๋Œ€์‹  Instance Normalization ์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜๋ฉด Instance ๊ธฐ๋ฒ•์ด ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ ๋ถ„์•ผ์—์„œ Batch ๊ธฐ๋ฒ•๋ณด๋‹ค ๋” ํ€„๋ฆฌํ‹ฐ ๋†’์€ ๊ฒฐ๊ณผ๋ฅผ ๋‚ธ๋‹ค๊ณ  ์•Œ๋ ค์ ธ ์žˆ๋‹ค. 

 

Instance ๊ธฐ๋ฒ•์€ Batch์™€ ๋‹ฌ๋ฆฌ ๋ฐฐ์น˜ ๋‹จ์œ„๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐฐ์น˜ ๋‚ด์˜ ๊ฐ ๊ฐœ๋ณ„ ์ƒ˜ํ”Œ(์—ฌ๊ธฐ์„œ๋Š” ์ด๋ฏธ์ง€ ์ƒ˜ํ”Œ ํ•˜๋‚˜)์„ ๊ฐ๊ฐ ์ •๊ทœํ™”ํ•œ๋‹ค. ์šฐ์„  ๊ฐ ๊ธฐ๋ฒ•์„ ๋น„๊ตํ•˜๋Š” ์œ ๋ช…ํ•œ ๋„์‹ํ™” ๊ตฌ์กฐ๋ฅผ ์‚ดํŽด๋ณด์ž.

 

 

์œ„ ์˜๋ฏธ์ง€๋Š” ์ด๋ฏธ์ง€์˜ ๋†’์ด์™€ ๋„ˆ๋น„(H,W)๋ฅผ ํ•˜๋‚˜์˜ ์ถ•์œผ๋กœ ํ•ฉ์ณ์„œ 3์ฐจ์›์œผ๋กœ ๋ณด์—ฌ์ค€ ๊ทธ๋ฆผ์ด๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ฐฐ์น˜ ์‚ฌ์ด์ฆˆ(N), ์ฑ„๋„ ์ˆ˜(C), ๋†’์ด(H), ๋„ˆ๋น„(W)๊นŒ์ง€ ๊ฐ ์ถ•์œผ๋กœ ํ•œ ๋ฒˆ์— ๊ทธ๋ฆผ์œผ๋กœ ํ‘œ์‹œํ•˜๋ ค๋ฉด 4์ฐจ์›์œผ๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š”๋ฐ, 3์ฐจ์› ๋ณด๋‹ค ๋†’์€ ์ฐจ์›์˜ ๊ทธ๋ฆผ์€ ์‚ฌ๋žŒ์˜ ๋ˆˆ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•˜์ง€๋งŒ ํ•„์ž๋„.. ์œ„ ๊ทธ๋ฆผ์„ ๋ณด๊ณ  ์ง๊ด€์ ์œผ๋กœ๋Š” ์ž˜ ์ดํ•ด๋˜์ง€ ์•Š์•˜๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์šฐ๋ฆฌ์˜ ๋ฐฉ์‹๋Œ€๋กœ ๋‹ค์‹œ ์ดํ•ดํ•ด๋ณด์ž! 

 

๊ทธ๋ฆผ์˜ ์›๋ณธ ์ถœ์ฒ˜ : https://twitter.com/Xu_Cao_/status/1054634647945015296

 

U-Net์œผ๋กœ ๊ตฌํ˜„๋œ ์ƒ์„ฑ์ž๋ฅผ ๋งŒ๋“œ๋Š” ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์ž. ๊ทธ๋ฆฌ๊ณ  ์ƒ์„ฑ์ž๋ฅผ Residual Network๋ฅผ ๊ตฌ์„ฑํ•ด์„œ๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. Residual Network๋Š” ์˜ˆ์ „ ํฌ์ŠคํŒ…์—์„œ ๋‹ค๋ฃฌ์ ์ด ์žˆ์œผ๋ฏ€๋กœ ์—ฌ๊ธฐ์—์„œ๋Š” ์ด๋ก ์ ์ธ ๋‚ด์šฉ์„ ๋”ฐ๋กœ ์†Œ๊ฐœํ•˜์ง€ ์•Š๊ฒ ๋‹ค. ResNet์œผ๋กœ ๊ตฌํ˜„๋œ ์ƒ์„ฑ์ž ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์ž. ์ฐธ๊ณ ๋กœ ๋ฐ์ดํ„ฐ์…‹์€ ์˜ค๋ Œ์ง€์™€ ์‚ฌ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

3. ํ•˜๋‚˜์˜ ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฐ ํŒจ์น˜๋ฅผ ์˜ˆ์ธกํ•˜์ž : ํŒ๋ณ„์ž ๋ชจ๋ธ ๋งŒ๋“ค๊ธฐ

๋‹ค์Œ์œผ๋กœ๋Š” ํŒ๋ณ„์ž ๋ชจ๋ธ์„ ๊ตฌํ˜„ํ•ด๋ณด๋„๋ก ํ•˜์ž. ์šฐ๋ฆฌ๊ฐ€ ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์› ๋˜ ์ƒ์„ฑ ๋ชจ๋ธ๋ง์˜ ํŒ๋ณ„์ž ๋ชจ๋ธ๋“ค์€ ํ•˜๋‚˜์˜ ์ˆซ์ž์ธ ์Šค์นผ๋ผ ๊ฐ’ ํ˜•ํƒœ๋กœ ์˜ˆ์ธกํ•ด ์™”๋‹ค. ํ•˜์ง€๋งŒ CycleGAN์˜ ํŒ๋ณ„์ž๋Š” ํ•˜๋‚˜์˜ ์ˆซ์ž๊ฐ€ ์•„๋‹ˆ๋ผ (๋…ผ๋ฌธ์—์„œ๋Š”) 16 x 16 ํ˜•์ƒ์˜ ์ฑ„๋„ 1๊ฐœ(shape: (1, 16, 16))๋ฅผ ๊ฐ€์ง„ ํ…์„œ๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ฌผ๋ก  ํ…์„œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์ˆซ์ž๊ฐ’์€ 0 ~ 1 ์‚ฌ์ด์˜ ํ™•๋ฅ  ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ๋˜๋Š” ๊ฒƒ์€ ๋™์ผํ•˜๋‹ค. ๋‹ค์‹œ ๋งํ•ด ํŒ๋ณ„์ž๊ฐ€ ์˜ˆ์ธกํ•˜๋Š” ํ…์„œ์˜ ํ˜•์ƒ์ด 1์ฐจ์›์—์„œ 3์ฐจ์›์œผ๋กœ ๋ณ€ํ™˜๋œ ๊ฒƒ์ด๋‹ค. ์Šค์นผ๋ผ ๊ฐ’ ํ˜•ํƒœ๋กœ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์„ ์ด๋ฏธ์ง€ ์ „์ฒด์— ๋Œ€ํ•ด ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณธ๋‹ค๋ฉด, CycleGAN์€ ์ด๋ฏธ์ง€ ์ „์ฒด์— ๋Œ€ํ•ด ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ค‘์ฒฉ๋œ ํŒจ์น˜(Patch)๋กœ ๋‚˜๋ˆ„์–ด์„œ ๊ฐ ํŒจ์น˜๊ฐ€ ์ง„์งœ์ธ์ง€ ๊ฐ€์งœ์ธ์ด ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

 

๋นจ๊ฐ„์ƒ‰ ๋„ค๋ชจ์นธ ํ•˜๋‚˜์”ฉ ์ฆ‰, 1๊ฐœ์˜ Patch๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ฐ”๋€ ์…ˆ

 

๊ทธ๋ ‡๋‹ค๋ฉด ์ด๋ ‡๊ฒŒ ๊ฐ ํŒจ์น˜๋กœ ์˜ˆ์ธกํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์€ ์›๋ž˜ PatchGAN์ด๋ผ๋Š” ๋ชจ๋ธ์˜ ํŠน์„ฑ์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด ํŠน์„ฑ์„ ์ด์šฉํ•จ์œผ๋กœ์จ ์–ป๋Š” ์žฅ์ ์€ ์ด๋ฏธ์ง€ ๋‚ด์šฉ์ด ์•„๋‹ˆ๋ผ ์Šคํƒ€์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํŒ๋ณ„์ž๊ฐ€ ์ด๋ฏธ์ง€๋ฅผ ์–ผ๋งˆ๋‚˜ ์ž˜ ๊ตฌ๋ณ„ํ•˜๋Š”์ง€ ์†์‹คํ•จ์ˆ˜๊ฐ€ ์ธก์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ ํฌ์ŠคํŒ…์—์„œ ๋ฐฐ์šฐ๋ ค๊ณ  ํ•˜๋Š” ๊ฒƒ์€ ์ž…๋ ฅ ์ด๋ฏธ์ง€์™€ ๋น„์Šทํ•œ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ž…๋ ฅ ์ด๋ฏธ์ง€์˜ ์Šคํƒ€์ผ์„ ๋‹ค๋ฅด๊ฒŒ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž„์„ ๋ช…์‹ฌํ•˜์ž. 

 

ํŒ๋ณ„์ž๋ฅผ ๋งŒ๋“œ๋Š” ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ, ๊ทธ๋ฆฌ๊ณ  CycleGAN์„ ํ•™์Šตํ•˜๋Š” ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜๋„๋ก ํ•˜์ž. ์ฝ”๋“œ๋กœ ์‚ดํŽด๋ณด๋ฉด ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘๋˜๋Š”์ง€ ๋ช…ํ™•ํžˆ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

4. ํ•™์Šต ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์Šคํƒ€์ผ๋งŒ ๋ณ€ํ™˜์‹œํ‚ค๊ธฐ : Neural Style Transfer

์ด์ œ ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ์˜ ๋˜ ๋‹ค๋ฅธ ๋ชจ๋ธ๋กœ ๋‰ด๋Ÿด ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž. ๋‰ด๋Ÿด ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ๊ฐ€ ์œ„์—์„œ ๋ฐฐ์šด CycleGAN๊ณผ ๋‹ค๋ฅธ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ ํ•™์Šต ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๊ฒŒ ๋Œ€์ฒด ๋ฌด์Šจ ๋ง์ผ๊นŒ? ๋ชจ๋ธ์ธ๋ฐ ํ•™์Šต ๋ฐ์ดํ„ฐ์…‹์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋‹ค๋‹ˆ? 

 

์šฐ์„  ์•ž์„œ ๋ฐฐ์šด CycleGAN ๋ชจ๋ธ์€ ๋„๋ฉ”์ธ์ด ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ 2๊ฐœ๊ฐ€ ๊ผญ ํ•„์š”ํ•˜์˜€๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ๊ณผ ์ด๋ฏธ์ง€๋ฅผ ์˜ค๋ Œ์ง€ ์ด๋ฏธ์ง€๋กœ ๋ฐ”๊พธ๊ณ  ์‹ถ์€ CycleGAN ๋ชจ๋ธ์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๊ณ  ํ–ˆ๋‹ค๋ฉด ์‚ฌ๊ณผ, ์˜ค๋ Œ์ง€ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ์…‹ 2๊ฐœ๊ฐ€ ํ•„์š”ํ•˜์˜€๊ณ  ์ด๋ฅผ ๋ชจ๋ธ์— ํ•™์Šต ๋ฐ์ดํ„ฐ๋กœ ์ฃผ์ž…์‹œ์ผฐ๋‹ค. ํ•˜์ง€๋งŒ ๋‰ด๋Ÿด ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ๋Š” ํ•™์Šต ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋ธ์— ์ฃผ์ž…์‹œํ‚ค์ง€ ์•Š๊ณ ๋„ ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ฒ•๋งŒ ํ™œ์šฉํ•ด์„œ ์›ํ•˜๋Š” ์Šคํƒ€์ผ์ด ๋ฐ˜์˜๋œ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด์ œ ๋‰ด๋Ÿด ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ๊ฐ€ ํ™œ์šฉํ•œ "๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ฒ•"์— ๋Œ€ํ•ด์„œ ํ•˜๋‚˜์”ฉ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

 

์‹ค์ œ๋กœ ๋‰ด๋Ÿด ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ๋กœ ์ƒ์„ฑํ•œ ํ•ฉ์„ฑ ์ด๋ฏธ์ง€

5. ์„ธ ์ข…๋ฅ˜์˜ ์†์‹คํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์ž : ์ปจํ…์ธ  ์†์‹ค, ์Šคํƒ€์ผ ์†์‹ค, ์ด ๋ณ€์œ„ ์†์‹ค(Total variation Loss)

๋‰ด๋Ÿด ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ์—์„œ๋Š” ์ด 3๊ฐ€์ง€์˜ ์ƒˆ๋กœ์šด ์†์‹คํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•œ๋‹ค. ๋ฐ”๋กœ ์ปจํ…์ธ  ์†์‹ค, ์Šคํƒ€์ผ ์†์‹ค, ์ด ๋ณ€์œ„ ์†์‹ค์ด๋ผ๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด 3๊ฐ€์ง€ ์†์‹คํ•จ์ˆ˜์— ๋Œ€ํ•œ ๊ฐ€์ค‘์น˜ ํ•ฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ ํ•ฉ์„ฑ ์ด๋ฏธ์ง€์— ๋Œ€ํ•ด ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•์„ ์ˆ˜ํ–‰ํ•ด์„œ ํ•ฉ์„ฑ ์ด๋ฏธ์ง€๋ฅผ ๋ฐœ์ „์‹œํ‚จ๋‹ค. ๋‰ด๋Ÿด ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ์˜ ํ•™์Šต ๋‹จ๊ณ„๋ฅผ ์ ˆ์ฐจํ™”์‹œํ‚ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

  1. ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€๋ฅผ ๋ณต์‚ฌ ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•ด์„œ ํ•ฉ์„ฑ๋œ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑ(๊ณ ๋กœ, ์ตœ์ดˆ์—๋Š” ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€ = ํ•ฉ์„ฑ๋œ ์ด๋ฏธ์ง€)
  2. ์„ธ ๊ฐ€์ง€ ์†์‹ค ํ•จ์ˆ˜๋ฅผ ๊ณ„์‚ฐ
  3. ์†์‹ค ํ•จ์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•(Gradient Descent)์„ ์ด์šฉํ•ด์„œ ๊ธฐ์šธ๊ธฐ ๋ณ€ํ™”๋Ÿ‰ ๊ณ„์‚ฐ
  4. ๊ธฐ์šธ๊ธฐ ๋ณ€ํ™”๋Ÿ‰์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ์„ฑ๋œ ์ด๋ฏธ์ง€ ์—…๋ฐ์ดํŠธ

์œ„ ๋‹จ๊ณ„์—์„œ 2๋ฒˆ ๋‹จ๊ณ„๋ถ€ํ„ฐ ์‚ดํŽด๋ณด์ž. 2๋ฒˆ ๋‹จ๊ณ„์—์„œ๋Š” 3๊ฐ€์ง€ ์†์‹คํ•จ์ˆ˜๋ฅผ ์•Œ์•„์•ผ ํ•˜๋Š”๋ฐ, ํ•˜๋‚˜์”ฉ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

5-1. ํ•ฉ์„ฑ๋œ ์ด๋ฏธ์ง€๊ฐ€ ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€๊ฐ€ ๊ฐ–๋Š” ์ปจํ…์ธ ๋ฅผ ๋™์ผํ•˜๊ฒŒ ๊ฐ–๋„๋ก ํ•˜์ž : ์ปจํ…์ธ  ์†์‹ค

์ฝ˜ํ…์ธ  ์†์‹ค์€ ์ฝ˜ํ…์ธ ์˜ ๋‚ด์šฉ๊ณผ ์ „๋ฐ˜์ ์ธ ์‚ฌ๋ฌผ์˜ ๋ฐฐ์น˜ ์ธก๋ฉด์—์„œ ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€์™€ ํ•ฉ์„ฑ๋œ ์ด๋ฏธ์ง€ ๊ฐ„์— ์–ผ๋งˆ๋‚˜ ๋‹ค๋ฅธ์ง€๋ฅผ ์ธก์ •ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์€ ๋™์ผํ•œ ์œ„์น˜์˜ ํ”ฝ์…€ ๊ฐ’์„ ๋น„๊ตํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ํ•™์Šต์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋‹จ์ ์ธ ์˜ˆ๋กœ, ์•„๋ž˜์ฒ˜๋Ÿผ ๋™์ผํ•˜๊ฒŒ ์—ํŽ ํƒ‘ ๊ฐ์ฒด๋ฅผ ์ด๋ฏธ์ง€์— ๋‹ด๊ณ  ์žˆ์ง€๋งŒ, ์ดฌ์˜ ๊ฐ๋„๋‚˜ ๋น›๊ณผ ๊ฐ™์€ ์š”์†Œ๋“ค์— ์˜ํ•ด ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅธ ์‚ฌ์ง„๋“ค์ด ์žˆ๋‹ค.

 

์—ํŽ ํƒ‘์ด๋ผ๋Š” ๋™์ผํ•œ ๋ฌผ์ฒด๋ฅผ ๋‹ด๊ณ  ์žˆ์ง€๋งŒ, ์ดฌ์˜ ๊ฐ๋„๋‚˜ ๋น›์— ์˜ํ•ด ์‚ฌ์ง„์ด ์กฐ๊ธˆ์”ฉ ๋‹ฌ๋ผ์ง

 

์œ„ ๋‘ ์ด๋ฏธ์ง€๋ฅผ ๋น„๊ตํ•ด๋ณด์•˜์„ ๋•Œ, ์—ํŽ ํƒ‘์ด๋ผ๋Š” ๋ฌผ์ฒด๋ฅผ ๋™์ผํ•˜๊ฒŒ ๋‹ด๊ณ  ์žˆ๋‹ค. ์‚ฌ๋žŒ์ด ๋ณด๊ธฐ์—๋Š” ๋‘ ์ด๋ฏธ์ง€๊ฐ€ ๋™์ผํ•œ ๋ฌผ์ฒด๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ๋žŒ์˜ ๋ˆˆ์œผ๋กœ ์ฝ˜ํ…์ธ  ์†์‹ค์„ ๊ณ„์‚ฐํ•œ๋‹ค๊ณ  ํ•˜๋ฉด ์†์‹ค ๊ฐ’์„ ๋‚ฎ๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ๋งŒ์•ฝ ์ปดํ“จํ„ฐ๊ฐ€ ์ฝ˜ํ…์ธ  ์†์‹ค์„ ๊ณ„์‚ฐํ•œ๋‹ค๊ณ  ํ•˜๊ณ , ์‹ฌ์ง€์–ด ๊ณ„์‚ฐ ๊ธฐ์ค€์„ ๋™์ผํ•œ ์œ„์น˜์˜ ํ”ฝ์…€ ๊ฐ’๋งŒ์„ ๊ธฐ์ค€์œผ๋กœ ํ•˜๊ฒŒ ๋œ๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด ์ปจํ…์ธ  ์†์‹ค ๊ฐ’์€ ๋‹ค์†Œ ๋†’๊ฒŒ ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์œ„ ๋‘ ์ด๋ฏธ์ง€๋งŒ ๋ณด๋”๋ผ๋„ ์—ํŽ ํƒ‘์˜ ์œ„์น˜๊ฐ€ ๋‹ค๋ฅด๋ฉฐ, ์‹ฌ์ง€์–ด ์˜ค๋ฅธ์ชฝ ์‚ฌ์ง„์€ ์•ฝ๊ฐ„ ํƒœ์–‘ ๋น›์œผ๋กœ ์ธํ•ด ๋ถ‰์œผ์Šค๋ฆ„ํ•œ ๋…ธ์„ ๋น›๋„ ํ”ฝ์…€์— ๋ฐ˜์˜๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๋”ฐ๋ผ์„œ ์ฝ˜ํ…์ธ  ์†์‹ค์„ ๊ณ„์‚ฐํ•  ๋•Œ๋Š” ๊ฐœ๋ณ„ ํ”ฝ์…€๊ฐ’๊ณผ ๋ฌด๊ด€ํ•ด์•ผ ํ•œ๋‹ค. ๋‹ค์‹œ ๋งํ•ด, ๊ณ ์ฐจ์› ํŠน์„ฑ์˜ ์กด์žฌ(์œ„ ์˜ˆ์‹œ์—์„œ๋Š” ์—ํŽ ํƒ‘)์™€ ๋Œ€๋žต์ ์ธ ์œ„์น˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฝ˜ํ…์ธ  ์†์‹ค์„ ์ ์ˆ˜ํ™”์‹œ์ผœ์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ป๊ฒŒ ํ• ๊นŒ?

 

์ด๋ฅผ ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ๋Œ€๊ทœ๋ชจ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ ํ•™์Šต๋œ ์ด๋ฅธ๋ฐ”, Pre-trained ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜ ๋ชจ๋ธ์„ Backbone์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ Pre-trained ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜ ๋ชจ๋ธ์ด๋ผ๊ณ  ํ•œ๋‹ค๋ฉด 1,400๋งŒ๊ฐœ์˜ ๋Œ€๊ทœ๋ชจ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ์…‹ ImageNet์„ ํ•™์Šตํ•œ VGG16๊ณผ ๊ฐ™์€ ๋ชจ๋ธ์„ ๋งํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ๊นŠ๊ฒŒ ์Œ“์€ ๋ชจ๋ธ, ๊ทธ๋ฆฌ๊ณ  ๋Œ€๊ทœ๋ชจ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ ํ•™์Šต๋œ ๋ชจ๋ธ์€ ์ด๋ฏธ์ง€๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋„ฃ์—ˆ์„ ๋•Œ ๋ชจ๋ธ ๋‚ด ๊นŠ์€ ๋ ˆ์ด์–ด์—์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ด๋ฏธ์ง€ ์†์˜ ๊ณ ์ˆ˜์ค€ ํŠน์„ฑ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ๋‰ด๋Ÿด ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ์—์„œ๋Š” ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€์™€ ํ•ฉ์„ฑ๋œ ์ด๋ฏธ์ง€๋ฅผ VGG16๊ณผ ๊ฐ™์€ Pre-trained ๋ชจ๋ธ์˜ ์ž…๋ ฅ์œผ๋กœ ๋„ฃ์–ด ์ถœ๋ ฅ์„ ๊ณ„์‚ฐํ•œ ๋’ค, ์ด๋ฅผ ์ถœ๋ ฅ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์˜ค์ฐจ๋ฅผ ๊ณ„์‚ฐํ•ด์„œ ์ฝ˜ํ…์ธ  ์†์‹ค์„ ๊ณ„์‚ฐํ•˜๊ฒŒ ๋œ๋‹ค.

 

ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ์ ์€ ์ฝ˜ํ…์ธ  ์†์‹ค์„ ๊ณ„์‚ฐํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋ธ์˜ ์ถœ๋ ฅ์ด ์ตœ์ข… ์ถœ๋ ฅ ๋ ˆ์ด์–ด๋กœ๋ถ€ํ„ฐ๊ฐ€ ๋‚˜์˜จ ๊ฒƒ์ด ์•„๋‹Œ ๊นŠ์€ ์ธต์˜ ์ปจ๋ณผ๋ฃจ์…˜ ๋ ˆ์ด์–ด๋ฅผ ํ†ต๊ณผํ•œ ์ถœ๋ ฅ ๊ฐ’(์ด๋ฅธ๋ฐ” Feature Map)์„ ํ™œ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. VGG16์€ ์•Œ๋‹ค์‹œํ”ผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํด๋ž˜์Šค๋ฅผ ๋ถ„๋ฅ˜ํ•˜๋Š” Multi-class classfication ๋ชจ๋ธ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์ข… ๋ ˆ์ด์–ด์—๋Š” Softmax ๋ ˆ์ด์–ด์˜ ์ธต์ด ๋‹ด๊ฒจ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‰ด๋Ÿด ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ์—์„œ ์šฐ๋ฆฌ๊ฐ€ ํ•„์š”๋กœํ•˜๋Š” ๋ถ€๋ถ„์€ ์ด๋ฏธ์ง€๊ฐ€ "์–ด๋–ค ํด๋ž˜์Šค๋กœ ๋ถ„๋ฅ˜๋˜์—ˆ๋Š”์ง€"๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๋ถ€๋ถ„์€ "์ด๋ฏธ์ง€์˜ ๊ณ ์ˆ˜์ค€ ํŠน์„ฑ"์ด๋‹ค. ๋”ฐ๋ผ์„œ Pre-trained ๋ชจ๋ธ์— ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€์™€ ํ•ฉ์„ฑ๋œ ์ด๋ฏธ์ง€ ๊ฐ๊ฐ์„ ์ž…๋ ฅ์œผ๋กœ ๋„ฃ์—ˆ์„ ๋•Œ ์ถœ๋ ฅ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋˜, ํŠน์ • 1๊ฐœ์˜ ๊นŠ์€ ์ธต์˜ ์ปจ๋ณผ๋ฃจ์…˜ ๋ ˆ์ด์–ด๋ฅผ ํ†ต๊ณผํ–ˆ์„ ๋•Œ์˜ ์ถœ๋ ฅ๊ฐ’์ธ Feature Map์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ฌผ๋ก  ์—ฌ๊ธฐ์„œ ์–ด๋–ค ๊นŠ์€ ์ธต์„ ์„ ํƒํ• ์ง€๋Š” ์ผ์ข…์˜ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋˜๊ฒ ๋‹ค.

 

์ด๋กœ์จ ๋ฒ ์ด์Šค, ํ•ฉ์„ฑ ์ด๋ฏธ์ง€ ๊ฐ๊ฐ์˜ Feature Map์„ ์–ป๊ฒŒ ๋˜๊ณ , ์ด 2๊ฐœ์˜ Feature Map ๊ฐ„์˜ ํ‰๊ท  ์ œ๊ณฑ ์˜ค์ฐจ๋ฅผ ๊ณ„์‚ฐํ•˜๊ฒŒ ๋˜๋ฉด ์ตœ์ข…์ ์ธ ์ฝ˜ํ…์ธ  ์†์‹ค๊ฐ’์ด ๋œ๋‹ค. ์ด ๊ณ„์‚ฐ ๊ณผ์ •์„ ๋„์‹ํ™”ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

์ฝ˜ํ…์ธ  ์†์‹ค์„ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•. FM ๊ธฐํ˜ธ๋Š” Feature Map์„ ์˜๋ฏธ

5-2. ๋‘ ์ด๋ฏธ์ง€ ์‚ฌ์ด์˜ ์Šคํƒ€์ผ ์œ ์‚ฌ๋„๋ฅผ ๊ณ„์‚ฐํ•˜์ž : ์Šคํƒ€์ผ ์†์‹ค

์œ„์—์„œ ์•Œ์•„๋ณธ ์ฝ˜ํ…์ธ  ์†์‹ค์€ ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€์™€ ํ•ฉ์„ฑ๋œ ์ด๋ฏธ์ง€ ๊ฐ„์˜ ์†์‹ค ๊ฐ’์ด์˜€๋‹ค. ์ด๋ฒˆ์— ์•Œ์•„๋ณผ ์Šคํƒ€์ผ ์†์‹ค์€ ์Šคํƒ€์ผ ์ด๋ฏธ์ง€์™€ ํ•ฉ์„ฑ๋œ ์ด๋ฏธ์ง€ ๊ฐ„์˜ ์†์‹ค ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๋‹ค์‹œ ๋งํ•ด, ์Šคํƒ€์ผ ์ด๋ฏธ์ง€์™€ ํ•ฉ์„ฑ๋œ ์ด๋ฏธ์ง€๊ฐ„์— ์Šคํƒ€์ผ์ด ์–ผ๋งˆ๋‚˜ ๋น„์Šทํ•œ์ง€ ๊ณ„์‚ฐ์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋‰ด๋Ÿด ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ ๋…ผ๋ฌธ์—์„œ๋Š” ์Šคํƒ€์ผ์ด ๋น„์Šทํ•œ ์ด๋ฏธ์ง€๋“ค ๊ฐ„์—๋Š” Feature Map ์‚ฌ์ด์— ๋™์ผํ•œ ์ƒ๊ด€๊ด€๊ณ„ ํŒจํ„ด์„ ๊ฐ€์ง„๋‹ค๋Š” ์•„์ด๋””์–ด๋ฅผ ์ œ์•ˆํ•˜๋ฉด์„œ ์Šคํƒ€์ผ ์†์‹ค ๊ณ„์‚ฐ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ, ์•„๋ž˜์™€ ๊ฐ™์ด 3๊ฐœ์˜ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๊ณ  ์ด๋ฅผ Pre-trained ๋ชจ๋ธ์— ๋„ฃ์€ ํ›„, Pre-trained ๋ชจ๋ธ์˜ ๊นŠ์€ ์ปจ๋ณผ๋ฃจ์…˜ ์ธต์˜ ์ถœ๋ ฅ๊ฐ’์ธ Feature Map์„ ์ถ”์ถœํ•ด๋ณธ๋‹ค๊ณ  ํ•˜์ž.

 

3๊ฐ€์ง€ ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •

 

ํ˜„์žฌ 3๊ฐœ์˜ ์ด๋ฏธ์ง€๊ฐ€ ์กด์žฌํ•˜๊ณ , ํ•„ํ„ฐ๋Š” ์ด 3๊ฐœ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ์ดˆ๋ก์ƒ‰ ํ’€์„ ๊ฐ์ง€ํ•˜๋Š” ๋…น์ƒ‰ ๊ฐ์ง€ ํ•„ํ„ฐ, ํ•˜๋Š˜์„ ๊ฐ์ง€ํ•˜๋Š” ํ•˜๋Š˜์ƒ‰ ๊ฐ์ง€ ํ•„ํ„ฐ, ๊ฐˆ์ƒ‰ ํ’€์„ ๊ฐ์ง€ํ•˜๋Š” ๊ฐˆ์ƒ‰ ๊ฐ์ง€ ํ•„ํ„ฐ๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์˜ค๋ฅธ์ชฝ์˜ ๊ฒฉ์ž๋ฌด๋Šฌ๋“ค์€ ๋ชจ๋‘ Feature Map์˜ ๊ฐ ํ•„ํ„ฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. 

 

๋จผ์ € ์ด๋ฏธ์ง€ A, B๋Š” ๋”ฑ๋ด๋„ ๋น„์Šทํ•œ ์ด๋ฏธ์ง€์ด๊ธฐ ๋•Œ๋ฌธ์— Feature Map์˜ ํŠน์„ฑ์„ ๋ณด๋ฉด ๋งค์šฐ ๋น„์Šทํ•œ ๊ฒƒ๋„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋ฐ˜๋ฉด์— ์ด๋ฏธ์ง€ C๋Š” A, B์™€ Feature Map์ด ๋‹ค๋ฆ„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋‘ ๊ฐœ์˜ Feature Map ๊ฐ„์— ๋™์‹œ์— ํ™œ์„ฑํ™”๋˜๋Š” ๋ถ€๋ถ„์„ ์ˆ˜์น˜์ ์œผ๋กœ ์ธก์ •ํ•˜๋ ค๋ฉด ์œ„์ฒ˜๋Ÿผ Feature Map ๊ฐ„์— ์Šค์นผ๋ผ ๊ณฑ(scalar product = dot product)์„ ์ˆ˜ํ–‰ํ•œ ํ›„, ๊ณ„์‚ฐ๋œ ๊ฐ’์ด ํฌ๋ฉด ๋‘ Feature Map ๊ฐ„์— ์ƒ๊ด€๊ด€๊ณ„๊ฐ€ ํฌ๊ณ , ๊ฐ’์ด ์ž‘์œผ๋ฉด ์ƒ๊ด€๊ด€๊ณ„๋„ ์ž‘๋‹ค๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๊ณ„์‚ฐ๋œ ํ–‰๋ ฌ ๊ฐ’์„ ๊ทธ๋žŒ ํ–‰๋ ฌ(Gram matrix)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. 

 

์‹ค์ œ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋„˜ํŒŒ์ด๋ฅผ ํ™œ์šฉํ•ด์„œ Feature Map 3๊ฐœ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด๊ณ , ์ด์— ๋Œ€ํ•œ ๊ทธ๋žŒ ํ–‰๋ ฌ์„ ๊ตฌํ•ด๋ณด๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ๊ตฌํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

import numpy as np

a = [[1000, 900, 1],
     [90, 1000, 1],
     [1, 1, 1000]]
b = [[1000, 900, 1],
     [900, 1000, 5],
     [1, 5, 100]]
c = [[1000, 1, 1],
     [1, 1000, 900],
     [1, 900, 1000]]
a, b, c = np.array(a), np.array(b), np.array(c)

a_b_scalar = np.dot(a, b)
a_c_scalar = np.dot(a, c)
b_c_scalar = np.dot(b, c)

print(a_b_scalar)
print()
print(b_c_scalar)
print()
print(a_c_scalar)

๊ฒฐ๊ณผ๊ฐ’

 

๊ฒฐ๊ณผ๊ฐ’์„ ์ฐจ๋ก€๋Œ€๋กœ ์‚ดํŽด๋ณด๋ฉด Feature Map์ด ๋น„์Šทํ•œ A, B ์ด๋ฏธ์ง€ ๊ฐ„์˜ ๊ทธ๋žŒ ํ–‰๋ ฌ ๊ฐ’์„ ๋ณด๋ฉด ๋™์‹œ์— ํ™œ์„ฑํ™”๋˜๋Š” ๋ถ€๋ถ„ ๊ฐ’์ด ์ƒ๋Œ€์ ์œผ๋กœ ๋งค์šฐ ํผ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋ฐ˜๋ฉด์— B, C ๊ฐ„์˜ ๊ทธ๋žŒ ํ–‰๋ ฌ ๋˜๋Š” A, C ๊ฐ„์˜ ๊ทธ๋žŒ ํ–‰๋ ฌ์„ ๋ณด๋ฉด ์ƒ๋Œ€์ ์œผ๋กœ ๊ฐ’์ด ์ ์€ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ๊ณง A, B ์ด๋ฏธ์ง€ ๊ฐ„์—๋Š” ์ƒ๊ด€๊ด€๊ณ„๊ฐ€ ํฌ์ง€๋งŒ C๋Š” ์ด๋ฏธ์ง€ A, B์™€ ์ƒ๊ด€๊ด€๊ณ„๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

(์œ„์—์„œ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ Feature Map ์ž์ฒด๋ฅผ ๊ณฑํ•˜๋Š” ๊ฑธ๋กœ ํ–ˆ์ง€๋งŒ, ํŠœํ† ๋ฆฌ์–ผ ์ฝ”๋“œ์—์„œ๋Š” ๊ฐ Feature Map ํ–‰๋ ฌ๋งˆ๋‹ค 2์ฐจ์›์œผ๋กœ reshapeํ•œ ํ›„, Transpose๋œ ํ–‰๋ ฌ๊ณผ ๊ณฑํ•ด์„œ ๊ทธ๋žŒ ํ–‰๋ ฌ์„ ๊ตฌํ•˜๊ณ , ์„œ๋กœ ๋‹ค๋ฅธ Feature Map์˜ ๊ทธ๋žŒ ํ–‰๋ ฌ ๊ฐ„์— ๊ณฑํ•˜์˜€๋‹ค. ์ฝ”๋“œ๋กœ ์‚ดํŽด๋ณด๋ฉด ์ด์™€ ๊ฐ™๋‹ค.)

 

์ด๋ ‡๊ฒŒ ๊ทธ๋žŒ ํ–‰๋ ฌ์„ ์ด์šฉํ•ด์„œ ์Šคํƒ€์ผ ์†์‹ค์„ ๊ณ„์‚ฐํ•˜๊ฒŒ ๋˜๋ฉด ์ฝ˜ํ…์ธ ๊ฐ€ ๋งŽ์ด ๋‹ค๋ฅด๋”๋ผ๋„ Feature Map๊ฐ„์˜ ๊ทธ๋žŒ ํ–‰๋ ฌ์ด ๋น„์Šทํ•  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์Šคํƒ€์ผ์„ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. 

 

์ด์ œ ๊ทธ๋Ÿฌ๋ฉด ์Šคํƒ€์ผ ์†์‹ค์„ ๊ณ„์‚ฐํ•˜๋Š” ์ˆ˜์‹์„ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž. ์ฝ˜ํ…์ธ  ์†์‹ค ๋•Œ์™€ ๋‹ค๋ฅธ ์ ์€ Pre-trained ๋ชจ๋ธ์—์„œ Feature Map์„ ํ•˜๋‚˜๊ฐ€ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊นŠ์€ ์ปจ๋ณผ๋ฃจ์…˜ ๋ ˆ์ด์–ด์—์„œ ์ถ”์ถœํ–ˆ๋‹ค๋Š” ์ ์ด๋‹ค. ์ด๋กœ์จ ๋‹ค์–‘ํ•œ Feature Map์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด์„œ ์Šคํƒ€์ผ์„ ์ ์  ๋” ์ •ํ™•ํ•˜๊ฒŒ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

์Šคํƒ€์ผ ์†์‹ค ๊ณ„์‚ฐ ์ˆ˜์‹

5-3. ํ”ฝ์…€์„ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ํ•ด์ฃผ์ž : ์ด ๋ณ€์œ„ ์†์‹ค

๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฐฐ์šธ ์†์‹ค์„ ์ด ๋ณ€์œ„ ์†์‹ค์ด๋‹ค. ์ด ๋ณ€์œ„ ์†์‹ค์€ ํ•ฉ์„ฑ๋œ ์ด๋ฏธ์ง€์˜ ํ”ฝ์…€์„ ์‚ฌ๋žŒ ๋ˆˆ์œผ๋กœ ๋ณด์•˜์„ ๋•Œ, ๊ฒฉ์ž ๋ฌด๋Šฌ ํ˜•ํƒœ๊ฐ€ ์•„๋‹ˆ๊ณ  ๋ถ€๋“œ๋Ÿฌ์šด ๊ณก์„  ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚˜๋„๋ก ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ด๋ฆ„์ด ์–ด๋ ค์›Œ๋ณด์ด์ง€๋งŒ ์‹ค์งˆ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๋กœ์ง์€ ํ•ฉ์„ฑ๋œ ์ด๋ฏธ์ง€์— ์žˆ๋Š” ์žก์Œ(noise)์„ ์ธก์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

 

์ข€ ๋” ๊ตฌ์ฒด์ ์ธ ๋กœ์ง์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์šฐ์„  ํ•ฉ์„ฑ๋œ ์ด๋ฏธ์ง€๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ ํ”ฝ์…€ ์ด๋™์‹œํ‚จ ๋’ค, ์ด ์ด๋™์‹œํ‚จ ์ด๋ฏธ์ง€์™€ ์ด๋™ ์‹œํ‚ค๊ธฐ ์ „์˜ ์ด๋ฏธ์ง€์™€์˜ ํ”ฝ์…€ ์ฐจ์ด ๊ฐ’์„ ์ œ๊ณฑํ•˜์—ฌ ๋”ํ•ด์ค€๋‹ค. ์ด๋Ÿฌํ•œ ๋™์ž‘์„ ํ•ฉ์„ฑ๋œ ์ด๋ฏธ์ง€๋ฅผ ์•„๋ž˜์ชฝ์œผ๋กœ ํ•œ ํ”ฝ์…€ ์ด๋™์‹œํ‚จ ๋’ค, ๋™์ผํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•ด์ค€๋‹ค. ์ด ๋ณ€์œ„ ์†์‹ค์€ ๋ง๋กœ ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ฝ”๋“œ๋กœ ๋ณด๋Š” ๊ฒŒ ์ข€ ๋” ์ง๊ด€์ ์ผ ์ˆ˜ ์žˆ๋‹ค. 

6. ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•์„ ์ˆ˜ํ–‰ํ•ด์„œ ํ•ฉ์„ฑ๋œ ์ด๋ฏธ์ง€๋ฅผ ์—…๋ฐ์ดํŠธ!

์ง€๊ธˆ๊นŒ์ง€ ์„ธ ๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ์†์‹คํ•จ์ˆ˜ ๊ฐ’์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค. ์ด์ œ ์†์‹คํ•จ์ˆ˜๋ฅผ ๊ตฌํ–ˆ์œผ๋‹ˆ, ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•์„ ์ˆ˜ํ–‰ํ•ด์„œ ํ•ฉ์„ฑ๋œ ์ด๋ฏธ์ง€๋ฅผ ์—…๋ฐ์ดํŠธ ํ•ด ๋‚˜๊ฐ€๋ฉด ๋œ๋‹ค. 

 

์ด๋ ‡๊ฒŒ ํ•ด์„œ ๋‰ด๋Ÿด ์Šคํƒ€์ผ ํŠธ๋ Œ์Šคํผ์˜ ๋™์ž‘์€ ๋์ด๋‹ค. ๋™์ž‘๊ณผ์ •์„ ๋‹ค์‹œ ๋Œ์ด์ผœ๋ณด๋ฉด CycleGAN ์ฒ˜๋Ÿผ ํ•™์Šต ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€๋กœ ํ•™์Šต์‹œํ‚ค์ง€ ์•Š๊ณ  Pre-trained ๋ชจ๋ธ์„ ๋‹จ์ˆœํžˆ Backbone ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•˜๊ณ , ์†์‹คํ•จ์ˆ˜ 3๊ฐ€์ง€๋ฅผ ์ •์˜ํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•์„ ์ ์šฉํ•˜๋Š” ๋‹จ๊ณ„๋กœ ์ˆ˜ํ–‰๋œ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ๋‰ด๋Ÿด ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ์˜ ๊ตฌ์ฒด์ ์ธ ๋™์ž‘์„ ์ ˆ์ฐจํ™”ํ•˜๋ฉด์„œ ๋งˆ๋ฌด๋ฆฌํ•ด๋ณด์ž.

 

  1. ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€์™€ ๋™์ผํ•˜๊ฒŒ ํ•ฉ์„ฑ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑ(๋‹จ์ˆœํžˆ ๊ทธ๋ƒฅ ๋ณต์‚ฌ ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•จ)
  2. Pre-trained ๋ชจ๋ธ ํ•˜๋‚˜๋ฅผ Backbone ๋ชจ๋ธ๋กœ ์„ ์ •(VGG16 ๊ฐ™์€ ๋ชจ๋ธ ์ค‘ ํ•˜๋‚˜)ํ•˜๊ณ  ํ•ด๋‹น ๋ชจ๋ธ์— ์ด๋ฏธ์ง€๋“ค์„ ์ž…๋ ฅ์‹œํ‚ค๊ธฐ
  3. 3๊ฐ€์ง€ ์†์‹ค ํ•จ์ˆ˜๋ฅผ ์ •์˜(์ฝ˜ํ…์ธ  ์†์‹ค, ์Šคํƒ€์ผ ์†์‹ค, ์ด ๋ณ€์œ„ ์†์‹ค)ํ•˜๊ณ  ์†์‹ค ํ•จ์ˆ˜ ๊ฐ’๋“ค์„ Weighted Sum
  4. Weighted Sum ๋œ ์ตœ์ข… ์†์‹ค๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•์„ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ ํ•ฉ์„ฑ๋œ ์ด๋ฏธ์ง€ ์—…๋ฐ์ดํŠธ

 

์ถ”๊ฐ€๋กœ ๋‰ด๋Ÿด ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ๋ฅผ ํ•™์Šตํ•˜๋Š” ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ์žˆ๋‹ค. ๋ฌผ๋ก  ํ•„์ž์˜ ์ฝ”๋“œ๋„ ์ฐธ๊ณ ํ•ด๋„ ๋˜์ง€๋งŒ Pytorch ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋„ ๋งค์šฐ ์นœ์ ˆํ•œ ๊ฐ€์ด๋“œ๊ฐ€ ์กด์žฌํ•˜์—ฌ ๊ณต์œ ํ•œ๋‹ค. ํŠœํ† ๋ฆฌ์–ผ์— ์žˆ๋Š” ์‚ฌ์ง„ ๋ง๊ณ  ํ•„์ž๊ฐ€ ๊ฐœ์ธ์ ์œผ๋กœ ๋‹ค๋ฅธ ์‚ฌ์ง„์œผ๋กœ ๋„์ „ํ•ด๋ณด์•˜๋‹ค. ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋งŽ์ด ๋ฏผ๊ฐํ•˜๊ธด ํ•˜์ง€๋งŒ.. ใ…Ž ์•„๋ž˜์ฒ˜๋Ÿผ ํ”ผ์นด์†Œ๊ฐ€ ์—ํŽ ํƒ‘์„ ๊ทธ๋ฆฐ๋‹ค๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ๊ทธ๋ ค์งˆ ๊ฒƒ์ด๋‹ค.

 

ํ•„์ž๊ฐ€ ์‹ค์ œ๋กœ ํ…Œ์ŠคํŠธ ํ•ด๋ณธ ๋‰ด๋Ÿด ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ ์˜ˆ์‹œ, ํ”ผ์นด์†Œ๊ฐ€ ์—ํŽ ํƒ‘์„ ๊ทธ๋ฆฐ๋‹ค๋ฉด?


์ง€๊ธˆ๊นŒ์ง€์˜ ๋‚ด์šฉ์œผ๋กœ ํ•ด์„œ ์ƒ์„ฑํ˜• ๋ชจ๋ธ์„ ํ™œ์šฉํ•˜๋Š” ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜์ธ ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ์— ๋Œ€ํ•ด ๋ฐฐ์›Œ๋ณด์•˜๋‹ค. ๊ตฌ์ฒด์ ์ธ ๋ฐฉ๋ฒ•๋ก ์œผ๋กœ๋Š” ์šฐ๋ฆฌ๋งŒ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•™์Šต์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” CycleGAN ๋ชจ๋ธ์ด ์žˆ์—ˆ๊ณ , ํ•™์Šต ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  Pre-trained ๋ชจ๋ธ๋งŒ์„ ์‚ฌ์šฉํ•˜๊ณ  ์†์‹ค ํ•จ์ˆ˜๊ฐ’๋งŒ ์ƒˆ๋กญ๊ฒŒ ์ •์˜ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‰ด๋Ÿด ์Šคํƒ€์ผ ํŠธ๋žœ์Šคํผ์— ๋Œ€ํ•ด ๋ฐฐ์› ๋‹ค. 

 

๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ ํฌ์ŠคํŒ…๋ถ€ํ„ฐ๋Š” ์ด๋ฏธ์ง€ ๊ธฐ๋ฐ˜์˜ ์ƒ์„ฑ ๋ชจ๋ธ๋ง์ด ์•„๋‹Œ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์˜ ์ƒ์„ฑ ๋ชจ๋ธ๋ง์— ๋Œ€ํ•œ ๋ฐฐ์›€์„ ์‹œ์ž‘ํ•ด๋ณด๋„๋ก ํ•˜์ž.

๋ฐ˜์‘ํ˜•