텐서플로 2.x와 케라스로 구축하는 생성적 적대 신경망
한빛미디어
번역서
판매중
텐서플로 최신 버전 반영! 구글 코랩(Colab)에서 손쉽게 실행 가능한 예제!
이론, 사례, 수식으로 끝내는 실전 GAN과 생성 모델링
가장 혁신적인 생성적 적대 신경망(GAN)을 구축하는 방법을 사례와 함께 안내한다. GAN의 개념과 학술적 성과를 소개하되, 수학적 원리는 꼭 필요한 것만 골라서 설명한다. 머신러닝과 딥러닝을 다뤄본 경험이 있는 독자는 GAN의 기초부터 심화까지 한 번에 살펴본 후, GAN 생성에 꼭 필요한 지식을 갖추고 도구를 다루는 방법도 익히게 될 것이다. 텐서플로 2.x와 케라스로 나만의 GAN을 만들어보자.
주요 내용
_ GAN의 작동 원리와 생성자, 판별자 이해하기
_ 오토인코더와 GAN으로 손글씨 숫자 생성하기
_ CNN과 DCGAN으로 GAN을 구현하고 배치 정규화 이해하기
_ ProGAN으로 고해상도 이미지 생성하기
_ 준지도 학습에서 활용하는 SGAN 이해하기
_ CGAN으로 원하는 손글씨 숫자 이미지 생성하기
_ CycleGAN으로 사과를 오렌지로, 오렌지를 사과로 바꿔보기
_ GAN 훈련의 어려움을 이해하고 실제 이미지와 잡음으로 적대 샘플 생성하기
_ 의료, 패션 분야에서 GAN의 활용 방법과 사례 살펴보기
대상 독자
이 책은 머신러닝과 신경망을 다뤄본 경험이 있는 사람을 대상으로 합니다. 책의 각 장에서 필요한 것을 설명하기 위해 최선을 다했지만, 최소한 아래 나열한 것들의 70% 정도는 확실히 알고 있어야 합니다.
1. 중급 이상의 파이썬 프로그램을 만들 수 있는 능력
2. 객체지향 프로그래밍에 대한 이해, 객체를 다루는 방법, 속성, 메서드에 대한 이해
3. 훈련/테스트 데이터셋 분리, 과대적합, 가중치, 하이퍼파라미터 등 머신러닝 기초
4. 확률, 밀도 함수, 확률 분포, 미분, 간단한 최적화 등과 같은 기초 통계학과 미적분학
5. 행렬, 고차원 공간, (이상적으로는) 주성분 분석 같은 선형 대수에 대한 기초
6. 피드포워드 신경망, 가중치와 편향, 활성화 함수, 규제, 확률적 경사 하강법 등 딥러닝 기초
7. 케라스를 조금이라도 써본 경험 혹은 따로 학습할 의지
이 책의 구성
이 책은 이론과 실전을 균형 있게 다루며 총 3부로 구성된다.
1부 GAN과 생성 모델링
생성 학습과 GAN의 기초 개념을 살펴보고 가장 기본적인 GAN 모델을 구현한다.
_1장 GAN 시작하기
GAN을 소개하고 작동 원리를 고수준에서 설명한다. 생성자와 판별자 네트워크가 경쟁하며 훈련하는 방식을 알아본다.
_2장 오토인코더와 생성 학습
GAN의 선구자라 할 수 있는 오토인코더를 먼저 알아본다. 변이형 오토인코더(VAE)를 이용해 손글씨 숫자를 생성해본다.
_3장 첫 번째 GAN 구현하기
GAN 및 적대 학습과 관련된 이론을 자세히 다룬다. GAN과 전통적인 신경망의 핵심적인 차이를 살펴보며, 신경망들의 비용 함수와 훈련 과정의 차이점을 알아본다. 케라스로 GAN을 구현하고 손글씨 숫자를 생성해본다.
_4장 DCGAN
합성곱 신경망(CNN)과 배치 정규화를 소개한다. 그다음 훈련 과정을 안정화하기 위해 배치 정규화를 활용한 고급 GAN 구조인 DCGAN을 구현한다.
2부 최신 GAN 모델
1부에서 익힌 기초를 바탕으로 GAN 이론을 더 깊게 다루고, 고급 GAN 구조를 구현한다.
__5장 GAN 훈련의 어려움과 노하우
GAN을 훈련하는 과정에서 마주치는 이론적, 실제적 어려움과 이를 극복하는 방법을 알아본다. 학술 논문과 발표 자료를 바탕으로 모범 사례를 알아보고 GAN의 성과를 측정하는 방법도 다룬다.
__6장 ProGAN
생성자와 판별자를 훈련하는 최신 방법인 ProGAN을 살펴본다. ProGAN은 훈련 과정에서 새로운 층을 더해서 우수한 품질과 해상도의 이미지를 생성해본다.
__7장 SGAN
준지도 학습을 통해 적은 양의 레이블된 훈련 데이터만으로도 분류 정확도를 개선하는 방법을 배운다. SGAN을 구현하고, 레이블을 활용하여 판별자를 강력한 다중 클래스 분류기로 만드는 방법을 살펴본다.
__8장 CGAN
CGAN으로 생성자와 판별자를 훈련하는 과정에서 레이블이나 다른 조건 정보를 활용하여 정확히 어떤 샘플을 합성할 것인지 특정할 수 없는 생성 모델링의 결점을 극복한다. CGAN을 구현해 원하는 데이터를 직접 생성하는 과정을 살펴본다.
__9장 CycleGAN
이미지를 다른 이미지로 바꾸는 데 사용할 수 있는 CycleGAN의 혁신을 살펴본다. 말 사진을 얼룩말 사진으로 바꾸거나 사과를 오렌지로 바꾸고 오렌지를 사과로 바꾸는 것 등이다.
3부 앞으로 배울 것들
GAN 및 적대 학습의 활용 방법과 사례를 살펴본다.
__10장 적대 샘플
머신러닝 모델을 의도적으로 속여 실수하게 만드는 기술인 적대 샘플을 살펴본다. 이론과 실용 예제로 적대 샘플의 중요성을 설명하고 GAN과 연관성을 살펴본다.
__11장 실용적인 GAN 애플리케이션
앞서 다룬 기술이 의료와 패션 분야에서 어떻게 적용되는지 모범 사례를 살펴본다. 의료 분야에서는 GAN을 적은 양의 데이터를 늘리는 데 활용하는 방법을, 패션 분야에서는 개인화 콘텐츠에 활용하는 방법을 살펴본다.
__12장 향후 전망
책의 주요 내용을 요약하고 GAN의 윤리적 측면을 논하며 마무리한다. 이 분야를 지속해서 탐구하고 싶은 이들을 위해 떠오르는 GAN 기법도 소개한다.
추천사
“학술적인 정보와 활용 사례를 함께 소개하는 매우 유용한 책.”
__ 데이나 로빈슨, HDF 그룹
“빠르고 광대하게 진화하는 GAN 세계를 이해하는 체계적인 방법을 소개한다.”
__ 그리고리 V. 사푸노프, 인텐토