본문 바로가기
AI/PyTorchZeroToAll by Sung Kim

[PyTorchZeroToAll] 1. Overview

by 쵸빙 2020. 1. 20.

     유튜브의 Sung Kim 교수님의 PyTorch Zero To All 강의를 듣고 강의 내용을 정리하려고 한다.

 

     이번 강의의 목표는 머신러닝과 딥러닝의 기본적 개념 이해와 pytorch 사용법을 익히도록 한다.

 

● 머신러닝

머신 러닝에 대해 알아보기 전에 human intelligence에 대해서 알아보자. 어떻게 사람들이 결정을 내리는 것일까?

예를 들어, 점심에 무엇을 먹을지 결정하는가? 첫째로, 우리는 우리가 뭘 좋아하고 뭘 싫어하는지에 대한 정보를 수집한다. 그 정보들을 이용해서 무엇을 먹을지 결정한다. 이 과정을 우리는 정보를 가지고 추론(infer)한다고 한다.

만약 정보가 이미지 형태라면 그것을 보고 그 사진안에 고양이가 있다는 것을 예측(prediction)한다.

만약 4시간 공부했다는 정보가 들어왔을 때, 시험 점수가 어떻게 될지 알고 싶을 때도 predict한다.

이것이 human intelligence이고, 머신러닝도 정확히 똑같은 일을 한다.

 

     이런 식의 손글씨가 들어오면 컴퓨터는 픽셀 단위로 사진을 읽어와서 어떤 숫자인지 예측한다.

 

     컴퓨터는 아무런 사전 조치 없으면 이 사진이 뭔지도 모르고, 심지어 2라는 글자가 무엇인지도 모른다.

그러기에, 미리 컴퓨터에게 이미지와 상응하는 정답(label)을 제공하고, 이것들을 labeled dataset이라고 한다.

많은 데이터셋을 제공해서 모델을 훈련시킨다.

 

● 머신러닝과 딥러닝의 차이

Deep Learning

     머신러닝과 딥러닝의 관계를 설명하는 그림이다. AI는 일반적으로 사람이 아닌 지능을 가진 모든 것을 이야기한다.

딥러닝은 neural network에서 사용되는 알고리즘의 그룹으로, 많은 층을 가지고 있어서 deep하기 때문에 deep learning이라는 이름이 붙었다.

 

     우리가 딥러닝에 관심을 가지는 이유는 딥러닝이 잘 동작하기 때문이다. 하나의 예는 visual question answering이다. 어떤 사진을 주고 그 사진에 대해 질문을 하면 딥러닝이 정보를 바탕으로 판단하여 답을 한다. 

심지어 위 사진에서와 같이 어떤 그림을 주고 그림의 스타일을 바꿔보라고 하면 새로운 그림을 창조해준다.

 

● 개발자로서의 딥러닝

      그러면 개발자로서 우리는 왜 deep learning에 신경을 쓰는 것일까?

Rule-based system에서 우리는 모든 가능한 입력을 생각한 다음 그 입력에 기반하여 수동으로 모든 rule들을 디자인하다. 그리고 이 입력들로부터 rule을 적용하여 의미있는 출력이 나오기를 희망한다.

     Classic Machine Learning의 경우에는 이 과정을 상당히 바꿀 수 있다. 수동으로 이 rule들을 설정하는 대신, 머신 러닝 모델에서는 자동으로 rule들을 학습한다. 하지만 역시나 feature이라고 불리는 좋은 입력을 제공해야한다는 제한은 남아있다. 그러기 때문에 feature을 수동으로 디자인하게 된다.

     Representation Learning의 경우에는 좋은 feature와 나쁜 feature을 우리가 구분할 필요가 없다.

일단 모든 가능한 입력을 넣고 여러 층을 통과하면서 자동으로 각 feature의 좋고 나쁨을 구분한 다음 좋은 것만 골라서합당한 결과를 이끌어낸다.

 

     좋은 소식은 딥러닝이 생각보다 간단해서 기초 대수학, 확률, 파이썬 지식만 있으면 일 년 내에 공부할 수 씨고, 많은 공부 자료들로 도움을 받을 수 있다.

 

Pytorch

     이번 강의에서는 pytorch로 모든 기본 개념들을 직접 실행해볼 것이다.

 

     pytorch를 사용하는 이유는 유연하고, 직관적이고 깔끔한 코드를 가지고 있고 디버그하기 쉬운 파이썬같은 특징을 가지고 있다. 파이썬같은 것(pythonic)이란 유연하고 읽기 쉽고 간략한 코드를 작성할 수 있다는 것이다. 

두 번째 장점은 머리 속으로 생각한 개념을 코드로 옮기기 쉽다는 것이다. 자연스럽게 신경망 코드를 짤 숭 ㅣㅆ어서 별다른 스킬을 필요로 하지 않다.

 

파이토치는 http://pytorch.org에서 설치할 수 있으며, 설치 과정은 생략하도록 하겠다. 

 

PyTorch

An open source deep learning platform that provides a seamless path from research prototyping to production deployment.

pytorch.org

 

다음 시간에는 linear model에 대해 배워보도록 하겠다.