🚩λ”₯λŸ¬λ‹ 기초 - part23. GAN μ΄ν•΄ν•˜κΈ° (feat. μƒμ„±μžμ™€ νŒλ³„μž)

vincaΒ·2022λ…„ 12μ›” 15일
0

πŸŒ“ AI/DL - theory

λͺ©λ‘ 보기
24/24

Introduction

GAN이 무엇인지에 λŒ€ν•΄μ„œ ν•™μŠ΅ν•˜κ³ , μƒμ„±μžμ™€ νŒλ³„μžκ°€ μ–΄λ–€ 역할이 μžˆλŠ”μ§€ μ•Œμ•„λ³΄λ„λ‘ ν•˜μž!

GAN μ΄λž€?

μ˜μƒμ„ μƒμ„±ν•΄λ‚΄λŠ” λͺ¨λΈμ΄λ‹€.
κ·Έλƒ₯ 이미지λ₯Ό νšŒμ „, μΆ•μ†Œλ“±μ„ μ μš©ν•˜λŠ” Data Aurgumentμ™€λŠ” λ‹€λ₯Έ, κΈ°μ‘΄ 데이터 뢄포λ₯Ό ν•™μŠ΅μ‹œμΌœ μƒˆλ‘œμš΄ μ˜μƒμœΌλ‘œ 재창쑰 ν•˜λŠ” 것이닀.

μƒμ„±μžμ™€ νŒλ³„μžκ°€ 있으며 이듀이 μ„œλ‘œ κ²½μŸν•˜λ©° ν•™μŠ΅μ„ ν•˜κ²Œ λœλ‹€.

μ˜ˆμ‹œ

  • 그림체 ν•™μŠ΅μ„ ν†΅ν•œ λ§Œν™” 생성
  • κ°€μ§œ λ‰΄μŠ€

ν•„μš” κ°œλ… 볡슡

Supervised Learningκ³Ό Unsupervised Learning

  • Supervised Learning은 μ§€λ„ν•™μŠ΅ 즉, y(labeling 된 데이터)κ°€ μžˆλŠ” ν•™μŠ΅.
  • Unsupervised Learning은 λΉ„μ§€λ„ν•™μŠ΅ 즉, y(labeling 된 데이터)κ°€ μ—†λŠ” ν•™μŠ΅.

μ΄λŸ¬ν•œ κ°œλ…μ΄ ν•„μš”ν•œ 이유?

GAN은 μƒμ„±μžμ™€ νŒλ³„μž 두가지 λͺ¨λΈμ΄ λ‚΄λΆ€μ—μ„œ ν•¨κ»˜ λ™μž‘ 및 ν•™μŠ΅μ΄ 이루어진닀.

μƒμ„±μž(Generator)λŠ” κ°€μ§œ μ˜μƒμ„ μƒμ„±ν•˜λŠ” μ—­ν• .
비지도 ν•™μŠ΅μ„ ν†΅ν•΄μ„œ ν•™μŠ΅λœλ‹€. 사싀 이 말이 μ§„μ§œ 이미지 없이, λͺ¨λ‘ κ°€μ§œ μ΄λ―Έμ§€μ΄λ―€λ‘œ labeling이 μ˜λ―Έκ°€ μ—†μ–΄ 비지도 ν•™μŠ΅μœΌλ‘œ λ³΄μž„

νŒλ³„μž(Discriminator)λŠ” μ§„μ§œ/κ°€μ§œ μ˜μƒμ„ νŒλ³„ν•˜λŠ” 역할을 ν•œλ‹€.
(지도 ν•™μŠ΅μ„ 톡해 ν•™μŠ΅λ¨. μ§„μ§œ, κ°€μ§œμ— 데이터λ₯Ό μ „λΆ€ ν•™μŠ΅ 함)

λ°μ΄ν„°μ˜ 뢄포

각 데이터듀에 λŒ€ν•œ 뢄포가 λ‚˜νƒ€λ‚œλ‹€. ν•΄λ‹Ή 뢄포에 μ–΄λ–€ 이미지듀이 μžˆλŠ”μ§€ ν™•μΈν•΄λ³΄μž.
μ˜μ–΄ λ¬Έμž₯이 그리 어렡지 μ•ŠμœΌλ‹ˆ κ·Έλƒ₯ 읽어도 이해가 될 것이닀.




각 뢄포에 μœ„μΉ˜ν•œ μ˜μƒλ“€μ΄ μ–΄λ–€ 것듀이 μžˆλŠ”μ§€ 확인해 λ³΄μ•˜λ‹€.

