딥러닝이라는 것을 이해하기 위해 알고 있어야 하는 기초 이론들의 개념을 설명하는 책입니다. 좀 더 자세하게는 퍼셉트론, 신경망, 딥러닝 순으로 목차가 구성되어 있습니다. 아직 전부는 읽지 못했고 4장 신경망 학습까지 읽으면서 예제 코드를 따라해 보고 있는데, 책을 읽으면서 느낀 점을 써보겠습니다.
몇 년 전에 대학 인공지능 수업을 수강할 때 퍼셉트론을 배우긴 했는데, 그 때는 퍼셉트론으로 AND, OR를 구현하는 방법을 배우고, XOR를 구현하는 숙제를 하고 넘어갔던 걸로 기억합니다. 퍼셉트론과 신경망에 막연히 관심은 있었지만 그것들을 다루는 책들은 저한테는 이해하기 너무나 어려운 것이었습니다. 그래서 언젠가 이런 걸 쉽게 설명하는 책이 나올 거야 하고 생각하고 있었는데, 정말로 몇 년 되지 않아서 지금 리뷰하는 이런 책이 나오게 되었네요.
이 책의 난이도는 다른 머신러닝 책들에 비해서는 굉장히 이해하기 쉬운 편이고 어려운 단어가 거의 없습니다. 처음 본 단어들은 대부분 설명이 충분히 되어 있기 때문에 읽는데 개념을 몰라서 찾아보는 일은 거의 없었습니다. 오라일리 번역서인데 저자가 일본인이라서인지 일본에서 출판된 다른 책들처럼 매우 세세하게 과정의 생략 없이 설명해주는 점이 좋았습니다.
이 책도 다른 머신러닝 책들처럼 파이썬을 프로그래밍 언어로 쓰고 있습니다. 쉬운 행렬 계산을 위해 파이썬 넘파이 라이브러리를 씁니다. 다만 머신러닝 라이브러리 설명서라기보다는 어떤 부분에 이런 라이브러리 함수들이 필요하고 왜 그런가를 설명해 줍니다.
3장부터는 입력층, 출력층만 있는 퍼셉트론에서 진보된 형태인 신경망을 다룹니다. 입력층, 출력층 사이에 여러 은닉층들이 있는 구조에서 출력값을 계산하는 구조를 예제 코드를 따라하면서 확인해 보니까 이해가 더 잘 되었습니다. 이 책은 특히 복잡한 구조들을 명쾌하게 드러내는 그림들이 많은 편이라서 이해에 많은 도움이 됩니다.
예제 코드는 한빛 출판사에서도 다운로드할 수 있는데, 여기에서 내려받은 예제 코드들의 주석 역시 한국어로 번역이 되어 있어서 좋았습니다. 어떤 모듈의 경우에는 책 안에서 예제 코드 안에 포함되어 있어서 불러와 쓰면 된다고 설명하고 있는데, 이런 모듈들은 데이터를 가공해주는 역할을 하므로 책의 범위를 벗어나기 때문에 일부러 설명하지 않은 것 같습니다. 나중에 예제 코드를 분석해 보면서 데이터를 가공하는 방법도 익히면 좋을 것 같습니다.
5장 이후에는 오차역전파법, CNN, 딥러닝 등을 다루는데 무리없이 이론들을 배울 수 있을 것 같아서 기대됩니다. 딥러닝 이전에 밑바닥이 되는 기초 이론을 배울 수 있는 장점이 있는 책입니다.