[DeepLearning] Linear Regression

0

DeepLearning

목록 보기
2/6
post-thumbnail

딥러닝에 대해서 알아보자.
가장 먼저 Linear Regression에 대해서 알아보자.
Linear : 1차 방정식을 의미한다.
Regression : 변수들간의 관계를 나타낸다.
즉 변수들을 나타내는 직선을 그리는것이 Linear Regression이다.

우리는 그은 선을 Hypothesis function이라고 한다.
H(x) = Wx + b로 표현하고 W를 가중치, x를 입력값, b를 bias라고 한다.
여기서 X는 주어지는 데이터이고 우리가 찾아야하는 값들은 W와 b이다.

이게 바로 딥러닝의 시작이다.
우리는 앞으로 적절한 W와 b를 찾기 위해서 다양하 문제를 풀것이다.

그렇다면 내가 그린 Hypothesis function이 적합한가? 는 어떻게 평가할까?
바로 실제 답과 비교해보면된다! 내가 가정한 답과 실제답의 차이를 보면 얼마나 잘 그렸는지를 알 수 있다.
이렇게 실제답과 Hypothesis 를 비교하는 함수를 cost function이라고 한다.

주로 기본적으로 사용하는 cost funciton은 MSE(Mean square error)이다.
즉, (실제답 - 우리답) ^2 의 평균으로 표현된다.
그래서 우리가 예측했던 값들과 실제 값들의 오차제곱을 다 더해서 평균낸것이 결국 우리의 hypothesis function의 오차(오류)가 되는것이다.

여기서 왜 MSE를 사용하는가에 대한 의문이 있을수도있다.
보통의 딥러닝에서 제곱을 쓰는 이유는 바로 명확하게 하기 위함이다. 오차를 크게 만들어서 더욱 부각 되게 하기 위함이다.
그리고 모든 값을 양수로 만들어 오차가 사라지는것을 방지합니다.

그래서 결국 cost function을 통해서 나온 결과는 우리 모델(Hypothesis function)의 오차를 의미합니다.
그래서 우리는 최적의 W와 b를 찾기 위해서는 cost를 최소화 할수 있는 W와 b를 찾으면됩니다.

여기서 또한 중요한 개념이 나옵니다.
바로 Gradient Descent라는 개념입니다.
저희가 cost funciton으로 MSE를 사용했고, 이는 곧 2차원 함수가 나옵니다.

2차원이기때문에 둘중 한의 함수로 정의될 것입니다.
하지만 최고차항의 계수가 양수이기에 아래로 볼록인 함수인걸 확인할수 있습니다.
그러며 다시. 우리가 2차원 함수인 cost function을 구했습니다.
그래서 우리는 이 오차 함수를 최소값으로 보내는 것이 우리 모델을 실제 값과 비슷하게 만들어주는 방법입니다.

그래서 다음고 같은 방법으로 cost function에서 최적의 해를 찾아갑니다.
이게 바로 Gradient Descent 방법입니다.
Gradient Descent에 대해서는 다음에 다뤄보고 오늘 배운 내용에 대해 정리해보겠습니다.

Summary

우리는 특정 데이터에 대해서 데이터를 가장 잘 설명하는 단 하나의 직선을 찾는 것을 Linear Regression이라고 하고 Linear Regression에서 우리가 찾아야 하는것들은 W와 b값 ( 기울기랑 절편) 이다.
그래서 임의로 W와 b를 만들고 실제 값과 비교를 위해서 cost function으로 MSE를 사용했고, MSE cost function은 2차식인 convex이기에 Gradient Descent 방법을 이용해서 최적의 w,b를 찾아준다.

이 흐름을 기억해두자.

0개의 댓글