10여년 쯤 전에 대학원에서 입자물리학을 공부했었다. 입자물리학이라는 특성(?)상 눈으로 볼 수도, 실제 데이터를 모으기도 쉽지 않기 때문에 가상으로 생성된, 엄청나게 많은 양의 시뮬레이션 데이터를 가지고 분석을 먼저 한다. 그리고 그 데이터들을 각종 컷(cut) 조건에 따라 분류해서 데이터를 줄여나간다.
기본적으로 데이터를 줄여나가는 방법은 간단하다. 질량 조건, 에너지 분포, 운동량 조건, 충돌 후 분포 조건 등 다양한 조건에 따라 특정 구간 이외의 것들을 줄여나가면 된다.
그러다가 접하게 된 것이 하나 있었는데, ANN이라는 생소한 기술이었다. 오래전 일이라 잘 기억은 나지 않지만 당시에 그게 뭔지도 모르고 라이브러리를 적용했던 것 같다. 매뉴얼에 나온 대로 여러 변수들을 대입해서 트레이닝 시키고, 그 결과로 데이터 시뮬레이션을 돌리면 여러 개의 변수가 한 개의 변수로 쏙 튀어 나왔다. 그리고 그 변수를 가지고 컷을 적용시키면 끝이었다.
일단 결과가 나왔으니 그걸로 분석을 하기는 했는데, 궁금한 점이 많았다. 이게 뭘 하는 과정일까? 어떤 원리로 이렇게 되는 걸까? 이 결과를 믿을 수 있는 걸까? 당시에는 정말 생소한 개념이고, 이 방법으로 분석을 한 논문들이 많지 않아서 굉장히 답답했던 기억이 있다.
최근 들어 인공지능, 딥러닝에 대한 관심이 매우 커졌다. 지금은 입자물리학을 공부하지 않지만, 대신에 중고등학생들을 만나 수학, 과학을 가르치고 있지만 나 스스로도 딥러닝 기술의 원리에 관심이 많고, 또 이걸 학생들 교육에 어떻게 활용할까에 대한 관심도 많다.
그래서 입문자를 위한 책들 몇 권을 구입해서 틈틈이 보곤 했다. 그렇게 보았던 책들은 딥러닝 기법들에 대한 기본적인 원리들을 소개하기는 했지만 원리 깊은 곳의 이야기보다는 실제 라이브러리를 활용한 응용에 더 포커스를 맞추고 있었다. 아무래도 입문자가 금방 따라하며 결과물을 만들어 보는 것에 집중하다보니 그럴 것이다.
이 책 ≪파이썬 날코딩으로 알고 짜는 딥러닝≫은 그런 책들과는 결을 조금 달리한다. 이 책의 대상 독자는 딥러닝 알고리즘의 동작 원리를 제대로 이해하고 싶은 딥러닝 개발자, 딥러닝 알고리즘을 제대로 이해하는 공부를 하고 싶은 딥러닝 입문자라고 소개하고 있다. 그런 것 처럼 이 책은 철저히 원리를 이해하는 것을 강조하고 있다.
이 책은 단층 퍼셉트론, 다층 퍼셉트론, 합성곱 신경망, 순환 신경망, 고급 응용 신경망 구조를 다루고 있는데 그 양이 실로 방대하여 책의 두께를 보고 한 번 놀란다. 한 번에 다 공부하지 않고 각각을 천천히 공부를 해도 책 몇 권을 보는 것 같다. 다양한 예제 프로그램들을 통해 각각의 개념들을 차곡차곡 이해할 수 있다.
이 책은 분명 쉽지 않다. 비전공자나 딥러닝 입문자가 처음 공부하기 위해 선택하기에는 어려움이 있다. 이 책을 더 깊이있게 이해하기 위해서는 선행될 지식들이 필요하다. 기본적인 파이썬은 당연히 다룰 줄 알아야 하고, 선형대수학, 미적분학, 확률통계론을 조금이라도 알면 원리를 보다 심도있게 이해할 수 있다. (물론 수학을 모른다고 해서 이 책을 볼 수 없는 것은 아니다. 수학 이야기는 가끔 나오고, 원리를 제대로 이해하기 위해 필요하다는 뜻이다!)
이 책! 솔직히 어렵다. 그런데 읽기에는 괜찮다. 보통 딥러닝 책들이 외국 저자가 쓴 번역서가 많은데, 국내 저자가 쓴 이렇게 탁월한 딥러닝 책이 있다는 것이 기쁘다. 어색한 번역서가 아니라 문장들을 읽기는 좋다. (물론 초보자나 입문자가 읽기에 내용은 쉽지 않다.... 아...)
그런데 어렵다는 말이, 다르게 말하면, 딥러닝을 심도 있게 공부하기에 알차다고도 표현할 수 있겠다. 딥러닝 알고리즘을 공부하고 이해하기에 정말 정말 정말 좋은 책이다.
딥러닝을 위해 보통 텐서플로 같은 프레임워크를 사용하는데, 그런 방법을 알려주는 책이 아니라 그런 프레임워크가 어떠한 원리로 돌아가는지를 설명해주는 책이다. 약간 대학, 대학원 교재로 쓰기에 좋을 것 같다는 생각?
책 소개에서 가장 기억에 남는 말들이 있다.
쉽다고 거짓말하지 않겠습니다.
원리를 깊게 파면 쉬울 수 없습니다.
읽다가 머리에 쥐가 날 수도 있습니다.
도전해보자! 공부는 원래 어려운 법! 그 만큼 얻는 것도 많을 것이다!
책장에서 수시로 꺼내어 읽고 또 읽으며 딥러닝을 마스터하고 싶은 사람에게 강추!!!
제목 그대로 "파이썬 날코딩으로 알고 짜는 딥러닝!!", "알짜 딥러닝!!"