|
4 | 4 | "cell_type": "markdown", |
5 | 5 | "metadata": {}, |
6 | 6 | "source": [ |
7 | | - "### Contents\n", |
8 | | - " - 개요\n", |
9 | | - " - 1.1 개념\n", |
10 | | - " - (1.1.1 원리)\n", |
11 | | - " - (1.1.2 종류)\n", |
12 | | - " - 1.2 GAN 모델\n", |
13 | | - " - 1.2.1 모델 구조\n", |
14 | | - " - 1.2.2 CGAN\n", |
15 | | - " - 1.2.3 평가메트릭 \n", |
16 | | - " - 1.3 적용사례\n", |
17 | | - " - 1.3.1 가짜이미지 / NVIDIA\n", |
18 | | - " - 1.3.2 오바마 가짜연설영상 / 워싱턴대학교\n", |
19 | | - " - 1.3.3 Eye In-Painting / Facebook\n", |
20 | | - " - 1.4 한계점\n", |
21 | | - " \n", |
22 | | - "<hr>" |
| 7 | + "# 1. GAN 소개 (Introduction to GAN)" |
23 | 8 | ] |
24 | 9 | }, |
25 | 10 | { |
26 | 11 | "cell_type": "markdown", |
27 | 12 | "metadata": {}, |
28 | 13 | "source": [ |
29 | | - "# 1. GAN 소개 (Introduction to GAN)" |
| 14 | + "[](https://colab.research.google.com/github/Pseudo-Lab/Tutorial-Book/blob/master/book/chapters/GAN/Ch1-Introduction.ipynb)" |
30 | 15 | ] |
31 | 16 | }, |
32 | 17 | { |
33 | | - "cell_type": "markdown", |
34 | | - "metadata": {}, |
| 18 | + "cell_type": "code", |
| 19 | + "execution_count": 19, |
| 20 | + "metadata": { |
| 21 | + "scrolled": true |
| 22 | + }, |
| 23 | + "outputs": [ |
| 24 | + { |
| 25 | + "data": { |
| 26 | + "text/html": [ |
| 27 | + "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>" |
| 28 | + ], |
| 29 | + "text/plain": [ |
| 30 | + "<IPython.core.display.HTML object>" |
| 31 | + ] |
| 32 | + }, |
| 33 | + "execution_count": 19, |
| 34 | + "metadata": {}, |
| 35 | + "output_type": "execute_result" |
| 36 | + } |
| 37 | + ], |
35 | 38 | "source": [ |
36 | | - "[](https://colab.research.google.com/github/Pseudo-Lab/Tutorial-Book/blob/master/book/chapters/GAN/Ch1-Introduction.ipynb)" |
| 39 | + "from IPython.display import HTML # 영상 변경!!!!!! -- .../embed/JOzDr2eGFcM / embed/JO... -> ...\n", |
| 40 | + "HTML('<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>')" |
37 | 41 | ] |
38 | 42 | }, |
39 | 43 | { |
|
49 | 53 | "source": [ |
50 | 54 | "GAN은 Generative Adversarial Networks의 약자로 우리말로는 \"적대적 생성 신경망\"이라고 번역되는 AI기술 중 하나입니다. 이름에서 알 수 있듯 GAN은 두 개의 네트워크를 적대적으로(adversarial) 학습시키며 실제 데이터와 비슷한 데이터를 생성(generative)해내는 모델인데 이렇듯 정해진 label값이 없기 때문에 비지도 학습 기반 생성모델로 분류됩니다. \n", |
51 | 55 | "\n", |
52 | | - "GAN은 구글 브레인에서 머신러닝을 연구했던 Ian Goodfellow에 의해 2014년 처음으로 신경정보처리시스템학회(NIPS)에서 제안되었고, 이후 텍스트 생성, 이미지 생성 등에 다양하게 응용되고 있습니다." |
| 56 | + "GAN은 구글 브레인에서 머신러닝을 연구했던 Ian Goodfellow에 의해 2014년 처음으로 신경정보처리시스템학회(NIPS)에서 제안되었고, 이후 텍스트 생성, 이미지 생성 등에 다양하게 응용되고 있습니다.\n", |
| 57 | + "\n", |
| 58 | + "이번 1장에서는 GAN의 개념을 비롯하여 GAN 모델의 구조와 평가지표, 적용 사례 등에 대해 알아봅니다. 1.1절에서는 GAN의 등장과 개념에 대해서 설명하고 1.2절에서는 GAN 모델을 구조와 GAN의 한 종류인 CGAN 모델, 그리고 GAN 모델의 평가지표에 대해서 설명합니다. 이어 1.3절에서는 GAN을 적용한 사례들을 살펴보며 1.4절에서는 GAN이 가진 한계점을 설명하고 있습니다." |
53 | 59 | ] |
54 | 60 | }, |
55 | 61 | { |
|
70 | 76 | "cell_type": "markdown", |
71 | 77 | "metadata": {}, |
72 | 78 | "source": [ |
73 | | - "<img src='../pic3/GAN-ch1img112.png'>" |
| 79 | + "<img src='./pic3/GAN-ch1img112.png'>" |
| 80 | + ] |
| 81 | + }, |
| 82 | + { |
| 83 | + "cell_type": "code", |
| 84 | + "execution_count": 18, |
| 85 | + "metadata": {}, |
| 86 | + "outputs": [ |
| 87 | + { |
| 88 | + "name": "stdout", |
| 89 | + "output_type": "stream", |
| 90 | + "text": [ |
| 91 | + "zsh:1: unknown file attribute: h\r\n" |
| 92 | + ] |
| 93 | + } |
| 94 | + ], |
| 95 | + "source": [ |
| 96 | + "" |
74 | 97 | ] |
75 | 98 | }, |
76 | 99 | { |
77 | 100 | "cell_type": "markdown", |
78 | 101 | "metadata": {}, |
79 | 102 | "source": [ |
80 | | - "생성 모델은 진짜 지폐와 비슷한 가짜 지폐를 만들어 경찰을 속이려 하는 위조지폐범 팀과 같고, 반대로 판별모델은 위조지폐범이 만들어낸 가짜 지폐를 탐지하려는 경찰팀과 유사한데 이러한 경쟁이 계속됨에 따라 위조지폐범 팀은 경찰을 속이지 못한 데이터를, 경찰팀은 위조지폐범에게 속은 데이터를 각각 입력받아 적대적으로 학습하게 되는 것입니다. 이 게임에서의 경쟁은 경쟁은 위조지폐가 진짜 지폐와 구별되지 않을 때까지, 즉 주어진 표본이 실제 표본이 될 확률이 0.5에 가까운 값을 가질 때까지 계속됩니다." |
| 103 | + "생성 모델은 진짜 지폐와 비슷한 가짜 지폐를 만들어 경찰을 속이려 하는 위조지폐범 팀과 같고, 반대로 판별모델은 위조지폐범이 만들어낸 가짜 지폐를 탐지하려는 경찰팀과 유사한데 이러한 경쟁이 계속됨에 따라 위조지폐범 팀은 경찰을 속이지 못한 데이터를, 경찰팀은 위조지폐범에게 속은 데이터를 각각 입력받아 적대적으로 학습하게 되는 것입니다. 이 게임에서의 경쟁은 경쟁은 위조지폐가 진짜 지폐와 구별되지 않을 때까지, 즉 주어진 표본이 실제 표본이 될 확률이 0.5에 가까운 값을 가질 때까지 계속됩니다.\n", |
| 104 | + "\n", |
| 105 | + "다음 절에서는 GAN 모델의 구조와 그 한 갈래인 CGAN 모델, 그리고 GAN 모델의 평가지표에 대해서 살펴봅니다." |
81 | 106 | ] |
82 | 107 | }, |
83 | 108 | { |
|
105 | 130 | "cell_type": "markdown", |
106 | 131 | "metadata": {}, |
107 | 132 | "source": [ |
108 | | - "<img src='../pic3/GAN-ch1img02.png'>" |
| 133 | + "<img src='./pic3/GAN-ch1img02.png'>" |
109 | 134 | ] |
110 | 135 | }, |
111 | 136 | { |
|
127 | 152 | "cell_type": "markdown", |
128 | 153 | "metadata": {}, |
129 | 154 | "source": [ |
130 | | - "<img src='../pic3/GAN-ch1img03.png'>" |
| 155 | + "<img src='./pic3/GAN-ch1img03.png'>" |
131 | 156 | ] |
132 | 157 | }, |
133 | 158 | { |
|
146 | 171 | "\n", |
147 | 172 | "먼저 D의 관점에서 실제 데이터(x)를 입력하면 D(x)가 커지면서 log값이 커지면서 높은 확률값이 나오도록 하고, 가짜 데이터(G(z))를 입력하면 log값이 작아짐에 따라 낮은 확률값이 나오도록 학습됩니다. 다시 말해 D는 실제 데이터와 G가 만든 가짜 데이터를 잘 구분하도록 조금씩 업데이트되는 것입니다. <br>\n", |
148 | 173 | "\n", |
149 | | - "G에서는 랜덤한 노이즈를 멀티레이어 퍼셉트론에 통과시켜 샘플들을 생성하며 이 가짜 데이터 G(z)를 (??Zero-Mean Gaussian 노이즈 z를 받아 생성된 가짜 데이터를??) D에 input으로 넣었을 때 실제 데이터처럼 확률이 높게 나오도록 학습됩니다. 즉 D(G(z))값을 낮추 전체 확률 값이 낮아지도록 하는 것이며 이는 다시 말해 G가 'D가 잘 구분하지 못하는' 데이터를 생성하도록 조금씩 업데이트되는 것입니다. <br>\n", |
| 174 | + "G에서는 Zero-Mean Gaussian 분포에서 노이즈 z를 멀티레이어 퍼셉트론에 통과시켜 샘플들을 생성하며 이 생성된 가짜 데이터 G(z)를 D에 input으로 넣었을 때 실제 데이터처럼 확률이 높게 나오도록 학습됩니다. 즉 D(G(z))값을 높도록, 그리고 전체 확률 값이 낮아지도록 하는 것이며 이는 다시 말해 G가 'D가 잘 구분하지 못하는' 데이터를 생성하도록 조금씩 업데이트되는 것입니다. <br>\n", |
150 | 175 | "\n", |
151 | 176 | "실제 학습을 진행할 때는 G와 D 두 네트워크를 동시에 학습시키지 않고 하나의 네트워크를 고정한 상태에서 다른 한 네트워크를 업데이트하는 방식으로 따로따로 업데이트합니다." |
152 | 177 | ] |
|
178 | 203 | "cell_type": "markdown", |
179 | 204 | "metadata": {}, |
180 | 205 | "source": [ |
181 | | - "<img src = '../pic3/GAN-ch1img89.png'>" |
| 206 | + "<img src = './pic3/GAN-ch1img89.png'>" |
182 | 207 | ] |
183 | 208 | }, |
184 | 209 | { |
|
199 | 224 | "cell_type": "markdown", |
200 | 225 | "metadata": {}, |
201 | 226 | "source": [ |
202 | | - "<img src='../pic3/GAN-ch1img1221.png'>" |
| 227 | + "<img src='./pic3/GAN-ch1img1221.png'>" |
203 | 228 | ] |
204 | 229 | }, |
205 | 230 | { |
|
213 | 238 | "cell_type": "markdown", |
214 | 239 | "metadata": {}, |
215 | 240 | "source": [ |
216 | | - "<img src='../pic3/GAN-ch1img1222.png'>" |
| 241 | + "<img src='./pic3/GAN-ch1img1222.png'>" |
217 | 242 | ] |
218 | 243 | }, |
219 | 244 | { |
|
234 | 259 | "cell_type": "markdown", |
235 | 260 | "metadata": {}, |
236 | 261 | "source": [ |
237 | | - "<img src='../pic3/GAN-ch1img1223.png'>" |
| 262 | + "<img src='./pic3/GAN-ch1img1223.png'>" |
238 | 263 | ] |
239 | 264 | }, |
240 | 265 | { |
|
248 | 273 | "cell_type": "markdown", |
249 | 274 | "metadata": {}, |
250 | 275 | "source": [ |
251 | | - "### 1.2.3. 평가메트릭 (Evaluation Metrics)" |
| 276 | + "### 1.2.3. 평가 지표 (Evaluation Metrics)" |
252 | 277 | ] |
253 | 278 | }, |
254 | 279 | { |
|
262 | 287 | "cell_type": "markdown", |
263 | 288 | "metadata": {}, |
264 | 289 | "source": [ |
265 | | - "2018년 GAN의 평가 메트릭의 장단점을 기술한 논문에서 Ali Borji는 \"GAN 모델의 강점과 한계점을 반영하는 가장 적절한 메트릭에 대해서는 아직도 의견의 일치가 이루어지지는 않았다\"고 언급했습니다. 이와 같이 GAN 모델은 생성 대상의 도메인 문맥에 따라 생성된 이미지의 퀄리티에 기반하여 평가되고는 했습니다." |
| 290 | + "2018년 GAN의 평가 지표의 장단점을 기술한 논문에서 Ali Borji는 \"GAN 모델의 강점과 한계점을 반영하는 가장 적절한 지표에 대해서는 아직도 의견의 일치가 이루어지지는 않았다\"고 언급했습니다. 이와 같이 GAN 모델은 생성 대상의 도메인 문맥에 따라 생성된 이미지의 퀄리티에 기반하여 평가되고는 했습니다." |
266 | 291 | ] |
267 | 292 | }, |
268 | 293 | { |
269 | 294 | "cell_type": "markdown", |
270 | 295 | "metadata": {}, |
271 | 296 | "source": [ |
272 | | - "그 이후인 2019년 Macquarie 대학교의 Hamed Alqahtani가 발표한 논문에서는 GAN 모델의 평가메트릭에 대한 연구를 통해 10여 개의 GAN 모델의 평가메트릭을 제시하였습니다. Hamed에 따르면 GAN의 평가지표는 크게 정성적인 지표와 정량적인 지표 2가지로 분류되며 일반적으로 정성적인 지표는 사람이 이미지를 평가하므로 비용이 많이 든다고 합니다.\n", |
| 297 | + "그 이후인 2019년 Macquarie 대학교의 Hamed Alqahtani가 발표한 논문에서는 GAN 모델의 평가지표에 대한 연구를 통해 10여 개의 GAN 모델의 평가지표를 제시하였습니다. Hamed에 따르면 GAN의 평가지표는 크게 정성적인 지표와 정량적인 지표 2가지로 분류되며 일반적으로 정성적인 지표는 사람이 이미지를 평가하므로 비용이 많이 든다고 합니다.\n", |
273 | 298 | "\n", |
274 | | - "정성적인 지표에는 Nearest Neighbor, Rating and Preference Judgement, Rapid Scene Categorization이 있으며 정량적인 지표에는 FID(Freechet Inception Distance), IS(Inception Score), Mode Score, Maximum Mean Discrepancy 등이 있습니다. 우리는 아래에서 NVIDIA의 논문에 모델 비교시 핵심적으로 사용했던 IS와 자주 쓰이는 FIS 2가지에 대해서 알아보겠습니다." |
| 299 | + "정성적인 지표에는 Nearest Neighbor, Rating and Preference Judgement, Rapid Scene Categorization이 있으며 정량적인 지표에는 FID(Freechet Inception Distance), IS(Inception Score), Mode Score, Maximum Mean Discrepancy 등이 있습니다. 우리는 아래에서 NVIDIA의 논문에 모델 비교시 핵심적으로 사용했던 IS와 자주 쓰이는 FID 2가지에 대해서 알아보겠습니다." |
275 | 300 | ] |
276 | 301 | }, |
277 | 302 | { |
|
298 | 323 | "cell_type": "markdown", |
299 | 324 | "metadata": {}, |
300 | 325 | "source": [ |
301 | | - "Inception Score는 <font style='colr:red'>Salimans et al.</font>에 의해 제안되었는데 GAN의 평가에 널리 쓰이는 지표입니다. 이 지표는 클래스 label과 관련하여 고도로 분류 가능하고 다양한 생성된 샘플들의 바람직한 속성들을 잡아내기 위해 pre-trained 신경망을 사용합니다. 아래는 IS 값을 도출하는 수식인데 샘플의 조건부 분포 p(y|x)와 모든 샘플에서 얻은 주변분포 p(y) 사이의 average KL divergence를 측정하는 것이며 이 값이 높을수록 좋은 성능를 낸다고 해석할 수 있습니다. 하지만 IS에는 실제 샘플 대신 생성된 이미지를 사용해 계산하고, 클래스 당 하나의 이미지만 생성하면 다양성이 부족하더라도 p(y)가 균등 분포에 가깝게 나오기 때문에 성능을 왜곡할 수 있다는 단점이 있습니다." |
| 326 | + "Inception Score는 <font style='colr:red'>Salimans et al.</font>에 의해 제안되었는데 GAN의 평가에 널리 쓰이는 지표입니다. 이 지표는 클래스 label과 관련하여 특징적인 속성들을 잡아내기 위해 pre-trained 신경망을 사용합니다. 아래는 IS 값을 도출하는 수식인데 샘플의 조건부 분포 p(y|x)와 모든 샘플에서 얻은 주변분포 p(y) 사이의 평균적인 KL 발산 정도(Average KL Divergence)를 측정하는 것이며 이 값이 높을수록 좋은 성능를 낸다고 해석할 수 있습니다. 하지만 IS에는 실제 샘플 대신 생성된 이미지를 사용해 계산하고 클래스 당 하나의 이미지만 생성하면 다양성이 부족하더라도 p(y)가 균등 분포에 가깝게 나오기 때문에 성능을 왜곡할 수 있다는 단점이 있습니다." |
302 | 327 | ] |
303 | 328 | }, |
304 | 329 | { |
305 | 330 | "cell_type": "markdown", |
306 | 331 | "metadata": {}, |
307 | 332 | "source": [ |
308 | | - "<img src='../pic3/GAN-ch1img123.png'>" |
| 333 | + "<img src='./pic3/GAN-ch1img123.png'>" |
309 | 334 | ] |
310 | 335 | }, |
311 | 336 | { |
312 | 337 | "cell_type": "markdown", |
313 | 338 | "metadata": {}, |
314 | 339 | "source": [ |
315 | 340 | "#### Frechet Inception Distance (FID)\n", |
316 | | - "Frechet Inception Distance는 생성되는 이미지의 퀄리티 일관성을 유지하기 위해 이용되는 메트릭입니다. 실제 데이터의 분포를 활용하지 않는 단점을 보완하여 실제 데이터와 생성된 데이터에서 얻은 feature의 평균과 공분산을 비교하는 방식이며 FID가 낮을수록 이미지의 퀄리티가 더 좋아지는데 이는 실제 이미지와 생성된 이미지의 유사도가 높아지는 것을 말합니다. 즉 쉽게 말해 FID는 생성된 샘플들의 통계와 실제 샘플들의 통계를 비교하는 것입니다." |
| 341 | + "Frechet Inception Distance는 생성되는 이미지의 퀄리티 일관성을 유지하기 위해 이용되는 지표입니다. 실제 데이터의 분포를 활용하지 않는 단점을 보완하여 실제 데이터와 생성된 데이터에서 얻은 feature의 평균과 공분산을 비교하는 방식이며 FID가 낮을수록 이미지의 퀄리티가 더 좋아지는데 이는 실제 이미지와 생성된 이미지의 유사도가 높아지는 것을 말합니다. 즉 쉽게 말해 FID는 생성된 샘플들의 통계와 실제 샘플들의 통계를 비교하는 것입니다." |
317 | 342 | ] |
318 | 343 | }, |
319 | 344 | { |
|
328 | 353 | "(...) 일반적으로 모델을 비교할 때 샘플링하여 비교하는 것은 매우 번거롭고 그릇될 여지를 가지고 있는 방식입니다. 하지만 Annealed Importance Sampling에서는 decoder-based 모델에 대해서 log-likelihood가 측정되고, 양방향 몬테카를로 알고리즘을 통해 정확도가 검증됩니다." |
329 | 354 | ] |
330 | 355 | }, |
| 356 | + { |
| 357 | + "cell_type": "markdown", |
| 358 | + "metadata": {}, |
| 359 | + "source": [ |
| 360 | + "이어서 다음 절에서는 GAN을 적용한 사례들에 대해서 살펴보겠습니다." |
| 361 | + ] |
| 362 | + }, |
331 | 363 | { |
332 | 364 | "cell_type": "markdown", |
333 | 365 | "metadata": {}, |
|
353 | 385 | "cell_type": "markdown", |
354 | 386 | "metadata": {}, |
355 | 387 | "source": [ |
356 | | - "<img src='../pic3/GAN-ch1img98.png'>" |
| 388 | + "<img src='./pic3/GAN-ch1img98.png'>" |
357 | 389 | ] |
358 | 390 | }, |
359 | 391 | { |
|
369 | 401 | "source": [ |
370 | 402 | "2017년 글로벌 GPU 설계 회사 NVIDIA에서 공개한 '실존하지 않는 사람들의 이미지'가 GAN의 대표적인 적용 사례입니다. 당시 NVIDIA는 기존의 GAN 결과들보다 이미지 품질, 안정성, 다양성 등을 향상시킨 새로운 훈련 방법론을 제시하였고 그 결과 생성된 이미지는 위와 같이 사람의 눈으로는 실존 인물인지 가상 인물인지 판별하기 어려운 수준으로 나타났습니다. \n", |
371 | 403 | "\n", |
372 | | - "NVIDIA가 제시한 GAN의 새로운 훈련 방법론의 핵심은 Generator와 Discriminator를 둘 다 낮은 <font style='color:red'>'결과값'</font>에서 시작하여 훈련이 진행되면서 모델이 아주 서서히 <font style='color:red'>'학습'</font>하도록 새로운 레이어를 쌓아가며 점진적으로 성장시키는 것입니다. NVIDIA는 이 방식을 통해 기존보다 높은 IS Score(GAN의 평가 메트릭)를 달성했으며 나아가 이미지 퀄리티와 다양성을 모두 고려한 새로운 평가 메트릭을 제안하고 있습니다.\n", |
| 404 | + "NVIDIA가 제시한 GAN의 새로운 훈련 방법론의 핵심은 Generator와 Discriminator를 둘 다 낮은 <font style='color:red'>'결과값'</font>에서 시작하여 훈련이 진행되면서 모델이 아주 서서히 <font style='color:red'>'학습'</font>하도록 새로운 레이어를 쌓아가며 점진적으로 성장시키는 것입니다. NVIDIA는 이 방식을 통해 기존보다 높은 IS Score(GAN의 평가지표)를 달성했으며 나아가 이미지 퀄리티와 다양성을 모두 고려한 새로운 평가지표를 제안하고 있습니다.\n", |
373 | 405 | "\n", |
374 | 406 | "또한, 논문에서 NVIDIA는 사람뿐 아니라 침실, 화분, 소파, 버스 등의 사물도 실제와 같은 이미지로 만들어낼 수 있음을 보여주고 있으며 이는 저해상도의 사진을 고해상도로 만드는 등 손상된 이미지를 복원할 때에도 활용될 수 있습니다." |
375 | 407 | ] |
|
385 | 417 | "cell_type": "markdown", |
386 | 418 | "metadata": {}, |
387 | 419 | "source": [ |
388 | | - "<img src='../pic3/GAN-ch1img99.png'>" |
| 420 | + "<img src='./pic3/GAN-ch1img99.png'>" |
389 | 421 | ] |
390 | 422 | }, |
391 | 423 | { |
|
420 | 452 | "cell_type": "markdown", |
421 | 453 | "metadata": {}, |
422 | 454 | "source": [ |
423 | | - "<img src='../pic3/GAN-ch1img97.png'>" |
| 455 | + "<img src='./pic3/GAN-ch1img97.png'>" |
424 | 456 | ] |
425 | 457 | }, |
426 | 458 | { |
427 | 459 | "cell_type": "markdown", |
428 | 460 | "metadata": {}, |
429 | 461 | "source": [ |
430 | | - "<img src='../pic3/GAN-ch1img95.png'>" |
| 462 | + "<img src='./pic3/GAN-ch1img95.png'>" |
431 | 463 | ] |
432 | 464 | }, |
433 | 465 | { |
|
441 | 473 | "cell_type": "markdown", |
442 | 474 | "metadata": {}, |
443 | 475 | "source": [ |
444 | | - "2017년 12월 Facebook은 ExGAN 기술을 개발하여 사람이 눈을 감은 사진에서 눈을 뜬 사람의 모습의 사진으로 바꾸는 과정을 공개했습니다. Real Eye Openerf라는 명칭으로 불리는 이 작업은 GAN을 통해 진짜같은 가짜 눈을 만들어 눈을 감은 사진에 합성시킨 이미지입니다. 특정 장소나 다시 찍을 수 없는 사진에서 눈을 감고 있는 모습을 보정할 때에 활용할 수 있는 것입니다." |
| 476 | + "2017년 12월 Facebook은 ExGAN 기술을 개발하여 사람이 눈을 감은 사진에서 눈을 뜬 사람의 모습의 사진으로 바꾸는 과정을 공개했습니다. Real Eye Opener라는 명칭으로 불리는 이 작업은 GAN을 통해 진짜같은 가짜 눈을 만들어 눈을 감은 사진에 합성시킨 이미지입니다. 특정 장소나 다시 찍을 수 없는 사진에서 눈을 감고 있는 모습을 보정할 때에 활용할 수 있는 것입니다." |
445 | 477 | ] |
446 | 478 | }, |
447 | 479 | { |
|
461 | 493 | "## 1.4. 한계점" |
462 | 494 | ] |
463 | 495 | }, |
| 496 | + { |
| 497 | + "cell_type": "markdown", |
| 498 | + "metadata": {}, |
| 499 | + "source": [ |
| 500 | + "지금까지 GAN이란 무엇인지, GAN 모델의 내부와 성능 평가 방식, 그리고 GAN을 적용한 사례들에 대해서 살펴보았습니다. 이렇듯 유용해 보이는 GAN 모델 역시 초기부터 한계점을 가지고 있어 왔는데 이를 살펴보면 아래와 같습니다." |
| 501 | + ] |
| 502 | + }, |
464 | 503 | { |
465 | 504 | "cell_type": "markdown", |
466 | 505 | "metadata": {}, |
|
478 | 517 | "source": [ |
479 | 518 | "**<font style='color:red'>+a?!</font>** " |
480 | 519 | ] |
481 | | - }, |
482 | | - { |
483 | | - "cell_type": "markdown", |
484 | | - "metadata": {}, |
485 | | - "source": [] |
486 | 520 | } |
487 | 521 | ], |
488 | 522 | "metadata": { |
|
0 commit comments