메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

미술관에 GAN 딥러닝 실전 프로젝트

GAN으로 쓰기, 그리기, 게임하기, 작곡하기

한빛미디어

번역서

절판

  • 저자 : 데이비드 포스터
  • 번역 : 박해선
  • 출간 : 2019-11-15
  • 페이지 : 356 쪽
  • ISBN : 9791162241080
  • 물류코드 :10108
  • 개정판정보 :개정판이 새로 출간되었습니다. 개정판 보기
  • 초급 초중급 중급 중고급 고급
4.6점 (11명)
좋아요 : 7

창조에 다가서는 GAN의 4가지 생성 프로젝트 

 

이 책은 케라스를 사용한 딥러닝 기초부터 AI 분야 최신 알고리즘까지 설명한다. 기계 스스로 그림을 그리고, 글을 쓰고, 음악을 작곡하고, 게임을 하는 딥러닝 생성 모델을 재현하는 과정에서 독자는 변이형 오토인코더(VAE), 생성적 적대 신경망(GAN), 인코더-디코더 모델, 월드 모델 등을 학습할 수 있다. 이 책에서 제시한 팁과 가이드로 모델을 효율적으로 학습시키고 창의적인 생성 모델을 만들 수 있다.

 

 

주요 내용

  • 변이형 오토인코더가 사진 속 얼굴 표정을 어떻게 바꾸는지 알아보기
  • 스타일을 변경하는 CycleGAN과 음악을 생성하는 MuseGAN을 사용한 GAN 예제
  • 텍스트를 생성하는 순환 생성 모델을 만들고 어텐션을 사용하여 모델 성능 향상시키기
  • 생성 모델이 어떻게 강화학습 환경에서 작업을 완수하려는 에이전트를 돕는지 이해하기
  • 트랜스포머(BERT, GPT-2), ProGAN, StyleGAN 같은 이미지 생성 모델의 구조 살펴보기

 

 

이 책의 구성

 

_1장 생성 모델링

기본적인 확률 모델을 사용한 첫 번째 예제를 살펴보고 생성 모델링 작업의 복잡도가 증가할 때 딥러닝이 필요한 이유를 분석해봅니다.

 

_2장 딥러닝

복잡한 생성 모델을 만들기 위해 필요한 딥러닝 도구와 기술을 소개합니다. 딥러닝 분야의 이론적 배경보다는 실용적인 가이드를 제공합니다.

 

_3장 변이형 오토인코더(VAE)

생성 딥러닝 모델인 변이형 오토인코더를 살펴봅니다. 실제와 같은 얼굴을 생성할 뿐만 아니라 기존 이미지를 변경합니다.

 

_4장 생성적 적대 신경망(GAN)

생성적 적대 신경망을 살펴봅니다. 모델을 세부 튜닝하는 방법과 생성 모델링 영역을 지속적으로 확장하는 새로운 기법을 알아봅니다.

 

_5장 그리기

GAN 구조를 사용하여 모델이 사진을 특정 스타일의 그림으로 (또는 그 반대로) 변환하는 CycleGAN을 배웁니다. 또한 그림의 스타일을 사진으로 전달하여 마치 동일한 화가가 그린 듯한 효과를 내는 뉴럴 스타일 트랜스퍼 기술도 살펴봅니다. 

 

_6장 쓰기

순차 데이터가 포함된 문제를 다루는 순환 신경망(RNN) 구조를 소개합니다. 또한 인코더-디코더 구조의 작동 원리를 알아보고 간단한 질문-대답 생성기를 만듭니다.

 

_7장 작곡하기

텍스트 생성 문제에 사용한 여러 기술을 확장하고 음악 데이터를 적용한 딥러닝 구조인 MuseGAN을 살펴봅니다.

 

_8장 게임하기

생성 모델을 강화학습 같은 머신러닝 도메인에 사용할 수 있는지 알아봅니다. 에이전트가 주어진 환경에서 생성 모델을 훈련하는 방법을 소개합니다.

 

_9장 생성 모델링의 미래

생성 모델링 분야를 요약하고 이 책에서 소개한 기술을 정리합니다. 전망을 조망하고 오늘날 가능한 최고의 기술이 창의성을 바라보는 방식을 어떻게 바꾸는지 살펴봅니다.

 

미술관에 GAN 딥러닝 실전 프로젝트_상세이미지_700.jpg

 

데이비드 포스터 저자

데이비드 포스터

크리에이티브 AI 애플리케이션을 전문으로 다루는 데이터 과학자이자 기업가, 교육자. ADSP의 공동 창립자이며 조직이 데이터와 AI의 혁신적 힘을 활용하도록 영감을 주고 역량을 강화하는 일을 합니다. 영국의 케임브리지 대학교 트리니티 칼리지에서 수학 석사 학위를, 워릭 대학교에서 운영 연구 석사 학위를 받았습니다. 머신러닝 연구소의 교수진으로 실용적인 AI 애플리케이션과 실전 문제 해결에 중점을 두고 있습니다. AI 알고리즘의 투명성과 해석 가능성을 높이는 데 관심이 있으며, 의료 분야에서 설명 가능한 머신러닝에 관한 논문을 발표했습니다.

 

 

박해선 역자

박해선

