손실 줄이기: 경사하강법

반복 방식 다이어그램 (그림 1)에는 '매개변수 업데이트 계산'이라는 물결 모양의 녹색 상자가 포함되어 있습니다. 이제 이 알고리즘적인 요정을 좀 더 실질적인 것으로 대체해 보겠습니다.

\(w_1\)의 가능한 모든 값에 대한 손실을 계산할 시간과 컴퓨팅 리소스가 있다고 가정해 보겠습니다. 지금까지 살펴본 회귀 문제의 경우, 손실과 \(w_1\) 의 비교 도표는 항상 볼록하게 됩니다. 즉, 플롯은 항상 다음과 같이 그릇 모양입니다.

세로축에 '손실', 가로축에 가중치 w i라는 라벨이 지정된 U자형 곡선의 도표입니다.

그림 2. 회귀 문제에서는 볼록 손실과 가중치 도표를 비교하여 산출합니다.

 

볼록 문제에는 최솟값이 하나만 있습니다. 즉, 기울기가 정확히 0인 장소가 하나뿐입니다. 이 최솟값이 손실 함수가 수렴하는 지점입니다.

전체 데이터 세트에 대해 상상할 수 있는 모든 \(w_1\)값에 대한 손실 함수를 계산하는 것은 수렴 지점을 찾는 비효율적인 방법입니다. 머신러닝에서 널리 사용되는 경사하강법이라는 더 좋은 메커니즘을 살펴보겠습니다.

경사하강법의 첫 번째 단계는 \(w_1\)의 시작 값(시작점)을 선택하는 것입니다. 시작점은 그다지 중요하지 않습니다. 따라서 많은 알고리즘이 \(w_1\) 를 0으로 설정하거나 임의의 값을 선택합니다. 다음 그림에서는 0보다 약간 큰 시작점을 선택했습니다.

U자형 곡선 도표입니다. 곡선 왼쪽 중간 정도에 위치한 지점은 '시작점'으로 표시됩니다.

그림 3. 경사하강법의 시작점

그런 다음 경사하강법 알고리즘이 시작점에서 손실 곡선의 기울기를 계산합니다. 그림 3에서 손실의 기울기는 곡선의 도함수(기울기)와 동일하며 어떤 방향이 '더 따뜻한'지 또는 '더 차가운'지를 알려줍니다. 가중치가 여러 개인 경우 기울기는 가중치를 기준으로 한 편미분의 벡터입니다.

기울기는 벡터이므로 다음 두 특성을 모두 갖습니다.

  • 방향
  • 규모

경사는 항상 손실 함수가 가장 크게 증가하는 방향을 가리킵니다. 경사하강법 알고리즘은 가능한 한 빨리 손실을 줄이기 위해 음의 기울기 방향으로 한 걸음 움직입니다.

U자형 곡선 도표입니다. 곡선 왼쪽에 있는 한 지점에 '시작점'이라는 라벨이 지정됩니다. '음수 그라데이션'이라는 라벨이 지정된 화살표가 이 지점에서 오른쪽을 가리킵니다.

그림 4. 경사하강법은 음의 경사를 사용합니다.

손실 함수 곡선의 다음 지점을 결정하기 위해 경사하강법 알고리즘은 다음 그림과 같이 기울기 크기의 일부를 시작점에 더합니다.

U자형 곡선 도표입니다. 곡선 왼쪽에 있는 한 지점에 '시작점'이라는 라벨이 지정됩니다. '음수 그라데이션'이라는 라벨이 지정된 화살표가 이 지점에서 오른쪽을 가리킵니다. 첫 번째 화살표의 끝에서부터 아래 방향으로 곡선의 두 번째 지점을 가리키는 또 다른 화살표가 있습니다. 두 번째 지점에는 '다음 지점' 라벨이 지정됩니다.

그림 5. 경사 보폭을 통해 손실 곡선의 다음 지점으로 이동합니다.

그런 다음 경사하강법은 이 과정을 반복해 최솟값에 점점 접근합니다.