본문 바로가기

책읽기

[파이토치 첫걸음](최건호, 2019)

  • "텐서플로 or 파이토치, 뭘 배워야 하나요?"
    • 요새는 좀 뜸하지만 작년, 재작년쯤 커뮤니티에 자주 올라온 질문.
    • 딥러닝 = 텐서플로라는 공식이 상당히 오래 있었고 지금도 텐서플로가 저물었다고 말하긴 힘들다.
    • 일단 텐서플로를 만든 곳이 구글이라는 점, 그리고 공개된 코드가 많다는 점이 상당한 강점으로 작용한다.
    • 그러나 최근에는 딥러닝 입문을 파이토치로 시작하는 분들도 많고, 텐서플로로 짜여진 딥러닝 코드를 파이토치로 변환해서 제공해주는 분들도 많기 때문에 파이토치로 한다고 딱히 어려움은 없다.
    • 딥러닝을 많이 쓰시는 분들 이야기를 들어보면 "어차피 둘 다 알아야 돼요".
  • "파이토치는 뭘로 배워야 해요?"
    • 파이토치를 배우기로 마음 먹은 초보자의 두 번째 질문.
    • 파이토치에 익숙한 많은 분들께서는 공식 홈페이지의 튜토리얼을 권하신다. (링크, 한글버전 링크)
    • 정말정말 잘돼있다는 찬사와 함께 "저것만한 게 없어요"라고 하는데, 홈페이지보다 책이 익숙한 초심자들 입장에서는 기본적인 내용을 다루는 얇은 책이 하나 있으면 좋겠다 싶은 것도 사실이다.
    • 무엇보다 눈에 보이는 건 중요하다. 책꽂이에 파이토치 책이 한 권 꽂혀있다는 것만으로 나는 딥러닝을 공부하고 있다는 심리적 안정감과 진도를 나가야겠다는 의지가 생긴다.
  • 파이토치 첫걸음
    • 2019년에 나온 이 책은 2년이 지난 지금 보기에도 전혀 무리가 없다.
    • 유행에 민감한 최신 기술을 다루기보다 MNIST로 시작하는 파이토치의 기본 구동에 이어 CNN, LSTM과 GRU를 다룸으로써 전반적인 딥러닝을 한번 훑을 수 있게 해 준다.
    • 앞부분에는 역전파 같은 기본기가 나오는데, 이 내용을 아는 사람이라면 넘겨도 좋다
  • 마음에 드는 첫 번째 요소: 단계별 코드 구현 방식
    • 이런 기술서에서 쉬운 내용 뒤에 어려운 내용이 나오는 것은 당연하다고 볼 수도 있다.
    • MNIST에서 VGG를 넘어 GoogLeNet과 ResNet으로 넘어오는 부분이 참 마음에 들었는데, MNIST에서 초보적인 CNN을 구현하고 조금 복잡한 VGG에 이 기술을 고스란히 적용시켜 짠 다음 체계적으로 구성된 실제 VGG 코드를 보여줌으로써 실제 코드의 이해를 돕는 한편 학습자의 눈을 높인다.
    • 분야를 막론하고 학습자의 눈이 높아진다는 점을 굉장히 중요하게 생각하는데, 한 번 높아진 눈은 래칫(ratchet)이 되어 엉성한 코드를 짜는 자신을 견디지 못하게 만들어 실력을 향상시키기 때문이다.
  • 마음에 드는 두 번째 요소: Chapter 7. 학습 시 생길 수 있는 문제점과 해결 방안
    • 뭐든 그렇지만 딥러닝은 배운대로 한다고 되는 법이 없다.
    • 학습이 안되는 것도 문제지만 한 번 학습에 걸리는 시간이 길기 때문에 뭐가 잘못되면 이것저것 마구잡이로 적용하는데 시간과 비용이 많이 발생한다.
    • 초심자 입장에선 어디를 건드릴지도 모르고, 어떻게 건드릴지도 몰라서 답답한 경우가 많은데 그 지점을 잘 긁어주고 있다.
    • 물론 실제 한방에 깨끗하게 낫는지는 다른 문제이지만 일단 막막하지 않다는게 어딘가.
  • 딥러닝을 이론으로만 아는 사람에게 제일 좋을 책
    • 작은 크기, 200페이지 남짓의 두께에서 파이토치를 한 번 훑다 보니 세세한 내용을 다루는 데는 한계가 있다.
    • 특히 어려우려면 한없이 어려운 딥러닝 이론을 담기에 좁은 공간이고, 이 공간을 대표 사례 중심으로 설명하다 보니 초반 일부를 할애한 이론도 깊은 설명을 담기는 어렵다. (그럼에도 불구하고 있을 말은 다 있다)
    • 다른 책이나 동영상 강의로 딥러닝 강의를 어느 정도 본 사람이라면 이 책을 보면서 한번 감을 잡고, 실전 위주의 다른 책이나 공식 홈페이지 튜토리얼로 넘어가도 괜찮을 것 같다.

※ 한빛미디어 2021 도서 서평단 "나는 리뷰어다"의 일원으로 도서를 제공받아 작성한 리뷰입니다.