ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 0. 딥러닝 첫 걸음
    Deep Learning/Fundamentals 2020. 2. 4. 17:43

    점점 쉬워지는 딥러닝

    브라우저에서 클라우드 서버의 GPU 및 TPU로 딥러닝 실습이 가능한 구글의 Colaboratory

    최근 몇년 사이 딥러닝에 대한 전세계의 관심이 점점 더 높아져 가고, 그 이상으로 딥러닝 기술들이 발전해감에 따라서 딥러닝을 배우고자 하는 사람의 수도 많아지고 있다. 이러한 수요에 맞추어 딥러닝 관련 파이썬 라이브러리들의 사용법이 쉬워지고 있다. 가장 대표적인 딥러닝 프레임워크인 Tensorflow만 보아도, 필자가 처음 딥러닝을 공부하기 시작했던 1년 전과는 다르게 라이브러리 전체가 고수준화, 직관화되어 장황하고 추상적이었던 코드들이 간략하게 탈바꿈하였다. 또한 구글의 Colaboratory와 같은 사용하기 쉬운 클라우드 서비스가 대중화됨에 따라 처음 접하는 사람들이 공부를 시작하기 위한 절차가 매우 간소화되었다.

     

    Tensorflow vs Pytorch

    Tensorflow와 Pytorch는 2020년 현재 딥러닝 프레임워크의 양대산맥이라고 할 수 있다. Tensorflow는 구글에서 개발하고 있으며, Pytorch는 페이스북에서 개발하고 있다. 몇년 전까지만해도 커뮤니티에서 Tensorflow가 압도적인 점유율을 가지고 있었으나, 페이스북의 Pytorch가 점점 치고 올라오고 있다. Tensorflow가 고수준 API인 Keras를 공식적으로 지원, 이식하여 대대적으로 프레임워크의 사용 구조를 뜯어고치며 Tensorflow 2.0을 세상에 내놓은 것 또한 이에 대한 위기의식의 반영이라고 볼 수 있다.

     

     

    Tensorflow는 가장 성숙하고 많은 인용, 프로덕션 사용 사례를 가지고 있다. 또한 Tensorflow 2.0은 간소함과 사용의 용이함에 초점을 두어 개발되었으며, 다양한 환경에서의 개발을 지원하는 종합적인 생태계를 갖추고 있다. 특히 TensorFlow.js를 통해 자바스크립트로 모델을 개발하여 웹상에서 딥러닝을 활용한 서비스를 만들 수 있으며, Tensorflow Lite를 통해 모바일, 임베디드 디바이스 상의 학습도 가능하다. 최근 Tensorflow에 동합된 Keras는 간결하고 가독성이 좋아 입문자가 접근하기 쉬우며, 이미 완성되어있는 모델을 만들어 활용하기 용이하다.

     

     

    이에 비해 Pytorch는 보통 모델이 수학적으로 어떻게 동작하는지 이해하고 싶은 사람이나, 딥러닝 자체에 대한 심도있는 연구를 하는 사람에게 추천되어진다. 모델을 훨씬 더 유연하게 구성할 수 있으며, 속도 또한 Tensorflow+Keras에 비하여 더 빠르다. 특히 디버깅 용이성은 다른 프레임워크들보다 우월하다고 인정받고있다. Pytorch 또한 Fast.AI라는 Keras와 같은 고수준 API를 가지고 있다. Keras와의 차이점이라면 Pytorch가 공식적으로 지원하는 라이브러리는 아니라는 것이다.

     

    그럼 뭘 해야하나요?

    딥러닝에 처음으로 입문하고자 한다면 딥러닝 프레임워크를 선택하여 본격적인 코딩을 하기 전에 딥러닝에 기반이 되는 수학이론들을 먼저 공부하기를 추천한다. 그와 동시에 한 주제를 공부할 때마다 Tensorflow2.0의 Keras나 Pytorch의 Fast.AI의 기초 튜토리얼을 찾아 간단한 실습을 해보는 것을 추천한다. 둘 중 어느것을 택하여도 문제는 없다.

     

    이때까지 이야기한 주제에서 갑자기 벗어나는 기분이 없지는 않지만,  필자는 처음 딥러닝을 접하였을 때 모델 예제의 장황한 코드에 압도되어 코드를 따라 치면서도 이게 뭐하는 건지 이해를 하지 못한 상태로 그 다음 코드를 따라치는 것을 반복하였고, 몇 달 후 기계학습의 이론을 공부하면서 그때 뭘했던건지 알았던 삽질을 한 경험이 있다.

     

    따라서 '컴퓨터가 학습을 한다'는 것이 무엇인지 부터 이론 지식을 쌓고, 회귀모델, 신경망 등등 하나의 모델에 대해서 공부를 마칠 때마다 Tensorflow2.0 공식 튜토리얼이나 Fast.AI의 예제를 찾아 코드를 작성하고 모델을 학습시켜보자. 개인적으로는 Tensorflow2.0을 활용하는 것을 추천한다. Tensorflow2.0 공식 튜토리얼에서는 Keras API를 적극적으로 활용하여 간결한 코드로 작성되어있으며, 각각의 모델에 대한 충분한 설명 또한 함께 있으므로 먼저 공부한 이론의 복습과 동시에 이를 모델에 적용해볼 수 있을 것이다.

     

    Tensorflow 공식 페이지의 튜토리얼. 모든 문서에서 '구글 코랩에서 실행하기'를 클릭하여 직접 코드를 실행시켜볼 수 있다.

    컴퓨터 사양이나 개발환경은 문제가 되지 않을 것이다. 처음에 소개한 구글의 Colaboratory는 로컬PC의 하드웨어 성능과는 관계없이 구글 클라우드 서버의 GPU, TPU등의 하드웨어 자원을 무료로 활용할 수 있다. 준비물은 인터넷과 웹브라우저, 그리고 구글 계정 뿐이다. 또한 앞에서 추천한 Tensorflow2.0의 튜토리얼의 모든 코드는 한두번의 클릭만으로 Colaboratory로 옮겨와서 직접 실행해볼 수 있도록 만들어져있다.

     

    다음 포스팅부터 딥러닝의 기반이 되는 이론과 수학을 주제별로 정리하여 소개할 예정이다. 또한 글마다 함께 해보면 좋을만한 튜토리얼도 소개하여 이론을 공부한 후 실습에 방향을 제시할 수 있도록 할 것이다.

     

     

     

    'Deep Learning > Fundamentals' 카테고리의 다른 글

    2. 기계학습의 분류  (0) 2020.02.21
    1. 인공지능과 기계학습, 그리고 딥러닝  (0) 2020.02.05

    댓글

Designed by Tistory.