메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

GAN 인 액션

텐서플로 2.x와 케라스로 구축하는 생성적 적대 신경망

한빛미디어

번역서

판매중

  • 저자 : 야쿠프 란그르 , 블라디미르 보크
  • 번역 : 박해선
  • 출간 : 2020-09-17
  • 페이지 : 284 쪽
  • ISBN : 9791162243435
  • 물류코드 :10343
  • 초급 초중급 중급 중고급 고급
4.8점 (23명)
좋아요 : 15

텐서플로 최신 버전 반영! 구글 코랩(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. 사푸노프, 인텐토

야쿠프 란그르 저자

야쿠프 란그르

크리에이티브와 광고 분야에 GAN을 적용하는 스타트업의 공동 창업자. 2013년부터 데이터 과학 분야에서 일했으며 최근에는 필터드(Filtered)에서 데이터 과학 분야 기술 리더로, 무다노(Mudano)에서는 R&D 데이터 과학자로 재직했다. 영국 버밍엄 대학교와 다수 기업에서 데이터 과학 강의를 만들고 가르쳤다. 현재는 옥스퍼드 대학교에서 객원 교수로 재직 중이다. 또한 심층 기술 재능 투자사 안트러프러너 퍼스트(Entrepreneur First) 일곱 번째 집단의 사내 기업가(Entrepreneur in Residence)다. 왕립통계학회 회원이며 다양한 국제 학회에 초청 연사로 참여했다. 옥스퍼드 대학교를 졸업했다.

블라디미르 보크 저자

블라디미르 보크

마이크로소프트 리서치(Microsoft Research)에서 스타일 트랜스퍼(style transfer)를 음악에 적용하는 독립 연구 프로젝트를 수행하면서 GAN의 큰 잠재력을 알아보았다. 와이 콤비네이터(Y Combinator)에서 투자받은 스타트업에서 데이터 과학자로 일한 것뿐 아니라 마이크로소프트에서 다목적 팀을 주도해본 경험까지 경력이 다양하다. 최근에는 뉴욕에 위치한 스타트업에서 데이터 과학 프로젝트 담당하면서 포천 500대 기업을 포함해 온라인 여행사, 전자상거래 업체 등에 머신러닝 기술을 제공한다. 하버드 대학교 컴퓨터 과학과를 우등으로 졸업했다.

박해선 역자

박해선

기계공학을 전공했지만 졸업 후엔 줄곧 코드를 읽고 쓰는 일을 했습니다. 블로그(tensorflow.blog)에 글을 쓰고 머신러닝과 딥러닝에 관한 책을 집필, 번역하면서 소프트웨어와 과학의 경계를 흥미롭게 탐험하고 있습니다.

『챗GPT로 대화하는 기술』(한빛미디어, 2023), 『혼자 공부하는 데이터 분석 with 파이썬』(한빛미디어, 2023), 『혼자 공부하는 머신러닝+딥러닝』(한빛미디어, 2020), 『Do it! 딥러닝 입문』(이지스퍼블리싱, 2019)을 집필했습니다.

『실무로 통하는 ML 문제 해결 with 파이썬』(한빛미디어, 2024), 『머신러닝 교과서: 파이토치 편』(길벗, 2023), 『스티븐 울프럼의 챗GPT 강의』(한빛미디어, 2023), 『핸즈온 머신러닝(3판)』(한빛미디어, 2023), 『만들면서 배우는 생성 AI』(한빛미디어, 2023), 『코딩 뇌를 깨우는 파이썬』(한빛미디어, 2023), 『트랜스포머를 활용한 자연어 처리』(한빛미디어, 2022), 『케라스 창시자에게 배우는 딥러닝 2판』(길벗, 2022), 『개발자를 위한 머신러닝&딥러닝』(한빛미디어, 2022), 『XGBoost와 사이킷런을 활용한 그레이디언트 부스팅』(한빛미디어, 2022), 『구글 브레인 팀에게 배우는 딥러닝 with TensorFlow.js』(길벗, 2022), 『파이썬 라이브러리를 활용한 머신러닝(번역개정2판)』(한빛미디어, 2022), 『머신러닝 파워드 애플리케이션』(한빛미디어, 2021), 『머신 러닝 교과서 with 파이썬, 사이킷런, 텐서플로(개정3판)』(길벗,2021)를 포함하여 여러 권의 책을 우리말로 옮겼습니다.

 

[PART 1 GAN과 생성 모델링]

 

CHAPTER 1 GAN 시작하기

__1.1 GAN이란? 

__1.2 GAN의 동작 방식 

__1.3 GAN 시스템 

__1.4 왜 GAN을 공부해야 할까? 

__1.5 마치며 

 

CHAPTER 2 오토인코더와 생성 학습

__2.1 생성 모델링 시작하기 

__2.2 오토인코더의 동작 방식 

__2.3 GAN과 오토인코더 비교하기 

__2.4 오토인코더 구성 

__2.5 오토인코더 활용 

__2.6 비지도 학습 

__2.7 코드가 핵심이다 

__2.8 왜 GAN일까? 

__2.9 마치며 

 

CHAPTER 3 첫 번째 GAN 구현하기

__3.1 GAN 기초: 적대적 훈련 

__3.2 생성자와 판별자 

__3.3 GAN 훈련 알고리즘 

__3.4 튜토리얼: 손글씨 숫자 생성하기 

__3.5 결론 

__3.6 마치며 

 

CHAPTER 4 DCGAN

__4.1 합성곱 신경망 

__4.2 DCGAN의 간략한 역사 

__4.3 배치 정규화 

__4.4 튜토리얼: DCGAN으로 손글씨 숫자 생성하기 

__4.5 결론 

__4.6 마치며 

 

 

[PART 2 최신 GAN 모델]

 

CHAPTER 5 GAN 훈련의 어려움과 노하우

__5.1 평가 

__5.2 훈련의 어려움 

__5.3 게임 설정 정리 

__5.4 훈련 노하우 

__5.5 마치며 

 

CHAPTER 6 ProGAN

__6.1 잠재 공간 보간 

__6.2 놀라운 발전 속도 

__6.3 주요 혁신 요약 

__6.4 텐서플로 허브를 사용한 실습 

__6.5 실용적인 애플리케이션 

__6.6 마치며 

 

CHAPTER 7 SGAN

__7.1 SGAN 소개 

__7.2 튜토리얼: SGAN 구현하기 

__7.3 지도 학습 분류기와 비교하기 

__7.4 결론 

__7.5 마치며 

 

CHAPTER 8 CGAN

__8.1 동기 

__8.2 CGAN 소개 

__8.3 튜토리얼: CGAN 구현하기 

__8.4 결론 

__8.5 마치며 

 

CHAPTER 9 CycleGAN

__9.1 이미지 대 이미지 변환 

__9.2 사이클-일관성 손실: 갔다가 돌아오기 

__9.3 적대 손실 

__9.4 동일성 손실 

__9.5 구조 

__9.6 객체지향 방식으로 GAN 구현하기 

__9.7 튜토리얼: CycleGAN 구현하기 

__9.8 CycleGAN의 확장 버전과 애플리케이션 

__9.9 마치며 

 

 

[PART 3 앞으로 배울 것들]


CHAPTER 10 적대 샘플

__10.1 적대 샘플 소개 

__10.2 예측, 나쁜 예측, 분포 

__10.3 올바른 훈련과 잘못된 훈련 

__10.4 신호와 잡음 

__10.5 새로운 희망 

__10.6 적대 샘플에서 GAN으로 

__10.7 결론 

__10.8 마치며 

 

CHAPTER 11 실용적인 GAN 애플리케이션

__11.1 의료 분야의 GAN 

__11.2 패션 분야의 GAN 

__11.3 결론 

__11.4 마치며 

 

CHAPTER 12 향후 전망

__12.1 윤리 

__12.2 세 가지 혁신 GAN 

__12.3 더 읽을거리 

__12.4 정리 

__12.5 마치며 

스스로 학습하고 발전하는 한 단계 높은 수준의 신경망

 

GAN은 일종의 자기 비판적인 머신러닝 시스템입니다. 다른 머신러닝에서는 찾을 수 없어서 항상 아쉬웠던 점이지요. 사람은 끊임없이 가능한 계획을 세우고 실현 가능한지 구별합니다. 그리고 무작정 일에 뛰어드는 게 능사가 아니라는 걸 잘 알고 있지요. 그런 점에서 GAN은 한 단계 높은 수준의 인공지능을 구현하는 정말 합리적인 신경망입니다. GAN은 자동으로 학습한 표현과 머신러닝 피드백 루프를 활용할 수 있으니까요. 

 

머신러닝의 다른 부분에는 이제 그닥 새로울 게 없습니다. 컴퓨터 비전 분야 개념의 대부분은 이미 1998년 이전에 고안된 것입니다. 반면 GAN이 하는 일은 2014년 이전에는 불가능하던 것입니다. GAN은 탄생한 이후로 제가 이 글을 쓰는 지금 이 순간까지 끊임없이 기하급수적으로 성장하고 있습니다.

 

GAN은 가능성이 많은 흥미로운 신세계입니다. 여러분과 이를 함께 나눌 수 있어서 영광이고 기쁩니다. 이 책을 쓰는 데 2년에 가까운 시간이 걸렸습니다. 우리가 그랬던 것처럼 여러분도 이 책과 함께 즐거운 시간을 보내길 바랍니다. 여러분이 앞으로 세상에 내놓을 놀라운 발명들을 하루빨리 보고 싶습니다.

 

- ‘지은이의 말’ 중에서

GAN 인 액션은 텐서플로2와 KERAS로 구현하는 적대적 신경망을 소개하는 책이다. 이 책을 지은 야쿠프 란그르와 블라디미르 보크는 이 책의 수익금을 전부 비영리 단체에 기부한다. 야쿠프 란그르는 크리에이티브 광고를 GAN으로 하는 스타트업 대표이면서 옥스포드 대학교 객원 교수님이고 블라디미르 보크는 마이크로소프트에서 다목적 팀을 주도하기도 하고 뉴욕스타트업에서 데이터 과학 프로젝트를 담당하여 온라인 여행사, 전자상거래 업체 등에 GAN을 적용하였다.

SF작가 아서 클라크는 "충분히 발달된 기술은 마법과 구별할 수 업다."라고 말했다. GAN을 활용한 기술이 마법과 비슷한 느낌으로 다가온다. 그리고 계속 여러 학회를 통해 성장하고 있고 아직 결정된 것이 아무것도 없는 굉장히 인기있는 분야이기 때문에 학습해 볼 필요가 있다. 이 책의 표지는 "영국에서 온 여인"으로 예전에는 의상만 봐도 어느 나라 사람인지 알수 있었는데 현재는 그런 독창성이 희미해졌다.이 표지는 컴퓨터 비즈니스가 독창성과 자주성이 더 강해지길 바라는 마음으로 선정했다고 한다.

이 책의 구성은 1부 "GAN과 생성 모델링"부분과 2부 "최신 GAN모델"과 3부 "앞으로 배울 것들"로 구성이 되어 있다. 1부에서는 GAN의 기초 개념인 생성 모델링과 오토 인코더 등에 대해서 자세히 설명하고 있고, GAN 훈련 알고리즘 및 DCGAN에 대해 소개하고 있다. 2부에서는 GAN훈련의 어려움과 노하우에 대해 소개하고 잠재공간과 ProGAN과 SGAN과 CGAN과 CycleGAN에 대해 실습코드와 함께 소개하며 자세히 설명하고 있다. 3부에서는 다양한 분야에 GAN이 어떻게 적용이 되고 있는지 향후 전망이 어떻게 되는지에 대해 저자의 생각을 포함하여 설명하고 있다.

이 책을 보고 느낀 점은 AI가 사람을 대체하기 위해서는 정말 가야할 길이 멀구나 하는 것이다. 최근 "이루다" 챗봇 문제도 그렇지만 AI가 스스로 창의적인 생각을 하는 상황이 오면 인간이 책임져야 하는가 하는 고민이 든다. 인간은 신이 아니기 때문에 피조물이면서 신과 유사한 형상이기에 창조할 수 있는 능력이 있다고 들은 적이 있는 데 AI도 그렇게 만들어야 하는 것이 아닌가? 마법과도 같은 기술이 되었을 때 기술개발자는 마치 신처럼 모든 상황을 예측해서 AI기술에 적용을 했어야 한다. 이 책에서는 비단 단순히 흘러가는 기술뿐만이 아니라 철학적인 고민을 던져주는 책이기에 한번쯤은 읽어보는 것이 좋다고 생각한다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

GAN.jpg

 

< GAN 인 액션 > | 야쿠프 란그르, 블라디미르 보크 지음 | 박해선 옮김 | 한빛미디어

 

머신러닝을 위해 사용하는 다양한 시스템 중 GAN에 관한 책이다. 다양한 알고리즘과 시스템이 있지만 GAN이 다른 시스템과 다른 부분 중의 하나는 자동으로 학습한 표현과 머신러닝 피드백 루프를 활용할 수 있다는 점이다. 특히 머신러닝을 위한 다른 시스템은 크게 변화하지 않고 있지 않지만 GAN은 계속 발전해 오고 있다는 점이다.

이 책은 머신러닝과 신경망을 어느정도 다뤄본 경험이 있는 사람을 대상으로 한다. 따라서 이 부분을 전혀 모르는 사람이 읽기에는 다소 무리가 있을 것이라고 생각한다. 나도 머신러닝에 대한 알고리즘이나 시스템을 실제 사용해 보지는 않았지만 개념적으로 어느 정도는 알고 있다고 생각한다. 그래도 이책의 개념을 완전히 이해하기에는 조금 어려운 부분이 없지 않아 있었던 것은 사실이다.

하지만 본인의 의지가 있다면 자료를 찾아가면서 책을 읽어볼 시도는 가능하다고 생각한다. GAN을 알기 위해서 머신러닝에 대한 기초부터 일일이 시작하기에는 너무 시간이 많이 걸릴 것은 분명하다. 관심이 있다면 이 책을 읽어가면서 이해가 되지 않거나 부족한 부분은 다른 자료를 참고하면서 천천히 읽어가는 방법도 좋은 방법이라고 생각한다.

이 책은 총 3부 12장으로 구성되어 있다. 1부는 GAN과 생성 모델링에 대한 설명이다. GAN 세계를 소개하고 가장 기본적인 GAN 모델에 대해 설명한다. 2부는 최신 GAN 모델에 대해 다루고 있다. 1부에서 설명한 기본 개념을 바탕으로 GAN을 이론적으로 더 깊이 이해하고 GAN을 구현하기 위한 실용적인 방법을 소개한다. 3부는 앞으로 배울 것에 대해 소개한다. 앞에서 배운 GAN과 구현에 대해 학습한 것을 적용할 수 있는 실용적인 사례와 다른 분야를 제시한다.

GAN에 대한 기본적인 작동 원리와 생성자 및 판별자 개념을 이해한 후 오토인코더와 GAN으로 손글씨 숫자를 생성하는 예제를 다룬다. 또한 다양한 모델로 고해상도 이미지를 생성하거나 손글씨 숫자 이미지를 생성하거나 물체를 변화는 방법을 자세히 설명한다. 또한 GAN 훈련이 가지는 어려움과 실제 이미지와 잡음으로 적대 샘플을 생성하는 예를 살펴본다. 또한 의료 및 패션 분야에서 GAN의 활용 방법과 사례를 살펴볼 수 있다.

이 책을 통해 이론과 실용이라는 두마리 토끼를 모두 잡을 수 있다고 생각한다. GAN은 실용적인 사례 및 이론적인 요구사항과 제약에 대한 복원력 측면에서 모두 잘 활용할 수 있는 모델이다. 특히 사물이나 사람 얼굴 등과 같이 서로 다른 종류의 이미지를 동일하게 잘 생성하는 것을 보면 다양한 분야에 활동도가 높다는 것을 알 수 있었다. 단점중의 하나는 훈련이 어렵다는 것인데 그 원인 중의 하나로서 실전에 왜 잘 동작하는지 이해하기 어렵다는 점인 것 같다. 일부 수학적으로 증명이 되고 있지만 대부분의 성과가 실험적인 결과인 것을 보면 알 수 있다.

진정한 AI 패러다임에 도달하기 위해서는 GAN과 같은 모델이 현실을 반영하도록 사람이 제대로된 방향을 제시해 주는 것이 필요한 것 같다. GAN은 기존 대부분의 데이타를 학습하여 샘플을 만들수 있지만 훈련데이타에서 크게 벗어나지는 못한다는 한계가 있기 때문이다. 다양한 연구를 통해 보다 완벽한 머신러닝으로 접근하는 것은 여전히 사람의 손에 많은 것이 달려 있다고 생각한다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

iOS 이미지 (2).jpg

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


딥러닝을 처음 배우는 수강생을 맞닥뜨리는 일을 하다보니 "딥러닝으로 하고 싶은 일이 무엇인지"와 같은 질문을 하게 될 때가 많습니다. 그에 대한 답으로 그림을 그려주거나, 음악을 만들어주는 AI를 만들어보고 싶다는 말씀을 종종 해주시는데요. 이런 것을 보면 'GAN이 보여주는 놀라운 결과물 덕분에 많은 사람들이 딥러닝에 입문을 하게 되는 것이 아닐까'하는 생각을 하게 됩니다.



[수식은 최대한 줄이고, GAN단하게]


다른 In Action 시리즈와 마찬가지로 GAN In Action 역시 복잡한 수식을 최대한 배제하고 코드를 돌려 결과를 볼 수 있도록 구성되어 있습니다. 물론 이런 특성은 수식이나 수학적 원리를 통해 더 깊게 이해하고자 하는 사람에게는 적절하지 못할 수도 있겠습니다. 하지만 이런 부분은 코드를 돌려보고 결과를 확인한 후 해당 모델에 대해 흥미를 갖고 난 뒤에 다시 돌아와서 공부하여도 늦지 않다는 생각을 가지고 있는데요.

본 책의 예상 독자는 GAN을 처음 접하거나 혹은 GAN에 대해 빠르게 Wrap-up 하고자 하는 사람일 것입니다. 이런 분들에게는 복잡한 수식보다 GAN의 놀라운 결과를 코드로 직접 체험해보는 것이 공부에 흥미를 일으킬 수 있는 트리거가 될 수 있을겁니다. 그런 의미에서 GAN에 입문하거나, 이미 공부하였더라도 다시금 전체적으로 돌아볼 수 있는 좋은 책이라고 생각합니다.



[GANGAN히 들어있는 재미 요소와 깔끔한 번역]


책의 구성 역시 돋보입니다. 먼저 GAN에 대해 전반적으로 다루고 있는 목차가 마음에 듭니다. 생성 모델 자체를 이해하는 데 필요한 GAN 부터 

 

두 번째로 깔끔하게 제시된 코드가 마음에 듭니다. 대부분의 코드가 함수 및 클래스 형태로 이루어져 있는 데다가 컬러로 하이라이팅 되어 있어 가독성이 뛰어납니다. 그리고 각 코드에 대한 주석 역시 한 줄, 한 줄 덧붙여져 있어 해당 코드를 바로 이해하지 못하였더라도 주석을 보고 이해할 수 있었습니다.

그리고 GAN에서는 코드 결과로 주어지는 이미지가 중요한데요. 결과물에 대해 컬러 이미지를 높은 해상도로 제시해주어 결과물 끼리의 차이나, 어떤 이미지로부터 다른 이미지가 생성 되는지 등을 따라가며 이해하기 좋았습니다.

덧붙여 호불호가 갈릴 수 있는 영역이지만 저자의 각종 밈(Meme)을 활용한 유쾌한 설명도 돋보입니다.

마지막으로 믿고보는 역자님의 깔끔한 번역 역시 좋습니다. 이전에 같은 역자님께서 번역한 동 출판사의 '미술관에 GAN 딥러닝 실전 프로젝트'라는 책도 가지고 있는데요. GAN 이라는 쉽지 않은 소재에 대해 두 책 모두 깔끔하게 풀어 주셔서 쉽게 읽을 수 있었습니다.

 

 

결론적으로 GAN에 대해 코드를 통해 이해하고 싶은 분에게는 적극 추천드립니다. :)

