Machine Learning(머신 러닝)
Machine Learning이란?
간단히 말해 기계가 학습한다(또는 학습하는 기계)라는 뜻이다. 일반적으로 통용되는 정의는 다음과 같다.
A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at task in T, as meausred by P, improves with experience E.
Tom Mitchell (1998)
직역하자면 "만약 어떤 작업 T에서 경험 E를 통해 성능 측정 방법인 P로 측정했을 때 성능이 향상된다면 이런 컴퓨터 프로그램은 학습을 한다고 말한다". 쉽게 말해 우리는 컴퓨터 프로그램이 경험을 통해 성능이 향상될 때 학습했다고 표현한다. 즉, 데이터를 통해 성능을 향상시키는 기계를 의미한다. 기계 자체에 학습이 왜 필요한가를 생각해보면 현재 인간이 직접 지시하고 결과를 모니터링하고 있는 작업들을 기계를 통해 자동적으로 수행하기 위함이다. 기계에게는 휴식도 능률의 저하도 없기에 24/7 내내 일을 할 수 있다. 이는 혁신적인 제안일 수 밖에 없고 이러한 가능성은 21세기에 접어들면서 보다 뚜렷해지고 다양한 분야에서 실현되고 있다.
Machine Learning의 핵심요소
1) 데이터
머신러닝에서는 학습을 위해 존재하는 수많은 예시들의 집합을 ‘데이터(data)‘라고 부른다. 이 때 중요한 것은, 기계로 하여금 데이터를 주고 그것이 정답인지 아닌지 구별하도록 하기 위해서는, 정답뿐만 아니라 오답도 충분히 많이 제시해줘야 한다. 따라서 실제로는 데이터를 주고 {‘정답’, ‘오답’} 중 하나의 표식을 붙여 그것의 정체를 나타내도록 하는데, 이를 ‘레이블(label)‘이라고 한다. 다시 말해, 머신러닝(정확히는 지도 학습(supervised learning) 패러다임에서의 머신러닝)에서는 수많은 (예시, 레이블) 쌍의 집합이 한 덩어리의 데이터가 되어 기계로 전달된다.
2) 러닝모델
다음으로 중요한 것이 사람으로 따지면 ‘뇌’에 해당하는 것인데, 머신러닝에서는 이를 ‘러닝 모델(learning model)‘이라고 한다. 러닝 모델은, 아주 간단히 말해서 하나의 커다란 함수로 구성되어 있다고 볼 수 있다. 함수는 어떤 주어진 입력 변수에 대하여 특정한 연산을 수행한 결과를 출력 변수로 내뱉는 장치이다. 이러한 러닝 모델은 머신 러닝에 있어 가장 중요한 요소로도 꼽히기에 3개월 내 채무 이행 여부 예측 기계 예시를 통해 자세히 살펴보고자 한다.
11명 고객의 나이와 연봉 정보와 채무 이행 여부 데이터를 통한다고 가정하였을 경우, 나이를 x1x1, 연봉을 x2x2로 하고, 고객이 채무를 이행한 경우 해당 고객의 (x1,x2)(x1,x2) 좌표에 ‘O’, 그렇지 않으면 ‘X’로 표기하였다. 왼쪽 플롯에서 ‘O’의 집단과 ‘X’의 집단을 가장 간단하게 나눌 수 있는 방법은 직선을 긋는 것이다. 이렇게 데이터를 살펴보고 처음에 경계를 어떻게 결정하면 좋을지 살펴보고 생각하는 과정은, 러닝 모델로 사용할 함수의 형태를 결정하는 데 있어서 아주 중요하다.
직선을 긋는 상황을 함수로 표현하면 다음과 같다.
f(x1,x2)=w0+w1x1+w2x2
위 함수는 입력 변수가 x1x1, x2x2이며, 그 계수가 각각 w1w1, w2w2, 상수항이 w0w0인 함수이다. 이렇게 직선(또는 평면, 초평면 등)의 형태로 정의되는 러닝 모델을 특별히 선형 모델(linear model)이라고 부르며, 이는 가장 단순한 러닝 모델에 해당한다. 선형 모델을 사용하기로 결정하였으므로, 이제 이 직선의 위치와 기울기를 잘 조정하여 그 윗쪽에는 ‘O’ 집단이, 아랫쪽에는 ‘X’ 집단이 위치할 수 있도록 분류할 수 있어야 한다. 즉, 위 함수에서 w0w0, w1w1, w2w2를 잘 찾아야 하는 것이 목표가 되는 것이다.
지도학습(Supervised), 비지도학습(Unsupervised), 강화학습(Reinforcement)
1) 지도학습(Supervised Learning)
정답을 알려주며 학습하는 것을 뜻한다. 입력과 결과값을 통해 학습을 진행하며 대표적으로 분류(Classification)와 회귀 (regression)방식이 존재한다. 분류 방식은 군집을 분류하는 방식을 뜻하며, 회귀 방식은 데이터들의 특징을 토대로 값을 예측하는 것이다.
2) 비지도학습(Unsupervised Learning)
정답을 알려주지 않고 학습하는 것을 뜻한다. 입력만을 통해 학습을 진행한다. 들어오는 입력값들의 특징(Feature)들을 통해 군집화를 한다. 데이터들에 대해 전처리 방법으로도 활용되는 학습법이다.
3) 강화학습(Reinforcement)
보상(reward)과 벌(punishment)을 통해 학습하는 것을 뜻한다. 보상을 최대화하고 벌을 최소화하는 방식을 통해 기계들을 데이터에 대한 적절한 결과값을 찾아간다.