투명한 기부를 하고싶다면 이 링크로 와보세요! 🥰 (클릭!)
바이낸스(₿) 수수료 평생 20% 할인받는 링크로 가입하기! 🔥 (클릭!)
이 글의 시리즈는 Sung Kim 님의 PyTorchZeroToAll 영어 강의를 한글로 다시 정리한 글이며 원본 재생목록은 https://www.youtube.com/watch?v=SKq-pmkekTk&list=PLlMkM4tgfjnJ3I-dbhO9JTw7gNty6o_2m 에서 보실 수 있습니다.
저의 개인적인 기호에 따라 약간의 의역과, 생략 혹은 첨가가 이루어졌으며 일부 코드를 pytorch 0.4.0버전 기준으로 스스로 재 작성 할 예정입니다.
이 글은 기본적인 대수학과 확률론, 그리고 기본적인 python 지식만을 가지고 있다면 충분히 따라갈 수 있습니다.
이 시리즈의 글을 모두 학습하고 나면 기본적인 머신러닝적 지식 뿐만 아니라 그것을 Pytorch 로 코딩할 수 있게 될 것입니다.
Human Intelligence
우선 들어가기에 앞서, Human Intelligence라는 것에 대해 생각 해 봅시다.
Human Intelligence(인간 지능)란 무엇일까요?
친구가 점심에 무엇을 먹을지 맞추는 어떤 사람을 예로 들어 생각 해 봅시다.
어떻게 그 사람은 친구의 결정을 예측할 수 있을까요?
보통의 경우 그 친구가 무엇을 좋아한다거나, 지금 무엇이 그 친구의 가까이 있다거나 하는 '정보(information)'를 바탕으로 친구의 결정을 예측할 수 있을 것 입니다.
이 결정은 '정보'로부터 만들어진 '추론(inference, prediction)'이라고 할 수 있습니다.
'정보' 로 부터 '추론' 하는 것은 이것 뿐만 아니라
내일 무엇을 입는지, 고양이 사진을 보고 고양이 사진인걸 알아낸다던지, 더 나아가서는 10시간 공부한 친구는 몇점의 시험점수를 받을 수 있을지 예측하는 등에 대한 여러가지 일들을 의미할 수 있습니다.
Machine Learning
머신러닝은 동작할 때, 정확히 앞서 말한 과정을 거칩니다.
'정보 (information)'를 가지고 -> 머신러닝이 동작해서 -> 무엇인지 '추론(Prediction)' 하는 과정을 통해 정답을 맞추게 됩니다.
그렇다면 어떻게 기계가 이런 것들을 맞추게 될 수 있을지 생각 해 봅시다.
보통의 경우 기계는 단순한 업무만을 처리할 수 있기 때문에, 이런 이미지가 어떤 것을 의미하는지 알 수 없습니다.
그렇기 때문에 우리는 머신러닝 모델(Model)을 설계해서 많은 데이터(Data set)를 통해 머신러닝을 학습(training)시켜야 합니다.
모델을 학습시키고 난 후에는 우리는 학습된 모델에게 새로운 데이터가 어떤것을 의미하는지 물어보면 머신러닝 모델은 그 질문에 대답할 수 있게 됩니다.
Deep Learning vs Machine Learning vs AI
AI 와 머신러닝과 딥러닝은 어떻게 다를까요?
AI는 보통 지능을 가지고 있다면 다 AI라고 부릅니다.
컴퓨터에게 지능을 가지게 하기 위해서 이용할 수 있는 많은 방법이 있고, 그중 한가지 방법이 머신러닝 입니다.
머신러닝을 구현하기 위해서는 선택할 수 있는 많은 세부적인 알고리즘이 있는데
딥 러닝은 뉴럴넷이라는 것을 사용하는 알고리즘들을 딥러닝이라고 부릅니다.
딥 러닝이라고 불리는 이유는 뉴럴넷이 여러 Layer(나중에 배우게 될 것입니다)들을 깊게 쌓기 때문에 때문에 딥(Deep)러닝이라고 부르는 것입니다.
그렇다면 왜 우리는 딥러닝 딥러닝 하게 된 것일까요?
그 이유는 딥러닝이 다양한 분야에서 잘 동작하기 때문입니다.
이미지 분석, 문장 번역, 이미지 변환 등 다양한 방법에서 기존의 다른 방법보다 잘 동작합니다.
Deep Learning을 배우기 좋은 이유
아직은 딥러닝이 굉장히 힘들지는 않습니다.
기본적인 수학적 지식과 파이썬 코딩 능력이 있다면, 한 1년정도 깊게 파면 어느정도 따라갈 수 있을 정도의 학습량이 됩니다.
그리고 또한 많은 프레임워크들이 나와있기 때문에 손쉽게 프로그래밍 할 수 있습니다.
이 강의 시리즈에서는 Pytorch를 이용해서 딥러닝을 배워보도록 하겠습니다.
Pytorch
파이토치는 딥러닝 코딩을 가능하게 해주는 프레임워크입니다.
Pytorch의 장점은 다음과 같습니다.
- 유연하고 , 깔끔하며 디버깅하기가 편합니다.
- neural network가 실제로 동작하듯이 코딩을 하기 때문에 더욱 직관적으로 코딩할 수 있습니다.
그렇다면 이제 pytorch.org 를 들어가서 pytorch를 설치 해 봅시다.
그 후 다음 명령어들을 통해서 파이썬이 제대로 동작하는지 확인 해 봅시다.
참고로 여기의 버전은 0.2.0이지만 이 글을 작성하는 현재 기준으론 0.4.0버전이 나왔으며, 이전 버전보다 몇가지 편리해진 부분이 있습니다.
그렇기 때문에 가능한 부분에 있어서는 최신 버전을 따라 코드는 기존 강의와 다르게 작성하는 부분이 있을 것입니다.
Topics
이 강의에서는
- Linear, Logistic, Softmax models
- Deep Neural Net
- Convolutional Neural Net
- Recurrent Neural Net
등의 주제를 다루며 이 모든것을 Pytorch로 코딩해볼 것 입니다.