GAN "생성적 적대 신경망"에 대한 책입니다.2014년 이언 굿펠로라는 사람이 만들어낸 방식인데요. 그 이후 많은 발전을 거듭했고, 상당히 의미있는 성과를 보여주고 있는 분야입니다.

"" 생성적 적대 신경망은 동시에 두 개의 모델을 훈련하는 머신러닝의 한 종류입니다. 하나는 가짜 데이터를 생성하도록 훈련하고 다른 하나는 실제 샘플과 가짜 샘플을 구분하도록 훈련됩니다. < 본문 33 쪽> ""

 

독자 대상은 전혀 인공지능을 모르는 사람보다는 어느정도 접해보았던 사람을 대상으로 합니다. 그래서 인공지능 분야에서 많이 쓰는 용어들은 설명하지 않고 그냥 쓰고 있습니다.저자는 GAN이 어떤것인지 설명하는 것부터, 지난 몇년간 어떻게 발전했고, 어떤 새로운 아이디어들 (이른반 변종)이 생겨났는지 설명하고 간단하게 어떤 발전이 있을지 언급하면서 책을 마무리 합니다.

 

책은 상당히 컬러풀 합니다. ^^ 아마도, "가짜 데이터"의 결과 중 이목을 끌을 수 있는 것들이 실사 사진들이기 때문일 것 같은데요. 가짜로 사람 얼굴 사진을 만들어 낸 결과라던지, 유명 화가(모네)의 그림을 사진으로 일반 사진을 화가의 화풍으로 바꾼다던지, 얼룩말과 말을 서로 바꾼다던지 하는 건, 정말 인상적이었던 것 같습니다.게다가, 이론을 설명하기 위한 다이어그램이라던지, 구현해본 코드를 보여주는 경우에도 색상을 사용하고 있어서 집중하기 좋게 편집되어 있습니다.

 

