본문 바로가기

Previous (20-22)/Development

Machine Learning - (1) 기초 개념

먼저 이 글을 읽기 전에 반드시 참고하셔야 할 부분이 있음을 알려드립니다.

 

인터넷 상에 제 글이 검색이 되어 다른 분들도 한 번 혹은 그 이상은 거쳐가는 곳인 것은 사실이지만, 어디까지나 저는 Machine Learning을 처음 시작하는 사람인 만큼 연구 및 학습을 위한 자료 정리용으로 올리는 것입니다.

그렇기 때문에 전문가가 아닌 초심자가 올리는 그런 글이라는 점을 참고정도 해 두시기 바랍니다.

 

그렇다 하여 책이나 학습 자료를 통해서 그대로 베끼거나 그런 내용은 블로그의 수준을 스스로 떨어뜨리는 일밖에는 되지 않는다는 점에서 그럴 일은 전혀 없을 것임도 더불어 참고하시기 바랍니다.

 

 

(본문 중 주요 내용에 대한 모든 출처: 알고리즘으로 배우는 인공지능,머신러닝,딥러닝 입문 - 위키북스, 김의중 지음)

즉 본문에서 뭔가 어디서 많이 본 것 같은 문구나 주요 팩트 등에 대한 내용은 위 책을 출처로 생각하시면 되겠습니다.

 

 

 

(1) 정의

 

Machine Learning의 첫 등장은 카네기멜론 대학교의 Tom Mitchell 교수의 저서를 통해서 알 수 있었으며, 그 정의는 다음과 같습니다.

 

"컴퓨터 프로그램이 특정 Some Task 'T'를 수행할 때 Performance Measure 'P'만큼 개선되는 Experience 'E'을 보이면 그  프로그램은 T,P에 대해 E를 학습했다고 할 수 있다."

 

 

 

그리고 실무적 관점에서는 다음과 같이 정의될 수 있다고도 합니다.

 

학습(Learning) = 표현(Representation) + 평가(Evaluation) + 최적화(Optimization)

(출처: A Few Useful things to Know about Machine Learning, Pedro Domingos, CACM, 2012)

 

 

 

머신러닝, 즉 기계학습이라는 것은 그 정의가 위와 같이 여러 관점에서 정의되어 있습니다.

하지만 여기서 공통적으로 봐야 할 것은,

 

주어진 방법을 가지고

데이터 입력값을 처리하였을 때

어떻게 최적의 결과를 도출할 지를 프로그램이 인식하는 것

 

저는 일단 그렇게 이해를 해 봤습니다.

(사실 이 부분에 대한 이해가 그리 쉽지는 않았습니다. 시간이 난다면 더욱 많은 자료를 봐야 할 것 같습니다)

 

그리고, 이를 바탕으로 새로운 데이터에 대한 예측까지도 할 수 있는 것이 머신러닝이 추구하는 목표가 되겠죠.

사람도 무언가를 학습하면 다른 예제를 가지고 새로운 문제를 해결해야 되니까요.

그러한 관점에서 이해하면 될 것입니다.

 

 

 

(2) 분류

 

지도학습과 비지도학습으로 구분이 된다 합니다.

 

이 부분은 머신러닝 분류 관련하여 굉장히 대중화되어 있는 내용이기도 하죠.

 

먼저 지도학습은,

 

(출처: 카카오프렌즈 홈페이지)

 

 

위와 같이 어떤 특정 사물에 이름(Label)을 붙여놓은 것을 뜻합니다.

즉 사람이 "첫번째 캐릭터"를 컴퓨터에 입력할 때, "이것은 라이언이다" 라고 정의를 한다는 것은,

반대로 컴퓨터 입장에서는 "지도(Supervised)"를 받은 것이기 때문에 이것을 지도학습이라고 일컫습니다.

 

비지도학습은 그 반대겠죠?

"이것은 무엇이다"라고 지도를 받지 않고, Label이 없는 데이터를 제공하는 것을 비지도학습이라 합니다.

 

 

지도학습은 크게 (A)분류(Classification), (B)예측(Prediction) 모델이 있고, 비지도학습은 (C)군집(Clustering) 모델이 있습니다.

 

 

(A) 분류모델 - kNN모델, 서포트벡터머신, 의사결정트리 등등의 모델

(B) 예측모델 - 회귀모델(Regression)

(C) 군집모델 - Partition-based Clustering, Hierarchical Clustrering

 

 

이 정도로 구분된다고 하는데, 자세한 것은 이후 글에 나타날 것입니다.

그보다 먼저, 분류모델 / 예측모델 / 군집모델이 무엇인지 정도는 알아놓는 것이 좋겠죠?

 

 

 

(3) 지도학습 - 분류모델, 예측모델

 

분류모델과 예측모델의 공통점은 당연히 지도학습 모델이니 Label이 있는 입력 데이터로 학습을 하는 것이고,

분류모델과 예측모델의 차이점은 분류는 결과값이 고정된 반면, 회귀는 결과값이 Dataset 범위 내 어떤 값도 가능하다는 것입니다.

 

더욱 쉽게 이해하자면.

 

분류모델의 결과값은 객관식 시험문제의 정답과 같은 개념이고(1,2,3,4번 중 한개)

예측모델의 결과값은 주관식 시험문제의 정답과 같이 이해했습니다(다만 범위가 존재하다는 점).

 

물론 일부 예측모델은 분류모델처럼 특정 결과값을 예측하는 경우도 있다 합니다

(이런것까지 다 쓰면 왠지 책 베끼는거같아서 생략..)

 

 

(4) 비지도학습 - 군집모델

 

'군집' 단어 개념 정도는 아실 것입니다.

수많은 것을 여러 그룹으로 만드는 그런 것이 군집이죠.

결국 비지도학습이라 함은 Label이 없기 때문에, 이를 어떻게 묶어서 분류하느냐가 최대 관건이 되겠죠.

 

출처: 매일경제TV

 

이거 구분 되세요? 당연히 되겠죠.

그렇다면 컴퓨터가 어떻게 구분할까요.

어떻게 LINE Friends와 Kakao Friend를 군집으로 묶을 수 있을까요.

그것이 머신러닝으로 개발되는 내용 중 하나가 될 수 있겠죠.

그것이 사소한 아이디어가 될 수도 있고요.

 

즉, 군집은 위와 같은 전체를 어떻게 묶어주는가.

그 방법을 제시하는 것으로 보시면 됩니다.

 

 

위 예제에서 한가지 더 언급하자면, 꼭 카카오프렌즈 - 라인프렌즈로 묶을 필요는 없어요.

큰 캐릭터 - 작은 캐릭터로 묶을 수도 있고,

남자캐릭터 - 여자캐릭터로 묶을 수도 있고,

사람 - 동물로 묶을 수도 있습니다.

 

어떻게 묶는 지는 만드는사람 마음이고, 이를 위한 알고리즘을 어떻게 짜는지 역시 개발자 마음입니다.

 

 

 

 

여기까지입니다.

머신러닝에 대한 개념을 다루었으니,

그 다음은 당연히 분류/예측/군집모델에 대해서 하나씩 정리해봐야 되겠죠?

 

다음편에 뵐게요.