책소개
텐서플로 최신 버전 반영! 구글 코랩(Colab)에서 손쉽게 실행 가능한 예제!
이론, 사례, 수식으로 끝내는 실전 GAN과 생성 모델링
가장 혁신적인 생성적 적대 신경망(GAN)을 구축하는 방법을 사례와 함께 안내한다. GAN의 개념과 학술적 성과를 소개하되, 수학적 원리는 꼭 필요한 것만 골라서 설명한다. 머신러닝과 딥러닝을 다뤄본 경험이 있는 독자는 GAN의 기초부터 심화까지 한 번에 살펴본 후, GAN 생성에 꼭 필요한 지식을 갖추고 도구를 다루는 방법도 익히게 될 것이다. 텐서플로 2.x와 케라스로 나만의 GAN을 만들어보자.
주요 내용
_ GAN의 작동 원리와 생성자, 판별자 이해하기
_ 오토인코더와 GAN으로 손글씨 숫자 생성하기
_ CNN과 DCGAN으로 GAN을 구현하고 배치 정규화 이해하기
_ ProGAN으로 고해상도 이미지 생성하기
_ 준지도 학습에서 활용하는 SGAN 이해하기
_ CGAN으로 원하는 손글씨 숫자 이미지 생성하기
_ CycleGAN으로 사과를 오렌지로, 오렌지를 사과로 바꿔보기
_ GAN 훈련의 어려움을 이해하고 실제 이미지와 잡음으로 적대 샘플 생성하기
_ 의료, 패션 분야에서 GAN의 활용 방법과 사례 살펴보기
자세한 내용 : www.hanbit.co.kr/store/books/look.php?p_code=B3137824436
목차
이 책의 구성
이 책은 이론과 실전을 균형 있게 다루며 총 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 기법도 소개한다.
리뷰
이번 달 리뷰 할 책으로 받게 된 GAN in Action 입니다.
개인적으로 in Action 시리즈를 좋아하는데요, 그 이유 중 하나가 자세한 설명이 마음에 들었기 때문입니다.
이번 책도 기존의 in Action 시리즈들과 같이 자세한 설명이 있는지 궁금하네요.
특이하게도, 당연하게도 GAN in Action의 대상 독자는 머신러닝과 신경망을 다뤄본 경험이 있는 사람을 대상으로 한다고 합니다. GAN 자체가 신경망이나 머신러닝을 다루지 않고는 접근하기 어려운 부분이기 때문에 당연하다는 생각도 들었습니다. 여러가지 상세 조건들이 많은데요. 책의 내용을 옮기자면
1. 중급 이상의 파이썬 프로그램을 만들 수 있는 능력
2. 객체지향 프로그래밍에 대한 이해, 객체를 다루는 방법, 속성, 메서드에 대한 이해
3. 훈련/테스트 데이터셋 분리, 과대적합, 가중치, 하이퍼파라미터 등 머신러닝 기초
4. 확률, 밀도 함수, 확률 분포, 미분, 간단한 최적화 등과 같은 기초 통계학과 미적분학
5. 행렬, 고차원 공간, (이상적으로는) 주성분 분석 같은 선형 대수에 대한 기초
6. 피드포워드 신경망, 가중치와 편향, 활성화 함수, 규제, 확률적 경사 하강법 등 딥러닝 기초
7. 케라스를 조금이라도 써본 경험 혹은 따로 학습할 의지
등으로 총 7가지 대상이 적혀 있습니다. 그리고 그 아래 적혀 있네요.
"여러분에게 겁을 주려는 게 아닙니다. 여러분이 이 책에서 최대한 많은 것을 얻기를 바라는 망므에서 나열했습니다."
GAN(Generative Adversarial network)은 동시에 두 개의 모델을 훈련하는 머신러닝의 모델입니다.
Generative이라는 용어는 모델의 '목적' 나타내며, Adversarial은 GAN을 이루는 두 모델인 생성자와 판벼ㅑㄹ자 사이의 게임 같은 경쟁 구도를 나타낸다고 합니다.
GAN의 가장 놀라운 성과는 image-to-image 변환일 것 같습니다.
아는 분의 페이스북에서 GAN을 통해 예전 사진의 해상도를 복원 글을 본 적이 있어서 더욱 신기하게 다가왔습니다.
이 책의 좋은 점은 여러 GAN을 접할 수 있다는 겁니다.
GAN, ProGAN, SGAN, CGAN, CycleCAN 등 챕터가 갈수록 다양한 GAN을 만날 수 있습니다.
그만큼 책의 난이도도 증가하는 것을 확인할 수 있었습니다.
각 각의 장마다 GAN 알고리즘을 이용해서 따라할 수 있는 튜토리얼들이 존재하고, 조금 더 선명해지고 다양해지는 튜토리얼을 통해 GAN에 다가갈 수 있었습니다.
마지막 장에는 CycleGAN에 대한 내용이 나옵니다. 이미지 대 이미지 변환으로 입력과 출력이 서로 다른 결과를 보여주게 되는데요. 개인적으로는 화질이 흐린 사진을 넣으면 화질이 좋아지는 예제가 있었으면 좋지 않았을까 하는 생각도 해봤습니다.
GAN에 대해서 아주 자세한 설명을 볼 수 있었고, 기계학습 과 관련된 내용인 만큼 난이도가 있는 것은 사실입니다. 책을 구입하시기 전에 꼭 확인하시고 구입하시는 것을 추천드립니다.
- 한빛미디어로부터 책을 지원 받아 작성 된 리뷰 입니다.
댓글