15 April 2018

이 책은 제목에서 처음 배우는이라는 문구에서 알 수 있듯이 딥러닝 입문자를 위한 수학책이다. 딥러닝 책이지만 이 책은 수학책이기 때문에 코드가 나오지 않고 수학 공식, 도표 그리고 엑셀로 수학을 설명하고 있다.

딥러닝 책 중에는 수학 공식을 거의 다루지 않은 책도 있고, 나 또한 딥러닝을 공부하며 수학에 대한 이해는 뒤로 미루고 코드로 이해하려고 애를 썼다.

수포자이기도 하고 수많은 수학 공식과 낯선 수학 용어와 확률 통계를 이해하는데 많은 어려움이 있었다. 그래서 그간 봐왔던 머신러닝과 딥러닝에 등장하는 수학 공식은 낯선 수학기호로 되어있고 기본적인 대학수학을 이해하고 있다는 전제하에 쓰여 있기 때문에 설명도 자세하지 않아 그림을 보듯 지나치기를 반복해 왔다. 이렇게 여러 알고리즘에 등장하는 수학을 제대로 이해하지 못하고 넘어가는 것이 늘 마음에 부담으로 남곤했다. 그래서 수학을 공부해 봐야겠다는 생각으로 여러 수학책이나 위키피디아의 수학 공식들을 찾아보기도 했지만 정리되지 않은 수학 기호와 공식들이 머릿속에 떠다니는 느낌이었다.

늘 쉽게 수학을 공부할 수 있는 책을 찾았는데 기초부터 차근차근 설명하는 책이 많지 않았다.

처음 배우는 딥러닝 수학은 이런 어려움을 겪던 내게 그나마 지금까지 봐온 데이터 사이언스와 관련된 수학책 중 가장 부담이 적었다. 이 책에 나오는 수학 공식 또한 수포자로서 이해하기 쉬운 건 아니다. 하지만 되도록이면 고등학교 수학 수준의 기호를 사용하였고 복잡한 코드 대신 엑셀을 통해 설명하고 있다.

딥러닝 책이지만 코드가 나오지 않는다는 것도 이 책의 큰 특징일 것이다.

가장 단순한 뉴런의 모습을 수학적으로 구현한 것부터 시작해서 악마라는 캐릭터를 도입해서 신경망을 이해할 수 있도록 하고 있다.

엑셀도 책 후반부에서 오차역전파법을 설명하며 나오고 그 전에는 대부분 기초 수학을 그림을 통해 쉽게 설명하려고 노력하고 있다. 딥러닝 책이기 때문에 당연히 코드를 통해 설명하리라 생각했던 예측이 완전히 빗나갔다.

경사하강법의 편미분에 들어가기 전까지는 벡터, 행렬, 내적, 시그마 등 딥러닝뿐만 아니라 머신러닝에도 꼭 필요한 기초수학을 설명하고 있다.

그래서 중학교 이후의 수학이 잘 기억나지 않더라도 이 책의 친절한 행렬과 미분에 대한 설명을 통해 기억을 더듬어 볼 수 있었다.

머신러닝에 입문하며 Numpy를 통해 행렬의 기초 연산을 이해하고 수학을 넘파이로 다시 배웠다는 생각이 들었다. 스칼라, 벡터, 행렬, 텐서 등 여러 용어들이 난무해서 이 용어들에 익숙해지는데도 시간이 걸렸는데 이 책을 보며 중학교때 모눈지에 1,2차 방정식을 그려 이해하던 기억이 떠올랐다.

좀 더 쉬운내용이나 확률 통계와 관련된 기초 수학 내용도 좀 더 있었으면 아쉬움도 있지만 그래도 근래에 봤던 수학책 중에는 가장 이해가 잘되는 책이었다.