기계공학을 전공했지만 졸업 후엔 줄곧 코드를 읽고 쓰는 일을 했습니다. 블로그(tensorflow.blog)에 글을 쓰고 머신러닝과 딥러닝에 관한 책을 집필, 번역하면서 소프트웨어와 과학의 경계를 흥미롭게 탐험하고 있습니다.

『챗GPT로 대화하는 기술』(한빛미디어, 2023), 『혼자 공부하는 데이터 분석 with 파이썬』(한빛미디어, 2023), 『혼자 공부하는 머신러닝+딥러닝』(한빛미디어, 2020), 『Do it! 딥러닝 입문』(이지스퍼블리싱, 2019)을 집필했습니다.

『실무로 통하는 ML 문제 해결 with 파이썬』(한빛미디어, 2024), 『머신러닝 교과서: 파이토치 편』(길벗, 2023), 『스티븐 울프럼의 챗GPT 강의』(한빛미디어, 2023), 『핸즈온 머신러닝(3판)』(한빛미디어, 2023), 『만들면서 배우는 생성 AI』(한빛미디어, 2023), 『코딩 뇌를 깨우는 파이썬』(한빛미디어, 2023), 『트랜스포머를 활용한 자연어 처리』(한빛미디어, 2022), 『케라스 창시자에게 배우는 딥러닝 2판』(길벗, 2022), 『개발자를 위한 머신러닝&딥러닝』(한빛미디어, 2022), 『XGBoost와 사이킷런을 활용한 그레이디언트 부스팅』(한빛미디어, 2022), 『구글 브레인 팀에게 배우는 딥러닝 with TensorFlow.js』(길벗, 2022), 『파이썬 라이브러리를 활용한 머신러닝(번역개정2판)』(한빛미디어, 2022), 『머신러닝 파워드 애플리케이션』(한빛미디어, 2021), 『머신 러닝 교과서 with 파이썬, 사이킷런, 텐서플로(개정3판)』(길벗,2021)를 포함하여 여러 권의 책을 우리말로 옮겼습니다.

 

CHAPTER 1 생성 모델링

1.1 생성 모델링이란?

1.2 확률적 생성 모델

1.3 생성 모델의 난관

1.4 환경 설정

1.5 요약

 

CHAPTER 2 딥러닝

2.1 정형 데이터와 비정형 데이터

2.2 심층 신경망

2.3 첫 번째 심층 신경망

2.4 모델 성능 향상

2.5 요약

 

CHAPTER 3 VAE - 변이형 오토인코더

3.1 미술 전시회

3.2 AE - 오토인코더

3.3 변경된 미술 전시회

3.4 VAE 만들기

3.5 VAE를 사용하여 얼굴 이미지 생성

3.6 요약

 

CHAPTER 4 GAN - 생성적 적대 신경망

4.1 애니멀간

4.2 GAN 소개

4.3 첫 번째 GAN

4.4 GAN의 도전 과제

4.5 WGAN - 와서스테인 GAN

4.6 WGAN-GP

4.7 요약

 

CHAPTER 5 그리기 

5.1 사과와 오렌지

5.2 CycleGAN 소개

5.3 첫 번째 CycleGAN

5.4 CycleGAN으로 모네 그림 그리기

5.5 뉴럴 스타일 트랜스퍼

5.6 요약

 

CHAPTER 6 쓰기 

6.1 고약한 범법자를 위한 문학 클럽

6.2 LSTM 네트워크 소개

6.3 첫 번째 LSTM 네트워크

6.4 새로운 텍스트 생성

6.5 RNN 확장

6.6 인코더-디코더 모델

6.7 질문-대답 생성기

6.8 요약

 

CHAPTER 7 작곡하기 

7.1 준비 사항

7.2 첫 번째 음악 생성 RNN

7.3 MuseGAN 소개

7.4 첫 번째 MuseGAN

7.5 MuseGAN 생성자

7.6 MuseGAN 비평자

7.7 MuseGAN 분석

7.8 요약

 

CHAPTER 8 게임하기 

8.1 강화학습

8.2 월드 모델 구조

8.3 환경 설정

8.4 훈련 과정

8.5 랜덤한 롤아웃 데이터 수집

8.6 VAE 훈련

8.7 RNN 훈련 데이터 수집

8.8 MDN-RNN 훈련

8.9 컨트롤러 훈련

8.10 꿈속에서 훈련하기

8.11 요약

 

CHAPTER 9 생성 모델링의 미래

9.1 최근 5년간의 발전

9.2 트랜스포머

9.3 이미지 생성 분야의 발전

9.4 생성 모델링의 적용 분야

 

CHAPTER 10 결론

KakaoTalk_20191216_095846711.jpg

 

결론부터 말하자면 딥러닝 초보자용 책은 아니다. 딥러닝이 어떤것인지 알고 있는 사람이 다음 단계를 학습하기 위해 참고할만한 책이다. GAN에 대해 이만큼 친절하게 설명해준 책이 또 있었나 싶을 정도이다. 가장 좋았던 점은 아무래도 최신판이기 때문에 깃과 샘플코드가 잘 작동한다는 것이였다. 단순히 개념 설명해주고 끝이 아니라 실제로 적용해볼만한 예제를 통해 구현해보는 점도 좋았다.

