Books

앵버박사 2017. 11. 6. 00:52



서론

  나는 이미 만들어진 프레임워크나 플랫폼을 그냥 사용하는 것 보다는 그냥 언어 레벨에서 직접 만드는 것을 좋아한다. 일명 쌩으로 짠다고 하는데, 내가 왜 이런 행동을 하는지 이해하지 못하는 사람도 있는 듯 하다. 아마 목적의 차이일 것이라고 생각한다. 자동차로 어딘가에 가고자 하는 사람은 자동차의 조정방법을 숙지하고 운전면허를 취득할 것 이고, 자동차의 동작원리가 궁금하고 이를 직접 만들고 싶은 사람은 자동차 엔지니어가 되려고 할 것이다. 날 이해하지 못했던 사람은 전자에 속할 것이고, 나는 후자라고 할 수 있겠다. 어찌됐든 그런 의미에서 이 책은 엔지니어가 되고자 하는 나에게 가장 알맞는 책이라고 할 수 있다. 일단 제목부터가 밑바닥부터(from scratch) 시작하는 딥러닝 이다.


구성

  위에서 말한 바와 같이 이 책은 딥러닝 이론을 배우고, 밑바닥부터 최소한의 라이브러리인 numpy 정도만 사용하여 작동하는 딥러닝 코드를 구현해간다. 책의 예제코드와 별도로 Github에 제공되는 소스코드가 꽤 수준이 높아 나는 예제코드를 정리하여 나만의 딥러닝 엔진을 제작하고 있다.

  책은 처음에는 파이썬에 대한 간략한 설명과 numpy, matplotlib 같은 일부 라이브러리의 사용방법을 알려준다. 그리고 신경망의 가장 작은 형태인 퍼셉트론부터 구현을 시작하여, 활성화 함수를 배우며 신경망으로 발전시켜나가고, Loss function과 미분, Gradient descent method를 배우며 신경망을 학습시키는 방법을 배운다. 그리고 5장에서는 조금 더 빠르게 학습시키는 기술인 Backpropagation을 배우며 Fully-connected network를 완성한다. 그 이후 Optimizer, 가중치 초기화, 배치 정규화, 오버피팅 방지를 위한 L2 regularization/Dropout, 하이퍼파라미터 최적화 등의 학습 관련 추가 기술들을 배운다. 그리고 7장에서는 대망의 CNN을 배우고 구현하며, 마지막으로 딥러닝의 역사와 고속화 방안 및 활용에 대한 이야기로 마무리 한다.

  차근차근 하나씩 step by step으로 배워나가는 것이라 최종 형태의 코드는 각 5장과 7장을 가야 완성시킬 수 있다.


난이도

  처음 딥러닝 입문자에게는 조금 어려울 수 있는 구성이다. 초반에 큰 그림 없이 이게 뭐지 하면서 지칠 수 있을 것 같다. 개인적으로는 쉬운 설명의 동영상 강의를 먼저 듣고 책을 보며 직접 구현해 본다면 좋겠다.


결론

  AI 엔진을 제작하려고 했던 나의 상황에 아주 적절한 책이었고, 앞으로도 이런 from scratch 컨셉의 책이 많이 나왔으면 하는 바람이다.


별점 ★