아시겠지만, 인공지능 분야는 상당히 오래전에 시작된 분야 입니다. 다양한 사람들이 다양한 아이디어를 결과로 만들어 냈지만, 몇번 위기를 맞기도 했었다고 알려져 있습니다.그러나 근 십년간 인공지능 분야는 다시 빠르게 발전하고 있고, 눈에 띌만한 결과물을 보여주고 있습니다. 2016년 알파고가 이세돌 구단을 이겼던 것이 아마 그 상징적인 사건이 아닐까 싶네요.저도 그 후로 인공지능에 대해서 관심을 가지기 시작했지만, 사실 직장생활 하면서,난이도가 있는 분야를 혼자 공부하는 건, 상당히 어렵습니다. 그래서, 기회가 될때마다 수박겉핥기 하듯 책을 읽는 정도로 만족하고 있네요.

 

GAN에 대한 책은 이번에 처음 읽은건데요. 다른 책들보다 더 어려웠던것 같습니다.하지만, GAN 분야에 대해 진지하게 공부를 시작 한다면 도움이 될 것 같은데요.추가로 찾아볼 수 있는 레퍼런스에 대해서 많이 알려주고 있기 때문입니다.

 

진짜 좋은 책은 레퍼런스가 많아서 공부할 여지를 충분히 만들어 주는 책이거든요.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

얼마 전에 작년의 엔비디아 발표에서 젠슨황의 키노트 발표가 인공지능에 의해 만들어진 영상이라는 뉴스가 화제가 되었었다. 지난 해 키노트를 보면서 만들어진 영상이라는 의심은 전혀 할 수 없을 정도로 젠슨황의 키노트는 거의 완벽에 가까웠다. 닮은 꼴 연예인을 찾는다든지 신생아의 초음파 사진으로 출생했을 때의 이미지를 유추해 낸다든지 인공지능을 통한 이미지 구현을 볼 때마다 GAN을 제대로 익혀보고 싶다는 생각이 들었는데 한빛미디어의 “나는 리뷰어다”를 통해 이 책을 읽어보게 되었다.

일단 GAN 이 무엇인지 알아보자. 위키백과에 의하면 GAN은 다음과 같이 정의하고 있다.

생성적 적대 신경망(生成的敵對神經網, 영어: Generative Adversarial Network; GAN)은 비지도 학습에 사용되는 인공지능 알고리즘으로, 제로섬 게임 틀 안에서 서로 경쟁하는 두 개의 신경 네트워크 시스템에 의해 구현된다. 이 개념은 2014년에 이안 굿펠로우(Ian. j. Goodfellow)에 의해 발표되었다.

선수 지식

기본적인 모델의 학습과 예측 과정을 이해하고 있어야 한다. 책 초반부에도 나와 있지만 파이썬, 머신러닝, 딥러닝에 대한 기초 지식을 필요로 한다. 이에 대한 기초 지식이 없다면 파이썬으로 기본적인 인공신경망 모델을 학습하고 읽는 것을 추천한다. 머신러닝 모델에서 훈련/예측 데이터셋을 나누고 모델을 생성하여 학습, 평가, 과소/과대적합, 하이퍼파라미터 튜닝 등을 이해할 수 있어야 책에 등장하는 딥러닝 용어에 당황하지 않을 수 있다. 기본적인 머신러닝과 딥러닝, 텐서플로에 대한 지식 없이 접근 하면 읽기 어려운 책이다.

