|
14 | 14 | "[](https://colab.research.google.com/github/Pseudo-Lab/Tutorial-Book/blob/master/book/chapters/GAN/Ch1-Introduction.ipynb)"
|
15 | 15 | ]
|
16 | 16 | },
|
17 |
| - { |
18 |
| - "cell_type": "code", |
19 |
| - "execution_count": 1, |
20 |
| - "metadata": { |
21 |
| - "scrolled": true |
22 |
| - }, |
23 |
| - "outputs": [], |
24 |
| - "source": [ |
25 |
| - "# from IPython.display import HTML # 영상 변경!!!!!! -- .../embed/JOzDr2eGFcM / embed/JO... -> ...\n", |
26 |
| - "# 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>')" |
27 |
| - ] |
28 |
| - }, |
29 | 17 | {
|
30 | 18 | "cell_type": "markdown",
|
31 | 19 | "metadata": {},
|
|
41 | 29 | "\n",
|
42 | 30 | "GAN은 구글 브레인에서 머신러닝을 연구했던 Ian Goodfellow에 의해 2014년 처음으로 신경정보처리시스템학회(NIPS)에서 제안되었고 이후 이미지 생성, 영상 생성, 텍스트 생성 등에 다양하게 응용되고 있습니다.\n",
|
43 | 31 | "\n",
|
44 |
| - "이번 1장에서는 GAN의 개념을 비롯하여 GAN 모델의 구조와 평가지표, 적용 사례 등에 대해 알아봅니다. 1.1절에서는 GAN의 등장과 개념에 대해서 설명하고 1.2절에서는 GAN 모델을 구조와 GAN의 한 종류인 Conditional GAN (CGAN) 모델, 그리고 GAN 모델의 평가지표에 대해서 설명합니다. 이어 1.3절에서는 GAN을 적용한 사례들을 살펴보며 1.4절에서는 GAN이 가진 한계점을 알아 봅니다." |
| 32 | + "이번 1장에서는 GAN의 개념을 비롯하여 GAN 모델의 구조와 평가지표, 적용 사례 등에 대해 알아봅니다. 1.1절에서는 GAN의 등장과 개념에 대해서 설명하고 1.2절에서는 GAN 모델을 구조와 GAN의 한 종류인 Conditional GAN (cGAN) 모델, 그리고 GAN 모델의 평가지표에 대해서 설명합니다. 이어 1.3절에서는 GAN을 적용한 사례들을 살펴보며 1.4절에서는 GAN이 가진 한계점을 알아 봅니다." |
45 | 33 | ]
|
46 | 34 | },
|
47 | 35 | {
|
|
63 | 51 | "metadata": {},
|
64 | 52 | "source": [
|
65 | 53 | "\n",
|
66 |
| - "<center> [그림 1-1] 경찰(왼쪽)과 도둑(오른쪽) 이미지" |
| 54 | + " - 그림 1-1 경찰(왼쪽)과 도둑(오른쪽) 이미지" |
67 | 55 | ]
|
68 | 56 | },
|
69 | 57 | {
|
|
72 | 60 | "source": [
|
73 | 61 | "생성 모델은 진짜 지폐와 비슷한 가짜 지폐를 만들어 경찰을 속이려 하는 위조지폐범과 같고, 반대로 판별모델은 위조지폐범이 만들어낸 가짜 지폐를 탐지하려는 경찰과 유사합니다. 이러한 경쟁이 계속됨에 따라 위조지폐범은 경찰을 속이지 못한 데이터를, 경찰은 위조지폐범에게 속은 데이터를 각각 입력받아 적대적으로 학습하게 되는 것입니다. 이 게임에서의 경쟁은 위조지폐가 진짜 지폐와 구별되지 않을 때까지 즉, 주어진 표본이 실제 표본이 될 확률이 0.5에 가까운 값을 가질 때까지 계속됩니다. 가짜로 확신하는 경우 판별기의 확률값이 0, 실제로 확신하는 경우 판별기의 확률값이 1을 나타내게 되며, 판별기의 확률값이 0.5라는 것은 가짜인지 진짜인지 판단하기 어려운 것을 의미하게 되는 것입니다.\n",
|
74 | 62 | "\n",
|
75 |
| - "다음 절에서는 GAN 모델의 구조와 그 한 갈래인 CGAN 모델, 그리고 GAN 모델의 평가지표에 대해서 살펴봅니다." |
| 63 | + "다음 절에서는 GAN 모델의 구조와 그 한 갈래인 cGAN 모델, 그리고 GAN 모델의 평가지표에 대해서 살펴봅니다." |
76 | 64 | ]
|
77 | 65 | },
|
78 | 66 | {
|
|
101 | 89 | "metadata": {},
|
102 | 90 | "source": [
|
103 | 91 | "\n",
|
104 |
| - "<center> [그림 1-2] GAN의 아키텍처 (출처: Hamed Alqahtani. 2019. An Analysis Of Evaluation Metric Of GANs)</center>" |
| 92 | + " - 그림 1-2 GAN의 아키텍처 (출처: Hamed Alqahtani. 2019. An Analysis Of Evaluation Metric Of GANs)" |
105 | 93 | ]
|
106 | 94 | },
|
107 | 95 | {
|
|
116 | 104 | "metadata": {},
|
117 | 105 | "source": [
|
118 | 106 | "\n",
|
119 |
| - "<center> [그림 1-3] GAN Value Function (출처: Ian J.Goodfellow. 2014. Generative Adversarial Nets) </center>" |
| 107 | + " - 그림 1-3 GAN Value Function (출처: Ian J.Goodfellow. 2014. Generative Adversarial Nets) " |
120 | 108 | ]
|
121 | 109 | },
|
122 | 110 | {
|
|
136 | 124 | "cell_type": "markdown",
|
137 | 125 | "metadata": {},
|
138 | 126 | "source": [
|
139 |
| - "### 1.2.2. CGAN" |
| 127 | + "### 1.2.2. cGAN" |
140 | 128 | ]
|
141 | 129 | },
|
142 | 130 | {
|
143 | 131 | "cell_type": "markdown",
|
144 | 132 | "metadata": {},
|
145 | 133 | "source": [
|
146 |
| - "CGAN은 Conditional Generative Adversarial Networks의 약자로 생성기와 판별기가 훈련하는 동안 추가 정보를 사용해 조건이 붙는 생성적 적대 신경망입니다. GAN과는 '샘플링을 어디서 해오는지'와 '데이터셋에 라벨이 있어야 하는지', 2가지 측면에서 차이가 있습니다. CGAN을 이용하면 인위적으로 원하는 클래스의 데이터를 생성할 수 있으며 생성기와 판별기를 훈련하는 데에 label을 사용합니다." |
| 134 | + "cGAN은 Conditional Generative Adversarial Networks의 약자로 생성기와 판별기가 훈련하는 동안 추가 정보를 사용해 조건이 붙는 생성적 적대 신경망입니다. GAN과는 '샘플링을 어디서 해오는지'와 '데이터셋에 라벨이 있어야 하는지', 2가지 측면에서 차이가 있습니다. cGAN을 이용하면 인위적으로 원하는 클래스의 데이터를 생성할 수 있으며 생성기와 판별기를 훈련하는 데에 label을 사용합니다." |
147 | 135 | ]
|
148 | 136 | },
|
149 | 137 | {
|
150 | 138 | "cell_type": "markdown",
|
151 | 139 | "metadata": {},
|
152 | 140 | "source": [
|
153 | 141 | "\n",
|
154 |
| - "<center> [그림 1-4] GAN과 CGAN 차이점 </center>" |
| 142 | + " - 그림 1-4 GAN과 cGAN 차이점 " |
155 | 143 | ]
|
156 | 144 | },
|
157 | 145 | {
|
|
166 | 154 | "metadata": {},
|
167 | 155 | "source": [
|
168 | 156 | "\n",
|
169 |
| - "<center> [그림 1-5] CGAN Value Function <br/> (출처: Mehdi Mirza. 2014. Conditional Generative Adversarial Nets) </center>" |
| 157 | + " - 그림 1-5 cGAN Value Function (출처: Mehdi Mirza. 2014. Conditional Generative Adversarial Nets)" |
170 | 158 | ]
|
171 | 159 | },
|
172 | 160 | {
|
173 | 161 | "cell_type": "markdown",
|
174 | 162 | "metadata": {},
|
175 | 163 | "source": [
|
176 |
| - "CGAN의 value 함수는 위와 같이 정의되는데 위의 GAN의 경우와 비교해 보면 Generator와 Discriminator 각각에 추가된 정보 y에 대해 조건부 확률인 점이 차이점으로 나타납니다. 아래는 CGAN의 간단한 구조로 input에서 y정보가 추가로 들어가는 것과 output으로 나오는 확률값이 y정보에 대한 조건부인 것을 확인할 수 있습니다." |
| 164 | + "cGAN의 value 함수는 위와 같이 정의되는데 위의 GAN의 경우와 비교해 보면 Generator와 Discriminator 각각에 추가된 정보 y에 대해 조건부 확률인 점이 차이점으로 나타납니다. 아래는 cGAN의 간단한 구조로 input에서 y정보가 추가로 들어가는 것과 output으로 나오는 확률값이 y정보에 대한 조건부인 것을 확인할 수 있습니다." |
177 | 165 | ]
|
178 | 166 | },
|
179 | 167 | {
|
180 | 168 | "cell_type": "markdown",
|
181 | 169 | "metadata": {},
|
182 | 170 | "source": [
|
183 | 171 | "\n",
|
184 |
| - "<center> [그림 1-6] Conditional adversarial net <br/> (출처: Mehdi Mirza. 2014. Conditional Generative Adversarial Nets) </center>" |
| 172 | + " - 그림 1-6 Conditional adversarial net (출처: Mehdi Mirza. 2014. Conditional Generative Adversarial Nets)" |
185 | 173 | ]
|
186 | 174 | },
|
187 | 175 | {
|
188 | 176 | "cell_type": "markdown",
|
189 | 177 | "metadata": {},
|
190 | 178 | "source": [
|
191 |
| - "2014년 11월 몬트리올대학교에서 최초로 발표된 CGAN 논문에서는 아래와 같이 MNIST 데이터셋으로부터 원하는 숫자(0~9까지 각각)에 대한 생성 결과를 행별로 총 10행의 결과 이미지로 보여주고 있습니다. " |
| 179 | + "2014년 11월 몬트리올대학교에서 최초로 발표된 cGAN 논문에서는 아래와 같이 MNIST 데이터셋으로부터 원하는 숫자(0~9까지 각각)에 대한 생성 결과를 행별로 총 10행의 결과 이미지로 보여주고 있습니다. " |
192 | 180 | ]
|
193 | 181 | },
|
194 | 182 | {
|
195 | 183 | "cell_type": "markdown",
|
196 | 184 | "metadata": {},
|
197 | 185 | "source": [
|
198 | 186 | "\n",
|
199 |
| - "<center> [그림 1-7] Generated MNIST digits, each now conditioned on one label <br/> (출처: Mehdi Mirza. 2014. Conditional Generative Adversarial Nets) </center>" |
| 187 | + " - 그림 1-7 Generated MNIST digits, each now conditioned on one label <br/> (출처: Mehdi Mirza. 2014. Conditional Generative Adversarial Nets)" |
200 | 188 | ]
|
201 | 189 | },
|
202 | 190 | {
|
|
248 | 236 | "metadata": {},
|
249 | 237 | "source": [
|
250 | 238 | "\n",
|
251 |
| - "<center> [그림 1-8] Average KL Divergence <br/> (출처: Hamed Alqahtani. 2019. An Analysis Of Evaluation Metric Of GANs) </center>" |
| 239 | + " - 그림 1-8 Average KL Divergence (출처: Hamed Alqahtani. 2019. An Analysis Of Evaluation Metric Of GANs) " |
252 | 240 | ]
|
253 | 241 | },
|
254 | 242 | {
|
|
284 | 272 | "cell_type": "markdown",
|
285 | 273 | "metadata": {},
|
286 | 274 | "source": [
|
287 |
| - "### 1.3.1. 가짜 이미지 생성 / NVIDIA " |
| 275 | + "### 1.3.1. 가짜이미지 생성 / NVIDIA \n" |
288 | 276 | ]
|
289 | 277 | },
|
290 | 278 | {
|
291 | 279 | "cell_type": "markdown",
|
292 | 280 | "metadata": {},
|
293 | 281 | "source": [
|
294 | 282 | "\n",
|
295 |
| - "<center> [그림 1-9] Images generated using the CELEBA-HQ dataset <br/> (출처: Tero Karras. 2018. Progressive Growing of GANs for Improved Quality, Stability, and Variation) </center>" |
| 283 | + " - 그림 1-9 Images generated using the CELEBA-HQ dataset <br/> (출처: Tero Karras. 2018. Progressive Growing of GANs for Improved Quality, Stability, and Variation)" |
296 | 284 | ]
|
297 | 285 | },
|
298 | 286 | {
|
|
318 | 306 | "metadata": {},
|
319 | 307 | "source": [
|
320 | 308 | "\n",
|
321 |
| - "<center> [그림 1-10] Fake Obama Video <br/> (출처: Supasorn Suwajanakorn. 2017. Synthesizing Obama: Learning Lip Sync from Audio) </center>" |
| 309 | + " - 그림 1-10 Fake Obama Video (출처: Supasorn Suwajanakorn. 2017. Synthesizing Obama: Learning Lip Sync from Audio)" |
322 | 310 | ]
|
323 | 311 | },
|
324 | 312 | {
|
|
340 | 328 | "metadata": {},
|
341 | 329 | "source": [
|
342 | 330 | "\n",
|
343 |
| - "<center> [그림 1-11] Eye In-Painting Examples from Facebook Inc. <br/> (출처: Brian Dolhansky. 2018. Eye In-Painting with Exemplar Generative Adversarial Networks) </center>" |
| 331 | + " - 그림 1-11 Eye In-Painting Examples from Facebook Inc. <br/> (출처: Brian Dolhansky. 2018. Eye In-Painting with Exemplar Generative Adversarial Networks) " |
344 | 332 | ]
|
345 | 333 | },
|
346 | 334 | {
|
|
374 | 362 | "\n",
|
375 | 363 | "이 외에도, GAN을 통해 생성된 미디어의 지식재산권 이슈, 가짜 이미지를 이용한 사기 등 여러가지 법적, 윤리적인 범주의 이슈가 존재하는데 이는 GAN의 기술적 발전에 따른 제도적 대안이 수반되어야 함을 시사합니다."
|
376 | 364 | ]
|
| 365 | + }, |
| 366 | + { |
| 367 | + "cell_type": "markdown", |
| 368 | + "metadata": {}, |
| 369 | + "source": [ |
| 370 | + "이어지는 2장에서는 Victorian400 데이터셋에 저장된 이미지를 분석 환경으로 가져오고 시각화 해보도록 하겠습니다." |
| 371 | + ] |
377 | 372 | }
|
378 | 373 | ],
|
379 | 374 | "metadata": {
|
|
392 | 387 | "name": "python",
|
393 | 388 | "nbconvert_exporter": "python",
|
394 | 389 | "pygments_lexer": "ipython3",
|
395 |
| - "version": "3.8.5" |
| 390 | + "version": "3.8.3" |
396 | 391 | }
|
397 | 392 | },
|
398 | 393 | "nbformat": 4,
|
|
0 commit comments