나뭇잎 교과서

경사하강법

가중치가 많은 인공지능은 손실함수의 최솟값을 공식으로 구할 수 없습니다. 대신 지금 위치의 기울기를 구해 기울기의 반대쪽으로 조금씩 움직이는 경사하강법으로 최솟값을 찾아갑니다. 이 절에서는 학습률에 따라 내려가는 모습이 어떻게 달라지는지 보고, 가중치가 두 개인 경우를 미리 봅니다.

먼저 알면 좋은 것 이차함수의 그래프와 꼭짓점
본문

경사하강법

본문

짙은 안개 속에서 산의 가장 낮은 골짜기를 찾아야 한다. 멀리 내다볼 수 없으니 발밑의 경사만 느낄 수 있다. 가장 좋은 방법은 발밑이 내려가는 쪽으로 한 걸음 옮기고, 다시 경사를 느껴 또 한 걸음 옮기는 것이다. 인공지능도 손실함수의 최솟값을 이렇게 찾는다. 한 걸음의 크기는 얼마로 해야 할까?

그림 1. 손실함수 \(L(w) = (w - 3)^2 + 1\)에서 \(w = -2\)로 출발하여 기울기의 반대쪽으로 걸어간 자취. 학습률이 작으면 천천히, 알맞으면 빠르게 최소점 3에 도착하고, 1보다 크면 골짜기를 넘나들며 점점 멀어진다.
먼저 알아야 할 것이차함수의 그래프와 꼭짓점, 직선의 기울기(공통수학1), 손실함수(손실함수). 미분계수를 알면 더 좋지만 꼭 필요하지는 않다.

4.4.1기울기를 따라 내려가기

손실함수 \(L(w)\)의 그래프에서 한 점의 접선의 기울기가 양수이면 오른쪽이 오르막이므로 왼쪽으로, 음수이면 오른쪽으로 가야 내려간다. 곧 기울기의 반대 방향으로 움직이면 손실이 줄어든다. 그리고 기울기가 크면 아직 최소점에서 멀다는 뜻이므로 크게, 작으면 가깝다는 뜻이므로 작게 움직인다.

정의 4.4.1 경사하강법

현재 매개변수 \(w\)에서 손실함수의 기울기 \(L'(w)\)를 구해 \[w_{\text{새}} = w - \eta\,L'(w)\] 로 고치는 일을 되풀이한다. \(\eta\)(에타)는 한 걸음의 크기를 정하는 수로, 학습률이라 한다.