텐서플로와 케라스

텐서플로2에서 케라스 API를 사용하는 방법으로 구현이 되어 있다. 그래서 텐서플로의 시퀀셜 레이어로 모델을 만드는 방법을 이해하고 있는 상태에서 다양한 GAN 모델을 응용해 보고자 하는 독자에게 적합한 책이다.

GAN 기본 이해

  • MNIST를 통한 기본적인 손글씨 생성
  • GAN과 오토인코더를 통한 데이터 생성
  • 합성곱 신경망(CNN)과 DCGAN

최신 GAN 모델

  • GAN훈련의 어려움과 노하우를 알아보고
  • ProGAN, SGAN, CGAN, CycleGAN 을 소개하고 있다.
  • 그리고 윤리를 비롯한 향후 전망까지 제시한다.

AI 윤리를 다뤄준 것도 인상적이었다. 실제 사진과 같은 합성 이미지를 만드는 GAN이 악용 될 수도 있기 때문에 구글 AI원칙 등을 소개 하고 있다.

얼마 전의 엔비디아 젠슨황 키노트 사례에서와 같이 실존하는 인물을 정말 실제처럼 만들 수 있기 때문에 기술을 다룰 때 꼭 고려해야할 문제가 아닐까 싶다.

300쪽이 조금 안 되는 분량과 적당한 두께로 GAN의 핵심을 익혀볼 수 있는 책이었다. 그리고 역자분이 코드마다 주석을 워낙 꼼꼼하게 달아주셔서 소스코드도 편하게 읽을 수 있었다.

 

[소감]

 

개인적으로 선호하는 매닝 출판사의 in action 시리즈이다. 내용을 잘 모르는 사람도 따라하고 다시 생각하고 다시 따라하다 보면, 차근차근 내용을 이해할 수 있도록 구성되어 있다. 각 장의 내용 하나하나가 쉽게 넘어가지는 않고 조금 생각해야 알 수 있는 수준의 난이도 구성도 적절하다. 초급과 중급 사이의 그 어딘가라고 볼 수 있겠다. 물론 주제가 딥러닝의 구현 형태 중의 하나인 GAN이므로 파이썬과 머신러닝/딥러닝의 기초가 전혀 없는 사람은 읽기 어렵다.

 

내용은 각 장마다 이론적인 설명과 실습 코드가 이어서 구성되어 있다. 이론이 잘 이해가 가지 않아도, 충분한 주석이 달린 코드를 통해 실습 따라하기가 가능하다. 일단 타이핑 하다보면 모델 학습이 되고 결과가 나온다. 아무래도 결과를 눈으로 보게 되면 작은 성취감과 도전의식이 생긴다. 그랬을 때 이론을 다시 펴보면 더 잘 이해가 가는 경우가 많았다.

 

[편집/번역]

 

ㅇ 박해선님의 번역은 원문에 충실하며 꼼꼼하고 엄중하다.

- 그러면서도 적절한 윤문이 가미되어 부드럽고 읽기 쉽다.

- AI와 데이터 관련 책 중에는 박해선님의 이름이 저/역자에 있으면 뒤도 돌아보지 않고 일단 주문하는 편이다.

 

ㅇ 편집도 올컬러 인쇄에 매우 깔끔하다. 

- 공부하다보니 이미지 생성을 다루는 내용이기 때문에 컬러가 아니면 결과물의 가독성이 매우 떨어졌을 것 같다. 

- 독자 입장에서는 대단히 만족스럽다.

 

 

 

[1장: GAN 시작하기]

 

ㅇ GAN은 생성적 적대 신경망(Generative Adversarial Network)의 약자

- 두 네트워크 간의 경쟁을 이용해, 진짜 같은 데이터 샘플을 합성하는 딥러닝 기법

- 생성자(generator):가짜 데이터를 생성하도록 훈련됨

- 판별자(discriminator):실제 샘플과 가짜 샘플을 구분하도록 훈련됨

 

ㅇ 생성적(generative): 이 모델이 훈련 데이터를 통해 새로운 데이터를 생성하는데 목적이 있다는 의미

 

ㅇ 적대적(adversarial): 두 모델인 생성자와 판별자 사이의 게임 같은 경쟁구도

- 생성자는 훈련 데이터셋에 있는 실제 데이터와 유사한 샘플을 만들어냄

- 판별자는 생성자가 만든 가짜 데이터를 훈련 데이터셋에 있는 실제 데이터와 구별

 

ㅇ 판별자 훈련

- 훈련 데이터셋에서 랜덤하게 진짜 샘플 x를 선택

- 새 랜덤 잡음 벡터 z를 얻어서 생성자 네트워크를 이용해 가짜 샘플 x*을 합성

- 분류 오차를 계산하고 전체 오차를 역전파해서 판별자의 훈련 가능한 파라미터를 업데이트하고 분류 오차를 최소화

 

ㅇ 생성자 훈련

- 생성자 네트워크를 사용해 새로운 랜덤한 잡음 벡터 z에서 가짜 샘플 x*을 합성

- 판별자 네트워크를 이용해 x*을 분류

- 분류 오차를 계산하고 역전파해서 생성자의 훈련 가능한 파라미터를 업데이트하고 판별자의 오차를 최대화

 

ㅇ 훈련 목표

- 훈련 반복은 내시 균형에 도달할 때까지 진행됨

- 생성자가 훈련 데이터셋의 실제 데이터와 구별이 안 되는 데이터를 생성

- 판별자가 특정 샘플이 진짜인지 가짜인지 판단할 때 랜덤(50:50) 추측만 가능

 

 

[2장: 오토인코더와 생성 학습]

 

ㅇ 오토인코더는 인코더, 잠재 공간, 디코더로 구성됨

- 재구성된 데이터와 원본 데이터 사이의 거리를 측정하는 목표 함수를 사용해 훈련

 

ㅇ 오토인코더는 많은 앱이 있으며 생성모델로 사용할 수 있음

- GAN보다 떨어지는 성능으로 생성모델로 주로 사용되지는 않음

 

- KERAS를 이용해 MNIST 손글씨 숫자 생성 예제 수행

 

ㅇ 변이형 오토인코더는 보다 안전한 중간지대의 픽셀을 선택하기 때문에 결과물의 경계가 흐릿함

 

 

[3장: 첫 번째 GAN 구현하기]

 

ㅇ 생성자의 목적은 훈련 데이터셋의 데이터 분포를 흉내 내는 샘플을 생성하는 것

- 객체 인식 모델: 이미지 컨텐츠를 이해하기 위해, 이미지에 있는 패턴을 학습

 

ㅇ GAN은 생성자(G)와 판별자(D) 두 개의 네트워크로 구성됨

 

ㅇ 훈련하는 동안 생성자와 판별자는 자신의 파라미터는 세타(G)와 세타(D)만 조정 가능

 

ㅇ GAN은 게임 같은 방식으로 동시에 훈련됨

- 생성자는 판별자의 거짓 양성 분류가 최대가 되게 함

- 판별자는 거짓 양성과 거짓 음성 분류를 최소화하려고 함

 

ㅇ 생성자 구현 시 은닉층은 LeakyReLU 활성화 함수 사용

- 음수 입력을 모두 0으로 만드는 일반적인 ReLU함수와 달리, 작은 기울기 사용

- 훈련 중에 그레디언트가 사라지는 것을 방지해서 결과를 향상시킴

 

ㅇ 생성자 구현 시 출력층은 tanh 활성화 함수 사용

- 출력값을 [-1, 1] 범위로 조정

- 0~1로 조정하는 시그모이드 함수보다 조금 더 또렷한 이미지 생성 가능

 

ㅇ 판별자 구현 시 시그모이드 활성화 함수 적용

- 출력 값을 0~1사이로 만들기 때문에 판별자가 입력을 진짜로 생각하는 확률로 해석

 

ㅇ 손실함수는 이진 교차 엔트로피 사용

- 두 개의 클래스만 있는 예측에서 계산된 확률과 진짜 확률 사이의 차이 측정

 

ㅇ 네트워크 최적화를 위해 Adam 최적화 알고리즈 ㅁ사용

- 고급 경사 하강법 기반의 옵티마이저

- Adam은 뛰어난 성능으로 대부분 GAN 구현의 기본 옵티마이저

 

- 훈련 시 원-핫 인코딩 사용: 1이 진짜 이미지, 0이 가짜 이미지

- 미니배치 사용

(이하 생략)

 

 

[예제 소스]

 

https://github.com/rickiepark/gans-in-action

 

 

