본문 바로가기
책 이야기/프로그래밍

케라스 창시자에게 배우는 딥러닝 (Deep Learning with Python) - 프랑소와 슐레 지음 / 박해선 옮김

by meticulousdev 2022. 7. 9.
반응형

1. 늦었다고 생각할 때는 진짜 늦은 걸까

    그동안 딥러닝을 얕게 공부하고 큰 관심을 가지지는 않았었습니다. 아마도 유행에 대한 거부감이 컸던 거 같습니다. 딥러닝이 뭔지는 알고 싶었기에 기초적인 강의를 찾아보고 모두의 딥러닝을 읽고 파이썬 날코딩으로 알고 짜는 딥러닝도 어느 정도 읽어보았습니다. 하지만 실제로 사용하지 않다 보니 이론은 어느 정도 알고 코드를 대략적으로 읽을 줄은 알았지만 제가 원하는 것을 직접 구현할 수 있지는 않았습니다. 그러다 보니 알파고의 등장 이후 딥러닝의 유행에 이런저런 변화가 있었습니다. TensorFlow가 대세 프레임워크로 자리 잡았었지만 어느덧 PyTorch를 더 많이 사용한다는 말도 들리고 있습니다. 이 책도 1판의 번역본이 2018년에 출판되었으며 이제 곧 2판 번역본이 나올 거라는 얘기도 나오고 있습니다. 이러한 상황 속에서 빠르게 읽어본 TensorFlow-Keras의 사용법을 담고 있는 1판을 읽고 책의 후기를 정리해보려고 합니다. 막상 2달 가까이의 시간 동안 공부하고 완독해보니 늦은 건 없었습니다. 그리고 공부 한만큼 TensorFlow-Keras와 조금 더 친해질 수 있었습니다. (주의: 최근 박해선 님의 페이스북에 올라온 글을 봐서는 정말 2판 출판까지 얼마 안 남은 거 같으니 이제는 진짜 2판을 기다리셔도 될 거 같습니다.)

 

2. 들어가기에 앞서

    후술 될 내용들에서는 Keras와 TensorFlow를 동시에 이야기합니다. 간단하게 둘에 대해서 기술하면 Keras는 파이썬으로 작성된 고수준 신경망 API입니다(출처: https://keras.io/ko/). TensorFlow는 구글에서 개발한 ML 모델을 개발하고 학습시키는 데 도움이 되는 핵심 오픈소스 라이브러리입니다(출처: https://www.tensorflow.org/?hl=ko). 초기 버전에서는 둘이 독립된 성격을 띠고 있었지만 지금의 Keras는 TensorFlow 위에서 정상적으로 자동합니다. 이에 대한 내용은 아래 글 및 저자인 프랑소와 슐레의 트위터를 확인해주시기 바랍니다.

 

 

https://meticulousdev.tistory.com/entry/TensorFlow-from-tfkeras는-되고-from-keras는-안되는-이유

 

[TensorFlow] from tf.keras는 되고 from keras는 안되는 이유

TensorFlow를 사용한 딥러닝 모델을 사용하다 보다 보면 from keras import ...와 from tf.keras (혹은 tensorflow.keras) import ... 모두가 등장하곤 합니다. 하지만 어떨 때는 오류 없이 실행되고 어떨 때는..

meticulousdev.tistory.com

 

3. keras 그리고 tensorflow.keras

     책은 이름에 맞게 Keras를 어떻게 잘 다룰 수 있는지에 대한 내용을 담고 있습니다. 그렇다 보니 딥러닝의 수학적인 배경이 자세하다기보다는 딥러닝에 대한 전반적인 내용을 다룬 후 바로 케라스를 활용하는 방법으로 넘어갑니다. 즉, Keras에 입문하기에는 좋은 책이지만 딥러닝에 입문하기에는 조금 부족해 보입니다. 여기서 언급한 수학적인 배경은 미분 등에 대한 내용입니다. 또한, 책의 예제가 대부분 Keras를 불러오게 되어 있지만 최근 keras와 TensorFlow에서의 변경 사항들로 인해서 오류가 발생하기도 합니다.

    하지만, 장점도 명확합니다. 책은 Keras의 입문에 대해서 정말 자세하게 설명하고 있습니다. 기본적으로 딥러닝 문제를 해결하기 위해서 수행해야 할 데이터 분석부터 딥러닝 코드 작성(CNN, LSTM, 그리고 GAN 등)까지 자세하게 설명하고 있습니다. 어찌 보면 앞서 언급한 수학적인 내용이 없는 것은 비전공자도 쉽게 배울 수 있다는 장점으로 작용하기도 합니다. 2018년을 기준으로 그 당시까지 나온 딥러닝 모델들을 모두 다루고 있다는 것도 가장 큰 장점입니다. 그리고 제일 좋았던 부분은 7장 딥러닝을 위한 고급 도구입니다.

 

4. 딥러닝을 위한 고급 도구 - 함수형 API

    Keras를 공부하면서 두 가지 궁금한 점이 있었습니다. 1) 왜 모든 모델의 입력은 1개이고 출력도 1개인지와 2) 모델의 구조는 단순히 층을 쌓는 것보다 복잡하게 만들 수는 없는지 였습니다. 1) 번은 제가 하는 일에서 필요해서였고 2) 번은 단순한 호기심이었습니다. 이를 해결해줄 수 있는 방법이 함수형 API라는 걸 알게 되었을 때 약간의 전율을 느꼈습니다. 함수형 API는 간단하게 얘기해서 모델 안의 각 층을 함수처럼 취급하는 것입니다. 그렇기 때문에 단순히 층을 쌓는 것 이외의 작업을 할 수 있습니다. 7장의 내용들은 실행이 안 되는 예제인데 이는 책의 내용을 넘어서기 때문이라고 생각됩니다. (이에 대해서 다루는 책을 찾다가 Advanced Deep Learning with TensorFlow 2 and Keras을 알게 되어서 보고 있는데 책이 괜찮으면 리뷰를 올리겠습니다. 추천해주신 동동 님께 감사드립니다.) 이렇듯 이 책은 입문자에게 적합한 수준에서 Keras의 활용법을 잘 다루고 있습니다.

 

