본문 바로가기

책읽기

[친절한 딥러닝 수학](다테이시 겐고 著, 김형민 譯, 2021)

  • 표지와 구성
    • 인공 신경망 이해를 위한 기초 수학이라는 부제와 함께 친절한 딥러닝 수학이라는 제목이 크게 써있다.
    • 두 명의 젊은 여성, 그리고 한 명의 남성이 만화체로 그려져 있다.
    • 300페이지 가량의 부담없는 두께, 태권도 노란 띠나 병아리를 연상시키는 밝은 노란색의 표지.
    • 그리고 대화를 하듯 가끔 도넛도 사오면서 진행되는 질답형식의 본문.
    • 누가 봐도 "딥러닝 초보자님들! 이 책을 집으세요!" 라는 느낌의 디자인.
    • 책을 보내주신 한빛미디어에는 미안하지만 말리고 싶다. 

 

  • 책은 크게 두 부분으로 나뉜다.
    • 전반부는 수학. 경사하강법과 오차역전파를 다룬다.
    • 수식을 하나하나 자세하게 풀어서 설명해준다.
    • 후반부는 코딩. 파이썬으로 밑바닥부터 신경망을 구현한다.
    • 코드를 한 줄 한 줄 친절하게 읽어준다.
    • 그러나 둘 다 초보자가 보고 습득할 레벨은 아닌 것 같다.

 

  • Chapter 1은 표지와 내용이 제법 일치한다.
    • 신경망의 구조를 정말 친절히 알려준다.
    • 인공지능의 분류, 은닉층이 뭔지 등등

 

  • 수학 부분 (Chapter 2 ~ 4)
    • chapter 2 순전파까지가 이 책을 처음으로 딥러닝을 공부하려는 독자가 기대하는 레벨이 아닐까 싶다.
    • chapter 3 역전파에서 편미분이 등장하는 것까지 괜찮다. 피할 수 없다고 생각한다.
    • 그 뒤부터 페이지를 차지하는 수식의 비중이 점점 커지는데, 행렬 연산을 죄다 풀어서 보여주는 곳에서부터 뭔가 잘못 되어간다는 느낌을 받기 시작한다.
    • 정말 초보자에게 읽힐 생각이었다면 그 전에 첨자를 위 아래에 몇개씩 달고 다니는 그리스 문자들이 등장하는 부분부터 다른 방식을 사용했어야 하는게 아닌가 싶다.
    • 저자도 이 부분들이 독자가 어려워하는 부분이라는 것을 잘 알고 있는 것으로 보인다. 
    • 최대한 식을 간단하게 축약하려고 노력하고 있고 각 항과 기호의 의미를 자세하게 설명하고 있기 때문에 이 부분이 그나마 위안이 된다.
    • 그런데, 그렇다면 chapter 4 합성곱 신경망을 굳이 들어갔어야 하나 하는 의문이 생긴다.
    • 한 층만 해도 합성곱 필터에 붙는 첨자는 벌써 4개 (채널, 가로, 세로, 필터). 
    • 세 줄에 걸쳐 적힌 수식을 "좀 어려웠나? 이렇게 정리할 수 있어" 라고 정리한 식은 3중 시그마.
    • 이 책을 착실히 따라가서 수식을 볼 수 있게 되었다고 해도 책에서 목표로 하는 초보자에게는 너무 급격한 진도가 아닌가 싶다. 
    • learning rate가 너무 크면 학습이 어려운데. 하는 걱정이 든다. 

 

  • 코딩 부분 (Chapter 5)
    • 파이썬과 numpy를 사용해서 FCN(정사각형 찾기)와 CNN(MNIST)을 구현한다.
    • 사실 70페이지가 안 되는 분량에 소스코드와 그림이 모두 담겨있고,
    • 그 와중에 등장인물들이 대화를 해가며 코드를 설명한 정리 능력에 감탄했다.
    • 그런데 파이썬 문법과 numpy 문법에 대한 설명은 하나도 없고, 앞에서 나온 수식 구현에 집중한다.
    • 바꾸어 말하면 파이썬에서 함수를 만들어 쓰는 법이나 numpy로 내적(np.dot), 전치(np.transpose)하는 정도는 알고 있어야 한다.
    • 여기에서도 CNN이 들어가는 바람에 난이도가 급상승한 느낌이 든다. 

 

  • 대상 독자가 누구인지 잘 모르겠다.
    • 위에서 내용을 대강 정리했지만, 이 책을 막힘 없이 따라갈 수 있으려면 numpy에 어느 정도 익숙해야 한다.
    • 수학을 배우는 수학책이라는 관점에서도 행렬 연산시그마 정도는 익숙해야 하고, 위아래 첨자가 여러개 붙은 그리스 문자를 보고도 겁을 내지 말아야 한다.
    • 내 경험에 비추어 판단하면 딥러닝에 입문하는 이공대생 정도가 여기에 가깝다.
    • 그런데 numpy에 익숙한 사람을 상대로 .py도 주피터 노트북도 아닌 대화형 셀(>>>)에서 코드를 짜게 하고,
    • 책 뒤에 부록으로 실린 수학 기초극한과 미분의 개념, 행렬 곱셈 방법이 실려 있다.
    • 게다가 수학 기초 뒤에는 파이썬 기초가 있는데 숫자 계산 방법, import numpy as np 하는 방법 등이 친절하게 실려 있다.
    • 이런걸 모르는 사람이라면 본문 내용을 전혀 따라갈 수 없을 게 분명하다.

 

  • 미안하지만 솔직하게 말해야 할 것 같다.
    • 딥러닝에 필요한 수학을 배우고 싶다면 김성훈 교수님이나 Andrew Ng 교수님의 강좌가 나을 것 같습니다.
    • 밑바닥부터 뭔가 만들어보고 싶다면 같은 출판사에서 나온 밑바닥부터 시작하는 딥러닝이 나을 것 같습니다.

 

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