[정오표]

 

https://tensorflow.blog/gan-in-action/

 

 

[목차]

 

- CHAPTER 1 GAN 시작하기

- CHAPTER 2 오토인코더와 생성 학습

- CHAPTER 3 첫 번째 GAN 구현하기

- CHAPTER 4 DCGAN

- CHAPTER 5 GAN 훈련의 어려움과 노하우

- CHAPTER 6 ProGAN

- CHAPTER 7 SGAN

- CHAPTER 8 CGAN

- CHAPTER 9 CycleGAN

- CHAPTER 10 적대 샘플

- CHAPTER 11 실용적인 GAN 애플리케이션

- CHAPTER 12 향후 전망

 

보통 머신러닝, 신경망을 처음 접하게 되면 분류기(Classifier) 형태로 경험하게 되는데, 단순 분류/판별 이상의, 사람이 보기에도 그럴듯한 컨텐츠 생성에 관심을 갖게 되었다면 자연스럽게 생산적 적대 신경망, GAN(Generative Adversarial Network)을 접하게 될 겁니다. 인 액션 시리즈 답게 실제로 사용할 수 있는 코드와 예제를 제공하며 이를 기반으로 이론과 기반 내용을 저자들의 깊은 이해가 엿보이는 적절한 비유와 쉽게 풀어쓴 설명으로 GAN의 이해를 도와 줍니다. 차근차근 쉬운 개념부터 설명하되, 책의 초반에 이론만 잔뜩 설명하거나 하지 않고 초반부터 그럴듯한 결과를 내는 간단하지만 실제 동작하는 GAN 예제를 보여줌으로 흥미와 관심을 끌 수 있게 내용도 잘 편성되어 있습니다. 책이 흑백이 아니라 컬러라는 부분도 결과 영상들을 보고 이해하는 데 도움을 줍니다.

 

책의 서문에도 나와 있지만, 기본적인 신경망 관련 지식을 가진 독자를 대상으로 합니다. 오차 역전파 등의 기본적인 머신러닝 개념은 알고 있는 걸 상정하고 내용이 전개되기에 쉽게 풀어쓴 비유를 통해 이해하기 쉽게 설명하고 있지만 수학적 이해와 관련 지식이 없다면 이해하기 어려울 수 있습니다. 기존에 머신러닝 경험이 있으신 분이 GAN에 관심이 생겼다면, 이 책이 좋은 길잡이가 되어 줄 거라 생각합니다.

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

AI 분야의 발전과 변화의 속도가 정말로 빠르다. GAN이 처음소개되고, 이 책 GAN 인 액션의 원서 집필시간이 약 2년. 국내에서는 박해선 역자 덕분에 원서가 나온지 약 1년만에 번역서가 국내 출판되었다. 그로부터 다시 약 1년이 지난시점에 이 책을 접하게 되었다.

 

GAN_인_액션_연도표.png

책의 출판 시점이 2년정도 지났으므로 GAN의 최신 내용은 담고 있지 않다. 그러나 이미지 기반의 변화를 중심으로 여러 다양한 GAN(GAN, ProGAN, SGAN, CGAN, CycleCAN)을 담고 있으며, GAN 초보자(이미 머신러닝에는 어느 정도 익숙한)에게는 친절한 설명과 함께 여러 다양한 내용을 최대한(?) 친절하게 설명해 주고자 하는 저자의 노력이 여러곳에 담겨있다.

다른 머신러닝서적으로 어느 정도 기초를 다지고 GAN의 세계로 입문하고자 하는 독자에게는 더할나위 없이 좋은 서적이다.

아직(!) 늦지 않았으니 이 책으로 GAN의 세계로 들어와 앞으로의 응용이 더욱 기대되는 동참해보길 희망한다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

[나는 리뷰어다] GAN 인 액션

 

20210804_012213.jpg

 

 

 

이번에는 Generative 생성모델에 관련된 "GAN 인 액션"이라는 책을 받을 수 있었습니다.

 

 

20210804_012226.jpg

 

이전에 Autoencoder를 적용하여 연구를 진행한 적이 있었는데 그 당시에는 생성모델의 개념에 대하여 아직 숙지가 덜 된 상태였습니다.

 

 

책을 통하여 GAN이 동작하는 방식을 예와 함께 배워나갈 수 있었으며 오토 인코더의 동작원리에 대해서 조금 더 자세히 배워나갈 수 있었습니다.

 

 

20210804_012233.jpg

 

20210804_012245.jpg

 

마지막으로 본 책은 GAN에 대한 개념이 없는 분들도 자유롭게 읽을 수 있으나 먼저 Ian Goodfellow가 저술한 GAN의 논문과 튜토리얼을 숙지한 후 실습을 진행하면 더 수월하게 이해할 수 있을 듯합니다.

 

 

 

마지막으로 좋은 책 제공과 기회를 주신 한빛미디어 담당자 분들께 감사 드립니다. 9월에도 내용이 탄탄한 도서를 읽고 빨리 리뷰를 남기고 싶습니다.

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

GAN 인 액션.jpg

 

[이 리뷰는 한빛미디어에서 도서를 제공받아 작성되었습니다.]

전체적으로 초심자가 읽기 편하도록 배려하여 작성되었다는 사실을 느낄 수 있을 만큼 친절한 설명을 포함하고 있으며, 따라 해 보는 것에 그치지 않고 적용하여 프로젝트를 진행 할 수 있을 정도의 수준까지 독자를 이끌어주는 좋은 책이라고 생각한다.
이 책은 생산적 적대 신경망에 관심을 두고 있는 초심자부터 GAN을 이용한 제품 개발을 위해 고민하고 있는 사람들까지 넓은 폭의 독자에게 큰 도움을 줄 수 있을 것으로 보인다.

 

1.jpg

이 책은 딥러닝의 기초지식을 쌓고 생성적 적대 신경망 (Generative Adversarial network), GAN을 기초부터 배우려는 모든 사람을 대상으로 한다.

 

 

 


책은 텐서플로 2.x와 케라스를 통해 실습하게 되어있다. 텐서플로우 코리아 그룹에서 유명한 박해선님이 번역을 하셨고 번역도 매끄럽게 잘 되어 있었다.

 

 

 


딥러닝에서도 기초적인 지식을 알고 접해야 이해할 수 있는 주제인지라 내 경우에는 직관적으로 이해를 하진 못 하였다. 아직 딥러닝에 대해 알고 실습해야 할 것들이 많다고 느껴진다.

 

 


대상 독자는 다음과 같다

 

 

1. 중급 이상의 파이썬 프로그램을 만들 수 있는 능력

 


2. 객체지향 프로그래밍에 대한 이해

 

3. 머신러닝 이론에 대한 기초 이해 

 


4. 기초 통계학과 미적분학을 이해

 


5. 선형 대수에 대한 기초 이해

 

6. 딥러닝의 기초를 이해

 


7. 파이썬 기반의 머신러닝 라이브러리인 케라스에 어느 정도 친숙하거나 따로 학습할 의지가 있는 분

 

 

 

 


옮긴이인 박해선 님 께서는 [미술관에 GAN 딥러닝 실전 프로젝트](한빛미디어, 2019)를 별도로 추천하시고 있다. 나도 GAN에 대해 좀 더 잘 이해하게 되면 한 번 사서 봐야겠다는 생각이 들었다.

 

 

 

2.jpg

위에 나와있듯이 GAN 이란 동시에 두개의 모델을 학습하는 머신러닝의 한 종류이다. 하나는 생성자이고 하나는 판별자이다. 추가적인 내용은 위에 잘 나와있다.

 

 

 

3.jpg


위의 사진에서 GAN의 생성자와 판별자를 간단하게 도식화 해 놓았다.

 

 

 

4.jpg


생성자와 판별자가 내쉬균형을 이루듯 서로의 합의지점에 다다르면 위와 같은 현실적으로 보이는 사진들이 생성된다. 내 생각에 이 지점이 판별자가 더 이상 참인지 거짓인지 판단하지 못하는 특이점으로 생각된다.

 

 

 

5.jpg


내쉬균형을 이루는 것은 수학적으로 안장점을 찾는 것과 비슷한 것으로 보인다.

 

 

 

6.jpg


통계학에서 정규화 공식이 있는데 위의 사진의 4-2를 보면 그대로 사용되고 있음을 알 수 있다. 단, 0으로 나누는 것을 피해서 안정적으로 계산하기 위해 입실론(epsilon) 항을 추가하고 0.001과 같이 작은 양의 상수 값으로 설정하고 있다.

 

 

 


