티스토리 뷰

Hobby/Book

[Book] 딥러닝 파이토치 교과서

생각많은 소심남 2022. 4. 9. 14:33

(해당 포스트에서 소개하고 있는 "딥러닝 파이토치 교과서" 책은 길벗 미디어로부터 제공받았음을 알려드립니다.)

 

딥러닝 파이토치 교과서

기초부터 CNN, RNN, 시계열 분석, 성능 최적화, 자연어 처리, 강화 학습, 생성 모델까지!

www.gilbut.co.kr

 어느 순간부터인가 논문에 구현되어 있는 모델을 github에서 찾다보면 거의 대부분이 pytorch로 구현되어 있다. 현재 현업에서 사용하고 있는 것이 tensorflow다 보니, tensorflow로는 어떻게 구현되어 있나 찾아봐도 진짜 거의 대부분이 pytorch로 되어 있다. 이런 트렌드가 계속 나타나고 있는 이유는 아마 pytorch가 그만큼 대중화되어 사용하기 직관적으로 되어 있어서가 아닐까 싶다. (사실 tensorflow도 2.x대로 올라가면서 pytorch와 많은 개념을 공유하고 있어서 framework의 차이가 그렇게 크지는 않은 것 같긴 하다..) 돌이켜보니 내가 리뷰한 책 중에서도 pytorch에 대한 책들도 제법되고, 번역한 책(그로킹 심층 강화학습)도 예제는 pytorch로 되어 있다.

 아무튼 시중에도 정말 다양한 pytorch 책들이 나와있고, 각각의 책들이 추구하는 바도 제각각 다르다. 어떤 책은 정말 딥러닝을 처음 다루는 사람들을 위한 입문서적도 있고, 고급 알고리즘에 대해서 소개한 책들도 있다. 이번에 소개할 책인 "딥러닝 파이토치 교과서"는 처음 pytorch를 접하는 사람의 필요성과 딥러닝의 원리를 이해하려는 사람, 그리고 다양한 딥러닝 알고리즘을 직접 구현해보고자 하는 사람들의 요구를 만족시키는 책이 될 듯 하다.

딥러닝 파이토치 교과서

사실 여러권의 딥러닝 관련 책들을 읽어봤을 때 거의 대부분은 이런 흐름으로 진행되는 것 같다.

  • Perceptron의 원리와 ANN
  • CNN의 원리
  • (조금더 나아가면) 다양한 CNN
  • RNN의 원리
  • (조금더 나아가면) RNN을 활용한 시계열 예측
  • 강화학습
  • (심화된 주제를 다룬다면) 생성 모델

그런데 이 많은 주제를 한권에 담기에는 정말로 어렵다. 그래서 어떤 책은 이론에만 딱 치중되어 있다던가, 혹은 실제 구현하는 기법에 대해서 집중이 되어있는데, 이 책은 어떻게 보면 구현하는 기법에 대해서 자세하게 다뤄진 경향이 있다. 소위 말하는 Hands-on Lab 스타일이라고 보면 좋을 듯 하다. 대신 단순하게 이론을 넘어갔다기보다는 다양한 도식들이 포함되어 있어서, 실용적으로 구현하는 사람도 원리를 이해할 수 있도록 해준다. (사실 나도 처음 봤을때 거의 1페이지에 그림 하나씩은 포함되어 있어서 그림책인줄 알았다) 

내용 측면으로 바라보자면 생각보다 다양한 주제에 대해서 소개하고자 했다. 앞에서 언급했던 내용 흐름 외에도 다양한 모델들 (예를 들어 전이학습이나 XAI, GNN 같은 내용들)에서도 소개되어 있다. 물론 이런 내용이 모두 pytorch로 구현하는 방법에 대해서 설명되어 있는 것은 아니지만, 큰 맥락에서 어떤 알고리즘들이 개발되어 있는지를 파악하는데 도움이 될 듯 하다. (참고로 조금 더 심화된 모델 구현을 원하는 사람은 내가 이전에 리뷰했던 을 살펴보면 좋을듯 하다.) 이 밖에도 시계열 예측이나 강화학습, 생성 모델에 대한 내용도 다루면서 간단한 알고리즘은 구현할 수 있도록 되어 있다. 그리고 이 책이 pytorch 책이다보니 pytorch로 구현하면서 적용이 필요할 법한 성능 최적화에 대한 내용도 담겨져 있다. 가령 Regularization이나 LearningRateScheduler, EarlyStopping 같은 기법도 직접 구현해서 결과를 확인해볼 수 있다.

책의 좋은 점 중 하나는 이론적인 설명과 동시에 구현하면서 별도로 시각화나 전처리가 필요한 부분에 대해서도 저자가 상세하게 설명한 부분이다. 예를 들어서 CNN의 결과를 시각화하는 과정에서도 matplotlib의 도움을 받아야 하는 부분에 대해서는 해당 패키지와 활용 방법에 대해서 설명하고 넘어가는 식으로 되어 있다. 아마 저자가 책을 집필하는 과정에서 이런 부분을 느끼고 내용으로 집어넣지 않았을까 하는 생각을 해본다.

책의 아쉬운 점을 굳이 뽑자면, 책의 전체 분량 중 CNN과 이를 활용한 모델 구현에 책의 상당 부분을 활용했다보니, 다른 파트에 대한 설명이나 구현의 내용이 상대적으로 부족함이 느낄 수 있다는 점이다. 그렇다고 그 외 부분의 설명이 부족하다던가 그런것은 아니지만, 다양한 모델에 대한 이론적인 설명이 되어 있는 CNN 부분에 비하면 상대적으로 RNN 계열이나 강화학습, 생성 모델 파트에 있는 내용은 살짝 아쉬움이 느껴질 수 있다.

아마 학생이라면 대부분 학교에서 교과서를 바탕으로 공부할 것이다. 물론 이 공부의 보조수단으로써 참고서나 인터넷 강의도 있겠지만, 선생님이 항상 하시는 말씀은 "시험 문제는 교과서에서 나온다" 였다. 그래서 교과서의 내용도 보면 모든 내용이 전부는 아니지만 그래도 대부분의 내용들을 커버하면서 공부할 수 있도록 되어 있다. 이 책도 그런 맥락에서 보면 책의 제목처럼 pytorch에 대한 교과서라고 생각하면 좋을것 같다. 약간 무언가 아쉬움이 있으면서도 막상 책을 읽으면 내용이 다 나와 있는 그런 느낌? 사실 그렇다고 하기에는 이 책이 담고 있는 내용의 분량이나 설명은 다른 여타 책에 비하면 어마어마한 편이다. 개인적으로도 pytorch를 배우면서 딥러닝을 처음 공부하기에는 정말 좋은 책이라고 생각한다.


책에서 활용된 소스를 살펴보고 싶으면 아래 링크를 참고하면 좋을 것 같다.

 

GitHub - gilbutITbook/080289

Contribute to gilbutITbook/080289 development by creating an account on GitHub.

github.com

 

댓글