선형회귀 (linear Regression) 이해하기

머신러닝과 딥러닝 · 2019. 12. 11. 17:11

머신러닝에서는 supervised learning에는 두가지의 카테고리가 있다.

 

Classification과 Regression임.

 

 

리니어 → 직선 

$ y=ax+b $와 같은 1차 함수 선을 그리게 된다.

 

그 선을 바탕으로 예측하는 것이 회귀이다.

 

 

어떠한 선이 더 예측을 잘 할까?

 

대부분의 사람들이 왼쪽이 더 잘한다고 말한다.

수치적으로 에러를 나타낼수있는데,

왼쪽에서는 에러가 전혀없고

오른쪽은 에러가 있다.

 

스퀘어 에러라는 개념으로 오류를 정량화할 수 있다.

에러를 제곱한 값이다. 

 

거리가 아니고 넓이로보자. 3가지 이유는 다음과 같다.

  1. 넓이로 보는 이유 → 우리는 눈에 보이기 쉽다
  2. 수학적으로 볼때 에러가 조금이라도 있어도 증폭시킬수있어 큰것과 작은것 비교쉽게
  3. 그래디언트 디센트에서 제곱이라는 개념이있으면 쉬워진다.

 

 

왼쪽이 실제값과 가깝게 예측함

이 말은 확률이라는 말이 아니다.

 

선형 회귀 같은 경우는 maximum likelihood 라는 말을 쓴다.

최대 발생할 가능성이 높은 쪽으로 선을 그리는게 선형 회귀이다.

 

 

관찰된 값 중에 가장 적합한 선을 그어라.

선형 회귀를 코딩하라면 어떻게 코딩할까?

 

Least Mean Square(LMS) 개념을 사용할 것

 

 

에러는 가설과 실제 있는 점과의 거리이다.

 

$ error = h(x) - y $

 

Square Error는 Error를 제곱한 값이다.

Mean Square Error는 Square Error를 평균낸 값이다.

 

이 값들을 사용해서 직선을 긋는다.

어떻게 베스트? 그라디언트 디센트 개념을 사용해서 한다.

 

코스트 펑션 -> MSE 이다.

 

비용함수 실제값과 가설간의 차이를 cost function이라고 한다.

 

이 코스트 펑션을 가장 최저로 만드는 것이 목표이고.

목표함수 object function이라고함.

 

 

머신 러닝에서는 파라미터를 세타로 표현

 

가장 알맞는 세타를 찾는것이다.

 

알파 -> 러닝레이트

 

 

learning rate = 0.01

세타 = 1

 

 

https://www.youtube.com/watch?v=MwadQ74iE-k