\(L(w) = (w - 3)^2 + 1\)이면 기울기는 \(L'(w) = 2(w - 3)\)이다. \(\eta = 0.2\)이면 \(w_{\text{새}} = w - 0.4(w - 3)\)이므로, 따라서 최소점에서 떨어진 거리 \(w - 3\)이 한 걸음마다 0.6배로 줄어든다. 그림 1에서 걸음 수를 늘리면 출발점 \(-2\)에서 3으로 빠르게 다가간다.1

4.4.2학습률의 크기

일반적으로 이 손실함수에서는 거리가 한 걸음마다 \((1 - 2\eta)\)배가 된다. \(\eta\)가 0.5보다 작으면 같은 쪽에서 다가가고, 0.5이면 한 걸음에 도착하며, 0.5와 1 사이이면 골짜기를 넘나들며 다가간다. \(\eta\)가 1보다 크면 \(|1 - 2\eta| > 1\)이라 오히려 멀어진다. 그림 1에서 학습률을 1.05로 올리면 자취가 골짜기 양쪽으로 점점 크게 튄다.

이 손실함수라면 \(L'(w) = 0\)을 풀어 \(w = 3\)을 바로 얻을 수 있는데, 왜 굳이 한 걸음씩 걸을까? 실제 인공지능의 손실함수는 매개변수가 수백만 개이고 식이 복잡해서, 기울기가 0인 곳을 식으로 풀어 낼 수 없는 경우가 대부분이다. 반면 지금 서 있는 곳의 기울기를 계산하는 일은 언제나 할 수 있으므로, 컴퓨터는 이것을 수없이 되풀이하는 쪽을 택한다. 다만 산에 골짜기가 여럿 있으면 어디서 출발했느냐에 따라 가장 낮은 골짜기가 아니라 가까운 작은 웅덩이에 머물 수 있다. 그래서 여러 곳에서 출발해 보거나 걸음의 크기를 바꾸어 가며 결과를 비교한다.

학습률한 걸음마다 거리결과 너무 작음조금씩 줄어듦느리게 수렴 알맞음빠르게 줄어듦빠르게 수렴 너무 큼오히려 커짐발산
그림 2. 학습률이 너무 작으면 느리고, 너무 크면 최소점을 지나쳐 발산한다.

4.4.3예제 풀이

예제 4.4.2

\(L(w) = (w - 3)^2 + 1\)에서 \(w_0 = -2\), 학습률 \(\eta = 0.2\)로 경사하강법을 세 번 적용한 \(w_1, w_2, w_3\)을 구하여라.

\(L'(w) = 2(w - 3)\)이다. \(w_1 = -2 - 0.2 \times 2(-5) = -2 + 2 = 0\), \(w_2 = 0 - 0.2 \times 2(-3) = 1.2\), \(w_3 = 1.2 - 0.2 \times 2(-1.8) = 1.92\)이다.

즉 최소점까지의 거리는 5, 3, 1.8, 1.08로 0.6배씩 줄어든다. 손실은 26에서 10, 4.24, 2.17로 빠르게 줄어든다. 인공지능의 실제 손실함수는 매개변수가 수백만 개인 산과 같지만, 각 매개변수에 대해 기울기를 구해 반대쪽으로 조금씩 움직이는 원리는 똑같다.

아래 탐구 카드에서 안개 속 골짜기를 찾아 내려가고, 기울기와 절편을 함께 학습할 때의 길을 직접 따라가 보자.

  1. 손실함수의 그래프에 골짜기가 여럿이면 경사하강법은 출발점 근처의 골짜기에 머물 수 있다. 이런 점을 극솟값이라 하며, 가장 낮은 최솟값과 다를 수 있다.
마무리

경사하강법은 손실함수의 기울기 반대쪽으로 \(w \leftarrow w - \eta L'(w)\)만큼씩 움직이기를 되풀이하여 최솟값을 찾는다. 학습률 \(\eta\)가 너무 작으면 느리고, 너무 크면 발산한다. 그래서 처음 질문의 안개 낀 산에서는 발밑이 내려가는 쪽으로, 경사가 급할수록 크게, 알맞은 보폭으로 걸어 내려가면 골짜기에 닿는다.

탐구 1

안개 낀 산에서 가장 낮은 곳을 찾아 내려가려면?

경사하강법 · 시뮬레이션

택시 요금 가상 자료에 \(y = wx\)를 맞출 때의 평균제곱오차 \(L(w)\)를 경사하강법으로 줄인다. 꼭짓점 공식으로 구한 최소는 \(w^* \approx 2.00\)이다.

  1. 질문안개 때문에 발밑만 보이는 산에서 가장 낮은 골짜기를 찾으려면 어떻게 해야 할까? 인공지능은 공식으로 풀 수 없는 손실함수의 최솟값을 어떻게 찾을까?
  2. 복원직선의 기울기가 양수이면 오른쪽으로 갈수록 올라가고, 음수이면 내려간다.
  3. 설명곡선 위의 한 점과 아주 가까운 점을 이은 직선의 기울기는, 두 점을 한없이 가깝게 하면 일정한 값에 다가간다. 이 값을 그 점에서의 미분계수(접선의 기울기)라 하고 \(L'(w)\)로 쓰며, 예를 들어 이차함수 \(L(w) = (w - c)^2\)의 미분계수는 \(L'(w) = 2(w - c)\)이다. 그래서 지금 위치에서 기울기 \(L'(w)\)를 구해 기울기의 반대쪽으로 조금 움직이는 일, 곧 \(w_{\text{새}} = w - \eta L'(w)\)를 되풀이하는데, 여기서 \(\eta\)를 학습률이라 한다. 최솟값 근처에서는 기울기가 0에 가까워져 걸음이 저절로 작아지며, 이 방법을 경사하강법이라 하고 인공지능 학습의 기본 원리로 쓴다.
  4. 연결가중치가 여러 개이면 가중치마다 기울기를 구해 같은 방식으로 내려가는데, 다음 카드에서 미리 본다. 미분계수는 미적분Ⅰ에서 극한으로 정확히 정의하며, 이 아이디어는 1847년 코시까지 거슬러 올라간다(1단원 연표).
  5. 적용학습률을 0.005, 0.02, 0.04, 0.05로 바꿔 열 걸음씩 가 보며, 너무 작을 때와 너무 클 때 각각 어떻게 되는지 보자. 그리고 이 손실에서 발산하기 시작하는 학습률의 값을 찾아보자.
  6. 판단학습률이 너무 크면 골짜기를 건너뛰며 오히려 손실이 커질 수 있고(발산), 너무 작으면 시간이 오래 걸린다. 그래서 알맞은 학습률은 손실함수의 휘어진 정도에 따라 다르다.

확인조건이 달라지면

\(L(w) = (w - 3)^2\), 학습률 0.25, 시작 \(w_0 = 1\)일 때 한 걸음 뒤의 \(w_1\)은?

탐구 2

기울기와 절편을 함께 학습하면 어떤 길로 내려갈까?

경사하강법 더 나아가기 · 조작

모델 \(y = ax + b\)의 손실 \(L(a, b)\)을 등고선 지도로 그렸다(가상 자료 8개). 지도를 눌러 시작점을 정하고 내려가 보자.

  1. 질문실제 모델은 가중치가 여럿이다. 기울기 \(a\)와 절편 \(b\)를 함께 바꿔야 할 때는 어느 방향으로 움직여야 손실이 가장 빨리 줄어들까?
  2. 복원지도의 등고선은 높이가 같은 점을 이은 선이고, 등고선 간격이 좁을수록 가파르다. 그리고 경사하강법은 \(w \leftarrow w - \eta L'(w)\)처럼 기울기의 반대쪽으로 움직인다.
  3. 설명\(b\)를 고정하면 손실은 \(a\)만의 함수가 되므로 \(a\) 방향의 기울기를 구할 수 있고, \(a\)를 고정하면 \(b\) 방향의 기울기를 구할 수 있다. 그래서 두 가중치를 각자 자기 기울기의 반대쪽으로 동시에 조금씩 움직이면, 등고선을 가로질러 골짜기 바닥으로 내려간다. 이 카드는 교육과정의 범위(가중치 하나)를 넘어, 실제 인공지능이 가중치를 여럿 학습하는 모습을 미리 보는 것이다.
  4. 연결신경망의 가중치 수백만 개도 같은 방법으로 학습하고, 여러 층의 기울기를 효율적으로 계산하는 방법이 역전파이다(1단원 연표).
  5. 적용여러 시작점에서 내려가며 경로가 등고선과 어떤 각을 이루는지 보자. 그리고 학습률을 1 가까이 올리면 경로가 어떻게 되는지도 확인해 보자.
  6. 판단이 손실은 골짜기가 하나인 그릇 모양이라 어디서 시작해도 같은 곳에 도착한다. 그러나 신경망의 손실은 골짜기가 여러 개일 수 있어서, 시작점에 따라 다른 곳에 멈출 수 있다.

확인조건이 달라지면

\(L(a, b) = a^2 + 4b^2\)에서 점 \((2, 1)\)의 (a 방향 기울기, b 방향 기울기)와, 학습률 0.1로 한 걸음 간 점은?

AI 출제 문항연습문제 풀어보기16문항
Esc

↑↓ 고르기Enter 열기