이상으로 GAN 인 액션 책의 서평을 마칠까 한다. 현재 딥러닝에 대한 배경지식이 있는 분들이 GAN에 입문하려 한다면 이 책이 좋은 입문서가 될 것으로 생각된다.

 

이 책의 목표는 생성적 적대 신경망(GAN, Generative Adversarial Network)을 기초부터 배우려는 사람들에게 좋은 지침서가 될 것이다. 가장 간단한 사례에서 시작해 가장 혁신적인 GAN 구현과 기술을 설명한다.

 

GAN 인 액션은 머신러닝과 신경망을 하나도 접해보지 못한 사람들이 본다면 많이 어려운 책이 될 것이다. 그리고 또한 파이썬 기본 문법과 Numpy, pandas, 케라스 를 잘 알고 있어야 이해하기가 수월할 것이다.

중간 곧곧에 파이썬 예제 코드들이 있어서 코드를 보면서 공부하기 좋은 책이다.

 

1장은 GAN 시작하기로 GAN이 무엇인지 왜 공부해야 하는지에 대해서 기술한다. 2장은 생성모델과 데이터를 자동으로 인코딩할 수 있게 도와주는 오토인코더에 대해서 알아본다. 3장에서는 기본적인 GAN 이론을 살펴보고, 기본적인 코드를 작성할 수 있도록 예제가 제시된다. 4장에서는 합성곱 신경망과 배치 정규화를 소개하고 정규화를 활용한 고급 GAN 구조인 DCGAN을 설명하고 있다.

 

5장부터는 최신 GAN 모델에 대해 심층적으로 다가가고 일부 고급 GAN 구조를 구현해본다.

5장은 학술 논문과 발표 자료를 바탕으로 GAN을 훈련하는 모범 사례를 제시하고,

6장은 생성자와 판별자를 훈련하는 최신 방법인 ProGAN을 살펴본다.

7장은 핵심 모델을 기반으로 탄생한 혁신을 살펴보고 SGAN을 구현해본다.

8장은 훈련 과정 중 레이블을 이용하는 또 다른 GAN 구조인 CGAN을 소개한다.

9장은 가장 흥미로운 구조 중 하나인 CycleGAN을 다룬다.

 

10장 부터는 GAN 및 적대 학습을 어디에 적용할 수 있는지 활용 방법과 사례를 살펴본다.

10장은 적대 학습을 다루고, 11장은 GAN의 실전 애플리케이션을 다룬다. 12장은 마지막 장으로 GAN에 대한 향후 전망을 논하며 마무리한다.

 

수학적 수식도 많이 들어 가서 조금 어려워 보이지만 GAN의 지

이책은 GAN이라는 딥러닝 생성모델을 소개한 책이다. 1부에서는 오토인코더를 통해 숫자를 생성하는 모델을 소개한다. GAN이라는 적대적 생성모델을 통해 오토인코더보다 더 뛰어난  숫자를 생성한다.

2부 고급편에서는 GAN의 다양한 모델을 소개한다. ProGAN으로 고해상도 이미지를 연출한다. CycleGAN을통해서는 사과에서 오렌지 이미지로 변환하는 모델을 통해 이미지에서 다른 이미지로 변환하는 모델을 개발한다. 

GAN의 이론적인 면에 치중하여 수학적인 수식을 사용하기 보다는 실용적인 접근법을 사용하여 다양한 GAN모델의 소개및 구현 모델을 통해 독자로 하여금 쉽게 이해하도록 돕는다.    

GAN은 인공지능 기술중에 최근에 발견된, 가장  Hot한 기술중 하나이다. 이책을 통해 실제 업무에서 GAN 모델의 다양한 사례를 적용할 수 있는 능력을 배양하기 바란다.

 

Gan_in_action1.jpg

 

Gan_in_action2.jpg

 

 

20201025_GAN인액션표지.jpg

 

 

 

 

GAN은 딥러닝을 공부하는 사람이라면 자연스럽게 배워야만 하는 영역입니다. 적대적 신경망이라고도 하는 이 모델은 굉장히 특별합니다. GAN(Generative Adversarial Network)은 비지도 학습에 사용되는 인공지능 알고리즘이며, 제로섬 게임 틀 안에서 서로 경쟁하는 두 개의 신경 네트워크 시스템에 의해 구현됩니다. 이러한 GAN을 본떠서 만든 최신 NLP 모델은 electra 가 있는데, 자연어처리 쪽에서는 bert, gpt 랑 같이 올해 많은 관심을 받은 모델 중 하나입니다. 

 

여하튼 GAN은 이상적인 모델이라고 할 수 있는데 자세한 건 책을 통해서 이해하면 좋습니다. 우선, 이 책은 박해선 역자님이 쓰신 책인만큼 번역에 이상하게 느껴지거나 불편한 점은 없습니다. 주의할 사항은 "GAN in Action"의 대상 독자는 머신러닝과 신경망을 다뤄본 경험이 있는 사람을 대상으로 합니다. GAN 자체가 신경망이나 머신러닝을 다루지 않고는 접근하기 어려운 부분이기 때문에 당연하다는 생각도 들었습니다. 여러가지 상세 조건들이 많은데요. 

저자가 말하는 이 책의 대상 독자는 아래의 조건들을 충족한 사람입니다. 

 

 

1. 중급 이상의 파이썬 프로그램을 만들 수 있는 능력

2. 객체지향 프로그래밍에 대한 이해, 객체를 다루는 방법, 속성, 메서드에 대한 이해

3. 훈련/테스트 데이터셋 분리, 과대적합, 가중치, 하이퍼파라미터 등 머신러닝 기초 

4. 확률, 밀도 함수, 확률 분포, 미분, 간단한 최적화 등과 같은 기초 통계학과 미적분학

5. 행렬, 고차원 공간, (이상적으로는) 주성분 분석 같은 선형 대수에 대한 기초

6. 피드포워드 신경망, 가중치와 편향, 활성화 함수, 규제, 확률적 경사 하강법 등 딥러닝 기초

7. 케라스 조금이라도 써본 경험 혹은 따로 학습할 의지

 

이 모두를 다 만족한 사람은 많지 않을거고 부분부분 만족하고 있을거고 채워가고 있을겁니다. 저 역시 마찬가지입니다. 

그래도 이왕이면 1,6,7 3가지는 만족해주는게 최소한의 조건이라고 생각합니다. 책에 대한 난이도는 있는 편이니 파이썬과 딥러닝에 대한 기반이 약한 분들은 좀 더 공부한 뒤 이 책을 접하시길 권하고 싶습니다. 

 

이 책은 GAN 만을 다루기에 다양한 GAN에 대한 소개와 설명이 있습니다. 챕터별로 이를 접할 수 있고, 컬러로된 그림과 핵심 코드 블록은 책을 읽기 더 수월하게 해줍니다. 개인적으로 5장에서 GAN 훈련의 어려움과 노하우를 다루는데 중요하다고 생각하는 부분입니다. 딥러닝은 항상 뭐든지 다 해결해줄 것 같지만, 현실에 모델이 적용되려면 많은 문제들이 따르는데 이에 대해 잘 설명해주고 있습니다.

 

 

GAN에 대한 이론 체계를 갖춰주는데 이만한 기본서는 없다고 생각됩니다. GAN에 흥미가 있는 분들에게는 정말 좋은 책이라고 생각됩니다. 

그리고 마지막으로 GAN 에 대한 상세한 내용들은 구글링을 통해 다른 학습 자료들을 많이 접해야 합니다. 이 책은 전체 흐름을 파악하는데 중점을 두기 때문입니다.(책이 두껍지 않은 이유는 그런 이유때문이죠.) 이후에 GAN 부분부분 관련 논문이나 관련 오픈소스, 연구자료들은 찾아서 공부하면 될 것 같습니다.

 

 

- 한빛미디어로부터 책을 지원 받아 작성 된 리뷰 입니다. -

현대 Deep Learning의 대가이자 아버지인  Geoffrey Everest Hinton 교수의 수제자 Yann LeCun 교수는 GAN(Generative Adversarial Network)을가리켜최근10년간 Machine Learning 분야에서 가장 혁신적인 아이디어라고 말했다. 즉, 요새 인공지능 분야에서 가장 hot하다는 말이다. 그만큼 많은 연구가 진행되고 있는 분야이다. GAN은 잘 알다시피 '생산적인 경쟁적 네트워크의 줄임말이다. 다시 말해서, 문제를 풀기 위해 GAN은 딥러닝으로 만들어진 모델을 적대적(경쟁적) 학습이라는 독특한 방법으로 학습시키는 알고리즘이라고 볼 수 있다. 이미지나 음성분야에서 괄목한 만한 성과를 이뤄내고 있는 이 이론이 새로운 분야에 대한 여러 연구를 진행함에 있어서 가장 큰 걸림돌은 무엇일까? 그것은 두말할 필요없이 학습이 어렵다.