https://www.tensorflow.org/guide/keras/functional?hl=ko  

 

기능적 API  |  TensorFlow Core

기능적 API 설정 import numpy as np import tensorflow as tf from tensorflow import keras from tensorflow.keras import layers 시작하기 Keras 함수형 API는 tf.keras.Sequential API보다 더 유연한 모델을 생성하는 방법입니다. 함수

www.tensorflow.org

 

5. 박해선 옮김

    아무래도 많은 분들이 박해선 님이 번역하신 책을 읽는 이유는 이해하기 쉽게 번역된 글과 GitHub를 통해서 제공되는 예제 코드들 때문이라고 생각됩니다. 책에 나오는 예제 코드 역시 TensorFlow 2.6 버전까지 테스트하신 후 GitHub에 공유해 주셨습니다. 개인적으로 원서와 비교했을 때 실행하기 좋게 변경된 부분들이 있어서 책을 읽고 내용을 이해하기에 매우 좋았습니다.

 

https://github.com/rickiepark/deep-learning-with-python-notebooks

 

GitHub - rickiepark/deep-learning-with-python-notebooks: <케라스 창시자에게 배우는 딥러닝> 도서의 주피터 노

<케라스 창시자에게 배우는 딥러닝> 도서의 주피터 노트북. Contribute to rickiepark/deep-learning-with-python-notebooks development by creating an account on GitHub.

github.com

 

6. 책을 다 읽은 후

    책의 내용은 입문자에게 적합했던 만큼 다음 단계를 위해서는 추가적인 공부가 필요합니다. 단순한 모델이 아닌 함수형 API를 적극적으로 사용하는 모델을 구현하는 방법이라던지, 최근 유행하는 transformer를 알기 위해서는 추가적인 공부가 필요합니다. Sequential API만으로도 많은 딥러닝 문제를 해결하기에 적합하다는 의견도 있어서 뭐가 맞을지는 모르겠습니다. 다음으로는 좀 더 깊게 딥러닝을 다루는 책을 읽거나 논문에 나온 모델을 직접 구현해보는 것들이 도움이 되지 않을까 싶습니다. 음 아마도 9.4 빠른 변화에 뒤처지지 않기에 나온 것들을 해보면 되지 않을까요?

 

1. 캐글의 실전 문제로 연습하기
2. 아카이브(arXiv)를 통해 최신 논문 읽기
3. 케라스 생태계 탐험하기

케라스 창시자에게 배우는 딥러닝 (Deep Learning with Python) - 프랑소와 슐레 지음 / 박해선 옮김

 

긴 글 읽어주셔서 감사합니다. 
글과 관련된 의견은 언제든지 환영입니다.
반응형

댓글