GAN을 완벽히 이해한 상태에서 책을 본게 아니기 때문에 완독을 하지 못하였다. 성격상 책에 나와있는 예제들을 하나하나 직접 해보지 않고서는 다음 챕터로 못 넘어가기에 시간이 배로 걸리기도 하였다. 딥러닝을 공부하는 사람들에게 말씀드리자면 변이형 오토인코더와 GAN, 순환 신경망의 이면에 있는 기본적인 아이디어부터 이를 토대로 트랜스포머, 고급 GAN 구조와 같은 최고 수준의 모델을 알아보는 책이다. 따라서 방금 말한 단어들이 친숙하지 않다면 권장하지 않지만 관심이 있으신 분들에게 적극적으로 권장하는 책이다.

 

혹시 인공지능이 적용된 예시중에 이런 그림을 본적 있는지 모르겠다.

 

그림 1. CycleGAN (출처 : https://github.com/junyanz/CycleGAN)

 

 위에 소개된 기술은 CycleGAN을 활용한 Style Transfer라는 기술로, 기존의 유명한 명화들을 학습한 모델을 바탕으로 실제 사진을 넣었을 때 해당 화풍을 적용한 것처럼 변형시켜준다. 사실 인공지능이 미래의 데이터를 예측하고, 이미지를 분류하는 예제만 봐왔던 사람들한테는 이렇게 직관적으로 결과가 나타나고, 시각적으로도 딱 보여주기 좋았기에 사람들에 전달하는 의미가 매우 컸었다. 이밖에도 MuseGAN이나 World Model과 같이, 이미지 생성에만 한정짓지 않고, 새로운 음악도 만들어내기도 하며, 강화학습 환경에 적용시켜 성능을 개선시킨 사례도 나오기 시작했다.

 이런 기술들이 탄생하게 된 계기가 바로 위에도 몇번 나온 것처럼 GAN (Generative Adversarial Network) 이라고 불리는 적대적 생성 네트워크가 연구되면서부터이다. 이 기술은 2014년 Ian Goodfellow가 NIPS 2014에서 하나의 poster 형식으로 발표한 내용으로써, 최근에도 많이 연구되고 있는 주제 중 하나이다. 몇년전까지만 해도 계속 연구되는 분야이었기에 시중에 나온 서적보다는 conference에서 발표된 논문들을 바탕으로 공부했었는데, 최근에는 이와 관련된 책들도 나오기 시작했고, GAN 관련 서적들도 많이 출판되기 시작했다.

 

그림 2. Generative Deep Learning

 

 이번에 소개할 책도 GAN에 대해서 다루고 있는 책이며, O`Reilly 에서 출판된 "Generative Deep Learning"을 번역한 역서이다. 사실 이 책이 다른 여타 GAN 책에 비해서 차별화시킬 수 있는 부분은 다른 책들은 원래 GAN이 제안되었을 때 활용되었던 이미지 분야와 이와 관련된 예시(DCGAN, pix2pix)만 제시되고 있던데 비해, 이 책에서는 앞에서도 잠깐 소개했던 MuseGAN, World Model 같이 GAN이 다른 분야에 접목되었던 예제들을 소개하고 있어, 조금더 기술의 특성이나 응용 범위에 대해서 소개되고 있다는 점이다.

 물론 기존의 책들도 GAN에 대해서 다루고 있던 부분도 있긴 하지만, chapter의 일부로 소개되어 있어, 이런 생성 네트워크의 동작원리를 이해하는데 필요한 기반 지식들, 예를 들어서 Kullbeck-Leibler Divergence나 Variational AutoEncoder에 대한 설명들이 부족했었다. 물론 이런 지식들이 실제 Tensorflow나 Pytorch로 구현되어 있고, 온라인상에 공개된 수많은 GAN을 실제 상황에 응용하거나, 적용하기에는 큰 문제는 없었지만 그래도 뭔가 내부적인 동작원리를 이해하고자 하는 사람한테는 부족하게 느낄수 있었고, 이런 사람들이 보통은 논문을 살펴보며 배웠었을 거다. 그런데 이 책은 전형적인 딥러닝에 대한 설명부터 GAN이 도출되게 된 이론적인 내용을 설명하는데 책의 절반정도를 활용하고 있다. 그렇기 때문에 아마 기존에 딥러닝을 공부해왔더라도, GAN이라는 것을 처음 접하는 사람한테는 도움이 되지 않을까 생각한다. 

 다만 책을 읽으면서도, 책의 난이도가 딥러닝에 대해서 전혀 모르는 사람도 쉽게 읽을 수 있을만큼 포괄적인 주제는 아니라는 느낌이 들었다. 물론 책의 원저자가 독자들이 GAN에 대해서 쉽게 이해할 수 있게끔 풀어쓴 부분도 있고, 이 부분은 잘 번역되었다는 생각이 있지만, Wasserstein loss나 Lipschitz condition 같은 부분은 번역된 부분이나, 원서를 둘다 읽어봐도 이해가 잘 안되는 부분이 있었다. 물론 개인적인 지식 부족때문이겠지만, 해당 부분은 책에 소개된 링크를 통해서라도 이해하는 것이 좋을 것 같았다. 

 아무래도 시중에 출시된 GAN 관련 책중 가장 최근에 출시되었다보니, 최신 경향들을 많이 담고 있기도 하고, 개인적으로는 강화학습에 많이 관심을 가지고 있다보니, World Model에 대해서 소개된 부분이 관심이 많이 갔었다. 해당 부분도 홈페이지에 가면 자세히 설명되어 있긴 하지만, 이 책을 보니 간단하게 어떤 걸 하고자 했고, 어떤 테크닉이 담겨져 있는지 쉽게 이해할 수 있었다. 그러고 보니, 여기 소개된 예제들 모두 각 예시의 초반부에 소개되어 있는 링크나 논문을 같이 참고하면서 책을 읽으면 조금더 이해에 도움이 될거라 생각한다.

 원서 repo : https://github.com/davidADSP/GDL_code
 역서 repo : https://github.com/rickiepark/GDL_code



출처: https://talkingaboutme.tistory.com/entry/Book-DL-Generative-Deep-Learning [자신에 대한 고찰]

1576418181436.jpg

 

올해 2~3월 딥러닝 관련 강의를 들었었다. 중고급자를 위한 강의 였지만, 필요한 내용이 있었던지라 무작정 회사 사람들을 이끌고 강의를 들으러 갔었다. 기본적인 머신러닝에서 GAN에 이르기까지 총망라한 어지러운 내용이었지만, 이때 들은 GAN에 대한 내용이 이 책의 제목에서 부터 나를 끌어 당기는 내용이었다.

만들 수 없다면 이해하지 못한 것이다.

— 리처드 파인만 [들어가며 中 ]

기계학습은 주어진 것을 학습하는 것에서 더 나아가 주어진 것을 학습하고 새로운 것을 만들어 내는 것에 까지 이르렀다. 만들 수 있게 된 AI는 이해 하고 있는 것일까?

지난날 바흐의 탄생일 기념으로 Google 에서는 사용자가 작곡한 간단한 음계로, 바흐 스타일의 음악으로 작곡을 해주는 미니 게임을 오픈 한적이 있었다. 신기하고 즐거운 시간이었는데 이것에 대한 내용이 소스와 함께 이쁘게 책에 나온다.

이책은 기본적으로 머신러닝은 알고 있어야 이해하기 좋으며, 코드를 다룰 줄 아는 사람이라면, 바로 소스코드를 적용해 보며 어렵풋이 이해 하기에 좋은 내용을 다루고 있다.

원서가 아무래도 쉽게 쉽게 설명하기 위해 노력한 것이 번역문에서 보이지만 번역문은 왠지 모르게 어색함이 많다. 번역문을 다시 해독하며 읽어야 하는 난이한 점이 있지만, 내용 구성에서는 흠잡을 만한 곳이 드물다.

깔끔한 컬러와, 중간 중간 데이터 구조에 대한 입력 형태 및 코들에 대한 부연 설명들은 어려운 내용들에 대한 훌륭한 예제라고 생각한다.

초심자에게 이 책은 권할 수 없고, 만약 교제나 실제 케라스 소스에서의 적용과 활용 사용법에 대한 이해가 필요한 사람들에겐 충분히 도움이 될 것이라고 생각한다.



요즘에는 확실히 딥러닝이 안쓰이는 곳이 없다. 게임에서도 딥러닝을 사용해 욕설 및 비방을 필터링하는 모델을 만들기도 하고, 강화학습을 통해 알파고처럼 게임을 플레이하는 AI도 만들기도 한다.

 

최근에 한빛미디어에서 GAN을 활용한 다양한 분야에서 사용되는 실제 프로젝트 같은 걸 소개해주는 책이 등장해서 받아보았다. 특히 음악과 미술, 게임 부분에서 GAN이 새로운 콘텐츠를 생성하는 부분에 대해서 많이 관심이 있었고, 이 책을 통해 다양한 것들을 봤다. 아주 깊은 내용들은 다 이해할 수 없었는데, 확실히 개괄적으로 이런이런 것들을 할 수 있다! 이런 것 들을 알 수 있었다. 앞으로 내가 GAN으로 어떤 프로젝트나 아이디어를 실현하려고 할때 이 책에서 본 내용들을 잘 기억해서 써먹어야겠다는 생각이 들었다.

 

GAN을 입문하고 실제로 어떤 프로젝트들을 진행할 것인지 조사가 필요할때 이 책을 보면 좋을 것 같다는 생각이 들었다. 이런 책들이 나와서 너무 좋다.



20191210_164229.jpg

 

 

 

 

 

 

 

기본적인 수학 지식과 파이썬 지식이 필요하다.

 

저는 머신러닝과 딥러닝을 학습하면서 다양한 모델을 학습했지만, GAN이 가장 이해하기 어려우면서도, 학습 결과물을 보면 가장 매력적이었던 모델이었던 것 같습니다. 수학적으로 파고 들면, 이해하기 힘든 부분도 있었는데, 다행히 이 책은 복잡한 수학 공식과 구조만 덩그러니 던져주고 끝나는 것이 아니고 그것에만 초점을 맞춘 것이 아닙니다. GAN이 어떤 구조로 되어 있으며 학습이 어떻게 진행되는지 차근차근 진행하기 때문에 입문자에게도 나쁘지 않은 책이라고 생각합니다. 여기에 파이썬을 이용해 머신러닝과 딥러닝을 사용해본 경험까지 갖추고 있다면 큰 도움이 될 것이라 생각합니다.

 

다양한 프로젝트를 볼 수 있다.

사실 GAN 하나만으로도 책의 반을 차지할 수 있고, 이런저런 내용들에 대해 집어넣으면 프로젝트를 많아야 두 개정도 맛볼 수 잇는데, 이 책은 그렇게 하지 않고 중후반부부터는 모든 것을 프로젝트를 통해 경험하도록 구성되어 있습니다. 생성 모델이기 때문에 정말 많은 분야에 적용하는 편인데, 예시 프로젝트를 다양하게 접할 수 있다는 건 이 책이 가지고 가는 강점이라고 생각됩니다. 이 책에서는 주로 멀티미디어인 그림, 글쓰기, 음성, 게임에 적용한 프로젝트들에 대해서 다루기 때문에 고리타분한 주제도 아니라 즐기듯이 공부할 수 있습니다. 이 책 적혀진 프로젝트 외에도 정말 많은 프로젝트들이 있다는 것을 인터넷을 찾아보면 알 수 있으니, 학습하면서 참고하시면 될 것 같습니다.

 

책의 흐름

책에서는 일단 딥러닝에 대한 설명으로 시작해서 초반부에서 중반부까지는 딥러닝, 그 중에서도 생성 모델링을 위한 딥러닝에 대해서 다루고 본격적으로 그 이후부터는 GAN과 GAN을 이용한 파생 프로젝트들에 대해서 세세히 파고 드는 방식으로 접근합니다. 따라서, 이 책 하나면 GAN을 사용한 모든 프로젝트를 학습할 수 있는 건 아니어도 굵직굵직한 개념들을 이해하는데 전혀 무리가 없을 것이라고 생각합니다.

 

결론

GAN에 대해 자세히 공부하고 싶다면, 논문을 직접 파고들면서 직접 다 구현해보고 응용 결과물을 내는 것이 최종관문이겠지만, 그 전에 GAN이 무엇이고 어떻게 쓰이는지 입문하는 사람들에게는 이 책이 더 적합하다고 생각됩니다. 이 책을 통해서 GAN을 활용하는 방법에 대해 이해하고 무엇인지에 대해 충분히 학습하고, 논문을 접하고 GitHub에 올라와 있는 관련 프로젝트들을 직접 돌려보면서 구조를 뜯어보면 더 깊이 있는 공부가 될 수 있지 않을까 싶습니다.

미술관에 GAN 딥러닝 실전 프로젝트.jpg

 

이 책은 최근 생성 모델링(Generative modeling)으로 인해 주어진 스타일로 창조적인 미술 작품을 그리거나, 긴 구조의 논리적인 문단을 쓰거나, 듣기 좋은 음악을 만들어내는 등의 창조성의 메커니즘을 주체가 되는 GAN(Generative Adversarial Network) 에 대하여 담고있다.

 

이 책은 파이썬 코딩 경험이 있다는 전제하에 책의 내용을 설명한다. 목차에서는 생성 모델링, 딥러닝, GAN 이 무엇인지에 대해 설명하고, 이러한 GAN 을 이용하여 "그리기", "쓰기", "작곡하기", "게임하기" 라는 챕터로 결과물들을 생성하기 위한 지식 및 실습을 제공한다. 마지막에는 생성 모델링의 미래에 대해서 담고있다. 

 

책에서는 생성 모델링을 다음과 같이 설명하고 있었다. 확률 모델(Probabilistic model)의 관점으로 보면 생성 모델은 데이터셋을 생성하는 방법을 기술한 것입니다. 이 모델에서 샘플링을 하면 새로운 데이터를 생성할 수 있습니다.

 

어떠한 이미지 데이터 세트 A가 있을 때 이에 대해 GAN으로 학습하면, A 이미지들과 비슷한 "새로운" 이미지 세트들을 창조할 수 있는 것이다. 딥러닝 분야에서는 잘 만들어진 데이터세트들이 성능을 결정하는데 중요한 요인이 되기 때문에 데이터 세트를 잘 정제하고, 학습이 잘되도록 관리하는 일이 필요하다. 이러한 관점에서 봤을 때, GAN은 원하는 데이터 세트들을 생성할 수 있기 때문에 획기적이다. 일례로 프라이버시 문제가 존재하는 사람 얼굴 데이터세트들을 GAN 으로 새롭게 생성함으로써 민감한 문제들을 해결 할 수 있다.  

 

GAN 개념을 처음으로 책으로 접하고 싶은 분들에게 추천해주고 싶은 책이다. 2018년에 처음 GAN 을 접했을 때는 신기하다 라는것에 그쳤었는데, 이렇게 책으로 기존 딥러닝 신경망 방식과 어떻게 왜 다른지 알게되니 기존에 풀지 못했던 문제들을 푸는데 도움이 될 수 있을 것 같다. 기존 머신러닝 개념과 GAN 개념이 어떻게 다른지는 다음과 같다. 

 

GAN으로 어떤것을 생성하려면 생성하려는 개체의 샘플을 많이 가진 데이터셋이 필요하다. 이를 훈련 데이터라고 하며 데이터 포인트 하나를 샘플 이라고 한다. 각 샘플은 많은 특성 즉, Feature 로 이루어져있는데 이미지 생성 문제일 경우 특성은 일반적으로 개별 픽셀 값이 될 수 있다. 목표는 일련의 새로운 특성을 생성할 수 있는 모델을 만드는 것이다. 이는 아주 어려운 작업이 될 수 있는데, 개별 픽셀 값이 가질 수 있는 경우의 수가 매우 많고, 아주 작은 수의 조합이 흉내 내려는 개체의 이미지를 구성하기 때문이다. 

 

생성 모델은 또한 결정적(Deteministic)이 아니라 확률적(Probabilistic)이어야 한다. 모델이 데이터세트에 있는 모든 픽셀의 평균 값을 구하는 것처럼 고정된 계산만 수행한다면 매번 동일한 값을 출력하기 때문에 생성 모델이 아니다. 생성되는 개별 샘플에 영향을 미칠 수 있는 확률적 요소를 포함해야한다. 즉, 어떤 이미지는 훈련 데이터세트에 있을 것 같고, 다른 이미지는 그렇지 않은 이유를 설명할 수 있는 알려지지 않은 확률 분포가 있다고 가정한다. 해야 할 일은 가능한 이 분포에 가깝게 흉내 내는 모델을 만드는 것이고, 이 분포에서 샘플링하여 원본 훈련 세트에 있을 것 같은 새롭고 완전히 다른 샘플을 생성해내는 것이다. 

 

이러한 GAN 개념과 반대되는 기존 머신러닝 방법은 판별 모델링(Discriminative Modeling) 방식이다. 이는 어떠한 훈련 데이터 세트들이 있고, 이와 비슷한 이미지가 들어왔을 때 이를 훈련데이터 세트에 부합하는 클래스로 판별하는 것이다. 이 때는 당연히 훈련 데이터의 각 샘플이 "레이블링" 되어있어야한다. 이러한 이유로 판별 모델링을 지도학습이라고 한다. 생성 모델링은 이와는 다르게 비지도학습으로 구분된다. 

 

- 판별 모델링은 샘플 x가 주어졌을 때 레이블 y의 확률을 추정한다. 

- 생성 모델링은 샘플 x의 관측 확률을 추정한다. 데이터 세트가 레이블을 가지고 있다면 확률을 추정하는 생성모델을 만들 수도 있다. 

 

앞으로 GAN 을 이용하여 데이터를 생성하는데 무궁무진한 발전이 있을 것이다. 또한 인공지능 산업계에서 핵심 요소가 될 것이며, 뇌는 특정 목적을 가진 입력 데이터에 대한 거의 완벽한 생성 모델이라고 한다. 이러한 미래의 시퀀스를 생성하려면 환경의 물리적 특성을 이해하는 것뿐만 아니라 행동 그 자체와 어떻게 행동하는지 이해해야한다. 이 아이디어가 향후 10년안에 인공 일반 지능의 문을 여는 열쇠로 주목 받을 수 있다고 말하고 있다. 

미술관에 GAN 딥러닝 실전 프로젝트-데이비드 포스터(박해선 역)

 

 

텐서플로 2.0이 업데이트된 이후로 텐서플로와 함께 케라스의 관심이 크다. 케라스가 텐서플로와 통합되었기 때문이다. CNN, RNN이 넘어 이제는 GAN이 주목받고 있다. 오토인코더(AutoEncoders), 생성적 적대 신경망(Generative Adversarial Networks,GAN)가 이 책의 주된 키워드이다. 

 

GAN이란 두 개의 네트워크로 구성된 심층 신경망 구조이다. 한 신경망과 또 다른 신경망이 서로 겨루고 있는 구조이므로 적대적이라는 의미가 이름에 포함된다. 이 신경망은 2014년 몬트리올 대학의 Ian Goodfellow와 Yoshua Bengio를 포함한 여러 연구자들의 논문에 소개되었다. 페이스북의 인공지능 연구 책임자인 Yann LeCun의 경우 GAN을 머신러닝 분야에서 지난 10년 간 가장 흥미로운 아이디어라고 일컸다.

 

데이터의 특징을 모방하는 학습을 할 수 있어 GAN의 능력은 어마어마하다. 두 개의 신경망은 각각 제너레이터(Generator)라는 새로운 데이터 인스턴스를 생성하는 신경망과 이를 진짜인지 가짜인지 평가하는 디스크리미네이터(Discriminator)로 이뤄져있다. 디스크리미네이터의 목표는 실제 데이터의 인스턴스를 살펴봐 그것이 진짜인지 알아내는 것이다. 반면 제너레이터는 디스크리미네이터에게 전달하는 새로운 데이터를 계속해서 생성하는데, 제너레이터 입장에서 생성한 가짜 데이터가 진짜인것처럼 보여는 것이 목표이다. 이러한 과정해서 서로의 능력은 계속적으로 향상되고 일종의 제로섬 게임으로 서로 반대되는 목적함수 및 손실함수로 최적화를 시도한다. 

 

이번 책에서는 이러한 GAN과 오토인코더, 인코더-디코더 모델, 월드 모델을 배워보며, 기계 스스로 그림을 그리고, 글을 쓰고, 음악을 작곡하고, 게임을 하는 딥러닝 생성 모델을 재현해본다.


주요내용으로는 다음과 같다.

  • 변이형 오토인코더가 사진 속 얼굴 표정을 어떻게 바꾸는지 알아보기
  • 스타일을 변경하는 CycleGAN과 음악을 생성하는 MuseGAN을 사용한 GAN 예제
  • 텍스트를 생성하는 순환 생성 모델을 만들고 어텐션을 사용하여 모델 성능 향상시키기
  • 생성 모델이 어떻게 강화학습 환경에서 작업을 완수하려는 에이전트를 돕는지 이해하기
  • 트랜스포머(BERT, GPT-2), ProGAN, StyleGAN 같은 이미지 생성 모델의 구조 살펴보기

전체적인 도서 구성자체가 딥러닝에 대해 어느정도 알고있는 중급자를 위한 도서이다. 따라서 이러한 부분에 있어 책의 진입장벽은 다소 높을 수도 있으나 1장과 2장에 걸쳐 생성 모델과 딥러닝에 대해 배우기 때문에 큰 부담은 없을것이라 본다. 또한 RNN, LSTM을 프로젝터 형태로 배우기 때문에 더욱더 흥미롭게 배울 수 있다.


코드 구성과 설명도 쉽고 친절하다. 그림 그리기 AI 프로젝트의 경우 다운샘플링, 업샘플링등으로 Unet, ResNet등을 구성해 CycleGAN으로 그림을 그리는 과정까지 친절하게 나타내어 있다. 코드에 기초한 설명과 직관적인 구성이 마음에 든다.


원서에서도 이미 많은 호평을 받은 도서인 만큼 번역서 또한 훌륭하게 번역이 되어 출간이 된 것 같다. 최근들어 딥러닝의 기초를 넘어 중급자 수준까지 국내 도서로 요구하고 있어 그만큼 기대에 부응하는 도서라고 본다.


많은 독자들이 이 책을 통해 GAN, 오토인코더등에 익숙해지길 바란다.

 

IMG_4373.png

 

 

그동안 생성 모델은 여러 딥러닝 책의 후반부에 몇장에 걸쳐 설명되긴 했지만, 생성 모델에 대해서만 초점이

맞춰진 책은 거의 없었던 것 같습니다. 

 

생성 모델은 강화학습과 더불어 최근 몇년 동안 사람들의 관심을 끄는 분야입니다. 

 

그래서 이 책이 처음 나왔을 때 관심을 가지고 있었고 원서는 구매를 하고 있었지만, 쉽게 읽기 어려웠습니다.

마침 번역서인 이 책이 출간되는 것을 알고 정독을 시작했습니다. 

생성 모델은 어떻게 보면 어려운 분야였고(무엇인가 없는 것을 새로 만든다는 것 자체가 어려운 것이 아닐까요?) 저도 이번 기회에 개념을 이해하고 싶었습니다. 

 

 

이 책의 들어가는 글에서 보면 저자는 

 

창조의 능력이 인간을 구분하는 조건

 

이라고 말합니다. 

 

이 책의 메인 표지에는 '미술관에 GAN 딥러닝 실전 프로젝트'라는 문장으로 GAN으로 할 수 있는 쓰기, 그리고, 게임하기, 작곡하기 등과

같은 새로운 것을 만들어 내는 모델에 대해 은유적으로 표현하고 있습니다.

 

 

그러나, 이런 창조의 능력은 비단 예술 작품에만 국한되지는 않는 것 같습니다. 

이 책에서 게임하기 파트는 GAN으로 시뮬레이션 환경을 만들어 '월드 모델'에 대해 설명을 하고 있습니다. 

제가 이 책에서 제일 끌렸던 부분입니다.

 

IMG_4371.png

 

이 책은 나이브한 생성 모델 부터 시작을 하고 있습니다. 이 부분에서 '잠재공간', '표현학습' 그리고 '매니폴드' 등 생성 모델에서 사용하는

중요한 개념에 대해서 설명을 하고 있습니다. 그 동안 막연하게만 알고 있었던 개념이었는데 이 책에서는 적절한 비유를 통해 알기 쉽게 설명을

하고 있어 이해하기가 쉬웠습니다.

 

IMG_4382.png

 

 

이 책은 중간 중간에 비유적인 스토리를 곁들이면서 설명을 하고 있기 때문에 단순히 수식이나 개념을 설명하는 것 보다 훨씬 이해하기 쉽습니다.

 

3장에서는 생성 모델 중 가장 기본적인 모델인 VAE에 대해서 설명을 하고 있습니다. 그래프를 통해 잠재공간를 설명함으로써 VAE의 원리에 대해서

설명을 하고 있습니다.

IMG_4378.png

4장부터는 GAN을 본격적으로 설명을 하고 있고 계속 이미지, 음악, 자연어, 강화 학습 등 다른 분야의 모델들과 결합한 프로젝트와 논문들에 대해서

설명을 하고 있습니다.

 

IMG_4367.png

 

 

이 책은 전체적으로 컬러 이미지와 그림, 도표를 적절히 섞어 읽는 내내 깔끔하다는 느낌이 들었습니다.

 

IMG_4366.png

 

 

마지막 장에는 향후 GAN의 미래에 대해서 설명을 하면서 마무리를 하고 있는데, 없는 것을 새로 만들 수 있는 모델인 만큼 그 활용범위는 무한하지 않을까요?  

 



<나는 리뷰어다> 11월 이벤트 당첨으로 작성한 리뷰 입니다.

[한줄평]

GAN으로 4가지 모델(그림,글쓰기,작곡,게임등)을 학습하고 창의적인 생성 모델을 배울수 있습니다.


[목차구성]

- 1장 생성 모델링

기본적인 확률 모델을 사용한 첫 번째 예제를 살펴보고 생성 모델링 작업의 복잡도가 증가할 때 딥러닝이 필요한 이유를 분석해봅니다.


- 2장 딥러닝

복잡한 생성 모델을 만들기 위해 필요한 딥러닝 도구와 기술을 소개합니다. 딥러닝 분야의 이론적 배경보다는 실용적인 가이드를 제공합니다.


- 3장 변이형 오토인코더(VAE)

생성 딥러닝 모델인 변이형 오토인코더를 살펴봅니다. 실제와 같은 얼굴을 생성할 뿐만 아니라 기존 이미지를 변경합니다.


- 4장 생성적 적대 신경망(GAN)

생성적 적대 신경망을 살펴봅니다. 모델을 세부 튜닝하는 방법과 생성 모델링 영역을 지속적으로 확장하는 새로운 기법을 알아봅니다.


- 5장 그리기

GAN 구조를 사용하여 모델이 사진을 특정 스타일의 그림으로 (또는 그 반대로) 변환하는 CycleGAN을 배웁니다. 또한 그림의 스타일을 사진으로 전달하여 마치 동일한 화가가 그린 듯한 효과를 내는 뉴럴 스타일 트랜스퍼 기술도 살펴봅니다.


- 6장 쓰기

순차 데이터가 포함된 문제를 다루는 순환 신경망(RNN) 구조를 소개합니다. 또한 인코더-디코더 구조의 작동 원리를 알아보고 간단한 질문-대답 생성기를 만듭니다.


- 7장 작곡하기

텍스트 생성 문제에 사용한 여러 기술을 확장하고 음악 데이터를 적용한 딥러닝 구조인 MuseGAN을 살펴봅니다.


- 8장 게임하기

생성 모델을 강화학습 같은 머신러닝 도메인에 사용할 수 있는지 알아봅니다. 에이전트가 주어진 환경에서 생성 모델을 훈련하는 방법을 소개합니다.


- 9장 생성 모델링의 미래

생성 모델링 분야를 요약하고 이 책에서 소개한 기술을 정리합니다. 전망을 조망하고 오늘날 가능한 최고의 기술이 창의성을 바라보는 방식을 어떻게 바꾸는지 살펴봅니다.


[주요 내용]

· 변이형 오토인코더가 사진 속 얼굴 표정을 어떻게 바꾸는지 알아보기

· 스타일을 변경하는 CycleGAN과 음악을 생성하는 MuseGAN을 사용한 GAN 예제

· 텍스트를 생성하는 순환 생성 모델을 만들고 어텐션을 사용하여 모델 성능 향상시키기

· 생성 모델이 어떻게 강화학습 환경에서 작업을 완수하려는 에이전트를 돕는지 이해하기

· 트랜스포머(BERT, GPT-2), ProGAN, StyleGAN 같은 이미지 생성 모델의 구조 살펴보기


[서평]

 

이책은 케라스를 사용한 딥러닝 기초부터 AI 최신 알고리즘을 배울수 있습니다. 그리고 GAN의 4가지 예제로 실제 딥러닝이 어떻게 활용이 되는지 배울수 있습니다. 스스로 그림을 그리고, 글을 쓰고, 음악을 작곡하고, 게임을 하는 딥러닝 생성 모델을 재현하는 과정을 배울수 있습니다. 특히 변이형 오토인코더(VAE), 생성적 적대 신경망(GAN), 인코더, 디코더 모델, 월드 모델등을 학습을 배울수 있습니다. 


딥러닝 알고리즘의 하나인 GAN( Generative Adversarial Network )을 소개하고 실전 프로젝트에 도입해볼 수 있는 책이 한빛미디어에서 출간되었습니다. 책 제목은 Generative Deep Learning - 미술관에 GAN 딥러닝 실전 프로젝트 

 

Generative Deep Learning - 미술관에 GAN 딥러닝 실전 프로젝트

 

 

책은 크게 두 개의 파트로 나뉘는데, 1) 생성 딥러닝을 소개합니다 2) 컴퓨터에게 그리기, 글쓰기, 작곡하기, 게임을 가르칩니다 로 구분됩니다. 파트 제목에서 알 수 있듯이 1부는 Generative Deep Learning 뿐만 아니라 딥러닝에 대해서도 한 챕터를 할애해서 다루지만 핵심 주제는 GAN이라 심도 있게 다루지는 않습니다. 기본적인 딥러닝에 대한 개념은 역자의 다른 책을 보시는 것을 추천드립니다.

 

이 책은 케라스와 텐서플로를 사용해서 대부분의 구현을 하고 있으며 핵심 가치는 2부에서 시작됩니다. 머신러닝을 통해 그림을 그리고, 글을 쓰고 작곡까지. 이미 우리 주변에서 접할 수 있었던 AI가 해낸 대단한 결과물을 직접 구현해 볼 수 있는 챕터입니다. 머신러닝을 통해 가능한 것들을 책 한 권에 집약해놨다고 해도 과언이 아닐 텐데 특히 게임을 가르치는 부분은 많은 상상력을 불러옵니다. 이미 여러 게임회사에서 도입해서 사용하고 있는 것으로 알려져 있는데요, 기계에게 게임을 가르쳐서 난이도를 조절하는 등 말이죠. 아무튼 이 책은 GAN을 이해하는데 도움을 주고 미래를 준비할 수 있도록 도와줍니다. 앞으로 또 어떤 것들이 가능해질까요?

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 상품명 :
미술관에 GAN 딥러닝 실전 프로젝트
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
미술관에 GAN 딥러닝 실전 프로젝트
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
미술관에 GAN 딥러닝 실전 프로젝트
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 상품1