오늘은
- 머신러닝이란 무엇인가?
- 러닝은 무엇인가?
- regresion이 무엇인가?
- classification이 무엇인가?
에 대해서 알아보도록 하겠습니다.
머신러닝이라는 것은 일종의 소프트웨어입니다.
우리가 많이 사용하는 앱 같은 것을 보면, 입력을 기반으로 어떤 데이터를 보여주고 하는 프로그램인데,
이런 것들을 explicit program이라고 합니다.
explicit program은 개발자들이 이런 환경에서 이렇게 반응하고 저런 환경에서 저렇게 반응하라고 만들어놓은 프로그램입니다.
이런 explicit program에서는 한계점이 있습니다.
예를 들어, 스팸 메일 필터같은 경우 엄청나게 많은 규칙들이 생겨날 수 있는 상황이 있죠.
이런 상황을 해결하기 위해, Arthur Samuel이라는 사람이 "일일이 프로그래밍하지 말고, 어떤 자료나 현상에서 자동적으로 학습이 되면 어떨까?"라는 아이디어를 제시하였습니다.
개발자가 일일이 정해주지 않고, 프로그램 자체가 학습해서 뭔가를 배우는 능력을 갖는 프로그램을 머신러닝이라 합니다.
머신러닝을 할 때, 이 프로그램은 학습을 해야하는데요.
학습을 하기 위해선, 어떤 데이터가 주어져야 합니다.
이 학습을 하는 방법에 따라서 Supervised/Unsupervised learning 으로 나누어집니다.
- Supervised learning
어떤 하나의 정해져 있는 데이터(레이블이 정해져 있는, 트레이닝 셋)을 가지고 학습을 하는 것
예를 들어, 최근에 사진을 보고 고양이인지 개인지 판단할 수 있게 하는 프로그램에서, 고양이라는 레이블이 달려있는 사진을 가지고 학습을 하기 때문에
supervised learning 이라고 합니다.
- Unsupervised learning
그러나 어떤 러닝의 경우에는 우리가 일일이 레이블을 정해줄 수 없는 경우도 있습니다.
예를 들어서 구글 뉴스가 있는데, 자동적으로 유사한 뉴스들을 그룹핑합니다.
이런 경우에는 미리 레이블을 정해주기 어렵습니다.
즉, unsupervised learning은 레이블을 직접 만들어주는 것이 아니라, 데이터를 보고 스스로 학습하는 것입니다.
Supervised learning은
머신러닝에서 일반적인 문제입니다.
이미지 레이블링이나 이메일 스팸 필터, 시험 성적 예측 등과 같은 경우에 사용을 할 수 있습니다.
그럼 여기서 Training data set이라는 게 무엇일까요?
어떤 데이터에 대해서 레이블이 있어서 모델을 학습시키는 데이터입니다.
알파고도 여러가지 요소가 있겠지만,
기본적으로 기존에 사람들이 바둑판에서 둔 기보를 학습한 것입니다.
이 때 이 기보가 트레이닝 데이터 셋이라고 할 수 있습니다.
결국 알파고는 supervised learning을 한 것이라고 할 수 있죠.
Supervised learning 도 결과에 따라서 다르게 나누어 볼 수 있습니다.
시험의 성적을 예측하는 시스템을 만든다고 하는 경우에, 성적이라는 경우 0점에서 100점까지의 범위가 주어지는데,
이러한 예측을 regression이라고 합니다.
그러나 Pass/Non-pass로 구분하는 경우에는 둘 중에 하나를 고르게 됩니다.
이러한 예측을 binary classification이라고 합니다.
만약 A, B, C, D, F같은 학점을 주게 된다면, 여러 개의 범주로 분류를 하게됩니다.
이 때는 multi-label classification이라고 합니다.
'AI > Lecture notes' 카테고리의 다른 글
[ML lec 06] Softmax Regression (0) | 2017.07.21 |
---|---|
[ML lec 05] Logistic Classification (0) | 2017.07.19 |
[ML lec 04] multi-variable linear regression (*new) (0) | 2017.07.17 |
[ML lec 03] Linear Regression의 cost 최소화 알고리즘의 원리 설명 (0) | 2017.07.15 |
[ML lec 02] Linear Regression (1) | 2017.07.06 |