csuco***
2025-02-23

딥러닝 분야 부동의 베스트셀러! 머리로 이해하고 손으로 익히는 가장 쉬운 딥러닝 입문서
"본 리뷰는 한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."
이달 초에 운좋게 한빛미디어 서평단으로 선정이 되어 한빛미디어의 신간 도서 중 1권을 읽을 수 있는 기회를 얻게 되었는데, 이를 통해 너무나 유명한 도서를 만날 수 있었다. 작년에 생성형 AI의 근간이 되는 확산 이론을 다룬 밑바닥부터 시작하는 딥러닝 5편을 읽어봤었는데, 이번에 읽게된 도서는 파이썬 기초부터 신경망과 딥러닝(CNN)에 대해 도서 제목처럼 밑바닥부터 하나하나 만들어보며 개념에 대해 설명하고 있는 "밑바닥부터 시작하는 딥러닝 1편"이다.
도서를 다 읽어보고 느낀 점을 한 마디로 요약하면.. 음.. 명불허전이랄까? 이래서 5편까지 책이 나왔구나 싶을 정도로 너무 책 내용이 좋았는데, 딥러닝 이론에 대해 라이브러리나 프레임워크에 의존하지 않고 상세하고 쉽게 설명하고 구현하고 있어서 너무 즐겁고 편안하게 읽을 수 있었던 것 같다.

밑바닥부터 시작하는 딥러닝 1편은 원래 2017년에 초판이 발간된 도서인데, 올해 리마스터판이라는 이름으로 개정판이 새로이 나와서, 마침 회사에서 SW 직군 인력들을 대상으로 진행한 AI Essential 교육도 받은 직후이기도 하고, 그 상세한 개념에 대해 복습 겸 보강 학습을 할 수 있는 계기가 될 수 있었다. 예를 들어, 사내 AI 교육 때 단순한 간략한 개념 설명과 더불어 Pytorch를 활용한 loss.backward() 한 줄 호출로 오류역전파를 구현했던 부분이 세부적으로 어떤 구현 과정을 통해 해당 동작을 수행할 수 있는지에 대해 이해할 수 있었다. 물론 편미분 방정식 등 수학이 나오기는 하는데, 구현 과정에 대한 Python 코드가 있어서 수학에 대한 지식이 조금 부족하더라도 이해할 수 있도록 구성된 것이 본 도서의 장점이라 할 수 있겠다.
본 도서는 총 8개의 chapter로 구성되어 있는데, 1장에서는 "밑바닥부터"라는 도서의 수식어에 걸맞게 파이썬 개발 환경 구성부터 파이썬 언어의 문법에 설명, 그리고 수학 연산을 위한 파이썬 라이브러리인 Numpy와 그래프 시각화를 위한 matplotlib 라이브러리에 대한 설명을 간략히 담고 있다. 파이썬을 활용하여 AI나 데이터 분석을 해본 사람들이라면 이미 이들에 대해 어느 정도 익숙한 사람도 많을텐데 이미 알고 있다면 1장은 휘리릭 훑어보며 빠르게 넘어가도 될 듯 하다.

2장부터가 본격적인 AI에 대한 내용인데, 퍼셉트론과 신경망, 신경망을 통한 학습, 오류역전파, 합성곱 신경망(CNN), 그리고 그 외 이미지 처리와 관련된 딥러닝에 대한 부가적인 이야기 등을 8장까지 순차적으로 담고 있다. 비록 현재 인공지능 관련 업무를 담당하고 있지는 않지만, 퍼셉트론과 신경망 이론에 대한 내용을 읽으며 대학원 시절에 인공지능을 전공하면서 코스웍 때 배웠던 내용이 조금씩조금씩 새록새록 떠오르는 시간이어서 앞 부분은 나름 즐겁게 읽었던 것 같다. (특히 도서가 풀컬러 형태여서 눈에 굉장히 잘 들어와서 가독성 측면에서 매우 도움이 되었다.^^)
위에서도 언급했듯이 본 도서에서는 scikit-learn이나 PyTorch와 같은 머신러닝 관련 라이브러리를 사용하지 않고 오로지 Numpy만 사용하여 신경망과 이에 대한 학습 과정을 한땀한땀 구현한다. 그렇기 때문에 이 과정에서 필요한 모든 계산 과정을 직접 구현하여 사용하며, 구현 과정에서 나오는 수학적 이론도 친절하게 설명하고 있어서 머신러닝에 대해 자세하게, 제대로 이해하고자 하는 초심자들이 보기에 매우매우 적합한 책이라 할 수 있겠다.

