책과 강의 소개
책의 구성
이 책은 딥러닝 입문과 그 응용 지식 전달을 위해서 다음과 같이 구성되어 있습니다. 이론과 수식, 실습을 최대한 분리하였고, 독자분들의 목적과 편의에 따라 선택하여 읽으셔도 흐름을 따라갈 수 있도록 하였습니다.
이론
딥러닝의 이론 및 개념을 설명하기 위해서, 수학적인 표현을 최소화하고 그림 또는 시각화를 활용하여 최대한 이해하기 쉽도록 구성하였습니다. 이후 소개되는 수식을 이해하지 못하더라도 책의 큰 흐름을 따라가는데 지장이 없도록 하였습니다. 마치 덧셈을 배우고 곱셈을 배우듯이, 기초 개념부터 추후 상위 개념까지 점진적으로 차근차근 다져나갈 수 있도록 커리큘럼을 구성하였습니다. 이를 통해 독자들이 해당 방법이 왜 필요한지 좀 더 쉽게 체득할 수 있을 것입니다.
수식
앞서 다룬 내용을 수식을 통해 다시 한번 정리합니다. 사실 딥러닝 입문서 중에서 수식이 가장 많이 등장하는 책이 아닐까 싶습니다. 하지만 책 전체에서 비슷한 수식 표현이 반복되어 사용되므로, 찬찬히 뜯어보며 책을 읽다보면 수식이 익숙해질 것입니다. 저는 ‘수학이 필요 없는’과 같은 표현은 사용하지 않겠습니다. 오히려 딥러닝을 제대로 공부하는데 있어서 수학이 많이 중요하다고 생각합니다. 따라서 만약 수식이 어렵다면 책 전체의 이론 부분만 떼서 읽고, 나중에 다시 한번 수식과 함께 읽어보는 것도 추천합니다.
실습
파이썬을 이미 잘 알고 있다고 가정하고 실습 코드를 설명합니다. 같은 코드가 반복되어 사용되며 새로운 기능이 하나씩 점진적으로 추가되는 형태입니다. 따라서 반복되는 코드를 통해 이론과 수식 내용을 파이토치로 어떻게 구현하는지 익힐 수 있습니다. 마지막으로 이 책의 실습들은 GPU가 없어도 모두 실행 가능합니다. 물론 GPU가 있다면 정말 빠르게 실행할 수 있지만, GPU가 없어도 최대 몇 십분 이내로 실행이 끝나도록 되어 있습니다.
실전 연습
책의 후반부에는 단순히 주피터 노트북으로 실습을 하는 것이 아닌, 실제 머신러닝 프로젝트를 진행하듯이 파일을 구성하고 CLI 환경에서 실습을 진행합니다. 사실 실무에서 단순히 주피터 노트북을 통해 프로토타이핑 이상의 프로세스를 진행하기 어렵습니다. 따라서 이 책에서는 주피터 노트북을 활용한 실습을 뛰어넘어 독자들이 실제 프로젝트를 진행하는 듯한 실습을 수행할 수 있도록 하고자 합니다. 이를 위해 단순히 MNIST 분류기를 만들고 끝내는 것이 아닌, MNIST 분류기의 성능을 실전에서처럼 끌어올리는 방법과 이를 위한 실험 환경을 구축하는 방법을 가르쳐드리고자 합니다. 아마 MNIST를 가지고 이렇게 자세하게 다루는 교육 과정은 없을 것입니다. 이처럼 단순한 프로젝트라도 실험 환경을 구축하고 성능을 쥐어짜는 경험을 통해, 여러분들도 실제 프로젝트를 진행하실 때 큰 도움이 될 것이라 생각합니다.
대상 독자
이 책은 딥러닝을 처음 접하는 분들 또는 딥러닝을 이미 어느정도 알고 있지만 기초가 부족하신 분들을 대상으로 쓰여졌습니다. 단순히 동작하는 것을 보여주는 것에 그치기보단, 왜 동작하는지를 좀 더 깊이있게 다루고자 하였습니다. 또한 이론만 다루기보단 저자가 필드에서 십여년동안 경험하고 체득한 인사이트를 최대한 전달하고자 노력하였습니다. 기본기를 탄탄하게 다지고자 하시는 분들에게 좋은 책이 되길 바랍니다.
필요 선행 지식
이 책은 다음과 같은 내용은 다루지 않으며, 이미 독자들이 다음의 내용들을 알고 있다고 가정하고 쓰여져 있습니다.
- 파이썬
- 기본적인 CLIcommand-line interface 사용 방법 (e.g. 리눅스, 맥OS 터미널, 윈도우 프롬프트)
그리고 이 책에서 다루긴 하지만 독자분들이 다음의 내용을 추가로 따로 공부하시길 권장합니다.
- 미적분 (+ 편미분)
- 행렬
- 확률/통계
강의 소개
이 책은 패스트캠퍼스의 온라인 강의와 동일한 커리큘럼으로 만들어졌습니다. 만약 이 책의 내용을 좀 더 현장감 있게 공부하고 싶으신 분들은 제 강의를 참고하시는 것도 좋습니다. 다음의 도식은 제가 패스트캠퍼스에 공개한 온라인 강의 커리큘럼을 요약한 것입니다. 패스트캠퍼스에서 제 전체 강의는 2022년 기준 전체 약 100시간 정도로 이루어져 있으며, 이 책이 다루고 있는 내용은 약 40시간 분량입니다. 이 책은 딥클 입문에서부터 딥클 초급까지의 내용을 다루고 있습니다.
- 딥러닝 입문: https://fastcampus.co.kr/data_online_pytorch
- 딥러닝 초급 + 자연어처리 초급: https://fastcampus.co.kr/data_online_dpnlp
- 자연어처리 생성: https://fastcampus.co.kr/data_online_dpnlg
- BERT & GPT3: https://fastcampus.co.kr/data_online_bertgpt3
필자는 2018년부터 오프라인을 포함하여 강의를 오랜시간 진행해오고 있는데요. 딥러닝을 활용한 자연어처리 강의가 거의 없던 시절부터 커리큘럼을 직접 설계하고 강의를 만들어 진행해왔습니다. 따라서 수강생분들이 어려워하시고 궁금해하시는 내용들을 담으려 노력하였습니다. 또한 전업 강사 또는 저자가 아닌, 실제 현업에 종사하고 있는 실무자로서, 실무자의 경험과 노하우를 담을 수 있도록 노력하였습니다. 아마 그러한 부분은 이 책에도 묻어났으리라 생각합니다.
오프라인 강의의 경우, 제한된 시간내에서 정해진 내용 밖에 다루지 못하는데요. 수강생 분들의 실력 편차도 생각보다 큰 상황에서, 어떤 분들은 어렵고, 또 다른 어떤 분들은 너무 쉬운 상황이 만들어질 수도 있습니다. 하지만 온라인 강의의 경우에는, 반복해서 듣기와 넘겨 듣기(또는 고배속 듣기)가 가능하기 때문에, (장장 100 시간에 달하도록) 최대한 자세하게 강의를 만들었습니다.
- 강의 영상 샘플: https://www.youtube.com/watch?v=HkRG5gdqTLE
비록 이 책에서도 최대한 자세히 짚고 넘어가려 하였지만, 매체의 특성상 설명이 부족한 부분이 있을 수 있습니다. 예를 들어 온라인 강의에서는 대부분의 코드를 한 줄씩 설명하지만, 책에서는 지면 관계상 자세한 설명이 어려울 수 있습니다. 따라서 독자분들이 이러한 특징들을 참고하시어, 딥러닝을 공부하는데 좀 더 도움이 되면 좋겠습니다.