처음 시작하는 딥러닝 본문

Programming

처음 시작하는 딥러닝

halatha 2020. 9. 22. 23:30

저자는 딥러닝을 잘 설명하기 위해 일반적인 문장으로 설명을 하고, 시각화를 통해 동작 과정을 보여주고, 수식으로 원리를 나타내고, 의사코드로 알고리즘 구현과정을 보여줘야 한다고 생각해서 이 책에 이런 방식을 썼다고 한다. 이걸 주요한 강점으로 내세우는 듯 싶은데, 수식은 저자의 방향성에 따라 싣는 경우도 있고 아닌 경우도 있지만, 네트워크 시각화와 의사코드 혹은 소스코드(일반적으로 당연히 파이썬)는 당연히 모든 딥러닝 책이 갖고 있는 부분이다.

그럼 이 책이 다른 책과 다른 점은 무엇일까? 우선 다이어그램이 다르다. 일반적으로 딥러닝 책에서 사용하는 다이어그램은 여러 개의 원이 빽빽하게 연결되어 여러 개의 층으로 레이어를 이루는 모습을 표현한다. 저자는 이런 다이어그램이 신경망의 일반적인 구분을 하는 데는 도움이 되지만, 어떤 연산이 일어나는지 등 신경망 자체를 이해하는 데는 아무 도움이 되지 않는다고 생각해서, 1장에서 하나의 함수의 입출력을 표현하는 하나의 상자로 시작해 합성함수를 거쳐 딥러닝을 이루는 여러 함수의 레이어별 입출력을 표현한다.

두 번째로는 시각화 수식 코드 3가지 설명을 계속 반복하면서 발전시킨다는 점이다. 간단한 1차 함수를 통해 자신의 설명 방법을 소개하고 각 장을 거치면서 이걸 조금씩 덧붙여서 최종 설명을 향해 나아가기 때문에, 같은 방법 속에서 내용을 심화해 나가는 점이 개인적으로는 마음에 들었고 독자가 이해하는 데 도움이 될거란 생각이 들었다.

마지막으로 자체적인 파이썬 라이브러리를 구축하는데, 여기 사용된 소스 코드 내용이 파이썬 기초를 익히기에 좋다. 많은 사람들이 딥러닝에 관심을 갖고 시작을 하면서 파이썬은 정말 빠르게 훑고만 지나가는 경우가 많아, 딥러닝 커뮤니티에 올라오는 질문을 보면 파이썬 자체에 관련된 부분은 전혀 이해하지 못해 문제를 해결하지 못하는 경우도 종종 봤다. 이런 사람들에겐 여기 나온 라이브러리 코드를 따라가며 설명하는 부분이 초급을 벗어나는 데 도움이 될 만하다.

1장부터 모든 내용이 연결되며 앞의 내용이 이해가 되지 않으면 뒤쪽은 읽기가 힘들어 각 장마다 독립성이 떨어진다는 점이 있긴 하지만 이건 독자의 스타일에 따라 꼭 단점이라고 보기는 힘들고, 그냥 참고만 하면 될 거 같다. 전체적으로 기초를 쌓기에 좋은 책이란 생각이다.

Etc

Colab

예제 코드를 따라하기 위해서 아무 것도 설치하지 않고 간단하게 colab에서 모든 걸 이용할 수 있다. 예를 들어 예제 코드 중 마지막인 https://github.com/flourscent/DLFS_code/blob/master/07_PyTorch/Code.ipynb를 colab에서 실행한다면 우선 https://colab.research.google.com/github/flourscent/DLFS_code/blob/master/07_PyTorch/Code.ipynb 이런 식으로 주소를 변경해서 colab에서 파일을 연다. 그 후 필요한 라이브러리를 설치해줘야 하는데, 다음과 같이 pip로 pytorch 설치를 하고, 이 책에서 제공하는 별도의 라이브러리 lincoln을 사용하기 위해 github repo도 받은 후

file을 여는 두 곳의 경로만 수정하면 된다.

여기까지 수정하면 전체를 실행할 수 있으며, 실행 결과 마지막 셀은 다음과 같다.

https://colab.research.google.com/github/flourscent/DLFS_code/blob/master/01_foundations/Code.ipynb (별도 수정 없이 그대로 실행 가능)

https://colab.research.google.com/github/flourscent/DLFS_code/blob/master/02_fundamentals/Code.ipynb (별도 수정 없이 그대로 실행 가능)

https://colab.research.google.com/github/flourscent/DLFS_code/blob/master/03_dlfs/Code.ipynb (별도 수정 없이 그대로 실행 가능)

https://colab.research.google.com/github/flourscent/DLFS_code/blob/master/04_extensions/Code.ipynb (repository clone, lincoln 경로 수정 및 최초 실행 시 주석 해제 필요)

https://colab.research.google.com/github/flourscent/DLFS_code/blob/master/05_convolutions/Code.ipynb (별도 수정 없이 그대로 실행 가능)

https://colab.research.google.com/github/flourscent/DLFS_code/blob/master/05_convolutions/Numpy_Convolution_Demos.ipynb (repository clone, lincoln 경로 수정 및 최초 실행 시 주석 해제 필요)

https://colab.research.google.com/github/flourscent/DLFS_code/blob/master/06_rnns/Autograd_Simple.ipynb (별도 수정 없이 그대로 실행 가능)

https://colab.research.google.com/github/flourscent/DLFS_code/blob/master/06_rnns/RNN_DLFS.ipynb (repository clone, lincoln 및 input.txt 경로 수정 필요)

Ref.

flourscent/DLFS_code
이 저장소에는 한빛미디어에서 2020년 8월 발간된 '처음 시작하는 딥러닝'의 예제 코드가 실려 있다. 이 저장소의 애초 목적은 집필 과정에서 작성한 예제 코드를 보관하기 위해서였으나, 이 저장소의 예제 코드를…github.com

Colab 팁: 깃허브 노트북 바로 열기!
일전에 구글이 공개한 주피터 노트북 환경인 Colab에 대해 포스팅했었습니다. Colab은 구글 드라이브에 있는 노트북(ipynb) 파일을 읽어서 실행하고 결과를 다시 구글 드라이브로 저장할 수 있어 교육 목적이나…tensorflow.blog

Google Colab - 깃허브 연동하기
Google Colaboratory Tip For Starter | 지난 시간에는 Google Colaboratory 에 Google Drive를 연동해서 드라이브에 있는 csv 파일 등을 불러와 데이터 분석…brunch.co.kr

구글 Colab 에서 PyTorch 사용하기
12시간 무료 GPU :D !medium.com

 

Comments