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

한빛출판네트워크

GAN 인 액션

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

한빛미디어

번역서

판매중

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

텐서플로 최신 버전 반영! 구글 코랩(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대 기업을 포함해 온라인 여행사, 전자상거래 업체 등에 머신러닝 기술을 제공한다. 하버드 대학교 컴퓨터 과학과를 우등으로 졸업했다.

역자

박해선

 

 

ML GDE(Machine Learning Google Developer Expert). 기계공학을 전공했지만 졸업 후엔 줄곧 코드를 읽고 쓰는 일을 했다. 텐서 플로우 블로그(tensorflow.blog)에 글을 쓰고 텐서플로 문서 번역에 기여하면서 소프트웨어와 과학의 경계를 흥미롭게 탐험하고 있다.

 

『Do it! 딥러닝 입문』(이지스퍼블리싱, 2019)을 집필했다. 

 

『미술관에 GAN 딥러닝 실전 프로젝트』(한빛미디어, 2019), 『파이썬을 활용한 머신러닝 쿡북』(한빛미디어, 2019), 『머신 러닝 교과서 with 파이썬, 사이킷런, 텐서플로』(길벗, 2019), 『파이썬 라이브러리를 활용한 머신러닝』(한빛미디어, 2019), 『케라스 창시자에게 배우는 딥러닝』(길벗, 2018), 『텐서플로 첫걸음』(한빛미디어, 2016)을 우리말로 옮겼다. 

[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 인 액션.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

     

  • 오랜만에 책 리뷰로 블로그에 돌아왔다.

    요즘 일하느라고 인터넷 사회생활(?)을 전혀 안하고 있네 ㅎㅎ

    뭐 아무튼 이번 책도 한빛미디어로 부터 지원받아서 리뷰를 하게 됬다.

    나는 이 책을 짧은 시간안에 훑어보면서 어떤 내용이 있는가 보고자 한다.

    이 글을 쓰면서 내가 예전에 GAN을 예제로 가지고 논게 있었다고 생각했는데 아니네?

    이번 기회에 이것저것 해봐야겠다.

    이 책은 말그대로 GAN에 대해서 정리한 책이다. 몇년도 인지는 기억이 안나지만

    인공지능도 뭣도 해본적도 없던 시절 페이스북에서 앞으로 GAN이라는 알고리즘이

    인공지능에서 엄청 핫할 거라는 내용의 글을 읽었었던게 기억이 난다.

    그리고 몇년 후 GAN을 이용한 다양한 예제들을 보고 나는 깜짝 놀라고야 말았다.

    생성적 적대 신경망 (Generative Adversarial Network)

    말이 참 어렵다.

    그냥 간단하게 말하자면 CNN과 같은 인공지능 알고리즘의 일종인데

    무언가를 생성한다 그것도 아주 비슷한 무언가를

    예를 들면 아래와 같은 이미지

    위의 이미지는 연예인 이미지를 가지고 만들어낸 이미지이다.

    GAN을 통해서 기존에 존재하는 데이터와 비슷한 데이터를 생성해 낼 수 있다.

    개념적으로는 이렇다.

    사람 이미지를 예로 들어 이것을 우리가 흉내내려는 샘플 데이터라고 가정을 하자

    GAN에서는 생성자와 판별자가 존재하며 각각은 인공지능 신경망과 같은 함수로 표현이 된다.

    각각의 신경자는(생성자,판별자) 자신만의 비용함수를 가지며 판별자의 손실을 사용해

    이 신경망들이 훈련한다.

    판별자는 진짜와 가짜 샘플에 대한 손실을 최소화 한다.

    생성자는 자신이 생성한 가짜 샘플을 가지고 최대한 판별자의 손실을 최대화 하도록 한다.

    반복한다.


    이러한 과정을 통해 정말 진짜와 같이 보이는 데이터들이 만들어진다.

    사람의 사진이면 사람과 같은 사진

    사람의 음성이면 사람의 음성과 같은 음성

    이런식으로 비슷한 데이터를 만들어 낸다.

    판별자는 가짜인지 진짜인지 정확하게 알아내는 것이 목적이며

    생성자는 판별자가 구분하기 힘든 샘플을 만드는 것이 목적이다.

    이런짓을 반복 함으로써 진짜와 정말 흡사한 데이터가 만들어지는 것이다.

    솔직히 난 이런 것에 관심이 별로 없다.

    내가 관심있는 것은 이것을 가지고 만들어낸 결과에 관심이 있다.

    너무나도 신기(?)하며 놀랍고 무섭기도 한 이 기술이 많은 생각을 하게 한다.

    이 기술이 보이스 피싱에 쓰이면?

    이 기술이 누군가를 속이는 작업에 사용된다면??

    (이 책에서 딥페이크는 GAN기반이 아니라고 한다.)

    마치 블랙해커와 화이트해커간의 관계를 묘사하는 것 같기도 하다. ㅎㅎ

    깃소스 9장 CycleGAN 샘플 결과 이미지

  •  

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

     

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

     

결재하기
• 문화비 소득공제 가능

배송료 안내

  • 책, 아이템 등 상품을 1만원 이상 구매시 무료배송
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

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

닫기

리뷰쓰기

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

* 리뷰 작성시 유의사항

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

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

오탈자 등록

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

도서 인증

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

* 회원가입후 도서인증을 하시면 마일리지 500점을 드립니다.

* 한빛 웹사이트에서 구입한 도서는 자동 인증됩니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한됩니다.

* 절판도서, eBook 등 일부 도서는 도서인증이 제한됩니다.

닫기

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

자료실