λ°μ΄ν„°μ˜ 뢄포λ₯Ό ν•™μŠ΅

GAN은 μ΄λŸ¬ν•œ μ‹€μ œ λ°μ΄ν„°μ˜ 뢄포λ₯Ό λ°˜μ˜ν•˜λŠ” μœ μ‚¬ν•œ 생성λͺ¨λΈμ„ λ§Œλ“œλŠ” 것이 λͺ©μ μ΄λ‹€.
즉, μ‹€μ œ 데이터와 같은 뢄포λ₯Ό λ‚˜νƒ€λ‚΄λ„λ‘ 생성λͺ¨λΈμ„ ν•™μŠ΅μ‹œν‚€λŠ” 것이 λͺ©μ μ΄λ‹€.

μƒμ„±μžμ™€ νŒλ³„μžλŠ” μ„œλ‘œ κ²½μŸν•˜λ©° ν•™μŠ΅μ„ μ§„ν–‰ν•œλ‹€.
μƒμ„±μžλŠ” κ°€μ§œ μ˜μƒμ„ 보고 ν•™μŠ΅ν•˜μ—¬ κ°€μ§œ μ˜μƒμ„ λ§Œλ“€κ³ , νŒλ³„μžλŠ” μ΄λŸ¬ν•œ μƒμ„±μžκ°€ λ§Œλ“  μ˜μƒμ΄ μ§„μ§œμΈμ§€λ₯Ό λΆ„λ₯˜ν•œλ‹€.

μ΄λ•Œ, μƒμ„±μžλŠ” 점점 νŒλ³„μžκ°€ "μ§„μ§œ"라고 μƒκ°ν•˜λ„λ‘ κ°€μ§œμ˜μƒμ„ λ§Œλ“€κ³ , νŒλ³„μžλŠ” μƒμ„±μžκ°€ μ§„μ§œμ²˜λŸΌ λ§Œλ“  κ°€μ§œ μ˜μƒμ„ "κ°€μ§œ"둜 λΆ„λ₯˜ν•˜κΈ° μœ„ν•΄μ„œ λ”μš± μ„Έλ°€ν•˜κ²Œ ν•™μŠ΅ν•  것이닀.

νŒλ³„μž(Discriminator)의 ν•™μŠ΅κ³Όμ • λΉ„μš©ν•¨μˆ˜

  • ν•™μŠ΅λ°μ΄ν„° μ„ΈνŠΈμ—μ„œ μ‹€μ œ μ˜μƒμ„ μƒ˜ν”Œλ§ν•˜κ³  Generatorμ—μ„œ μƒμ„±ν•œ λ™μΌν•œ 수의 κ°€μ§œ μ˜μƒμ„ μ΅œμ’… ν•™μŠ΅ 데이터 μ„ΈνŠΈμ— μΆ”κ°€ν•œλ‹€.
  • κ°€μ§œ μ˜μƒμ€ 0, μ§„μ§œ μ˜μƒμ€ 1둜 labelingν•œλ‹€.
  • BCEλ₯Ό ν†΅ν•΄μ„œ ν•™μŠ΅ν•œλ‹€. (이진 λΆ„λ₯˜ λ¬Έμ œμ΄λ―€λ‘œ sigmoidλ₯Ό λ°˜μ˜ν•˜λŠ” μ†μ‹€ν•¨μˆ˜λ₯Ό μ‚¬μš©)

νŒλ³„μžλŠ” 정닡은 μ •λ‹΅μœΌλ‘œ, κ°€μ§œλŠ” κ°€μ§œλ‘œ λΆ„λ₯˜ν•΄μ•Όν•œλ‹€.
즉, μ •λ‹΅ D(x)은 1에 κ°€κΉŒμ›Œμ§€κ³ , 거짓 D(G(z))은 0에 κ°€κΉŒμ›Œ μ§€λŠ” 것이 졜고의 λΆ„λ₯˜λΌκ³  ν•  수 μžˆλŠ”λ°, μ΄λ ‡κ²Œ 되면 D-max의 값은 μ»€μ§€κ²Œ λœλ‹€.

x = real Image
z = latent vector
G = Generator
G(z) = fake Image
(이해가 μ•ˆλœλ‹€λ©΄ μœ„μ— κ²½μ°° κ·Έλ¦Ό μ°Έκ³ )

