본문 바로가기

책읽기

[GAN 첫걸음](타리크 라시드 著, 고락윤 譯, 2021)

  • 이 책을 펴기 전 내 상태를 한 마디로 표현하면 이렇다.
def __init__(self):
	super().__init__()
    
    self.데이터분석_경험 = True
    self.머신러닝_경험 = True
    self.numpy_경험 = True
    self.pandas_경험 = True
    self.matplotlib_경험 = True
    
    # epsilon @numpy
    eps = np.finfo("float").eps  
    
    self.딥러닝_경험 = eps
    self.텐서플로_경험 = eps
    self.케라스_경험 = eps
    
    # out of my world
    self.파이토치_경험 = None
    self.GAN_경험 = None
    

 

    • 글자 그대로, 데이터분석과 (딥러닝 제외) 머신러닝을 주로 해 왔다.
      • 주어진 상황이 그랬다.
      • 딥러닝을 해야지 해야지 하면서 눈앞의 프로젝트에 치였고
      • 연구데이터를 다루다 보니 전처리에 집중하는 일이 많았다.
      • 최신의 알고리즘보다 고전 방정식 하나를 더 적용하는게 이득이었고
      • 잘 맞는 예측결과보다 물리적 설명력이 더 중요할 뿐이었다.

 

  • 하지만 최근 백만 단위의 데이터를 다루면서 딥러닝 욕심과 필요성이 생겼다.
    • 대세는 파이토치라는 말을 들은지 오래였고
    • 데이터 생성이 필요해지면서 GAN에 관심이 갔다.
    • 그리고 이 책을 만났다.

 

    • 저 상태의 내게 잘 맞는 책이다.
      • 경험이 없다고 pytorch와 GAN을 아예 모르는 것은 아니다.
      • 여기저기서 개념 수준의 이야기는 많이 주워들었는데 손 끝에 옮겨본 적이 없을 뿐.
      • 첫걸음을 표방하는 이 책은 딱 나에게 맞는 수준의 난이도와 설명을 제공하고 있다.
      • 나와 비슷한 수준의 독자에게는 적절한 도움이 되리라 생각한다.

 

  • pytorch 문법과 GAN 개념 설명이 간결하다.
    • 저자의 전작인 신경망 첫걸음의 후속작이다.
    • 디테일이 생략되어 눈 앞의 코드를 이해하는데 집중하게 해 준다.
    • pytorch 코드 설명이 최소한에 머무른다.
    • 문법이 어렵지 않기는 하지만 tensorflow와 keras 경험이 없었더라면 조금은 어려웠을지도 모르겠다.
    • GAN도 복잡한 수식을 가지고 설명하지 않는다.
    • 오토인코더를 반으로 자른 encoder와 decoder를 구현하는 것으로 설명을 시작한다.
    • 모드 붕괴(mode collapse)를 해결하는 과정마저도 코드 업데이트를 통해 간단하게 짚는다.
    • 수식이 전혀 없기 때문에 기초를 중시하는 분이라면 반가워하지 않을지도 모르겠다.

 

    • 하루 안에 pytorch와 GAN의 첫걸음을 뗄 수 있다.
      • 집중할 수만 있다면, 이 책 전체를 읽고 모든 코드를 만들어보는 데 하루가 걸리지 않는다.
      • 과거 seaborn 튜토리얼 전체를 필사하는 데 이틀이 꼬박 걸린 적이 있다.
      • 하루 : 이틀 이라는 시간 비율 뿐 아니라
      • pytorch + GAN : 시각화 라는 무게감을 생각하면 말도 안되는 쾌속이다.
      • 첫걸음이라는 제목처럼 입문서라는 목적에 걸맞는 구성과 분량이다.

 

    • 딱 입문서. 거기까지.
      • 어떤 일을 할 때 가장 어려운 점은 "시작하려는 마음을 먹는 것"이고,
      • 시작하려는 마음을 먹은 다음에는 "내가 뭔가 하고 있다"는 느낌을 받기까지가 참 지루하다.
      • 이 책은 이 두 가지를 단기간에 넘어가게 해 줌으로써 심리적인 장벽을 효과적으로 낮춰준다.
      • 이것으로 B5 크기, 280 페이지 분량의 입문서로서는 역할을 충실히 다 하고 있다고 생각한다. 
      • 하지만 내가 pytorch로 뭔가를 하기에,
        GAN을 내 업무에 적용하기에 충분할 것이라는 생각은 하지 않는다.
      • pytorch는 공홈을 뒤지고 커뮤니티에 질문을 쏟아내야 할 것이고,
        GAN은 "왜 내 데이터는 안되는거야" 하다가 수식의 세계에 한번쯤은 발을 담궈야 할 것이다.

 

    • 사실 뭔가 홀린 느낌도 든다.
      • 학부때 열역학 강의를 하신 교수님께서 강의를 정말 잘 하셨더랬다.
      • 그 어려운 열역학 개념부터 예시까지 수업시간에 듣고 있으면 아~ 하고 다 아는 것 같은데,
      • 막상 시험공부를 하면서 혼자 보면 이게 무슨 소리더라 하는 나 혼자 바보된 듯한 느낌.
      • 이 책을 1회독하고 덮은 지금 느낌이 학부 열역학 수업을 마친 뒤의 쉬는시간 같다.
      • pytorch를 멀리서만 볼 때의 막연한 두려움이 사라진 덕에 내일 출근하면 곧장 import torch를 할테지만,
      • 분명히 뭔가 제대로 돌아가지 않는 구석이 있을 것임을 경험으로 알고 있기에 괜히 찜찜하다.
      • 그리고 그 찜찜함은 지금 이후의 내 손가락 움직임으로 메워나갈 수 밖에 없음을 알고 있다.

 

    • 이런 분께 권합니다.
      • 파이토치, GAN을 멀리서 바라보며 해야 되는데, 해야 되는데만 수 개월째 반복해오신 분들.
      • 당장 시작하세요. 그 날 안에 밀린 숙제를 해결하는 시원함을 얻을 수 있습니다.

 

  • 이런 분은 한번 고민해보시는 게 좋을 것 같습니다.
    • GAN에 대해서 제대로 알고 싶으신 분들.
    • 이 책이 나쁘다는 뜻이 아니라, 아마 이 책으로는 성이 차지 않으실 것 같습니다.
    • 이 책을 디딤돌 삼아 다른 책으로 점프하시는 용도로는 권해드리고 싶습니다.
    • 저도 그럴 겁니다. :)

 

※ 한빛미디어 2021 도서 서평단 "나는 리뷰어다"의 일원으로 도서를 제공받아 작성한 리뷰입니다.