Skip to content

Commit 391d39a

Browse files
committed
20210129_0225
1 parent 51b1ca0 commit 391d39a

9 files changed

Lines changed: 170 additions & 44 deletions

File tree

book/chapters/GAN/.DS_Store

6 KB
Binary file not shown.
Lines changed: 170 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,21 @@
44
"cell_type": "markdown",
55
"metadata": {},
66
"source": [
7-
"# Contents\n",
8-
"### [Ch.1] Introduction to G.A.N \n",
9-
" - 개요(Overview)\n",
10-
" - 1.1. 개념\n",
11-
" - 1.1.1 개념 및 원리 (Concept)\n",
12-
" - 1.2. 평가메트릭 (Evaluation Metrics)\n",
13-
" - 1.3. 활용 사례 (Use Case)\n",
14-
" - 1.3.1. Case(1)\n",
15-
" - 1.3.2. Case(2)\n",
16-
" - 1.4. C.G.A.N\n",
17-
" - Conditional G.A.N\n",
7+
"# 1. GAN 소개 / Introduction to GAN\n",
8+
"### Contents\n",
9+
" - 개요\n",
10+
" - 1.1 개념\n",
11+
" - (1.1.1 원리)\n",
12+
" - (1.1.2 종류)\n",
13+
" - 1.2 GAN 모델\n",
14+
" - 1.2.1 모델 구조\n",
15+
" - 1.2.2 CGAN\n",
16+
" - 1.2.3 평가메트릭 \n",
17+
" - 1.3 적용사례\n",
18+
" - 1.3.1 가짜이미지 / NVIDIA\n",
19+
" - 1.3.2 오바마 가짜연설영상 / 워싱턴대학교\n",
20+
" - 1.3.3 Eye In-Painting / Facebook\n",
21+
" - 1.4 한계점\n",
1822
" \n",
1923
"<hr>"
2024
]
@@ -23,7 +27,14 @@
2327
"cell_type": "markdown",
2428
"metadata": {},
2529
"source": [
26-
"# [Ch.1] Introduction to G.A.N "
30+
"# 1. GAN 소개 (Introduction to GAN)"
31+
]
32+
},
33+
{
34+
"cell_type": "markdown",
35+
"metadata": {},
36+
"source": [
37+
"[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Pseudo-Lab/Tutorial-Book/blob/master/book/chapters/GAN/Ch1-Introductions.ipynb)"
2738
]
2839
},
2940
{
@@ -46,22 +57,21 @@
4657
"cell_type": "markdown",
4758
"metadata": {},
4859
"source": [
49-
"## 1.1 개념 및 모델 구조"
60+
"## 1.1. 개념 (Concepts)"
5061
]
5162
},
5263
{
5364
"cell_type": "markdown",
5465
"metadata": {},
5566
"source": [
56-
"### 1.1.1 개념\n",
57-
"GAN은 Generator(G,생성모델/생성기)와 Discriminator(D,판별모델/판별기) 2개의 서로 다른 네트워크로 이루어져 있으며 이 두 네트워크를 적대적으로 학습시키며 목적을 달성합니다. 생성모델(G)의 목적은 진짜 분포에 가까운 가짜분포를 생성하는 것이고 판별모델(D)의 목적은 표본이 가짜분포에 속하는지 진짜분포에 속하는지를 결정하는 것입니다. 이 2가지 모델을 포함한 GAN의 궁극적인 목적은 \"실제 데이터의 분포\"에 가까운 데이터를 생성하는 것이며, 따라서 판별기의 확률값이 0.5에 가까울 수록 판별기가 가짜 샘플과 실제 샘플을 구별할 수 없는 최적 솔루션으로 판단하게 됩니다. 제안자 Ian Goodfellow은 논문에서 다음과 같이 '경찰과 위조지폐범'을 예시로 들어 모델의 개념을 설명하고 있습니다. (****사진대체!!!?!******)"
67+
"GAN은 Generator(G,생성모델/생성기)와 Discriminator(D,판별모델/판별기) 2개의 서로 다른 네트워크로 이루어져 있으며 이 두 네트워크를 적대적으로 학습시키며 목적을 달성합니다. 생성모델(G)의 목적은 진짜 분포에 가까운 가짜분포를 생성하는 것이고 판별모델(D)의 목적은 표본이 가짜분포에 속하는지 진짜분포에 속하는지를 결정하는 것입니다. 이 2가지 모델을 포함한 GAN의 궁극적인 목적은 \"실제 데이터의 분포\"에 가까운 데이터를 생성하는 것이며, 따라서 판별기의 확률값이 0.5에 가까울 수록 판별기가 가짜 샘플과 실제 샘플을 구별할 수 없는 최적 솔루션으로 판단하게 됩니다. 제안자 Ian Goodfellow은 논문에서 다음과 같이 '경찰과 위조지폐범'을 예시로 들어 모델의 개념을 설명하고 있습니다. (<font style='color:red'>****사진대체예정!!******</font>)"
5868
]
5969
},
6070
{
6171
"cell_type": "markdown",
6272
"metadata": {},
6373
"source": [
64-
"<img src='./img/img_03.png'>"
74+
"<img src='../pic3/GAN-ch1img01.png'>"
6575
]
6676
},
6777
{
@@ -75,7 +85,14 @@
7585
"cell_type": "markdown",
7686
"metadata": {},
7787
"source": [
78-
"### 1.1.2 모델 구조"
88+
"## 1.2. GAN 모델"
89+
]
90+
},
91+
{
92+
"cell_type": "markdown",
93+
"metadata": {},
94+
"source": [
95+
"### 1.2.1. 모델 구조"
7996
]
8097
},
8198
{
@@ -89,7 +106,7 @@
89106
"cell_type": "markdown",
90107
"metadata": {},
91108
"source": [
92-
"<img src=\"./img/img_01.png\">"
109+
"<img src='../pic3/GAN-ch1img02.png'>"
93110
]
94111
},
95112
{
@@ -111,7 +128,7 @@
111128
"cell_type": "markdown",
112129
"metadata": {},
113130
"source": [
114-
"<img src=\"./img/img_02.png\">"
131+
"<img src='../pic3/GAN-ch1img03.png'>"
115132
]
116133
},
117134
{
@@ -139,14 +156,35 @@
139156
"cell_type": "markdown",
140157
"metadata": {},
141158
"source": [
142-
"paper_00 : Ian J.Goodfellow 논문 & 블로그들 >>> 쉽게쉽게"
159+
"(출처 : paper_00 : Ian J.Goodfellow 논문 & 블로그들 >>> 쉽게쉽게)"
160+
]
161+
},
162+
{
163+
"cell_type": "markdown",
164+
"metadata": {},
165+
"source": [
166+
"### 1.2.2. CGAN"
143167
]
144168
},
145169
{
146170
"cell_type": "markdown",
147171
"metadata": {},
148172
"source": [
149-
"## 1.2 평가메트릭 (Evaluation Metrics)"
173+
"설명) paper_03으로부터."
174+
]
175+
},
176+
{
177+
"cell_type": "markdown",
178+
"metadata": {},
179+
"source": [
180+
"사례) MNIST from paper_03 간단하게."
181+
]
182+
},
183+
{
184+
"cell_type": "markdown",
185+
"metadata": {},
186+
"source": [
187+
"### 1.2.3. 평가메트릭 (Evaluation Metrics)"
150188
]
151189
},
152190
{
@@ -155,7 +193,7 @@
155193
"source": [
156194
" - 개요\n",
157195
" - 6개 정도 주요한 것들 : FID, IS, Geometry Score, Tournament Based Method, Discriminator Rejection Sampling, Precision and Recall\n",
158-
" - 이 중 2가지에 대해서 자세히 설명."
196+
" - FID, IS에 대해 자세히 설명."
159197
]
160198
},
161199
{
@@ -164,7 +202,8 @@
164202
"source": [
165203
"#### Frechet Inception Distance (FID)\n",
166204
"\n",
167-
"(보충) paper_01로부터 & 블로그들\n",
205+
"(보충) paper_01로부터 & 블로그들 \n",
206+
"엔비디아 논문 >> fid로 주로...\n",
168207
"\n",
169208
"(https://analyticsindiamag.com/top-6-metrics-to-monitor-the-performance-of-gans/) \n",
170209
"\n",
@@ -189,74 +228,161 @@
189228
"cell_type": "markdown",
190229
"metadata": {},
191230
"source": [
192-
"#### Annealed Importance Sampling "
231+
"**<font style='color:red'>+a</font>** \n",
232+
"**Annealed Importance Sampling**\n",
233+
"\n",
234+
"(https://analyticsindiamag.com/top-6-metrics-to-monitor-the-performance-of-gans/) \n",
235+
"\n",
236+
"(...) 일반적으로 모델을 비교할 때 샘플링하여 비교하는 것은 매우 번거롭고 그릇될 여지를 가지고 있는 방식입니다. 하지만 Annealed Importance Sampling에서는 decoder-based 모델에 대해서 log-likelihood가 측정되고, 양방향 몬테카를로 알고리즘을 통해 정확도가 검증됩니다."
193237
]
194238
},
195239
{
196240
"cell_type": "markdown",
197241
"metadata": {},
198242
"source": [
199-
"(https://analyticsindiamag.com/top-6-metrics-to-monitor-the-performance-of-gans/) \n",
243+
"## 1.3. 적용 사례 (Use Case)"
244+
]
245+
},
246+
{
247+
"cell_type": "markdown",
248+
"metadata": {},
249+
"source": [
250+
"GAN은 이미지 생성을 중심으로 다양하게 응용되어 왔는데 예시를 살펴보면 다음과 같습니다."
251+
]
252+
},
253+
{
254+
"cell_type": "markdown",
255+
"metadata": {},
256+
"source": [
257+
"### 1.4.1. 가짜이미지 생성 / NVIDIA \n"
258+
]
259+
},
260+
{
261+
"cell_type": "markdown",
262+
"metadata": {},
263+
"source": [
264+
"<img src='../pic3/GAN-ch1img98.png'>"
265+
]
266+
},
267+
{
268+
"cell_type": "markdown",
269+
"metadata": {},
270+
"source": [
271+
"출처 : 논문07"
272+
]
273+
},
274+
{
275+
"cell_type": "markdown",
276+
"metadata": {},
277+
"source": [
278+
"2017년 글로벌 GPU 설계 회사 NVIDIA에서 공개한 '실존하지 않는 사람들의 이미지'가 GAN의 대표적인 적용 사례입니다. 당시 NVIDIA는 기존의 GAN 결과들보다 이미지 품질, 안정성, 다양성 등을 향상시킨 새로운 훈련 방법론을 제시하였고 그 결과 생성된 이미지는 위와 같이 사람의 눈으로는 실존 인물인지 가상 인물인지 판별하기 어려운 수준으로 나타났습니다. \n",
200279
"\n",
201-
"(...) 일반적으로 모델을 비교할 때 샘플링하여 비교하는 것은 매우 번거롭고 그릇될 여지를 가지고 있는 방식입니다. 하지만 Annealed Importance Sampling에서는 decoder-based 모델에 대해서 log-likelihood가 측정되고, 양방향 몬테카를로 알고리즘을 통해 정확도가 검증됩니다."
280+
"NVIDIA가 제시한 GAN의 새로운 훈련 방법론의 핵심은 Generator와 Discriminator를 둘 다 낮은 <font style='color:red'>'결과값'</font>에서 시작하여 훈련이 진행되면서 모델이 아주 서서히 <font style='color:red'>'학습'</font>하도록 새로운 레이어를 쌓아가며 점진적으로 성장시키는 것입니다. NVIDIA는 이 방식을 통해 기존보다 높은 IS Score(GAN의 평가 메트릭)를 달성했으며 나아가 이미지 퀄리티와 다양성을 모두 고려한 새로운 평가 메트릭을 제안하고 있습니다.\n",
281+
"\n",
282+
"또한, 논문에서 NVIDIA는 사람뿐 아니라 침실, 화분, 소파, 버스 등의 사물도 실제와 같은 이미지로 만들어낼 수 있음을 보여주고 있으며 이는 저해상도의 사진을 고해상도로 만드는 등 손상된 이미지를 복원할 때에도 활용될 수 있습니다."
202283
]
203284
},
204285
{
205286
"cell_type": "markdown",
206287
"metadata": {},
207288
"source": [
208-
"## 1.3 활용 사례 (Use Case)"
289+
"### 1.4.2. 가짜 오바마 연설 영상 / University of Washington"
209290
]
210291
},
211292
{
212293
"cell_type": "markdown",
213294
"metadata": {},
214295
"source": [
215-
" - 1) MNIST ㄱㄱ\n",
216-
" - 2) 가짜 오바마 연설 영상\n",
217-
" - 3) MIT 텍스트 생성(풍경사진 & 짧은 시)\n",
218-
" - 4) Facebook Real-Eye-Opener\n",
219-
" - +a) 패션 테크 스타트업 VUE : 고객 개개인의 의상 이미지 제공"
296+
"<img src='../pic3/GAN-ch1img99.png'>"
220297
]
221298
},
222299
{
223300
"cell_type": "markdown",
224301
"metadata": {},
225302
"source": [
226-
"#### 흐름\n",
227-
" - 모두의 데이터 MNIST -> 결과 모름 -> 나옴\n",
228-
" - 영상도 된다 -> 오바마\n",
229-
" - 텍스트도 된다 -> 사진을 갖다 주니 시를 생성\n",
230-
" - 우리의 일상생활에도 가까이 -> 앱에도 활용 Facebook\n",
231-
" - 그 밖에도 패션 +a 있음~"
303+
"출처 : 논문05"
232304
]
233305
},
234306
{
235307
"cell_type": "markdown",
236308
"metadata": {},
237309
"source": [
238-
"## 1.4 C.G.A.N "
310+
"2017년 워싱턴대학교(University of Washington)에서는 GAN을 이용하여 버락 오바마(Barack Obama) 전 미국 대통령의 가짜 연설 영상을 만들어 발표했습니다. 이 영상은 오바마 전 대통령의 과거 연설 영상들로부터 음성을 따고, 이 음성에 맞는 입모양을 만들어 합성한 것으로 가짜입니다. 논문에서 저자는 먼저 오디오 인풋을 시간에 따라 달라지는 입모양으로 변환한 후 진짜같은 입모양을 생성하고, 이를 대상(타겟) 비디오의 입모양 부분에 삽입하여 생성했다고 밝혔습니다. 이렇게 최종 합성 전 입모양 시퀀스와 대상 비디오를 일치시키고 타이밍을 다시 맞추어 머리 움직임과 인풋 스피치가 자연스럽게 나타날 수 있도록 한 것입니다. 영상은 <b><a href='https://www.youtube.com/watch?v=AmUC4m6w1wo&feature=youtu.be'>링크</a></b>에서 시청할 수 있습니다."
239311
]
240312
},
241313
{
242314
"cell_type": "markdown",
243315
"metadata": {},
244316
"source": [
245-
"설명) paper_03으로부터."
317+
"### 1.4.3. Eye In-Painting / Facebook"
246318
]
247319
},
248320
{
249321
"cell_type": "markdown",
250322
"metadata": {},
251323
"source": [
252-
"사례) MNIST from paper_03 간단하게."
324+
"**<font style='color:red'>사진 택일?</font>**"
325+
]
326+
},
327+
{
328+
"cell_type": "markdown",
329+
"metadata": {},
330+
"source": [
331+
"<img src='../pic3/GAN-ch1img97.png'>"
253332
]
254333
},
255334
{
256-
"cell_type": "code",
257-
"execution_count": null,
335+
"cell_type": "markdown",
336+
"metadata": {},
337+
"source": [
338+
"<img src='../pic3/GAN-ch1img95.png'>"
339+
]
340+
},
341+
{
342+
"cell_type": "markdown",
343+
"metadata": {},
344+
"source": [
345+
"출처 : paper 09"
346+
]
347+
},
348+
{
349+
"cell_type": "markdown",
350+
"metadata": {},
351+
"source": [
352+
"2017년 12월 Facebook은 ExGAN 기술을 개발하여 사람이 눈을 감은 사진에서 눈을 뜬 사람의 모습의 사진으로 바꾸는 과정을 공개했습니다. Real Eye Openerf라는 명칭으로 불리는 이 작업은 GAN을 통해 진짜같은 가짜 눈을 만들어 눈을 감은 사진에 합성시킨 이미지입니다. 특정 장소나 다시 찍을 수 없는 사진에서 눈을 감고 있는 모습을 보정할 때에 활용할 수 있는 것입니다."
353+
]
354+
},
355+
{
356+
"cell_type": "markdown",
357+
"metadata": {},
358+
"source": [
359+
"<h4 style='color:red'>+a.</h4>\n",
360+
"\n",
361+
" - MIT 텍스트 생성(풍경사진 & 짧은 시) \n",
362+
" - 패션 테크 스타트업 VUE : 고객 개개인의 의상 이미지 제공"
363+
]
364+
},
365+
{
366+
"cell_type": "markdown",
367+
"metadata": {},
368+
"source": [
369+
"## 1.4. 한계점"
370+
]
371+
},
372+
{
373+
"cell_type": "markdown",
374+
"metadata": {},
375+
"source": [
376+
"GAN은 기술적으로 고해상도 이미지를 생성할 수 없다는 점과 학습이 불안정하다는 점을 한계점으로 가지고 있습니다. 이러한 한계점들을 극복하고 다양하게 응용되면서 처음 Ian Goodfellow에 의해 제안된 Vanilla GAN을 시작으로 DCGAN, SRGAN, CycleGAN 등의 GAN 모델이 개발되어 왔습니다. \n",
377+
"\n",
378+
"사용성 측면에서는 위의 예시들에서처럼 진짜같은 가짜를 생성하는 것이 활용도가 높은 반면 그만큼의 악용 가능성도 존재합니다. 진짜와 가짜를 구별하기 힘들다는 점을 이용한 딥페이크 기술로 만든 포르노 영상이 대표적인 예시인데, 유명인사들의 이미지를 포르노와 합성하여 배포하는 것입니다. 더하여 GAN을 이용하면 이러한 문제가 되는 데이터들을 빠르게 많이 만들어낼 수 있기에 디지털 성범죄 등 윤리적인 이슈도 수반합니다.\n",
379+
"\n",
380+
"이 외에도, GAN을 통해 생성된 미디어의 지식재산권 이슈, 가짜 이미지를 이용한 사기 등 여러가지 법적, 윤리적인 범주의 이슈가 존재하는데 이는 GAN의 기술적 발전에 따른 제도적 대안이 수반되어야 함을 시사합니다."
381+
]
382+
},
383+
{
384+
"cell_type": "markdown",
258385
"metadata": {},
259-
"outputs": [],
260386
"source": []
261387
}
262388
],

book/pics/GAN-ch1img01.png

-62.4 KB
Loading

book/pics/GAN-ch1img02.png

198 KB
Loading

book/pics/GAN-ch1img03.png

-359 KB
Loading

book/pics/GAN-ch1img95.png

874 KB
Loading

book/pics/GAN-ch1img97.png

1.11 MB
Loading

book/pics/GAN-ch1img98.png

2.28 MB
Loading

book/pics/GAN-ch1img99.png

392 KB
Loading

0 commit comments

Comments
 (0)