Deep Learning

[GAN 첫걸음] 진짜 쉽게 설명해주는 GAN

makeitworth 2021. 7. 28. 18:12

 

도서링크

 

GAN 첫걸음 - 교보문고

파이토치 신경망 입문부터 연예인 얼굴 생성까지 | 멋진 아이디어는 누구나 쉽게 배울 수 있어야 한다 세계에서 가장 안락한 GAN 입문서 2014년 등장한 GAN은 빠르게 발전하는 머신러닝 분야에서

www.kyobobook.co.kr

예제코드 깃허브

저자 블로그

 

 

[파이토치 첫걸음]에 이어 보는 책.

현재 수강중인 KDTx programmers AI dev course에서 final team project를 하게 되는데, 우리팀의 주제가 GAN 을 활용하는건데, 지금까지 아무 지식도, 경험도 없어서 미리 감을 좀 익히기 위해 구매했다.

'첫걸음' 시리즈라 '파이토치 첫걸음'처럼 짧고, 쉽게 기본 개념에 대한 설명과 간단한 예제를 통해 개념의 구현을 맛보는 형식으로 씌여있다.

 

전체 구성에서 [PART 1]은 그냥 넘어가도 될 부분이다.

신경망과 파이토치 사용법에 대한 설명인데, GAN을 알고자 하는 사람은 대부분 그건 알고 있을 사람들이기 때문에.

 

[PART 2]에서 본격적으로 GAN 공부가 시작되는데, 신경망에 대한 기초를 공부하고 이해했다고 하더라도, generator 와 discriminator로 구성된 GAN의 기본 구조는 생소하고 이해하기 어려울 수 있는데, 정말 정말 간단한 구조부터 쉽게 설명을 해주고 있는 것이 장점이다.

기본 예제가 

[1,0,1,0] 패턴 

MNIST 

얼굴이미지

이렇게 세가지인데, 특히 len 4개 짜리 리스트라는 정말 정말 간단한 구조로 연습을 하는 것이 처음 이해에 큰 도움이 되었다. 

 

목차

 

[PART 1 파이토치와 신경망 기초]


CHAPTER 1 파이토치 기본

구글 코랩

파이토치 텐서

파이토치를 이용한 자동 기울기 계산

계산 그래프

핵심 정리


CHAPTER 2 파이토치로 만드는 첫 번째 신경망

MNIST 이미지 데이터셋

MNIST 데이터 얻기

데이터 살펴보기

간단한 신경망

훈련 시각화하기

MNIST 데이터셋 클래스

분류기 훈련시키기

신경망에 쿼리하기

분류기의 성능


CHAPTER 3 성능 향상 기법

손실함수

활성화 함수

옵티마이저

정규화

복합적 성능 향상 기법

핵심 정리


CHAPTER 4 CUDA 기초

넘파이 대 파이썬

엔비디아 CUDA

CUDA를 파이썬에서 사용하기

핵심 정리



[PART 2 튼튼한 GAN 만들기]


CHAPTER 5 GAN 개념

이미지 생성하기

적대적 훈련

GAN 훈련

훈련하기 어려운 GAN

핵심 정리


CHAPTER 6 단순한 1010 패턴

실제 데이터 소스

판별기 만들기

판별기 테스트하기

생성기 만들기

생성기 결과 확인하기

GAN 훈련하기

핵심 정리


CHAPTER 7 손으로 쓴 숫자 훈련

데이터셋 클래스

MNIST 판별기

판별기 테스트하기

MNIST 생성기

생성기 결과 확인하기

GAN 훈련하기

모드 붕괴

GAN 훈련 성능 향상하기

시드로 실험하기

핵심 정리


CHAPTER 8 얼굴 이미지

컬러 이미지

CelebA 데이터셋

계층적 데이터 형식

데이터 가져오기

데이터 살펴보기

데이터셋 클래스

판별기

판별기 테스트하기

GPU 가속

생성기

생성기 결과 확인하기

GAN 훈련하기

핵심 정리


[PART 3 흥미로운 GAN 기법]

CHAPTER 9 합성곱 GAN

메모리 소비

지역화된 이미지 특성

합성곱 필터

커널 가중치 학습하기

특성의 계층구조

MNIST CNN

CelebA CNN

각자 실험해보기

핵심 정리

CHAPTER 10 조건부 GAN

조건부 GAN 구조

판별기

생성기

훈련 반복문

차트 그리기

조건부 GAN 결과 확인하기

핵심 정리

CHAPTER 11 결론

참 잘했어요!

앞으로 할 일

GAN을 사용하는 데 대한 책임

머신러닝은 정말 멋집니다!


[APPENDIX 부록]

APPENDIX A 이상적인 손실값

APPENDIX B GAN의 우도 학습

APPENDIX C 합성곱 예제

APPENDIX D 불안정한 학습

APPENDIX E 감사의 말 등