일반 사람들의 입장에서 AI에 관한 기초 수학도 쉽지 않은 상태에서 체계적으로 GAN이라는 분야를 학습하는 것이 절대로 쉽지 않은 넘사벽이다. 그렇기 때문에 좋은 교재가 필요하고 훌륭한 안내서가 있어야 한다. 이 책은 물론, 머신러닝과 신경망을 다뤄본 경험이 있는 사람들을 대상으로 하기는 하지만, 주피터 노트북을 사용할 정도, 파이썬 언어로 무언가 만들어본 경험이 있는 정도, 정확하게 이것이 그것이다라고 말할 수는 없지만 딥러닝 이론에 대해 기초적인 내용을 알고 있는 정도면 필요할 때마다 구글링을 사용하면서 읽어나갈 수 있고, 무엇보다 체계적인 학습으로 인도한다는 장점이 있다. 도대체 어디서 부터 시작해야 할지 난감해하는 독자들은 이 책의 코스를 따라가면 된다. 아무쪼록 이 책을 통해 독자들은 생산적 적대 신경망이라는 새로운 Deep Learning 패러다임으로 적용할 애플리케이션을 찾고 연구하고 성과를 낼 수 있는 좋은 스승을 만나게 될 것이다.

GAN 인 액션 표지

 

Author: 아쿠라 란그르, 블라디미르 보크 지음, 박해선 역

출판사: 한빛미디어

Score /5: ⭐️⭐️⭐️⭐️⭐️


1. 간략 정리

GAN에 대한 집중 탐구서

  • 보통 기술 스택을 선택하거나 사용하는 Why 관점으로 시작하는 책이 없는데 이 책은 철저하게 왜 써야 하는지 부터 하나씩 풀어서 설명해 주는 귀중한 책
  • 기초부터 차근차근 살피면서 넘어갈 수 있음
  • 컬러! 책이며 종이 재질도 상당히 좋음 (책 페이지 잡고 넘기는 느낌 굿!)

 

가벼운 두께, 그리고 컬러인 책 재질!

 

2. 좋았던 부분은

GAN에 대한 이해를 다양한 관점으로 합니다.

GAN에 대한 이해를 하기 위해서 블럭을 쌓아 가듯이 차근차근하게, 그렇다고 내용이 허술하지 않도록 세밀한 구성으로 독자를 맞이하는 느낌이 좋았습니다.

그리고 상당한 양의 그림을 통해서 독자가 직관적으로 이해할 수 있도록 배려합니다. 이 부분은 너무 좋네요. 개인적으로 글보다 그림이 더 직관적이기 때문이죠.

3. 조금 더 있었으면 하는 부분은

케라스 문법 및 파이썬에 대한 내용은 알고 있다고 가정합니다.

해당 책은 얇은 만큼 케라스나 파이썬 문법에 대한 내용은 짚고 가진 않습니다. 그래서 파이썬이나 케라스에 지식이 없을 경우 해당 언어 및 프레임워크를 병행해서 공부해야 합니다.

이 부분은 조금 아쉬울 순 있으나 '컬러인 재질 및 본질에 집중하는 면에서는 나쁘지 않다' 라고 생각합니다.

4. 정리

머신러닝 기법은 상당히 많은 알고리즘 및 기법등이 존재합니다. 하지만 GAN은 비교적 최근에 나온 이론이고 해당 분야의 발전 범위는 무궁무진합니다. 책 자체도 두껍지 않으며 차분하게 GAN에 대한 이해를 하고 싶을 때는 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의 기본 개념이나 동작원리를 이해하기에 충분한 책이라고 생각한다. 특히 좀더 상세한 이론적 내용이나, 이미지처리에 딱 초점이 맞춰진 예제를 통해서 설명된 부분은 해당 부분에 궁금증을 느낄 사람들에게는 어느 정도 가이드가 되지 않을까 생각한다.

 

 

출처: https://talkingaboutme.tistory.com/entry/Book-GANs-in-Action [자신에 대한 고찰]

GAN(Generative Adversarial Network)은 비지도 학습에 사용되는 인공지능 알고리즘으로, 제로섬 게임 틀 안에서 서로 경쟁하는 두 개의 신경 네트워크 시스템에 의해 구현된다.

두 개의 네트워크는 각각 생성자, 판별자로 불리는데 생성자는 새로운 데이터를 생성하는 네트워크이고 판별자는 가짜 데이터를 실제 데이터와 구별하는 네트워크이다.

생성자와 판별자는 서로 이기려는 경쟁을 지속한다. 마치 위조범이 더욱 그럴듯한 위작을 만들면 판별자가 위조품을 잡아내는 식의 경쟁이다.

GAN

본 도서는 워낙 유명한 In Action 시리즈 중 하나로 시리즈의 다른 책들과는 다르게 책의 분량이 슬림하다는 것이 신기했다. 책을 다 읽고 나중에 알게 된 사실이지만 예제의 일부를 텐서플로 허브(TFH)를 활용하기 때문이다.

아무래도 방대한 이론 설명, 수식의 전개, 복잡한 코드 구현으로 부터 벗어나 보다 중요한 핵심과 전체의 맥락에 집중할 수 있도록 저자의 의도가 이끈 구성이 아닌가 싶다.

그래서인지 곳곳에 다소 썰렁한(?) 개발자들의 농담이 숨어있다. 저자도 서문에서 일부러 이런 컨셉을 잡고 있음을 밝혔는데 취향이 비슷한 나로써는 요소요소 흥미롭게 읽을 수 있는 장치였다. 예를 들면 아래 그림처럼 말이다.

썰렁

이런 구성 측면 외에도 책이 마음에 들었던 점 한가지는 다양한 GAN의 모델을 소개하고 있다는 점이다. 책에서 다루고 있는 GAN과 관련된 모델만 해도 AE, VAE, GAN, DCGAN, MMGAN, NSGAN, WGAN, WGAN-GP, ProGAN, SGAN, CGAN, CycleGAN, RGAN, SAGAN, BigGAN에 이른다.

물론 하나하나의 모델을 이론적으로 자세히 알아보고 심층있게 구현하는 파트는 별로 없다. 필요한 모델의 레퍼런스는 이미 인터넷과 논문 등 널려있기 때문에, 인 액션 시리즈의 취지대로 전체 흐름을 파악하고 활용하는 스스로의 메타지식을 갖추는데 주안점을 두고 있는 듯 하다.

위에서 언급한 GAN의 여러 기법들을 모두 정리하고 싶으나 그러기엔 리뷰 분량에 걸맞지 않은 것 같아 책을 읽으며 인상깊었던 점을 중심으로 간략하게 정리해보려 한다.

GAN은 수학적으로 쉽지 않은 모델이기에 입문자들이 바로 이해하기 어렵다. 때문에 다른 GAN 서적들과 비슷하게 먼저 오토인코더 및 변이형 오토인코더를 설명하여 생성 모델을 이해하는데 초점을 맞춘 후 출발한다.

AE, VAE, GAN의 모델의 차이점을 명확하게 설명하고 있으며 아래 나오는 그림으로 명확하게 정리할 수 있다.

GAN과 AE차이

AE가 GAN이 탄생하는데 좋은 아이디어가 되었지만 그럼에도 GAN이 필연적으로 활용될 수 밖에 없는 이유에 대한 설명도 다루고 있다.

아래 그림과 같이 VAE 모델은 최대 가능도 추정을 적용해 분포의 모드가 하나라고 추정하기에 잘못된 결론이 이르게된다. 즉, 서로 다른 두 분포가 있다는 점을 알지 못하기에 점 추정 근처에 꼬리가 두꺼운 정규분포를 형성한다.최대가능도추정

개인적으로 이 현상을 예전에 겪었을 때 잘못된 결과에 대한 원인을 쉽게 알지 못했다. 주위 지인에게 물어 꼬리가 두꺼운 정규분포의 결과로 원인을 추정하고 대충 알고 넘긴 부분인데 책 전반에 걸쳐 이런 통계학과 딥러닝의 경계에 필요한 지식들이 두루 소개되고 있어 인상깊었고 많은 도움이 되었다.

