한빛출판네트워크

IT/모바일

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

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

한빛미디어

번역서

판매중

미술관에 GAN 딥러닝 실전 프로젝트
좋아요: 1
  • 저자 : 데이비드 포스터
  • 역자 : 박해선
  • 출간일 : 2019-11-15
  • 페이지 : 356쪽
  • ISBN : 9791162241080
  • 물류코드 :10108

합계 : 30,800

  • 창조에 다가서는 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

     

  • [저자] 데이비드 포스터

    Applied Data Science의 공동 창업자이고 고객에게 맞춤 솔루션을 제공하는 데이터 과학 컨설턴트입니다. 영국 케임브리지 대학교 트리니티 칼리지에서 수학 석사 학위를, 워릭 대학교에서 운용과학 분야 석사 학위를 받았습니다.

     

    ‘InnoCentive Predicting Product Purchase’ 대회를 포함한 여러 국제 머신러닝 경연 대회에서 우승했습니다. 미국의 제약회사에서 임상 시험의 시설 선정을 최적화하는 방법을 시각화하여 1등을 수상하기도 했습니다.

     

    온라인 데이터 과학 커뮤니티에 활발하게 참여하고 있고 「How To Build Your Own AlphaZero AI Using Python and Keras」 등 딥러닝을 사용한 강화학습 블로그 포스트를 여럿 작성하였습니다.

    [역자] 박해선

     

     

    ML GDE(Machine Learning Google Developer Expert). 기계공학을 전공했지만 졸업 후엔 줄곧 코드를 읽고 쓰는 일을 했다. 텐서 플로우 블로그(tensorflow.blog)에 글을 쓰고 텐서플로 문서 번역에 기여하면서 소프트웨어와 과학의 경계를 흥미롭게 탐험하고 있다.

     

    『Do it! 딥러닝 입문』(이지스퍼블리싱, 2019)을 집필했다. 

     

    『미술관에 GAN 딥러닝 실전 프로젝트』(한빛미디어, 2019), 『파이썬을 활용한 머신러닝 쿡북』(한빛미디어, 2019), 『머신 러닝 교과서 with 파이썬, 사이킷런, 텐서플로』(길벗, 2019), 『파이썬 라이브러리를 활용한 머신러닝』(한빛미디어, 2019), 『케라스 창시자에게 배우는 딥러닝』(길벗, 2018), 『텐서플로 첫걸음』(한빛미디어, 2016)을 우리말로 옮겼다. 

  • 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 딥러닝 실전 프로젝트(데이비드 포스터 저)"를 읽고 얻은 지식을 정리한 글입니다.



      생성 모델링이란?




      판별 모델링에만 익숙했던 대부분의 머신러닝 엔지니어에게 생성 모델링은 처음 접하는 순간부터 직관적으로 와 닿지는 않는생소한 개념이다. 확률과 통계는 이제 다 배웠다고 안심하고 책을 덮는 순간부터 다른 악마로 나타나 처음부터 다시 공부해야 한다더니만… 생성 모델링이 어렵게 느껴지는 이유 중 하나도 확률적 랜덤요소를 활용하기 때문이다.



      조건부확률 - 베이즈정리 - 나이브베이즈라는 그 흔한 테크트리가 다시 등장한다. 본 도서에서는 아래와 같이 판별모델링과의 비교를 통해 생성 모델링에 대한 이해도를 높혀준다.



      • 판별 모델링 :


        • p(y|x)

        • 샘플 x가 레이블(카테고리) y일 확률을 추정.

        • 예 : 추천시스템, 이메일의 긍정/부정 추정, 사진을 통한 녹내장 발생확률 추정 등




      • 생성 모델링 :


        • p(x|y)

        • 레이블(카테고리) y를 통해 샘플x일 확률을 추정. 즉, 원본 데이터셋에 속할 가능성이 높은 픽셀을 출력하는 모델링.

        • 확률적 랜덤요소를 고려하여 샘플링한 데이터셋을 생성하는 방법.


        • 예 : GAN생성모델링




      생성 모델링이 의미가 있는 이유는 판별 모델링이 해낼 수 없는 AI 특성을 가지고 있기 때문이다. 강화학습의 시행착오, 사람의 인지능력을 모방하는데 핵심적인 도구로 활용된다.



      그렇다면 도대체 어떻게 생성한다는 것인가? 본 도서에서는 아래 그림과 같이 간단한 생성 모델링 프레임워크 예제를 통해 P model에서 포인트 A, B, C를 생성하는 방법과 성공여부를 측정하는 방식을 알려준다. 더불어 핵심 개념을 파악하기 용이하게 끔 표본공간, 확률밀도함수, 모수모델, 가능도, 최대가능도추정 등 핵심 확률 개념을 다시금 짚어준다.생성모델링프레임워크


      이해를 돕는 사례들




      이 책이 가지는 흥미로운 부분은 각 장별로 이해를 돕기위해 일상생활과 유사한 사례를 예로 든다는 점이다. 예를 들면 위에서 설명한 생성 모델링을 이해시키기 위해 아래 그림과 같은 로들행성과 픽셀행성에서의 새로운 패션 스타일을 창조하기 위한 방법을 마치 소설과 같이 설명해준다.



      소설은 수학적 지식이 전무한 분들이나 문과출신 분들도 이해하는데 무리가 없기에 이해되지 않는 수식이나 용어들과 싸우는 대신 개념과 활용 용도를 파악하는데 있어 상당히 효과적인 방법이라고 생각한다. GAN을 접하는데 있어 이렇게 쉬운 방법으로 접근하는 책은 처음인 것 같다.로들행성픽셀행성



      먼저 로들행성에서 위 그림과 같은 50개의 패션 샘플을 바탕으로 고수준 특성(머리모양, 색깔, 안경여부, 옷 등)만을 바탕으로 가법 평활화 등을 활용하여 새로운 패션을 생성하는 방법을 예로 든다. 반면 픽셀행성 예제에서는 고수준 특성을 포함하여 저수준 특성(픽셀의 가로 x 세로 갯수, RGB)까지 고려하여 표현학습과 비선형 매니폴드의 개념을 학습한다.


      로들행성이 일반적인 데이터사이언스의 관점에서 접근한다면, 픽셀행성은 보다 심화된 딥러닝의 시각에서 접근하는데 두 예제만큼 딥러닝에서 GAN으로 매끄럽게 설명을 이어나가는 예제는 찾기 힘든것 같다. 상세히 정리하고 싶지만 리뷰 취지에는 벗어나기에 이 즈음에서 마무리하며 더 궁금하신 분들은 책을 참고하시기 바란다.


      딥러닝 숲에서 VAE를 거쳐 GAN까지




      딥러닝을 학습하다보면 자칫 활성화함수, 배치 정규화, 드롭아웃, 경사하강법, 오차역전파법 등 딥러닝을 이루는 세부 요소와 원리에 깊이 빠져들어 딥러닝의 숲을 이해하지 못하고 주화입마에 빠지는 경우가 종종 발생한다. 나아가 월드모델과 같은 최신 논문 혹은 기술이 등장하면 현재 학습하고 있는 딥러닝 좌표를 잃어버리고 헤매이게 된다.


      무수히 많은 수식과 기본개념, 학습속도로 도저히 쫓아갈 수 없는 쏟아지는 최신 논문과 연구결과 속에서 본 도서는 현재 학습하고 있는 전체를 아우를 수 있는 큰 그림으로 학습중인 내용이 어느 위치에 해당하는지 명확한 좌표를 제시해준다. 2 ~ 4장에서 소개되는 지식들은 GAN을 구현하기 위해 반드시 알아야 할 필수 개념들이다.



      먼저 GAN에서 활용되는 딥러닝의 핵심 기술들과 개념들을 자세히 알아본다. 아래 그림은 간단한 예제실습을 통해 알아본 CNN에 관한 설명이다.CNN



      더불어 딥러닝의 필수 개념중 하나인 오토인코더(AE)를 비롯 그 한계를 뛰어넘기위해 사용된 변이형 오토인코더(VAE)에 대해 학습한다. 아래 그림은 VAE에 대한 소개 중 일부이다.VAE



      VAE까지 학습하고나면 생성모델링에 대해 제법 가시적인 개념이 형성된다. GAN의 핵심개념부터 비교적 최신 연구결과인 WGAN-GP까지 정리하면 비로소 GAN의 기술들에 대한 큰 그림이 보이기 시작한다.GANWGAN-GP


      이렇듯 책의 구성이 전반적으로 Top-Down의 구조를 체계적으로 그려준다. 현존하는 최신기술들을 한눈에 정리해줌으로써 앞으로의 방향을 잃지 않게 해준다. 방향을 잃지않게 큰 그림과 개념을 지속적으로 잡아준다는 점. 바로 이 점이 본 도서의 뛰어난 매력중 하나이다.


      이 책의 백미 : 그리기, 글쓰기, 작곡하기, 게임하기




      이로써 딥러닝부터 GAN에 이르까지 핵심개념과 기초를 탄탄히 학습하였다. 이제 이 책의 백미인 주옥같은 감성넘치는 예제들을 실습하며 GAN의 실체를 가시적으로 살펴볼 단계이다.



      • 그리기


        • 역시나 초반부는 이해를 돕기위한 사례 소설이 또 등장한다. 사과를 파는 그래니 스미스와 오렌지를 파는 플로리다의 경쟁을 통해 CycleGAN의 핵심원리를 설명한다. CycleGAN을 통해 마치 고흐와 같은 아티스트가 시진의 풍경을 보고 그린듯한 결과를 생성할 수 있다.


        • 더불어 뉴럴 스타일 트랜스퍼 기법을 통해 특정이미지의 스타일을 원본 이미지로 옮기는 방법을 구현한다. CycleGAN이 특정 화가의 기풍을 학습한 결과라면, 뉴럴 스타일 트랜스퍼의 경우 특정 작품을 학습한다고 비유해야 할까?




      • 쓰기

        • 한 교도관이 죄수들을 이용하여 자신의 단편소설을 쓰게 하는 흥미로운 예제로 출발한다.


        • LSTM, GRU 등의 순환층을 활용하여 특정 글의 스타일을 흉내낸 텍스트 시퀀스를 생성하는 방법에 대해 배운다.




      • 작곡하기

        • 바흐의 첼로모음곡을 활용하여 옥타브, 키와 같은 개념을 학습한다.


        • 어텐션 기법을 활용하여 적층 LSTM, MuseGAN의 기술을 실습한다.




      • 게임하기


        • 오픈AI Gym 라이브러리를 활용하여 자동차 경주를 학습한다.


        • 아래 그림과 같은 월드모델을 활용하는데 VAE 생성모델에 강화학습을 접목한 방식이다. 개인적으로는 이 실습이 가장 흥미로웠고 GAN과 Reinforcement Learning을 동시에 학습할 수 있어서 가장 배운것이 많은 챕터였다. 생성모델을 의사환경으로 사용하여 전략 정책을 반복하는 기법인데 예전에 알파고와 유사한 것을 만들다가 어려운 난이도에 봉착했던 정책망에 대한 해결책을 얻을 수 있어서 뿌듯했다.월드모델




      이제 겨우 RNN, CNN 좀 알게 되었는데 어텐션은 또 뭐야?




      오래 전도 아닌 고작 2019년 올해의 일이다. NLP, Computing Vision을 학습하며 이제 좀 CNN, LSTM, RNN 기법도 이해가 가고 딥러닝이 실용적인 측면에서 어떻게 활용되는지 알만해질 때 즈음 BERT가 등장했다. 아니 정확히는 어텐션 기반의 기법들이 등장하기 시작했다. 실제로는 더 이전에 등장했겠지만 적어도 필자의 레이더망에는 그 즈음에 포착되었다.


      문제는 기껏 이전 기술들을 이제는 좀 알것 같아 실무에 적용 좀 해보려는데 BERT를 접하니 이전 기술들을 쓸 일이 없어졌다는 것이다. 아예 모르는것보다는 낫고 개념적으로도 도움이 되는것도 사실이지만 엔지니어링 측면에서는 좀 황당할 정도로 기존 레거시들을 활용할 일이 별로 없었다.


      물론 다시 배우면 된다. 그런데 이젠 수없이 쏟아지는 논문과 연구결과 속에 도대체 지금 어떤 기술을 눈여겨봐야 하는건지 어떤 기술을 실무에 적용해야 하는건지… 미로속에 빠진 느낌이었다. 살면서 요즘처럼 열심히 공부를 한 적도 없는것 같은데 겨우 최신 기술의 산더미 속에 단어조차 생소한 기법이 이렇게 많다니..


      기술의 부분 부분들은 요즘 잘 활성화된 페이스북 등의 커뮤니티, 오픈채팅방 또는 외국 커뮤니티나 Quora 등의 활동을 통해 물어보면 대부분 친절하게 답을 해준다. 그런데 거시적인 숲과 현재 내가 학습하는 기술의 위치를 알고 싶다면? 그건 정말 어렵다. 다들 필자 못지 않게 열심히 공부중이시라 시간들도 부족하시고 무엇보다 필자의 학습수준을 파악하여 필자의 현재위치를 알려줄만큼 한가한 분은 없다. 학습자의 입장에서 무례한 질문이라는 생각도 든다.



      본 도서에서 개인적으로 가장 마음에 들었던 부분이 후반부 생성 모델링의 역사를 일목요연하게 정리해준 부분이다. 다뤄본적이 없던 GPT-2, MuseNet 등이 어텐션 기반의 모듈이라는 것도 새롭게 알 수 있었다. BERT 하나만 들이파도 시간과 정력이 부족한 나날이기에 다른것에 집중하기는 쉽지 않음을 인정하지만 적어도 근래에 핫한 최신기술이 어떤것이 등장하고 있고 그게 대충 뭔지는 알아야 내 기술의 현위치를 알 수 있고 이런 노력이 가치가 있는것인지 판단할 수 있을 것이다. 이런 측면에서도 이 책은 큰 가치를 발휘한다.GAN계보


      정리하며 본 도서와 관련된 정보를 아래 링크로 남긴다.


      누가 읽어야 하는가?





      • GAN 및 강화학습(Reinforcement Learning)에 관심이 많은 분




      • AI관련 최신 논문, 연구, 기술을 숲의안목으로 체계적으로 정리하고 싶은 분




      • 그 외 AI, 딥러닝 등에 관심이 많은 연구자, 프로그래머 등




      책의 구성 및 요약




      이 책은 크게 세부분으로 구성되며, 각 파트에서 다루는 내용을 아래와 같이 요약해 보았다.



      • 1. 생성 모델링, 딥러닝, VAE, GAN (Part1)

        • 생성 모델링과 확률의 개념, 복잡도를 해결하기 위한 딥러닝의 활용

        • 생성모델과 관련된 개념에 특화된 딥러닝의 전반적인 지식 재정립

        • 오토인코더의 한계점 분석, 변이형 오토인코더를 통한 무작위성 주입 및 잠재공간 분포방식 제한 기법 등

        • 애니멀 GAN 예제(생성자가 판별자를 속이기 위한 순환 방법)부터 WGAN-GP까지 GAN 기법 총정리




      • 2. GAN을 활용한 실습예제(Part2)

        • 그리기, 쓰기, 작곡하기, 게임하기 실습

        • GAN외에도 강화학습(Reinforcement Learning), MuseGAN, 적층LSTM, RNN, CNN 등 딥러닝의 핵심기법을 거의 모두 배울 수 있다.




      • 3. 생성모델링의 미래(9~10장)

        • 2019년 최신기술까지 생성 모델링의 발전과 관련된 핵심 기술, 연구를 한눈에 살펴본다.

        • 결론(10장)에서는 GAN을 넘어선 AI에 대한 저자의 통찰력이 담긴 고민도 엿볼 수 있다.




      요약하며…




      2019년 한해가 어느덧 저물어간다. 2019년 한해동안 GAN, Reinforcement Learning으로 대표되는 AI기술들과 연구 결과는 끊임없이 쏟아졌고 축적되는 지식의 Volume은 점점 가속화되고 있다. BERT와 같은 기술 하나에 집중하기도 어려운데 정신을 차리고 주위를 둘러보면 MuseNet이니 GPT-2이니 주옥같은 기술들이 이미 등장하여 상용화 되어간다.


      넘쳐나는 기술의 축제이자 축복이라는 향연을 즐기며 행복한 반면 대부분 필자와 같은 평범한 사람들에게는 조급함이 느껴질 수도 있다. 그만큼 학습해야 할 과제들은 많아지고 자칫 항해의 좌표를 잃고 방황하기도 쉬워진다. 불과 몇달 전부터 열심히 파고들던 기술이 현 시점에는 큰 쓸모가 없어지는 절망감에 빠질수도 있다.



      논문을 처음쓸 때 보통 연구주제의 관련 지식들을 집대성한다. 지구상에 등장한 모든 관련 기술들을 집대성 하기 전 일종의 목차와 같은 기능을 담당하는 소중한 자료가 Review 논문인데, 이 책을 한마디로 표현하자면 딥러닝 기술의 Review 논문이라 말하고 싶다. 쏟아져나오는 최신기술들을 숲의 안목으로 일목요연하게 정리하며, 자칫 원론과 개념에 치중하여 좌표를 잃지 않도록 감성충만한 주옥같은 예제들을 통해 빠른 시간내에 딥러닝의 현 주소를 제시해준다. 딥러닝과 최신 기술들의 원론을 가시적으로 이끌어내는 점이 이 책의 별미이다.



      때문에 딥러닝 관련 연구자, 엔지니어는 물론 사업가, 기획자, 관련 사업의 대표자들이 빠른시간 내에 딥러닝의 모든 기술을 아우르고 싶다면 이 책은 필수도서이다. 판별 모델링의 거의 모든 역사가 담긴 패턴인식과 머신러닝(비숍 저)나 NIPS 학회에서 GAN을 처음 선보인 이안 굿펠로 님의 심층학습과 같은 두말할 나위 없는 최고의 기본서들도 중요하지만, 쏟아지는 기술의 폭풍속에 현 주소를 놓치지 않을 수 있는 GPS와 같은 책도 제너럴리스트를 위해 반드시 필요한 책이다.



      예쁜 색상과 재질로 디자인되어 들고만 다녀도 감성 충만이다. 디자인 못지않은 감수성 있는 예제들을 구현해 보고 저변에 깊이 축적된 딥러닝 최신기술들의 향연을 즐기다보면 어느덧 인생의 목적이 어렴풋이 비춰질 정도로 뿌듯해지는 지금의 시간들에 감사하게 된다. AI와 관련된 분이라면 커피한잔 즐기시며 이 책이 전해주는 행복을 느껴보시길 바란다.


    • 미술관에 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을 이해하는데 도움을 주고 미래를 준비할 수 있도록 도와줍니다. 앞으로 또 어떤 것들이 가능해질까요?

  • 내용이 없습니다.
  • 내용이 없습니다.
닫기

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