선형회귀(Linear Gegression)
- 독립변수(x)의 값에 따라, 종속적으로 변하는 종속변수(y)
ex: y=ax+b
- 선형 회귀는 한 개 이상의 독립 변수와 종속 변수간의 관계를 선형 모델로 구현
- 단순 선형 회귀(Simple linear regression)
- 독립 변수가 하나인 경우
- ex: y=wx+b,
- 다중 선형 회귀(multiple linear regression)
- 독립 변수가 여러 개인 경우
- ex: y=w1x1+w2x2+....+wnxn+b
- 여기서 w1, w2, w3,...wn:가중치, b:편향
선형회귀 예측 방법
- 독립 변수와 종속 변수 간의 관계가 선형적으로 표현이 될 것 같다면,
x와 y의 관계를 유추하기 위해 가설 작성
ex: H(x) = wx+b
- 가설식으로 예측된 값과, 실제 값 간의 차이를 가장 작게 만드는 적절한 가중치 w, 편향 b를 구하기 위해 오차 계산식을 정의해야함.
손실함수
MAE(Mean Absolute Error): 절대 평균 오차
- 실제 값과 예측값의 차이의 절대값의 평균
- MAE = N∑i=0N∣yi−yi^∣
MSE(Mean Squared Error): 평균 제곱근 오차
- 실제 값과 예측 값의 차이를 제곱한 값의 평균
- MSE = N∑i=0N(yi−yi^)2
RMSE(Root Mean Squared Error): 평균 제곱근 편차
- MSE 값은 제곱 값이므로, 실제 오류 평균보다 값이 커지는 특성이 있으므로, 이를 줄이기 위해 MSE에 루트를 씌운 함수
- RMSE = N∑i=0N(yi−yi^)2
RMSLE(Root Mean Squared Log Error):평균 제곱근 대수 오차
- RMSE에 log를 적용한 함수
- log 0은 존재할 수 없으므로 +1이 더해져있음
- RMSLE = N∑i=0N(log(yi+1)−log(yi^+1))2
회귀 문제에서는 주로 MSE를 많이 사용함(미분 계산에 용이하기 때문)
MSE로 오차를 계산한다면,
N∑i=0N(yi−yi^)2=cost(w,b)
즉, cost(w,b)를 최소화하는 w와 b를 구하면 된다.
이제 오차를 최소화하는 가중치 w와 편향 b를 찾아야 한다.
최소 제곱법
N∑i=0N(yi−yi^)2=cost(w,b)가 최소가 되기 위해서는 각각 w,b로 편미분했을 때의 값이 0이면 된다.
- ∂w∂∑i=0n(yi−(wxi+b))2=0
- ∂b∂∑i=0n(yi−(wxi+b))2=0
하지만 최소제곱법은 wi,b의 갯수만큼의 연립방정식이 필요하므로 독립변수가 많으면 계산이 어렵다. 특히, 딥러닝/머신러닝의 경우 대부분 독립변수가 매우 많아 다른 방법이 필요하다.
경사하강법
- w=w−α∂w∂cost(w,b)
- b=b−α∂b∂cost(w,b)
- α: Learning rate(하이퍼 파라미터, 임의로 설정해줘야 하는 값, 주로 0.01, 0.05, 0.1 등)
위와 같이 미분값(기울기값)이 +면, w는 더 낮은 값으로, 미분값(기울기값)이 -면, w는 더 큰 값으로 계산되며, 오차가 최소값에 근접한 값이 될 때까지 반복한다.
- Learning rate가 너무 크면, 최소값에 근접하지 못하고 발산할 수도 있고, 너무 낮게 잡으면 최소값에 근접하기 전에 끝날 수도 있다.
(따라서 일반적으로는 테스트를 통해 적절하게 설정한다.)