Sir Francis Galton이 자연현상을 측정하기 위해 통계적인 방법을 활용하며 선형회귀를 고안하였음
(위의 도표는 최초의 선형회귀에 대한 그래프)

콩의 부모와 자식간의 상대적 크기에 대한 데이터를 살펴보던 중 특이한 점을 발견하였음
부모가 크면 클 수록 자식의 크기 또한 커지는 경향을 발견함.
그렇다면 그 세대 내에서 그 자식세대는 다른 자식세대에 비해 얼마나 클 것인가?
자식세대의 크기 차이 비율은 부모세대의 크기 차이 비율보다는 상대적으로 낮게 나타났음.
가령 부모의 크기가 평균보다 1.5표준편차만큼 크다면, 자식세대는 1.5표준편차보다는 작게 큼.
결국 평균으로 회귀를 하는 모습을 보였고 이러한 특성으로 인해 Linear Regression 이라는 명칭으로 불리게 됨
그리고 컴퓨팅 파워가 발전하면서 이런 현상이 큰 데이터셋에도 잘 적용됨을 알게됨

위의 식은 일반화된 회귀모델을 수식으로 표현한 것으로 피처(x)들과 가중치(w)를 곱한 것들의 합(y)으로 나타난다.
이 식을 우리가 가진 데이터 셋의 모든 행에 적용함으로서 예측값을 만들어낼 수 있음.
이 식의 형태는 선형회귀 뿐만 아니라 딥러닝의 신경망 네트워크 등에 있어서도 매우 중요함.

그러면 예측된 값 좋은지 나쁜지 어떻게 알 수 있을까?
→ 손실함수(Loss function)을 적용해서 알 수 있다.

회귀문제에서 주로 사용되는 손실함수는 MSE이다.
위의 식은 L2 Norm이라는 것을 계산하는 식으로 실제 값(y)에서 예측된 값(Xw)의 차이를 기반으로 손실을 계산한다.

머신러닝 모델을 최적화시킬 때, 손실함수가 계산한 손실값이 최소화되는 지점을 찾아내야 한다.
이를 위해 가중치를 조정해가며 모델의 손실값이 최소화되는 지점을 발견해야 함.

그러면 가중치 값을 어떻게 조절해야 손실값을 최소화할 수 있는가?
선형회귀에서는 위와 같은 식이 존재함.
하지만 이는 실용적이지 못함. 중복성 데이터에 대한 고려가 없고, 시간도 오래 걸림.

위의 방법 대신, 경사하강법(Gradient Descent)을 적용할 수 있는데,
다음과 같은 이점있음

  1. 비교적 낮은 시간과 공간 복잡도
  2. 일반화가 더 잘됨
  3. 대부분의 문제에도 활용이 가능함

위의 그래프는 세 개 가중치 파라미터에 대한 3차원 형태의 손실값 공간으로
산과 계곡처럼 굴곡진 형태로 표현이 됨.

경사하강법에서는 위의 평면 어디에서 시작을 하던지 내려가는 경사를 따라가며, 제일 낮은 지점을 찾아간다.
그 지점이 손실이 최소화되는 지점(Global Minimum)임.

경사하강으로 얻어진 정보(방향/경사도)를 이용해서, 한 번에 하강할 보폭의 크기를 결정해야하는데,
그 정도를 학습률(learning rate)이라고 한다.

위의 그래프는 팁 금액을 레이블로 한 ML 모델의 예시

(계산금액와 성별은 이를 추정하기 위한 피처)

 

여기서 팁 금액은 연속형이기 때문에, 회귀문제에 해당함

회귀문제에서는 피쳐들의 조합으로 이루어진 수학적인 함수를 이용하여 레이블 값을 예측하는 것

모델이 위 그래프에서 초록색 선으로 계산금액과 선의 기울기의 곱으로 레이블 값을 구한다.

 

하나가 아닌 여러 개의 피처를 이용하는 다차원의 문제에서도 개념은 동일함

각 개별 데이터의 피처 값에 하이퍼플레인(Hyperplane)의 기울기가 곱해지면서,

레이블의 일반화된 값을 구한다.

(※ 하이퍼플레인(Hyperplane)은 1차원 이상 공간에서의 모델링된 평면을 이야기함)

 

선형회귀 문제에서는 모델을 일반화하기 위해 예측된 값들과 레이블 값의 거리(에러)를 최소화하려고 함.

이 때 자주 사용되는 것이 MSE(Mean Squared Error)이다.

 

위의 예시에서 성별을 레이블로, 계산금액과 팁 금액을 피쳐로 분류 문제가 된다.

하지만 이 경우 남성과 여성의 관측값이 잘 분리 되어 있지 않기 때문에 좋은 접근은 아님.

 

분류 문제에서는 레이블의 연속적인 값을 구하는 것이 아니라 각각 레이블 값을 나누는

결정 경계(decision boundary)를 만들려고 한다.

이 경우 클래스 값이 두개가 존재하고, 결정경계는 차원에 따라 선이나 하이퍼플레인으로 만들어짐.

위의 예시에서는 빨간 선이 결정 경계임.

 

 

 

분류문제에서는 예측 클래스와 레이블 클래스 간의 에러를 최소화하기 위해

Cross Entropy(Log Loss)를 사용한다.

여기서 N은 데이터 갯수, M은 레이블 갯수,

y는 정답(0또는 1)을 나타내며 p는 예측값의 확률(0~1)사이

예측 값이 맞을 경우 log1 이 되기 되고 틀린 값으로 예측할수록 Cross Entropy의 값은 높아짐

 

하지만 팁 금액을 측정하는 경우라도, 반드시 회귀문제가 되는 것은 아님. 팁 크기를 범주화해서