이어서 GAN 기본 모델으로 MNIST 손글씨를 흉내내는 예제를 실습하게 된다. 이를 통해 생성자 G와 판별자 D 각각의 비용함수 J를 정의하고 포드 피워드 신경망으로 훈련값을 갱신하는 절차를 상세히 알 수 있다.

결론적으로 생성자는 판별자의 거짓 양성을 최대화하고, 판별자는 거짓 양성과 거짓 음성 분류를 최소화하는데 목적을 두고 있음을 파악할 수 있다.

다음으로 GAN의 기본 모델에 CNN 모델을 결합한 DCGAN으로 MNIST 이미지를 생성하는 실습을하게 되는데 기본 모델에 비해 화질 등의 성능이 얼마나 개선되는지 뚜렷하게 확인할 수 있다. 이 과정에서 배치 정규화에 대해 심도있게 학습할 수 있다.

5장은 GAN의 핵심을 잘 전달하고 있는 장으로 개인적으로 가장 마음에 드는 파트이다. MMGAN비포화GAN(NSGAN), 와서스테인(EM) 거리를 종료 기준으로 활용한 WGAN 등의 비교를 통해 최근에 발전한 GAN의 핵심을 간략하고 쉽게 설명하고 있다.(물론 딥러닝 세계의 속도가 너무 빨라 이젠 최근에 등장한 기술이라 말하기 어려운 고전이 되어버린 것 같은 느낌이다.)

GAN핵심

6장에서는 고해상도 층의 점진적 향상을 통해 Full HD 화질의 사진을 생성할 수 있는 ProGAN을 학습한다. 이 파트에는 앞서 언급했던 텐서플로 허브를 활용하게 되는데 다른 책에선 아직 보지 못했던 방법인지라 이번 장을 통해 유용함을 체감할 수 있어 좋았다.

TFH

구글의 AutoML, 아마존의 세이지메이커 등에서도 보이는 트렌드이기에 익혀두면 좋은 기술이며 나아가 복잡한 코드 구현으로 숲을 잃고 헤매이지 않도록 보다 연구의 중요 아이디어에 집중할 수 있는 장점이 있다.

이어서 적은 레이블로도 높은 분류 정확도를 달성할 수 있는 SGAN, 훈련 중 레이블 부가정보를 활용하여 이미지 변환의 토대를 제공한 CGAN, 마지막으로 사과를 오렌지로 만드는 마법같은 CycleGAN을 실습한다.

실습과정은 이것으로 마치고 파트3에서 앞으로 배울 것들에 대한 소개가 이어진다. 딥러닝 왕초보 시절 학습 데이터에 불순한 의도를 입력해도 원하는대로 동작하는 모델이 생성될 수 있을까 궁금했었는데 역시나 GAN 모델의 해킹이라 할 수 있는 적대 샘플에 대해 다뤄본다.

GAN이 실제 활용되는 의료, 패션 분야의 비즈니스 모델 및 전망에 대해서도 살펴보고 마지막으로 위에서 구현한 모델보다 한단계 발전한 RGAN, SAGAN, BigGAN을 소개한다.

GAN은 과학보다는 예술에 가깝다는 명언을 끝으로 본 도서의 대단원도 막을 내린다.

앞서 언급했듯 전반적인 GAN의 발전사를 알맹이만 쏙쏙 빼먹는 느낌이 든다. 공부할 것이 많은 딥러닝의 세계에 TFH를 활용한 전달 방식도 마음에 들었다. GAN의 연구 및 실무자로 입문하는 분들께는 짧은 시간 대비 효율적인 학습 효과를 얻을 수 있을거란 생각이 들기에 누구보다 GAN 입문자에게 이 책을 추천하고 싶다.

KakaoTalk_20201023_150851370.jpg

 

철저하게 GAN이 무엇인지에 대해 설명해준 책 입니다.

시중에 나와있는 여러가지 머신러닝 & 딥러닝 책들을 보면 이것저것 유명한 알고리즘을 소개해주는 경우가 대부분입니다.

그러나 이 책은 그런 책들과는 달리 대상 독자를 머신러닝을 어느정도 해본 사람을 삼습니다.

따라서 기본적인 파이썬 프로그래밍을 할 줄 아는 사람이어야 하며 최소한의 머신러닝 수학지식이 있어야합니다.

 

처음 GAN 소개를 시작으로 DCGAN, ProGAN, SGAN, CGAN, CycleGAN까지 다양한 GAN에 대해서 다룹니다.

목차만 보더라도 알 수 있듯이 철저하게 GAN에 대해서만 다룹니다.

가장 마음에 들었던 점은 예제 코드가 많으며

책에 소개된 예시 코드에서 각 줄마다 어떤 일을 하는지에 대한 설명이 적혀있다는 것 입니다.

 

나름대로 최신 GAN에 대해서 다루어진 책 같지만 가장 최신 기술은 StyleGAN이나 GauGAN은 간단하게 언급만 하고 넘어간다.

특히 개인적으로 기대했던 StarGAN은 단어조차 나오지 않는다.

그러나 책에서 설명이 적혀있듯이 이 분야는 매우 빠르게 변하기 때문에 기초지식이 가장 중요하다.

따라서 저자의 말대로 이런 논문들을 이해하는 데 필요한 모든 내용은 책을 완독하면 익힐 수 있다고 생각된다.

 

또한 저자는 모든 사람이 GAN의 가능성과 남용에 대해 이해할 수 있도록 이 책을 집필했다고 한다.

대표적으로 딥페이크 같은 기술이 그렇다.

기술이 발전하지 못하도록 막는 것은 불가능하기 때문에, 우리는 기술의 능력을 먼저 이해하고 있어야 한다는 것이다. 

GAN을 아는 사람이 많아진다면 기존에 이를 악의적으로 사용하던 사람들도 더는 다른 사람을 쉽게 속일 수 없기 때문이다. 

 

파이썬 언어는 마음에 들지 않지만 가장 빠르게 결과를 보기 위해서는 파이썬만한게 없다고 생각한다.

나 역시 저자의 바램대로 기술의 악용을 파악하기 위해서 먼저 기술의 능력과 한계를 이해할려고 노력 중이다.

책 내용도 훌륭하였지만 집필 의도가 굉장히 마음에 든 책이였다.

 

 

-본 리뷰는 한빛미디어로부터 책을 지원받아 작성된 리뷰입니다-

 

 

 

IMG_8427.jpg

 

 

GAN은 최근에 주목받는 딥러닝 기술 중에 하나입니다.

 

그동안 GAN을 공부함에 있어서 주로 인터넷을 이용하던가 아니면 논문을 읽으면서 어렴풋이 개념을 이해했었습니다.

 

프로젝트에 GAN을 도입을 검토해야 하고 있던 중에 "GAN인 액션" 이란 책을 접하게 되었습니다.

 

이 책의 특징은 GAN의 알고리즘 자체를 마치 이야기하듯 이해하기 쉽게 설명을 해놨다는 점입니다.

 

이 책은 GAN을 소개하면서 시작합니다. 오토 인코더와 naive GAN 그리고 CNN을 이용한 DCGAN을 설명합니다. 

IMG_8428.jpg

 

여러 가지 GAN 알고리즘을 컬러로 된 그림과 핵심만 간추린 코드 블록을 곁들이니 한결 이해하기 쉬웠습니다.

 

5장의 GAN 훈련의 어려움과 노하우 부분은 앞으로 프로젝트에 GAN을 적용할 때 주의해서 봐야 할 부분입니다.

GAN 학습의 어려운 점을 설명하고 DCGAN의 손실 함수를 개선한 WGAN에 대해 설명하면서 훈련 노하우에 대해 설명을 합니다.

 

11장의 의료와 패션 분야에서 어떻게 사용되는지 설명을 통해 앞으로 어떻게 GAN을 이용하면 좋을지 어렴풋이 머릿속에 그려지게 되었습니다.

 

한 가지 아쉬운 점은 최근 주목받고 있는 StyleGAN도 이런 식으로 설명을 해줬으면 좋겠다는 생각이 들었습니다. 개정판을 기대해 봅니다.

 



 

리뷰

 

 


이번 달 리뷰 할 책으로 받게 된 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에 대해서 아주 자세한 설명을 볼 수 있었고, 기계학습 과 관련된 내용인 만큼 난이도가 있는 것은 사실입니다. 책을 구입하시기 전에 꼭 확인하시고 구입하시는 것을 추천드립니다.

 

- 한빛미디어로부터 책을 지원 받아 작성 된 리뷰 입니다. 

 

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 상품명 :
GAN 인 액션
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
GAN 인 액션
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
GAN 인 액션
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 상품1