티스토리 뷰
(해당 포스트는 "Generative Deep Learning"에 대한 서평으로, 해당 책은 한빛미디어로부터 제공받았음을 알려드립니다.)
혹시 인공지능이 적용된 예시중에 이런 그림을 본적 있는지 모르겠다.
위에 소개된 기술은 CycleGAN을 활용한 Style Transfer라는 기술로, 기존의 유명한 명화들을 학습한 모델을 바탕으로 실제 사진을 넣었을 때 해당 화풍을 적용한 것처럼 변형시켜준다. 사실 인공지능이 미래의 데이터를 예측하고, 이미지를 분류하는 예제만 봐왔던 사람들한테는 이렇게 직관적으로 결과가 나타나고, 시각적으로도 딱 보여주기 좋았기에 사람들에 전달하는 의미가 매우 컸었다. 이밖에도 MuseGAN이나 World Model과 같이, 이미지 생성에만 한정짓지 않고, 새로운 음악도 만들어내기도 하며, 강화학습 환경에 적용시켜 성능을 개선시킨 사례도 나오기 시작했다.
이런 기술들이 탄생하게 된 계기가 바로 위에도 몇번 나온 것처럼 GAN (Generative Adversarial Network) 이라고 불리는 적대적 생성 네트워크가 연구되면서부터이다. 이 기술은 2014년 Ian Goodfellow가 NIPS 2014에서 하나의 poster 형식으로 발표한 내용으로써, 최근에도 많이 연구되고 있는 주제 중 하나이다. 몇년전까지만 해도 계속 연구되는 분야이었기에 시중에 나온 서적보다는 conference에서 발표된 논문들을 바탕으로 공부했었는데, 최근에는 이와 관련된 책들도 나오기 시작했고, GAN 관련 서적들도 많이 출판되기 시작했다.
이번에 소개할 책도 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
'Hobby > Book' 카테고리의 다른 글
[Book] Think Julia : 줄리아를 생각하다 (0) | 2020.05.29 |
---|---|
[Book] Head First Go (2) | 2020.04.30 |
[Book][DS] 이것이 데이터 분석이다 with 파이썬 (1) | 2020.03.27 |
[Book][ML] 파이썬을 활용한 머신러닝 쿡북 (0) | 2019.11.16 |
[Book] 파이썬 알고리즘을 빠르게 구현해 볼 수 있는 방법, "파이썬 자료구조와 알고리즘" (0) | 2019.10.12 |
[Book] 게임으로 즐겁게 배우는 "게임으로 익히는 코딩 알고리즘" (0) | 2019.09.15 |
[Book] Unity를 배우는 전형적 방법, 레트로의 유니티 게임 프로그래밍 에센스 (0) | 2019.04.12 |
- Total
- Today
- Yesterday
- Pipeline
- Windows Phone 7
- End-To-End
- processing
- Kinect SDK
- Distribution
- 딥러닝
- DepthStream
- Gan
- PowerPoint
- ColorStream
- Variance
- Offline RL
- Policy Gradient
- 파이썬
- SketchFlow
- arduino
- ai
- Off-policy
- 강화학습
- bias
- Kinect
- reward
- TensorFlow Lite
- RL
- Expression Blend 4
- windows 8
- 한빛미디어
- dynamic programming
- Kinect for windows
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |