선형 회귀란?
선형 회귀는 수치로 나타낼 수 있는 값들에 대해 그 각각의 값 사이의 잔차의 제곱의 합(RSS)이 최소가 되도록 하는 직선을 구하여 알 수 없는 데이터의 값을 예측하는 데이터 분석 기법이다.
잔차란? 표본으로 추정한 회귀식 (직선)과 실제 관측값의 차이를 말한다. (점과 그 회귀식의 y값에 맞는 x축에 평행한 직선 사이의 거리를 이용하여 구할 수 있다.)
위에서 잔차의 제곱의 합이 최소가 되도록 하는 이유는 무엇일까? 관측값이 회귀식 위에 있는 경우, 잔차는 양수값이 나오지만, 위 그림처럼 관측값이 회귀식 아래에 나오는 경우 잔차는 음수가 나오기 때문에, 이 값들을 그냥 더하면 값이 다르게 나와 이상한 식이 만들어지기 때문이다. 따라서 제곱을 통해 해당 잔차를 모두 양수로 바꾸고 더한 값을 최소로 해야 정확한 식을 찾을 수 있다.
잔차 제곱의 합 : RSS (Residual Sun of Squares), SSR (Sum of Squared Residuals)
최소제곱법 (OLS, Ordinary Least Squares (Least Square Method)) 이란? 선형 회귀에서 잔차의 위 잔차 제곱의 합을 최소로 하는 회귀식을 찾는 법이다.
ㄴ 노이즈에 취약하다는 단점이 있다. (데이터의 전체 흐름에서 벗어나는 이상값)
저런 단점을 보완하기 위해 경사 하강법이라는 것이 생겨남.
여기서 x축을 선형 회귀식 y = mx + b 에서 m, y축을 관측값과 m값의 차이 즉 loss 값이라고 했을 때, m에서 loss값이 최소 이면 m이 더 작아질수록 loss값은 커지고, m이 더 커질수록 loss값이 커지는 이차함수 모양의 경사가 만들어진다.
여기서 m 값이 x축의 변수 이므로, m 값을 임의로 정하는 것은 선형 회귀식 y = mx + b 에서 기울기인 m을 임의로 지정하는 것.
그에 따라 y 축의 값이 변하는 것은, 선형 회귀식의 기울기에 따라 전체 관측값들 간의 차이가 얼마나 나느냐를 나타낸 것임.
여기서 m 값을 지정한다고 하면, 그곳에서 미분을 통해 그 이차식에 접하는 직선의 기울기를 알아내고 기울기가 0에 가까워지는 쪽으로 이동하는 것을 경사 하강법이라고 한다.
여기서 경사 하강을 하는 보폭을 학습률 (Learning rate) 이라고 하고,
학습하기 위해 데이터 세트를 반복해서 이용하는 횟수를 에포크 (Epoch)라고 한다.
학습률은 0.003, 0.001, 0.03, 0.01, 0.3, 0.1 을 주로 쓴다.
(다른 값을 사용해도 상관 없다. 적절한 값을 이용하면 효율적으로 근사값을 찾아낼 수 있다.)
하지만 학습률이 너무 작으면 최소값에 도달하기 위해 사용하게 되는 컴퓨터 자원이 너무 많아지게 되고,
반대로 너무 크면 최소값을 지나지 않고 자꾸 최소보다 큰값에만 머물기 때문에 정확한 값을 찾을 수 없다.
경사 하강법은 데이터를 모두 필요로 하기 때문에 에포크가 높을수록 컴퓨터 자원을 더 많이 소모하게 된다. 따라서 학습 시간이 굉장히 오래 걸리거나 데이터 학습을 다 못할 수도 있다.
그래서 생긴게 확률적 경사 하강법, 이 방법은 매번 데이터 셋에 있는 데이터를 무작위로 1개 뽑아서 하는 방식으로 다 사용할 때 까지 반복된다.
그렇기 때문에 학습속도가 빠르다는 장점이 있다.