한빛미디어에서 "fastai와 파이토치가 만나 꽃피운 딥러닝" 이라는 책이 출간되어 읽어보았다. 먼저 fastai가 무엇인지 알아보았다. fastai는 제레미 하워드라는 사람이 만든 PyTorch의 상위 Wrapper 같은 개념이며, PyTorch를 이용하여 다양한 기능들을 자동화시켜주고, 딥러닝 모델 구현을 용이하게 한다고 한다.
이 책에서는 fastai를 이용하여 최고의 결과를 달성하는 모델을 학습 시키는 방법, AI 모델을 웹 어플리케이션으로 바꾸는 방법, 딥러닝 모델이 작동하는 이유와 방법 등을 다룬다. 또한 딥러닝을 처음 접하는 사람들을 대상 독자로 다루고 있으며, 코딩 경험이 없더라도 내용을 이해하는데에는 무리가 없다. 다만 책이 총 720 페이지에 달하기 때문에 들고다니기에는 약간 무리가 있지만, 그만큼 구성되어있는 딥러닝 내용들이 알차고, 꼼꼼하고 세심하게 잘 설명되어있기 때문에 딥러닝 사전이라고 생각하면 좋을 것 같다. 개인적으로 A부터 Z까지 다룬 책 한 권을 읽는게 지식을 습득하는데 굉장히 도움이 많이 되는 듯 하다.
Part 1. 실전 딥러닝
1장에서는 신경망의 역사부터 시작해서 딥러닝 학습 방법, GPU를 탑재한 딥러닝 서버 구하기, 검증용 및 테스트용 데이터세트까지 딥러닝을 시작하는데 필요한 기본적인 것들을 전반적으로 설명하고있다. 2장에서는 컴퓨터 영상처리 문제를 예시로 딥러닝 애플리케이션 제작 과정을 처음부터 끝까지 살펴본다. 3장에서는 데이터 윤리에 대해 설명한다.
Part 2. fastai 어플리케이션 계층 이해하기
4장에서는 학습을 진행할 때 적용될 수 있는 기법들에 대해 소개한다. 5장에서는 이미지 분류에 대해 다루며, 6장에서는 다중 레이블 분류 및 회귀 문제를 다룬다. 7장에서는 최신 모델 학습 기법에 대해 다루고 있으며, 그 예로 TTA, Label Smoothing 등이 있다. 8장에서는 사용자가 많고 다양한 제품을 보유한 상황에서 어떤 제품이 어떤 사용자에게 가장 유용할지 추천할 때 쓰일 수 있는 Collaborative filtering을 설명한다. 9장에서는 CSV나 스프레드시트와 같은 테이블 형식의 데이터를 모델링 하는 방법에 대해 알아본다. 10장에서는 NLP에 대해 다룬다.
Part 3. 딥러닝의 기반 지식
11장에서는 fastai의 중간 수준 API로 데이터 변환하는 방법에 대해 알아본다. 그리고 12장에서는 언어모델을 밑바닥부터 구현하는 방법에 대해 다루며, 13장에서는 CNN에 대해 다룬다. 14장에서는 ResNet에 대해 다룬다. 15장에서는 애플리케이션의 구조에 대해 살펴본다. 즉 fastai가 제공하는 응용 모델의 작동 방식과 구현의 상세 부분을 다루게 된다. 16장에서는 학습이 어떻게 진행되는지를 다룬다.
Part 4. 밑바닥부터 구현하는 딥러닝
17장에서는 역전파를 구현하는 것 부터 시작해서 정말 밑바닥부터 신경망 계층을 구현하는 방법에 대해 다룬다. 또한 18장에서는 Class Activation Map을 이용한 CNN의 해석에 대한 내용을 다루게 되는데 특징 맵이 어떻게 구성되는지에 대해 이해할 수 있었다. 19장에서는 Learner 클래스를 만들어 학습을 하는 방법에 대해 다루는데, 아마 이 장을 혼자 할 수 있다면 딥러닝 개념은 모두 배운게 아닌가 싶다.
이 책에서 좋았던 점은 무엇보다 책의 두께가 두껍기 때문에 그만큼 유익한 내용을 A부터 Z까지 많이 담고 있었다. 예를 들면 테스트용과 검증용 데이터셋이 왜 중요한지에 대해서 상세히 설명해놓은 점, 당연했다고 생각했던 딥러닝에서 사용되는 용어들을 상세히 설명해놓은 점, 이미지 증강 종류에 따른 단계를 상세히 그림으로 설명해 놓은 점, 이 책 기준 최신 딥러닝 기법의 논문을 해설해놓은 점 등이 있다. 심지어 기술적 글쓰기(Technical Writing)를 독려하고, 블로그 개설을 추천하는 조언들까지 정말 다양한 내용을 많이 담고있다.
또한 책의 매 장마다 "질문지"를 제공한다. 수 많은 개념을 읽다 보면 집중해야 하는 주요 내용이 무엇인지 알아차리기 어렵기 때문에 각 장의 마지막에 배운 내용을 정리하는 질문 목록이 포함되어있다. 혼자 딥러닝을 공부하려는 사람에게 제격인 듯 하다. 딥러닝을 가르치려는 사람이 이 질문지를 보고 시험을 내도 좋을 것 같다.
그리고 책에서 개념을 설명할 때 첨부된 그림자료들의 출처가 매우 다양했기에 정말 많은 자료들을 쉽게 접할 수 있었다. 블로그를 통해 봤었던 그림도 있었고, 논문의 그림도 참조하는 등 다양한 자료들을 상세한 글과 함께 볼 수 있어서 매우 친절하게 설명되어있는 블로그 글을 읽는 느낌이 들었다. 또한 각 장마다 설명하는 개념이 다음 장에도 다른 개념과 함께 설명되는 경우가 많았어서 마인드 맵 연결된 것 처럼 어려운 내용들이 서로 연결되어 이해가 잘 되었다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
'Book Review' 카테고리의 다른 글
[Book Review] MLOps 도입 가이드 (0) | 2022.05.26 |
---|---|
[Book Review] 머신러닝 실무 프로젝트 (0) | 2022.04.24 |
[Book Review] 비전 시스템을 위한 딥러닝 (0) | 2022.02.23 |
[Book Review] 딥러닝을 위한 파이토치 입문 (2) | 2022.01.31 |
[Book Review] 데이터 과학자 되는 법 (0) | 2021.12.25 |