경사하강법은 손실이 가장 적은 모델을 생성하는 가중치와 편향을 반복적으로 구하는 수학적 기법입니다. 경사하강법은 여러 사용자 정의 반복에 대해 다음 프로세스를 반복하여 최적의 가중치와 편향을 찾습니다.
모델은 무작위 가중치와 0에 가까운 편향으로 학습을 시작하고 다음 단계를 반복합니다.
현재 가중치와 편향으로 손실을 계산합니다.
손실을 줄이는 가중치와 편향을 이동할 방향을 결정합니다.
가중치와 편향 값을 손실을 줄이는 방향으로 조금씩 이동합니다.
1단계로 돌아가 모델이 더 이상 손실을 줄일 수 없을 때까지 이 과정을 반복합니다.
아래 다이어그램은 경사하강법에서 손실이 가장 적은 모델을 생성하는 가중치와 편향을 찾기 위해 수행하는 반복 단계를 간략히 보여줍니다.
그림 12. 경사하강법은 손실이 가장 적은 모델을 생성하는 가중치와 편향을 찾는 반복적인 프로세스입니다.
더하기 아이콘을 클릭하여 경사 하강의 수학에 관해 자세히 알아보세요.
구체적인 수준에서 자동차의 무게(파운드)와 마일당 갤런(MPG) 등급에 관한 7개의 예가 포함된 소규모 데이터 세트를 사용하여 경사 하강 단계를 살펴볼 수 있습니다.
파운드 (1,000단위, 지형지물) | 갤런당 마일 (라벨) |
---|---|
3.5 | 18 |
3.69 | 15 |
3.44 | 18 |
3.43 | 16 |
4.34 | 15 |
4.42 | 14 |
2.37 | 24 |
- 모델은 가중치와 편향을 0으로 설정하여 학습을 시작합니다.
- 현재 모델 매개변수로 MSE 손실을 계산합니다.
- 각 가중치와 편향에서 손실 함수의 접선 기울기를 계산합니다.
- 음의 기울기 방향으로 약간 이동하여 다음 가중치와 편향을 얻습니다. 지금은 '소량'을 임의로 0.01로 정의합니다.
더하기 아이콘을 클릭하여 경사 계산에 관해 알아보세요.
가중치와 편향에 접하는 선의 기울기를 구하려면 가중치와 편향에 대해 손실 함수의 미분을 취한 다음 방정식을 풉니다.
예측을 위한 방정식을 다음과 같이 작성합니다.
$ f_{w,b}(x) = (w*x)+b $.
실제 값은 $ y $로 작성합니다.
다음을 사용하여 MSE를 계산합니다.
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
여기서 $i$ 는 $ith$ 학습 예시를 나타내고 $M$ 은 예시 수를 나타냅니다.
가중치에 대한 손실 함수의 도함수는 다음과 같이 작성됩니다.
$ \frac{\partial }{\partial w} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
다음과 같이 평가됩니다.
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2x_{(i)} $
먼저 각 예측 값에서 실제 값을 뺀 값을 더한 다음 특성 값의 두 배를 곱합니다. 그런 다음 합계를 예시 수로 나눕니다. 결과는 가중치 값에 접하는 선의 기울기입니다.
가중치와 편향을 0으로 설정하여 이 방정식을 풀면 선의 기울기가 -119.7이 됩니다.
편향 미분
편향에 대한 손실 함수의 미분은 다음과 같이 작성됩니다.
$ \frac{\partial }{\partial b} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
다음과 같이 평가됩니다.
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2 $
먼저 각 예측값에서 실제값을 뺀 값에 2를 곱합니다. 그런 다음 합계를 예시 수로 나눕니다. 결과는 편향 값에 접하는 선의 기울기입니다.
가중치와 편향이 0인 이 방정식을 풀면 선의 기울기가 -34.3이 됩니다.
새 가중치와 편향을 사용하여 손실과 반복을 계산합니다. 반복 6회 동안 프로세스를 완료하면 다음과 같은 가중치, 편향, 손실이 발생합니다.
반복 | 무게 | 편향성 | 손실 (MSE) |
---|---|---|---|
1 | 0 | 0 | 303.71 |
2 | 1.2 | 0.34 | 170.67 |
3 | 2.75 | 0.59 | 67.3 |
4 | 3.17 | 0.72 | 50.63 |
5 | 3.47 | 0.82 | 42.1 |
6 | 3.68 | 0.9 | 37.74 |
업데이트된 가중치와 편향이 있을 때마다 손실이 줄어드는 것을 확인할 수 있습니다. 이 예에서는 6번 반복한 후 중지했습니다. 실제로 모델은 수렴할 때까지 학습됩니다. 모델이 수렴하면 추가 반복으로 손실이 더 줄어들지 않습니다. 경사하강법이 손실을 거의 최소화하는 가중치와 편향을 찾았기 때문입니다.
모델이 이전 수렴을 계속 학습하면 모델이 최저값 주변의 매개변수를 지속적으로 업데이트하므로 손실이 소량 변동하기 시작합니다. 이로 인해 모델이 실제로 수렴했는지 확인하기 어려울 수 있습니다. 모델이 수렴되었는지 확인하려면 손실이 안정화될 때까지 학습을 계속해야 합니다.
모델 수렴 및 손실 곡선
모델을 학습할 때는 손실 곡선을 보고 모델이 수렴했는지 확인하는 경우가 많습니다. 손실 곡선은 모델이 학습함에 따라 손실이 어떻게 달라지는지 보여줍니다. 다음은 일반적인 손실 곡선의 모습입니다. 손실은 y축에 표시되고 반복 횟수는 x축에 표시됩니다.
그림 13. 1,000회 반복 지점 주변에서 모델이 수렴하는 것을 보여주는 손실 곡선
처음 몇 번의 반복에서는 손실이 급격히 감소한 다음 점차 감소하다가 1,000회 반복 즈음에 수렴하는 것을 볼 수 있습니다. 1,000번의 반복 후에 모델이 수렴했다고 거의 확신할 수 있습니다.
다음 그림에서는 학습 프로세스의 세 지점(시작, 중간, 끝)에서 모델을 그립니다. 학습 프로세스 중에 스냅샷에서 모델 상태를 시각화하면 가중치 및 편향 업데이트, 손실 감소, 모델 수렴 간의 링크가 강화됩니다.
그림에서는 특정 반복에서 파생된 가중치와 편향을 사용하여 모델을 나타냅니다. 데이터 포인트와 모델 스냅샷이 있는 그래프에서 모델에서 데이터 포인트까지의 파란색 손실 선은 손실량을 보여줍니다. 선이 길수록 손실이 더 큽니다.
다음 그림에서 두 번째 반복 즈음에는 손실이 크기 때문에 모델이 예측을 잘 하지 못함을 알 수 있습니다.
그림 14. 학습 프로세스 시작 시의 모델의 손실 곡선 및 스냅샷
약 400번의 반복에서 경사하강법을 통해 더 나은 모델을 생성하는 가중치와 편향이 발견되었음을 알 수 있습니다.
그림 15. 손실 곡선과 학습 중간쯤에 있는 모델의 스냅샷입니다.
약 1,000번의 반복에서 모델이 수렴하여 손실이 가장 적은 모델이 생성된 것을 확인할 수 있습니다.
그림 16. 학습 프로세스 종료 시점의 모델의 손실 곡선 및 스냅샷
연습문제: 이해도 확인
수렴 및 볼록 함수
선형 모델의 손실 함수는 항상 볼록 곡면을 생성합니다. 이 속성으로 인해 선형 회귀 모델이 수렴하면 모델이 가장 낮은 손실을 생성하는 가중치와 편향을 찾았음을 알 수 있습니다.
지형지물이 하나인 모델의 손실 표면을 그래프로 표시하면 볼록한 도형을 볼 수 있습니다. 다음은 이전 예에서 사용한 마일당 갤런 데이터 세트의 손실 표면입니다. 가중치는 x축에, 편향은 y축에, 손실은 z축에 있습니다.
그림 17. 볼록한 도형을 보여주는 손실 곡면
이 예에서 가중치 -5.44와 편향 35.94는 손실 5.54를 최솟값으로 만듭니다.
그림 18. 최소 손실을 생성하는 가중치 및 편향 값을 보여주는 손실 곡면
선형 모델은 최소 손실을 찾으면 수렴합니다. 따라서 반복을 추가하면 경사 하강이 가중치와 편향 값을 최솟값을 중심으로 아주 작은 양만큼만 이동시킵니다. 경사하강 중 가중치와 편향 지점을 그래프로 나타내면 경사하강법이 공처럼 언덕을 굴러 내려오면서 마침내 하향 경사가 없는 지점에서 멈춥니다.
그림 19. 그래프의 최저점에서 중단되는 경사하강점을 보여주는 손실 그래프
검은색 손실 지점이 손실 곡선의 정확한 모양을 만듭니다. 즉, 급격히 감소한 후 손실 곡면의 최저점에 도달할 때까지 점진적으로 하향합니다.
이 모델은 각 가중치와 편향의 정확한 최솟값을 찾는 경우는 거의 없고 대신 그 값과 매우 가까운 값을 찾습니다. 또한 가중치와 편향의 최솟값은 손실 0에 해당하지 않으며 해당 매개변수의 손실을 가장 적게 발생시키는 값에만 해당합니다.
가장 낮은 손실을 생성하는 가중치와 편향 값(이 경우 가중치 -5.44, 편향 35.94)을 사용하여 모델을 그래프로 표시하여 데이터에 얼마나 잘 맞는지 확인할 수 있습니다.
그림 20. 손실이 가장 적은 가중치와 편향 값을 사용하여 모델을 그래프로 표시합니다.
다른 가중치 및 편향 값은 손실이 더 적은 모델을 생성하지 않으므로 이 데이터 세트에 가장 적합한 모델입니다.