[리뷰] 파이토치 첫걸음
in Review on Review, Book, 파이토치, Pytorch, 딥러닝, Rnn, Autoencoder, Gan, 선형회귀, Cnn, 과적합, 전이학습
한빛미디어
출판사의"파이토치 첫걸음(최건호 저)"
를 읽고 작성한 리뷰입니다.
딥러닝의 기본을 한 층 더 깊게
들여다보고 PyTorch
로 구현해 보는 딥러닝 기본서이다.
개인적으로 느낀 책의 가장 큰 장점은 널리 알려진 유명한 딥러닝 입문서나 교과서들이 생략한 부분을 한 층 더 깊이있게 설명하여 독자의 이해를 돕는다는 점을 들고 싶다.
예를 들면 딥러닝 발전의 큰 분기점 마다 놓여있는 유명 논문을 읽을 때도 사소한 그림이나 수식 하나가 이해 안가 헤매는 경우가 있다.
ImageNet에서 괄목한 만한 성과를 거둔 VGGNet에서 신경망 깊이와 성능의 관계, GoogLeNet의 인셉션 모듈, ResNet의 잔차 학습 블록 개념 등이 그런 경우이다.
순환 신경망에서 시간 t의 step에 따라 Layer의 도식도가 변하는 경우도 처음 접할 때는 난감한 부분이다.
역전파를 거치며 tanh 미분 값이 여러번 곱해지며 발생하는 기울기 소실 문제를 극복하기 위해 LSTM이나 GRU 모델이 등장한다. 셀, 은닉상태나 각 게이트의 복잡한 구성을 처음 접하면 당황스럽기 그지 없다.
이 책은 그런 게이트를 단계마다 하나하나 분해하여 설명하고 있어 이해하기 쉽다. 기호나 그림이 익숙해 지면 관련 논문 리터러시
또한 향상될 것이다.
또 하나의 예로 CNN을 처음 접한 초보자들의 공통적인 고민을 들 수 있다. 모델의 Layer를 몇개 구성할지, 전달하는 파라미터 값은 어떻게 설정해야 할 지 등의 어려움을 겪는 초보자들이 많은데 사실 친절하게 설명하는 책을 의외로 찾기 어렵다.
5장에서 CNN의 핵심 개념을 잘 설명하고 있고 그에 따라 모델을 구성해 나가는 법도 자세히 설명하고 있으니 누구나 한 번쯤 겪는 시행착오도 쉽게 통과할 수 있을 것이다.
이런 일련의 배움 과정에서 대부분의 사람들은 다른 레퍼런스를 참조하고 지인에게 물어 부가적인 설명을 메모해 두곤 할텐데 저자 역시 유사한 경험이 있었던 것 같다.
그런 시행착오와 메모 과정
을 자세한 설명으로 담고있기에 입문 단계를 넘어선 독자라면 이 책이 딥러닝의 깊은 이해에 많은 도움이 될 것 같다. 특히 5 ~ 6장에 해당하는 CNN, RNN 파트가 그렇다.
그 외 실전
에 도움될 만한 내용들이 담겨있다는 점도 장점 중 하나이다. 프레임워크와 모델링은 이미 베낄만한 레퍼런스가 넘쳐나기에 7장에서 다루는 과적합, 정규화, 드롭아웃, Augmentation 등의 부가 기법이 오히려 중요하게 여겨지는 경우가 있다.
이 또한 벨리데이션 자동화나 프로파일링 등으로 점차 자동화 되어가는 추세이니 큰 의미를 부여하기 어려운 과정이 되어가고 있지만 아직까진 사람의 경험에 의존하는 부분이 많은데 실전 문제 해결에 도움이 되는 원론이 잘 정리되어 있다.
1 ~ 4장에서는 딥러닝과 파이토치의 기본을 다룬다. 딥러닝의 개요, 파이토치로 개발환경을 구성하는 방법, 선형회귀로 파이토치의 기본적인 활용법을 살펴본다. 특히 손실함수를 도출하고 경사하강법 적용하는 과정에서 자동 미분의 필요성과 배경을 알기 쉽게 도출한다.
5 ~ 6장은 CNN, RNN을 다루는데 앞서 언급했듯 한 층 깊은 설명이 인상적인 파트이며, 7 ~ 8장에서는 실전에 많은 도움이 되는 모델의 성능 향상 방법이나 전이학습을 활용하는 방법을 다룬다. 9 ~ 10장은 오토인코더 및 이를 확장한 개념인 GAN의 기초를 학습한다.
반면 한가지 아쉬운 점은 PyTorch 보다는 딥러닝에 더 많은 비중을 두고 있다는 점이다.
딥러닝 모델을 구현하는 첫 단계부터 PyTorch 레퍼런스를 어떻게 접근하며 활용할지, 문제가 발생했을 때 어떤 트러블 슈팅 절차나 디버깅, 테스트 등의 시도가 가능할지, 도움을 받을 만한 커뮤니티나 에코 생태계는 어떻게 돌아가는지 등 PyTorch의 기본에 집중한 내용을 기대했는데 누락된 것이 아쉽다.
전반적으로 적은 분량으로도 딥러닝을 깊이있게
이해할 수 있도록 잘 짜여진 책이라는 생각이 든다. 딥러닝 입문자가 보기엔 조금 깊이가 있어 Python을 구사할 줄 아는 초보자 이상 수준의 독자에게 추천하고 싶다.
한빛미디어 “나는 리뷰어다” 활동을 위해서 책을 제공받아 작성된 서평입니다.