서평 [신경망 첫걸음]

본 포스팅은 신경망 첫걸음 에 대한 후기를 담고 있습니다. 자세한 사항은 한빛미디어 홈페이지에서 확인하실 수 있습니다.

딥러닝

몇년전 직장을 다니던 중 딥러닝이란 단어를 접했습니다. CNN기사였던 걸로 기억하는데 ‘앤드류 응과 구글이 협업을 했고 이미지와 영상을 클러스터에 수십일 학습시킨결과 고양이와 사람을 알아서 구분할 수 있었다’라는 내용이었습니다. 이 때 딥러닝이라는 용어를 처음 접할 수 있었는데요 이 때 봤던 구조도는 아래와 같았습니다.

딥러닝

그 당시엔 기계학습이 아닌 지표 추출과 데이터 분석 업무를 위주로 진행했었는데요, 그 기사를 보고 딥러닝에 대해 알고 싶고 해보고 싶은 마음을 갖게 되었습니다. 회사를 다니며 코세라의 각종 수업을 듣고 했지만 기초과목은 이해가 쉬우나 깊은 내용을 알기 어려웠고 정말 어려운 과목은 일주일 내내 잡고 있어야 겨우 따라갈 수 있는 수준이었습니다. 물론 회사원이 일주일 내내 공부만 할 수 있는 것이 아니다보니 자연스레 포기하게 되었습니다. 그러던 중 마음을 다잡고 딥러닝 자료를 일년간 꾸준히 읽으며 이해를 하기 위해 노력한 결과 어떤 흐름으로 발전해 왔는지 정도는 이해하는 수준이 되었습니다. 최근들어 딥러닝이 더욱 핫해지며 제게 어떤 책이 좋으냐 물어보시는 분들이 계셨는데요, 저도 궁금함이 생겨서 국내 서적 중 괜찮은 것은 없나 살펴보게 되었습니다. 그러다 눈에 들어온 신경망 첫걸음, 이 책은 목차를 보았을 때 처음 접근하시는 분이 읽기 좋은 책이란게 느껴졌습니다.

외국인이 한국어를 공부할 때, 처음부터 어려운 서적으로 공부하는게 아니니까요 ;)

한국어 첫걸음

신경망 첫걸음

신경망 첫걸음 수포자도 이해하는 신경망 동작 원리와 딥러닝 기초

수포자도 이해하는 신경망 동작 원리와 딥러닝 기초라는 부제가 붙었는데요, 딥러닝/뉴럴네트워크를 학습하려면 미분을 알아야 합니다. 신경망 첫걸음에서는 선형함수를 어떻게 학습하는지에 대해 미분에 대한 개념없이도 쉽게 따라갈 수 있게 설명하고 있습니다. 그리고 그 개념을 뉴럴네트워크로 연장하여 미분을 완벽히 이해하지 못하더라도 학습을 하고 테스트를 따라해 볼 수 있게 구성되어 있습니다.

이 책에서 핵심적으로 다루는 키워드는 인공 신경망, 행렬기초, 기초파이썬, 및 MNIST 숫자 인식기 로 볼 수 있습니다.

  • 인공 신경망의 경우 딥러닝에서 기초가 되는 개념인데요, SGD/Forward Propagation/Backward Propagation 등 핵심 개념을 간략하고 쉽게 설명하고 있습니다.
  • 행렬기초에서는 따로따로 하던 계산을 행렬을 통해 어떻게 묶어서 할 수 있는지 설명하고 있습니다. 책에서도 vectorize라는 표현을 하고 있는데요, 이렇게 묶어서 연산을 진행하면 컴퓨터에서 훨씬 효율적으로 연산을 처리할 수 있습니다.
  • 기초 파이썬의 경우 클래스 사용법 및 numpy 라이브러리를 통해 행렬을 어떻게 선언하고 활용할 수 있는지 설명하고 있습니다.
  • 위의 모든 과정은 사실 MNIST 숫자 인식기를 구현하기 위함인데요 구슬이 서 말이라도 꿰어야 보배라는 말이 있듯이, 이론을 실제로 테스트 해볼 수 있게 단계별 코드 구현까지 제공하고 있습니다.

사실 이 책은 영어로 된 원저 (Make Your Own Neural Network)의 번역본입니다. 저는 학부때부터 번역서를 굉장히 싫어했는데요 (한글로 번역했다지만 한문 느낌의 번역이 많았습니다), 이 책은 번역서임에도 불구하고 용어나 설명이 매끄럽게 잘 되어있습니다. 또한 책의 두께가 얇아서 하나의 주제를 쉽게 이해하고 넘어가는데 도움이 되는 것 같습니다.

신경망 두걸음

신경망 첫걸음을 완벽히 이해해서 SGD 방법론과 행렬에 대해서도 거부감이 없으시다면 그 다음 단계를 위해 아래의 자료를 추천드립니다.

저 같은 경우 Neural Networks and Deep Learning 사이트의 설명을 꾸준히 읽으며 딥러닝이 무엇인지 이해하고자 했는데요, 괜찮은 자료를 하나 붙잡고 꾸준히 보는것이 가장 중요하지 않나 생각합니다.

최근에는 Recurrent Neural Network을 넘어 Generative Adversarial Networks에 대한 연구가 활발한 것 같은데요, 이런 최신 연구를 따라가기 위해선 기초를 탄탄하게 준비해서 이론적 체력을 길러야 한다고 생각합니다.

마무리

신경망 첫걸음은 딥러닝에 대해 알고 싶지만 무엇을 공부해야할지 몰랐던 분들께 강력하게 추천드립니다. 첫술에 배부를 수 없겠지만 이 책은 첫술을 온전하게 떠먹을 수 있는 좋은 책이라 생각합니다. 이 책에 나온 내용과 예제에서 핵심 개념을 이해하셨다면 그 다음 단계로 딥러닝 관련 책을 보며 깊이를 키워나가면 좋을 것 입니다.