λ”°λΌμ„œ νŒλ³„μžλŠ” max의 값이 μ»€μ§€λŠ” λ°©ν–₯으둜 ν•™μŠ΅ν•˜λŠ” 것이 λͺ©μ μ΄λ‹€.

μƒμ„±μž(Generator)의 ν•™μŠ΅κ³Όμ • λΉ„μš©ν•¨μˆ˜

  • μƒμ„±μžκ°€ μƒμ„±ν•œ κ°€μ§œ μ˜μƒλ§Œμ„ 가지고 ν•™μŠ΅ν•œλ‹€.
  • μ§„μ§œ μ˜μƒμ„ μΆ”κ°€ν•˜μ§€ μ•Šκ³ , κ°€μ§œ μ˜μƒμ— λͺ¨λ‘ 1둜 lablingν•˜μ—¬ μƒμ„±μžλ‘œ ν•˜μ—¬κΈˆ κ°€μ§œ μ˜μƒμ„ μ§„μ§œλΌκ³  μƒκ°ν•˜λ„λ‘ ν•™μŠ΅ μ‹œν‚¨λ‹€.
  • μƒμ„±μžμ—μ„œ μƒμ„±ν•œ λͺ¨λ“  κ°€μ§œ μ˜μƒμ„ νŒλ³„μžκ°€ 1둜 νŒλ‹¨(μ§„μ§œλΌκ³  νŒλ‹¨)ν•˜κ²Œ ν•™μŠ΅μ„ μ‹œν‚¨λ‹€.
    (μ‹€μ œμ™€ μœ μ‚¬ν•œ 데이터 뢄포λ₯Ό κ°–κΈ° μœ„ν•΄μ„œ μƒμ„±μžλ₯Ό 점점 μ •ν™•ν•˜κ²Œ μœ„μ‘°μ „λ¬ΈμœΌλ‘œ μ•…λž„ν•˜κ²Œ ν•™μŠ΅μ‹œν‚¨λ‹€)

ν•™μŠ΅μ—μ„œ μƒμ„±μžμ—μ„œλŠ” μ§„μ§œμ˜ μ΄λ―Έμ§€λŠ” 듀어가지 μ•ŠκΈ°μ— μ§„μ§œ 이미지가 λ“€μ–΄κ°€λŠ” 뢀뢄은 사라진닀.
κ°€μ§œκ°€ λ“€μ–΄κ°€λŠ” 뢀뢄에 D(G(z))κ°€ λ³΄μ΄λŠ”κ°€?
μ΄λŠ” νŒλ³„μžDμ—κ²Œ κ°€μ§œ μ˜μƒ G(z)λ₯Ό λ„£μ—ˆμ„ λ•Œμ˜ 값이닀. ν•΄λ‹Ή 값이 1에 κ°€κΉκ²Œ λ‚˜μ˜¨λ‹€λ©΄ μƒμ„±μž μž…μž₯μ—μ„œλŠ” μ™„λ²½ν•œ κ°€μ§œ 사진을 λ§Œλ“  κ²ƒμ΄λ―€λ‘œ 성곡적인 ν•™μŠ΅μ΄ 될 것이닀.

λ”°λΌμ„œ, D(G(z))의 값이 1μ΄λ˜λ„λ‘ ν•΄μ•Όν•˜κ³ , μ΄λ ‡κ²Œ 되면 결과적으둜 ν•΄λ‹Ή λΉ„μš©ν•¨μˆ˜μ˜ 값은 min에 κ°€κΉŒμ›Œ 진닀.

즉, μƒμ„±μžμ˜ λͺ©μ μ€ G-min값이 μ΅œμ†Œκ°€ λ˜λ„λ‘ ν•˜λŠ” 것이닀.

[μΆ”κ°€]
G-minκ³Ό D-max의 G와 DλŠ” Generator, Discriminatorλ₯Ό μ˜λ―Έν•œλ‹€.

ALL DONE..! πŸŽ‰

이걸둜 λ”₯λŸ¬λ‹ κΈ°μ΄ˆμ— λŒ€ν•œ 글을 λ§ˆμΉ˜λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.
후에 GCN, YOLO등에 λŒ€ν•΄μ„œλŠ” λ”°λ‘œ μΆ”κ°€λ‘œ λ‹€λ£° μ˜ˆμ •μž…λ‹ˆλ‹€.

profile
뢉은 λ°° μ˜€μƒ‰ 딱닀ꡬ리 개발자 πŸ¦ƒCloud & DevOps

0개의 λŒ“κΈ€