25%~ 일 때는 "High" , 15 ~ 25% 일 때는 "Average", ~15% 일 때는 "Low" 로 만든다면

분류 문제가 될 수 있다.

 

그 반대의 경우로 카테고리형의 피처도 연속형으로 변경될 수 있다.

 

결국 어떻게 문제를 해결하려고 하는지에 달려있는 것으로, 

머신러닝은 결국 실험에 관한 것이다.

 

 

그렇다면 머신러닝에 이용하는 데이터는 어디에서 오는가?

 

앞의 팁 데이터셋은 흔히 행과 열로 표현되는 "구조화된" 데이터이다.

(흔히 DB에서 조회하는 테이블 같은 것)

머신러닝에서 흔히 사용되는 구조화된 데이터는 Data Warehouse에서 나옴.

 

"비구조화"된 데이터는 사진, 오디오와 비디오 등과 같은 것.

 

위의 표는 출생에 관한 공개 데이터 셋으로 빅쿼리에서 제공됨.

SQL을 통해 구조화 데이터를 불러오고, mother_age와 gestation_weeks 등의 피쳐를 활용하고,

모델을 생성하여 아이가 언제 태어날 지를 회귀 문제로 예측할 수 있음

이 외에도 아이 몸무게 등을 레이블로 설정하여 여러 값을 예측할 수 있다.

 

 

위의 데이터셋은 선형회귀와 분류 모두에 적합한 형태를 띄고 있다.

 

 

위의 빨간선과 파란선은 Class A와 Class B의 x와 y에 대한 모델이 된다. 

하지만 이를 모두 아우르는 일반적인 모델을 얻고자 한다면 초록색 선이 일반화된 모델로

MSE에 의해 모델의 예측값과 실제 값 사이의 손실이 최소화되는 선이다.

 

 

 

빨간색과 파란색을 아우르는 모델을 도출하기 위해 여러 피처를 사용해서 더 고차원 적으로 접근할 수 있음.

그 경우 위의 그림에서처럼 2d 선형회귀의 결과인 하이퍼플레인이 만들어진다.

이 때, 이 2차원인 하이퍼플레인은 빨간 선과 파란 선, 그리고 그 중간의 초록색 선까지 모두 포괄한다.

 

 

 

동일한 예시를 분류문제로 보았을 때, Class A와 Class B 를 구분하는 선은 노란선이다.

이 경우 회귀에서 사용한 초록선과 일치하지 않는다.

 

그 이유는 무엇일까?

회귀모델에서의 손실함수는 MSE가 사용되었지만, 분류모델의 손실함수는 Cross Entropy이기 때문

MSE의 경우 예측값과 실제값 사이의 거리차를 제곱하지만, Cross Entropy의 경우 두 값의 차이가 클수록

기하급수적으로 손실이 늘어나는 차이가 존재한다.

[Supervised Learning]  

 

머신러닝은 크게 지도학습(Supervised Learning)과 비지도학습(Unsupervised Learning)으로 나뉨.

 

이 지도학습과 비지도학습의 큰 차이는 예측하고자 하는 것에 대한 정답, 레이블(Label)의 존재 유무이다.

지도학습의 경우에는 레이블이 존재하지만, 비지도학습에서는 존재하지 않는다.

사람이 만들어 놓은 정답지로 모델이 나아가야 할 방향을 지도할지 말지 차이가 두 방법론의 차이

좌측 그래프는 Income(소득)과 Years at Company(재직기간)의 관계를 나타냄

비지도 학습을 통해 소득과 재직기간을 클러스터링하여 누가 빠르게 승진하고 있는지 알아보려고 할 때,

비지도 학습 알고리즘은 근거(정답)없이 관찰을 통해 스스로 기준을 학습하여 두 가지 그룹으로 나누게 됨

 

 

지도학습은 각 데이터 포인트의 레이블에 대한 개념이 존재하고 있음

 

위의 예시는 식당에서 웨이터의 성별, 계산금액, 팁금액에 대한 과거 데이터로

이를 기반으로 팁 금액이나 성별 등을 예측하는 모델을 만들려고 함

이 경우 과거 데이터의 팁 금액과 성별이 레이블에 해당함.

 

그런 다음 내역 데이터와 특정 테이블에 대해 알고있는 값을 기반으로 팁을 실시간으로 예측하려고 함

지도학습의 경우 크게 두 가지 종류의 모델이 존재함  

 - 회귀모델 (Regression) : 팁과 같이 레이블의 값이 연속적일 경우의 문제

 - 분류모델 (Classification) : 성별과 같이 레이블의 값이 이산적으로 나뉠 수 있는 문제

 

그리고 위와 같은 데이터 셋에서 각 열의 명칭을 Feature라고 하며

각 행을 Example Data 라고 함

 

그리고 각 컬럼들 중에 예측하고자 하는 대상이 되는 컬럼이 레이블이 됨

머신러닝 문제의 유형은 레이블된 데이터를 가지고 있는지,

그리고 무엇을 예측하고자 하는지에 따라 달라진다.

이번 강좌를 통해 배울 수 있는 것들의 소개

 

- 머신러닝 기본 지식 습득을 통한 관련 용어의 이해

- 다양한 종류의 머신러닝 모델 

- 머신러닝 모델 역사를 통해 왜 현재의 딥러닝 모델이 인기가 있는지

- 손실함수(loss function)를 이용한 모델 최적화

- 성능지표(performance metrics)를 활용한 모델 평가

- 머신러닝에서 발생하는 일반적인 문제들과 이를 어떻게 완화하는지

 

 

※ Introdiction into qwiklabs 및 Introduction to Pratical ML 내용은 생략

+ Recent posts