티스토리 뷰

Hobby/Book

[Book] GANs in Action

생각많은 소심남 2020. 10. 24. 23:55

(해당 포스트에서 소개하고 있는 "GAN 인 액션" 책은 한빛미디어로부터 제공받았음을 알려드립니다.)

그림 1. GAN 인 액션

1년전 쯤에 동일 출판사에서 번역된 "미술관에 GAN 딥러닝 실전 프로젝트" 에 대한 리뷰를 한적이 있다. 사실 원서로 따지면, 그때의 책(Generative Deep Learning)이나 이번에 리뷰할 책(GANs in Action)이나 거의 비슷한 시점에 나왔는데, 후자의 책은 이번에 번역되어 오늘 이 포스트를 통해서 리뷰하게 되었다. 그래서 아마 리뷰 내용도 이전에 나왔던 책과 어떤 차이가 있는지에 초점을 맞추게 될거 같다,

 앞에서 설명한 것처럼 GAN 인 액션은 여타 인공지능 책 중에서도 보통 적대적 생성 네트워크(Generative Adversarial Network, GAN)이라는 딥러닝 모델에 포커스되어 내용을 풀어나가고 있다. 재미있는 것은 보통 입문책이라면 서두에 GAN을 이해하기 위한 기본 이론, 예를 들면 머신러닝/딥러닝이 무엇이고, 이를 구현하기 위한 Tensorflow나 Keras는 어떻게 쓰는지에 대해서 설명되어 있는 것이 대부분이었는데, 이 책은 딱 첫장을 펴면 "GAN이란 무엇인가?" 그리고 "GAN의 동작원리는 어떻게 되는가"에 대한 설명이 되어있다. 쉽게 말해서 딥러닝을 처음 접하는 사람이 아닌 딥러닝을 어느정도 다뤄보고 GAN에 대해서도 어느정도 들어본 사람을 위한 책이라는 느낌이 들었다. 그만큼 내용적인 부분에서 실제 코드를 풀어쓰고 이를 설명하는 방향이 아니라, GAN이 발전하면서 이론적으로 취한 접근 방식에 대한 설명이 조금더 자세하게 다뤄졌다.

 2014년, Ian Goodfellow가 NIPS에서 발표한 GAN도 실제 예시로 적용한 케이스가 이미지처리쪽이었는데, 이 책도 다뤄지고 있는 예제들이 주로 이미지를 GAN을 통해서 변형하는 것을 다루고 있다. 물론 기본적인 GAN계열이긴 하지만 이미지쪽인 DCGAN(Deep Convolutional GAN)이나 SGAN (Semi-Supervised GAN), CGAN (Conditional GAN), 그리고 마지막으로 널리 알려져있는 CycleGAN에 대한 설명들이 담겨져있다. 앞에서 언급했다시피 이전 책과 비교하자면, 이전 책은 다양한 분야(음악, 작문, 강화학습)에 적용한 GAN과 해당 모델들의 적용방법을 설명한 반면에, 이 책은 딱 이미지에 적용할 수 있는 모델과 그 예시를 자세하게 기술했다. 

 이 책이 좋았던 부분은 첫장부터 읽으면서 글의 흐름 방향이 실제 GAN 기술의 발전 방향과 비슷하게 전재된다는 것이다. 예를 들어서 초기의 GAN이 언급되고 나서 GAN이 개선할 수 있는 여지가 있었는데, 그걸 해결하는 방법으로 GAN 내부에 쓰인 Loss를 이것저것 바꿔보고, 모델의 구조에 대해서도 설명되고.. 책의 내용이 좀 와닿는다는 느낌이 들었던 부분이 좋았다. 그리고 원서에서 Tensorflow 1.x대로 나와있던 예제들도 2.x대로 업데이트되어 소개되어 있는 부분도 실사용을 목적에 둔 사람이라면 응용하기 좋지 않을까 하는 생각도 해본다. 

좀 아쉬운 점이라면, 이 책도 역시 이전책과 마찬가지로 비슷한 시점에 출간되었기에 책에는 나름 최신 경향이라고 언급하고 몇가지 모델들을 소개했지만, 아마 요즘에 막 소개되고 있는 GAN 모델에 대해서는 언급되어 있지 않다는 점이다. (물론 GAN 영역이 매우 빠르게 발전하고 있는 분야이기에 실제 공부를 하려면, arXiv나 유명 학회에 게재된 논문을 보는게 경향을 따라가기엔 좋을 것 같긴하다.)

그림 2. GAN 관련 책들

 아무튼 몇 안되는 국내 출간된 GAN 관련 전문 서적으로, 두 책의 방향이 조금 다르긴 하지만, 큰 맥락에서 GAN의 기본 개념이나 동작원리를 이해하기에 충분한 책이라고 생각한다. 특히 좀더 상세한 이론적 내용이나, 이미지처리에 딱 초점이 맞춰진 예제를 통해서 설명된 부분은 해당 부분에 궁금증을 느낄 사람들에게는 어느 정도 가이드가 되지 않을까 생각한다.

PS. 역자 github에 상세하게 설명된 번역된 Jupyter Notebook들이 있으니, 같이 보면 도움이 많이 될 것 같다.

댓글