spaci***
2020-10-27

생성적 적대 신경망(GAN)을 구축하는 방법을 사례와 함께 안내하는 책. GAN의 개념과 학술적 성과를 소개하되, 수학적 원리는 꼭 필요한 것만 골라서 설명한다.
이 책은 딥러닝의 기초지식을 쌓고 생성적 적대 신경망 (Generative Adversarial network), GAN을 기초부터 배우려는 모든 사람을 대상으로 한다.
책은 텐서플로 2.x와 케라스를 통해 실습하게 되어있다. 텐서플로우 코리아 그룹에서 유명한 박해선님이 번역을 하셨고 번역도 매끄럽게 잘 되어 있었다.
딥러닝에서도 기초적인 지식을 알고 접해야 이해할 수 있는 주제인지라 내 경우에는 직관적으로 이해를 하진 못 하였다. 아직 딥러닝에 대해 알고 실습해야 할 것들이 많다고 느껴진다.
대상 독자는 다음과 같다
1. 중급 이상의 파이썬 프로그램을 만들 수 있는 능력
2. 객체지향 프로그래밍에 대한 이해
3. 머신러닝 이론에 대한 기초 이해
4. 기초 통계학과 미적분학을 이해
5. 선형 대수에 대한 기초 이해
6. 딥러닝의 기초를 이해
7. 파이썬 기반의 머신러닝 라이브러리인 케라스에 어느 정도 친숙하거나 따로 학습할 의지가 있는 분
옮긴이인 박해선 님 께서는 [미술관에 GAN 딥러닝 실전 프로젝트](한빛미디어, 2019)를 별도로 추천하시고 있다. 나도 GAN에 대해 좀 더 잘 이해하게 되면 한 번 사서 봐야겠다는 생각이 들었다.
위에 나와있듯이 GAN 이란 동시에 두개의 모델을 학습하는 머신러닝의 한 종류이다. 하나는 생성자이고 하나는 판별자이다. 추가적인 내용은 위에 잘 나와있다.
위의 사진에서 GAN의 생성자와 판별자를 간단하게 도식화 해 놓았다.
생성자와 판별자가 내쉬균형을 이루듯 서로의 합의지점에 다다르면 위와 같은 현실적으로 보이는 사진들이 생성된다. 내 생각에 이 지점이 판별자가 더 이상 참인지 거짓인지 판단하지 못하는 특이점으로 생각된다.
내쉬균형을 이루는 것은 수학적으로 안장점을 찾는 것과 비슷한 것으로 보인다.
통계학에서 정규화 공식이 있는데 위의 사진의 4-2를 보면 그대로 사용되고 있음을 알 수 있다. 단, 0으로 나누는 것을 피해서 안정적으로 계산하기 위해 입실론(epsilon) 항을 추가하고 0.001과 같이 작은 양의 상수 값으로 설정하고 있다.
이상으로 GAN 인 액션 책의 서평을 마칠까 한다. 현재 딥러닝에 대한 배경지식이 있는 분들이 GAN에 입문하려 한다면 이 책이 좋은 입문서가 될 것으로 생각된다.