머신러닝(Machine Learning) 1장
- 용어와 개념 설명 -
머신러닝은 과연 무엇인가? 머신러닝은 일종의 소프트웨어이다. 일반적으로 사용하는 웹과 앱과 같은 서비스를 제공해주는 기능을 수행한다. 현재 나와 있는 다양한 소프트웨어들은 프로그래머들에 의해 어떻게 어떤 기능을 수행하라는 것이 다 정해져 있다. 하지만 실제 상황에서 항상 그러한 조건이 맞아 떨어지는 것은 아니다. 예를 들면 메일을 받을 때 스팸 메일인지 아닌지를 알기 위한 조건이 매우 많이 필요하다. 실재로 개발자들이 일일이 나누어 코드를 작성할 수가 없다. 또한 자율 주행 자동차에 대한 예시를 보아도 모든 길에 대해 코드를 작성하여 자율적으로 주행을 하도록 만드는 일은 매우 힘들다. 그래서 1959년 Arthur에 의해 일일이 프로그래밍을 하는 것이 아니라 컴퓨터가 스스로 배우는 능력을 주는 것으로 머신러닝에 대한 생각이 나타나게 되었다. 일일이 개발자가 정해주는 것이 아니라 컴퓨터가 학습해서 배워 적용을 시키는 것이 바로 머신러닝이 되는 것이다.
컴퓨터를 학습 시키는 방법에는 크게 Supervised learning과 Unsupervised learning으로 나눌 수 있다. Supervised learning은 어떤 하나에 정해져 있는 데이터에 대해 학습을 하는 방법이다. 하나의 예시로 그림을 인식하는 머신러닝을 보게 되면 고양이 사진과 개 사진을 보여주고 이에 대해 고양이인지 개인지를 알아맞히도록 학습을 하는 것이다. 이러한 학습은 기존에 답이 정해져 있는 데이터이므로 이에 대해 학습하는 것을 Supervised learning이라고 한다. Unsupervised learning은 정해져 있지 않은 데이터에 대해 grouping이나 clustering을 해주는 학습을 말한다. 예를 들어 뉴스와 같은 자료들에 대해 비슷한 주제로 grouping을 하거나 단어에 대한 경우 비슷한 성격의 단어나 주제에 맞는 단어들로 clustering 하는 작업을 수행한다.
대부분의 머신러닝은 Supervised learning으로 이루어져 있다. Supervised learning의 경우 training data set을 가지게 된다. 특정 입력 값에 대해 결과 값이 정해져 있는 데이터의 모임이다. 이러한 데이터의 모임으로 머신러닝을 통해 학습을 하게 되는 것이다. 이렇게 학습된 머신러닝에 또 다른 특정 값을 입력 값으로 물어보게 되면 이제는 결과 값을 알려주게 되는 것이다. 이는 알파고를 예시로 들 수 있는데 실제로 이세돌 기사와 바둑을 두기 전에 엄청나게 많은 바둑에 대한 결과 데이터를 넣어 놓는다. 이를 바탕으로 바둑을 할 수 있는 경우의 수를 생각해서 바둑을 두게 되는 것이다.
Supervised learning도 특정 종류로 나눌 수 있는데 연속적인 값에서 예측을 하는 경우와 정해진 개수 안에서 예측을 하는 경우로 나눌 수 있다. 예를 들면 시간에 따른 성적을 예측하는 머신러닝의 경우 성적이라는 값이 연속적으로 가질 수 있는 값이므로 이를 예측하는 방법을 regression이라고 한다. 이와 다르게 특정한 값을 예측하는 예를 들면 yes or no를 예측하거나 성적이 A, B, C, D, F를 예측한다는 것은 classification 이라는 방법을 사용하여 예측하게 된다.
투자한 시간에 대비해서 성적을 예측하는 모델을 통해 Supervised learning의 종류를 알아보자. regression의 경우에는 training data set에 투자한 시간과 그에 따른 성적이 점수의 형태로 나타나게 된다. 학습이 된 후 7시간에 대한 의문을 던졌을 때 특정한 점수 값을 나타나게 해준다. classification의 경우 쉽게 pass or fail로 생각을 해보면 training data set은 투자한 시간에 따른 p 또는 f 로만 나타나게 된다. 학습 후 7시간에 대한 의문을 던졌을 때에도 p 또는 f로만 대답을 하게 된다.
'자료' 카테고리의 다른 글
머신러닝(Machine Learning) 3장 - Linear Regression의 cost 최소화 알고리즘 (0) | 2020.07.08 |
---|---|
머신러닝(Machine Learning) 2장 - Linear Regression의 Hypothesis와 cost (0) | 2020.07.08 |
C#에서 tensorflow 사용하는 방법 알아보기 (1) | 2020.07.07 |
치트엔진 라이브러리(cheatengine-library) (0) | 2020.07.04 |
VB.net GetPixel (0) | 2020.07.04 |