개인적으로는 위 그림과 같이 수치 미분과 편미분에 대해 간략히 다루고 있는 부분 등 미분에 대한 개념에 대해 쉽게 설명하는 방식이 매우 좋았다. 인공지능은 수학, 특히 미분에 대한 지식은 거의 필수인터라 인공지능에 대해 제대로 이해하려면 어느 정도 수학에 대한 기본 지식이 필요한데, 대학교 때 공부했었던 미적분학에 대한 지식이 가물가물하더라도 이 책을 통해 기본 개념에 대한 이해가 가능하다.
여담이지만, 물론 본 도서의 진도를 나가는데 있어서는 도서에 수록된 내용에 대해서만 이해하는 것으로도 크게 무리는 없었지만, 그럼에도 수학적 지식을 제대로 이해하려면 별도의 자료를 참고하는게 좋을 것 같아서 인공지능 수학 관련 참고 도서를 개인적으로 구매해두었다. 우선 몇 군데 필요한 곳만 발췌해서 읽고 아직 모두 다 읽어보진 못했지만, 계속적으로 필요할 때마다 읽어볼 예정.. "처음 배우는"이라는 책 제목만 봐도 두근거리고 마음이 따뜻해지는(?) 수학책인 듯.. ^^;

그리고 7장에서는 이 책의 핵심 주제 중 하나인 합성곱 신경망인 CNN에 대해서 다루고 있다. 이제는 이미지 classification 분야에서 너무나 대중적으로 사용되고 있는 CNN에 대한 구현을 역시나 딥러닝 프레임워크 없이 밑바닥부터 구현하고 있어서 상세한 세부 처리 과정에 대해 이해하는데 도움이 된다. 이론도 이론이지만 아무래도 개발자 입장에서는 구현을 어떻게 하느냐가 이해도에 있어 매우 중요한데, Python을 기반으로 구현하는 과정을 통해 CNN을 practical하게 이해하는데 이만한 도서가 없는 것 같다. PyTorch나 TensorFlow 등을 안쓰는 것이 오히려 본 도서의 장점인 듯..
마지막 8장에서는 그 외 딥러닝의 전반적인 내용에 대해 소개하고 있는데, image detection이나 segmentation 분야를 위해 개발된 R-CNN, FCN 등의 여러 가지 관련 모델들, 그리고 자연어 처리에 많이 사용되는 RNN과 한 때 생성형 AI의 근간이 되었던 GAN에 대해서도 간략히 소개하고 있는데, RNN 등 밑바닥부터 시작하는 딥러닝 2~5편에서 다루는 내용에 대해서도 8장에서 관련된 내용 이후 주석으로 "해당 지식에 대해 더 자세한 내용을 연계하여 공부"할 수 있도록 언급하고 있는 부분이 추가된 것도 이번 리마스터판의 특징이라 할 수 있을 것 같다. (사실 초판에도 이러한 문구가 있었는지 확인을 해보진 못했는데, 미래에 나올 도서에 대한 언급이라 아마 초판에서는 존재하지 않았을 듯..)

결론적으로, 본 도서는 다음과 같은 분들이 읽으면 좋을 것 같다.
그 동안 인공지능/신경망/딥러닝을 다루는 몇몇 개발 도서를 읽어봤었는데, 그 중에서 이 책이 가장 신경망과 딥러닝의 개념에 대해 이해하기 쉬웠던 도서 중 하나라는 생각이 든다. 그만큼 본 도서는 쉽게 설명하고 있는 기본서의 느낌이 강하고, 개발자를 위한 입문서로서 적당하다.
또한, 평소에도 생각하는 부분이지만, 번역서의 경우 원서가 일본어 판일 경우에 번역이 영어권 도서들보다는 좀 더 자연스럽고 읽기 편하다는 느낌인데, (아무래도 우리말과 어순이 같고 사용하는 어휘와 문화도 비슷하기 때문일 듯..) 본 도서 역시 일본어 도서가 번역된 도서여서 그런지 번역이 어색하거나 이해가 잘 안되는 부분이 없었던 부분도 본 도서의 장점인 것 같다.
모쪼록 본 리뷰가 신경망과 CNN에 대한 공부를 시작하고자 하는 많은 분들께 참고가 되었으면 좋겠다.