리뷰에 앞서 본 리뷰는 한빛 출판 네트워크에서 진행한 ‘나는 리뷰어다’ 이벤트에서 제공받은 책으로 진행한 것을 밝힙니다.
이 책의 제목만 보았을 때, 또 한 권의, 시중에 나온 많은 딥러닝 책들과 유사한 책이 나왔을 거라 생각을 했다. 하지만 내용을 읽어 나가면서, 생각과는 다르다는 판단을 하였다.
시중에 나와 있는 많은 책들이 기초적인 Python, iPython 사용법, logistic regression, softmax classification, activation function, backpropagation, dropout, CNN, RNN 등등을 다루고 있다. 이 때 기초적인 설명에 많은 지면을 할애하되, 수학적인 어려움을 느낄 수 있는 부분들에 대해서는 최대한 쉽게 설명하거나 스킵하는 경우도 많이 있다. 하지만 이 책은 그 보다는 좀 더 본격적으로 딥러닝의 내용을 다루고 있다는 생각이 든다.
이 책을 제대로 보기 위해서는 기초적인 machine learning 및 python 사용법은 익히고 있어야 하며, 미적분 및 선형대수에 대해서도 지식이 필요하다고 생각된다. 이 부분은 책 서두에도 저자도 밝히고 있다.
이러한 부분이 이 책과 다른 기초를 기술한 책들과는 다른 부분이라고 생각된다. 또 이 부분이 다른 책들에 비해 가지는 장점이라 생각한다. 기초적인 내용들의 설명을 줄이고 수식에 대한 설명이 필요한 부분에 대해서는 꼼꼼히 설명을 하고, 필요하면 이해를 돕기위한 그림, 도표를 사용하고 있다. 또 Google의 Tensorflow를 이용해 실제로 구현을 어떻게 해야하는 지에 대해서도 설명한다.
이 책은 앞서 나열한 여러 책에서 상세히 설명하는 기초적인 부분에 대해서 많은 설명을 하지는 않는다. 이 책의 1~3장에서 상당히 빠른 속도로 기초 개념에 대한 설명을 하고 넘어간다. 3개 장을 할애하여 설명을 하는데 그 정도면 되는 것 아닌가라고 생각할 수도 있다. 하지만 실제 읽어보면 다른 책을 참고할 필요성을 느낄 수도 있을 거라는 생각이 들었다.
4장에서는 학습률 최적화를 위한 여러가지 사례와 설명 등이 나오지만 뭔가 모르게 많이 나열을 하고 끝나버린다. 신경망을 학습 시킬 때의 문제점, 성능 등을 설명하며 모멤텀, RMSProp, Adam optimizer에 대한 설명을 수식과 함께 설명을 하고 있으나 전반적인 소개를 하고 지나가는 느낌이다.
5장과 6장은 CNN에 대한 설명이 그리고 7장과 8장은 RNN 에 대해 기술하고 있다.각각 전체적인 큰 그림을 먼저 제시하기 보다는 하나하나 단계별로 설명을 해 나가면서 이를 위해 어떤 것들이 필요한 지를 수식, 그림 및 도표 등을 이용해 설명하고 있다.
마지막 장(9장)은 강화 학습 관련 부분으로, 이 책에서 다루지 못한 강화 학습의 기본 원리를 설명하고 있다.
책을 계속 읽어나가면서 느낀 점은, 복잡한 내용을 하나 하나 단계적으로 접근해가며 설명을 하고 있고, 관련된 참고할 내용들을 다양하게 기술하고 있어 좀 더 깊게 딥러닝을 공부하려는 분들에게 좋은 참고서가 될 수 있을 거라는 생각을 하였다. 하지만 딥 러닝에 대한 지식이 부족해서 인지, 기초적인 부분에 대해서도 좀 더 많은 설명이 있었으면 더 좋았을 거라는 아쉬움이 있다. 그래서 이 책을 읽기 전에 "파이썬 라이브러리를 이용한 머신러닝", "밑바닥부터 시작하는 딥러닝" 과 같은 책을 먼저 읽고 보는 것이, 내용 이해에 도움이 될 라는 생각이 든다.
책 내용과는 별개로 개인적으로 아쉬운 점을 들어보면
첫째로 책에 오탈자가 여러 부분 있었다. 예전 한빛 미디어 책들을 읽을 때에도, 여러 곳에 오탈자가 있었을 것이라 생각하는데, 이 책이 좀 더 많다는 느낌을 받았다. 독자들이 등록한 관련 내용은, 한빛 미디어 도서 페이지(http://www.hanbit.co.kr/store/books/look.php?p_code=B5128867520&tid=misprint)에서 확인 가능하다. 하지만 모든 부분이 다 체크될 수 없기 때문에, 다음 쇄 나올 때 좀 더 꼼꼼히 수정이 되었으면 하는 바램이다.
둘째로 한빛 미디어 사이트에서 책의 예제 코드들을 챕터별로 분류해서 제공해 주었으면 더 좋았으리라는 아쉬움이 있다. github 사이트(https://github.com/darksigma/Fundamentals-of-Deep-Learning-Book)에 있는 저자의 예제 코드가 챕터 별로 되어 있지 않기 때문이다. 한빛 미디어 사이트에서 다운 받을 수 있는 데이터는, 책 내용 중 현재 다운이 불가능한 CoNLL-2000 데이터셋만 있다. 책 내용 중 코드에 해당하는 파일 이름이 명기 되어 있지 않는 부분들이 있어, 예제 코드를 github 사이트에서 찾는 것이 좀 번거로웠다. 그리고 책에 있는 예제 코드에 오류가 있는 부분들이 있어, 책의 코드를 일일이 typing 하면서 실행해 본다면, 에러가 나는 부분에 대해서는 github 예제 코드를 확인해 보아야 한다.