2 minute read

김기현의 딥러닝 부트캠프 with 파이토치

한빛미디어 ‘나는 리뷰어다’ 활동을 위해서 책을 제공받아 작성된 서평입니다.




0. 소개


PyTorch는 Tensorflow도 함께 현재 가장 각광받고 있는 Deep Learning Framework입니다.


HuggingFace에서 PyTorch만을 지원하는 Model의 수가 압도적인 점뿐만 아니라 가장 인기있는 30개 Model이 사용하는 Framework의 수 역시 PyTorch가 강세입니다.


PyTorch가 가장 인기를 얻고 있는 분야는 역시 학계입니다.


PyTorch가 최신 Model을 쉽게 사용할 수 있다는 점이 학계에서 인기를 얻고 있는 이유일 것입니다.


하지만, 이런 강점은 학계에서만 통용되는 것은 아닙니다. 최신 Model을 쉽게 사용할 수 있다는 점은 Deep Learning을 사용하는 누구에게나 강점이 됩니다.


Tensorflow에 비해 좀 더 Python Code처럼 사용할 수 있다는 점 또한 처음 시작하는 사람들에게 쉽게 다가갈 수 있는 장점이기도 합니다.


이런 다양한 장점들로 인해 PyTorch의 인기가 점점 높아지고 있는 상황에서 ‘딥러닝 부트캠프 with 파이토치’는 초심자도 쉽게 Deep Learning의 기본부터 실전에서 사용할 수 있는 PyTorch Skill까지 소개해 주는 책입니다.


Deep Learning의 수학적인 기초부터 그것을 Code로 구현하는 실습으로 설명해 줍니다.


이러한 과정을 기초부터 점진적으로 진행하여 궁극적으로 Deep Learning의 구조와 원리를 배울 수 있도록 구성되어 있습니다.



1. 구성


1장 개발 환경 구축하기

  • 실습에 필요한 환경을 구축합니다. Deep Learning의 시작이며 처음 시작할 때 가장 난감한 환경 설정을 쉽게 따라하면서 할 수 있도록 안내합니다.
  • 가상환경 관리자는 Anaconda를 사용하며, Editor는 Visual Studio Code를 사용합니다.


2장 딥러닝 소개

  • Deep Learning의 개념 정립과 일반적으로 Machine Learning 개발이 어떻게 이루어지는 Workflow에 대해서 설명합니다.
  • Deep Learning에서 자주 나오는 수학 용어에 대한 설명을 합니다.


3장 파이토치 튜토리얼

  • PyTorch의 장점과 설치 방법을 알려줍니다.
  • PyTorch를 이용한 간단한 Tensor 조작에 대해서 알아봅니다.


4장 선형 계층

  • Linear Layer에 대해서 알아봅니다.
  • 아울러, GPU를 이용한 학습법도 알아봅니다.


5장 손실 함수

  • 다양한 목적에 맞는 Loss Function에 대해서 알아봅니다.


6장 경사하강법

  • Deep Learning에서 오차를 어떻게 역전파 시키는지, 또한 중요한 Hyperparameter중인 하나인 Learning Rate에 대해서 알아봅니다.


7장 선형 회귀

  • Linear Regression에 대해서 알아봅니다.


8장 로지스틱 회귀

  • Logistic Regression에 대해서 알아봅니다.


9장 심층신경망 I

  • Deep Learning에 대한 개론을 알아봅니다.
  • Deep Neural Layer와 Backpropagation에 대해서 알아보고 가장 많이 사용되는 Activation Function인 ReLU에 대해서도 알아봅니다.


10장 확률적 경사하강법

  • Optimization Function중 하나인 SGD에 대해서 알아봅니다.


11장 최적화

  • Optimization Function중 하나인 Adam에 대해서 알아보고 Hyperparameter가 무엇인지에 대해서도 알아봅니다.


12장 오버피팅을 방지하는 방법

  • 현실에서 골치아픈 문제 중 하나인 Overfitting을 어떻게 극복할 지에 대해서 알아봅니다.


13장 심층신경망 II

  • Deep Neural Network으로 Binary / Multi Classification을 해결해 봅니다.


14장 정규화

  • 이 장에서는 Overfitting을 방지하는 다양한 방법을 알아봅니다.
  • 그 중에서 Regularization / Data Augmentation / Dropout / Batch Normalization 등의 기법에 대해서 알아봅니다.


15장 실무 환경에서의 프로젝트 연습

  • 지금까지 배운 내용을 토대로 실제 Project를 진행해 봅니다.


16장 표현 학습

  • ‘Feature’가 무엇인지 알아봅니다.


17장 확률론적 관점

  • MLE(Maximum Likelihood Estimation)에 대해서 알아봅니다.


18장 CNN(합성곱신경망)

  • Deep Learning의 가장 큰 업적 중 하나인 CNN(convolution neural network)에 대해서 알아봅니다.


19장 RNN(순환신경망)

  • Sequential Data를 다루기에 좋은 RNN(recurrent neural network)에 대해서 알아봅니다.



2. 대상 독자


이 책의 특징은 초심자도 이해하기 쉽게 Deep Learning이라는 주제를 설명한다는 것과 각 주제들을 자연스럽게 Python Code를 소개하듯 PyTorch를 사용해 구현한다는 것이다.


이런 이유로 Python은 알지만, Deep Learning을 모르는 사람들에게 매우 쉽게 다가갈 수 있다는 것이다.


또한, Tensorflow에 어느 정도 익숙하지만, PyTorch도 배우고 싶거나 PyTorch를 사용해야만 하는 상황의 개발자들에게 좋은 가이드가 될 것이다.


열심히 Googling해서 이런 저런 PyTorch 기초 지식들을 쌓았지만, 뭔가 체계적이고 통합적인 가이드를 해 줄 무언가가 필요한 모든 이들에게 좋은 책이라고 생각합니다.