[딥러닝] 2-2. 경사 하강법

2-2. 경사 하강법

이렇게 평균 제곱 오차와, 평균 제곱근 오차로 오차의 크기를 구해주는 방법을 배웠다. 근데 이 오차를 구해주는 방법을 구했으면, 오차를 수정해주어야 하는데,
마구잡이로 오차를 수정할 수는 없고, 알고리즘이 필요할 것이다.

a(기울기)에 따른 오차의 그래프를 그리면, U자 형의 이차 함수의 그래프가 그려질텐데, 여기서 이차 함수의 최소값은 U자의 맨 아래 축이되는 점이듯이, 오차가 가장 작은 값도 마찬가지이다.
이때, 이 점을 찾는 것을 미분의 기울기를 이용하는데, 이것이 “경사 하강법” 이다.

1. 경사 하강법

경사 하강법(gradient decent)은 미분, 쉽게 말해서 순간 기울기를 그때그때 구해서, 그 기울기가 0이 되는 오차범위의 최솟값을 구하는 것이다.

image

근데 여기서 기울기가 만족하는 기울기(0)가 아닐 때, 다른 기울기로 이동하는 것을 반복하는데, 이 이동하는 범위를 잘 지정해주지 못하면, 기울기가 더 커지는 방향으로 이동할 수 있다.
그래서 어느만큼 이동할지 정해주는 것이 매우 중요한데, 이것을 “학습률” 이라고 하며, 이동하는 값, 학습률의 최적을 찾는 것이 중요한 최적화 과정 중 하나이다.

이 경사 하강법으로, 기울기(a)를 구했듯이, 절편(b)도 구해줄 수 있으며, 이 경사 하강법은 평균 제곱근 오차와 함께 예측선(y = ax + b)을 그리는 데 사용된다.
물론 최소 제곱법을 쓸 수도 있지만, 입력 값이 여러 개거나 복잡한 경우가 많기에, 그럴 경우엔 최소 제곱법대신 경사 하강법 + 평균 제곱근 오차를 사용한다.

2. 다중 선형 회귀

다중선형회귀도 이 경사하강법과 평균 제곱근 오차를 사용해서 계산하며, 이때의 그려지는 식은

image

위같은 독립변수(x)가 여러 개인 식일 뿐이지 알고리즘은 마찬가지다.
이 경우에는 예측 선이 아니라, 예측평면, 예측입체와 같이 x의 개수만큼 차원이 늘어나게 된다.