유용한 정보

기계학습과 선형 회귀 분석(1)

CyberI 2018. 8. 24. 13:16

1. 기계학습 (Machine Learning) 의 의미

1.1 기계학습 (Machine Learning) 이란?

어떠한 일을 예측할 때 수많은 규칙들이 존재하여 모든 경우를 예상할 수 없습니다. 예측하는 방법을 일일이 프로그래밍하지 않고 어떤 자료와 현상에서 자동적으로 배우게 하는 것이 바로 기계학습입니다. 자체적으로 데이터를 보고 학습해서 뭔가를 배우는 능력을 갖는 프로그램을 기계학습이라고 할 수 있습니다.

 

1.2 학습 (Learning)의 종류

학습을 하기 위해선 데이터가 필요합니다. 학습은 방법에 따라 지도(Supervised)학습과 비지도(Unsupervised)학습 2가지 종류로 나눌 수 있습니다..

 

1.2.1. 지도 학습 (Supervised Learning)

지도 학습은 레이블이 주어진 데이터를 가지고 시행하는 학습입니다. 레이블이 주어진 데이터라는 것은 고양이, 강아지, 모자 등과 같이 개체의 특징이 명확하게 존재하는 데이터를 의미합니다.

 

1.2.2 비지도 학습 (Unsupervised Learning)

뉴스 분류, 유사 단어 분류와 같이 레이블이 주어지지 않은 데이터를 학습하는 것을 비지도 학습이라고 합니다. 학습 초기에 지도 학습처럼 레이블을 지정해주지 않고, 학습을 해나가면서 데이터를 통해 레이블을 찾아나가게 됩니다.


 1.3 지도 학습의 유형

이제 지도 학습의 3가지 유형별 특징에 대해 살펴보겠습니다.

 

1.3.1. 공부 시간을 바탕으로 한 최종 시험 점수 예측 : 회귀 (regression)

위의 표와 같이 공부시간(X)에 따른 시험점수(Y)가 주어졌습니다. 이때 Y0점부터 100점까지 넓은 범위의 값을 갖게 됩니다. 7시간 공부를 했을 때 시험점수가 몇 점일 지 예측하는 모델을 회귀 모델 (regression model)이라고 합니다.


1.3.2. 공부 시간을 바탕으로 한 합격/불합격 분류 : 이진 분류 (binary classification)

공부시간(X)에 따른 합격, 불합격 여부(Y) 데이터가 위와 같이 주어져 있습니다. 이때 Y는 합격(P)과 불합격(F), 2가지 값만 존재합니다. 학습시간에 따른 합격, 불합격 여부를 예측하는 모델을 이진 분류 모델 (binary classification model)이라고 합니다.


1.3.3. 공부 시간을 바탕으로 한 등급분류 : 다중 레이블 분류 (multi-label classification)

공부시간(X)에 따른 성적 등급(Y) 데이터가 위와 같이 주어져 있습니다. 성적 등급은 A, B, C, D, F 5가지 값을 가질 수 있습니다. 공부시간에 따른 성적 등급을 예측하는 모델을 다중 레이블 분류 모델 (multi-label classification model) 이라고 합니다.

 

이렇게 예측하고자 하는 결과값의 형태에 따라 지도 학습에 유형은 3가지로 구분됩니다. 3가지 유형의 지도 학습 중 예측 치가 넓은 범위의 값으로 나타나는 회귀 모델, 그 중에서도 가장 기본적인 형태인 선형 회귀 모델 (Linear Regression Model) 에 대해 알아보겠습니다.

 

2. 선형 회귀(Linear Regression)

2.1 선형 회귀 (Linear Regression) 의 개념

2.1.1. 선형 회귀의 기본

위의 표와 같이 X1씩 증가할 때마다 Y1씩 증가하는 형태의 데이터 셋이 주어졌다고 해봅시다. 선형 회귀 모델을 학습하기 위해선 우리가 가지고 있는 데이터를 잘 설명해줄 수 있는 가설(Hypothesis)을 설정할 필요가 있습니다. , 데이터를 가장 잘 설명할 수 있는 선을 찾아야 하는 것입니다.

 

2.1.2. 가설 (Hypothesis)


위와 같이 여러 가지의 hypothesis들이 존재한다고 가정해봅시다. hypothesis들을 수식으로 표현하면 아래와 같이 일차방정식의 형태로 나타낼 수 있습니다.

각각의 hypothesis들은 서로 다른 Wb를 갖고 있습니다. 그렇다면 이 hypothesis들 중에 어느 것이 우리가 가지고 있는 데이터를 잘 설명해준다고 할 수 있을까요?

제 데이터와 hypothesis가 나타내는 점 사이의 거리를 측정하여 그 거리가 가까울수록 좋은 모델, 즉 데이터를 잘 설명해주는 hypothesis이고, 거리가 멀수록 좋지 못한 모델 이라고 할 수 있습니다.

 

2.1.3. 비용/손실 함수 (cost/loss function)

실제 데이터(y)hypothesis 사이의 거리를 선형 회귀에서는 비용 함수(cost function) 라고 합니다. cost function은 실제 데이터와 우리의 hypothesis가 얼마나 다른가를 나타내게 됩니다.

기본적으로 이 차이를 계산하는 방법이 두 값의 차를 구하는 것입니다. 하지만 이 값은 양수 또는 음수가 될 수 있기 때문에 제곱을 하여 표현하게 됩니다.

제곱을 함으로써 얻을 수 있는 장점은 2가지가 있습니다.

1)     음수를 양수로 바꿔줄 수 있다는 점

2)     차이가 클수록 cost function의 값이 더 크게 나타나 그 차이를 극대화할 수 있다는 점

학습데이터 개수가 m개 일 때, cost function은 아래와 같이 일반화된 식으로 표현할 수 있습니다.

H(x) = Wx + b 를 위 식에 대입해 보면, cost functionWb의 함수라는 것을 알 수 있습니다.


2.1.4. 비용 함수의 최소화

우리가 설정한 hypothesis가 실제 데이터를 잘 설명해준다는 말은 H(x)y의 차이가 거의 없어야 한다는 것을 의미합니다. , cost function의 값을 최소로 만들어 주는 Wb를 찾아내는 것이 선형 회귀의 최종 목표가 될 것입니다.

 

다음 포스트에서는 cost function을 최소화하는 알고리즘인 경사 하강법(Gradient Descent)TensorFlow를 이용하여 선형 회귀 분석 모델을 구현하는 방법에 대해 알아보겠습니다.









'유용한 정보' 카테고리의 다른 글

오라클 자바 라이선스 정책 변경 이슈  (0) 2018.09.14
블록체인 개념정리  (0) 2018.09.04
모바일 터치 디자인하기(2)_폼 디자인  (0) 2018.08.17
모바일 터치 디자인하기  (0) 2018.07.06
Airbnb Lottie  (0) 2018.07.02