seegongsik
인공지능

어떻게 조금씩 고쳐 내려가기, 경사하강

안개가 자욱한 언덕에 서 있다고 하자. 가장 낮은 골짜기로 가고 싶은데 멀어서 보이지 않는다. 그래도 발밑이 어느 쪽으로 기울었는지는 느낄 수 있다. 기운 쪽으로 한 걸음, 또 한 걸음 내려가면 결국 바닥에 닿는다. 손실을 줄이는 학습도 이렇게 한 걸음씩 고쳐 가는 일이고, 이 방법을 경사 하강법이라고 해요.

01

안개 낀 언덕을 내려가요

앞 레슨에서 손실은 모델이 얼마나 틀렸는지 재는 숫자이고, 작을수록 좋다고 했다. 그렇다면 손실은 어떻게 줄일까? 모델의 값 하나를 가로축에, 그 값일 때의 손실을 세로축에 그려 보면 가운데가 움푹 꺼진 골짜기 모양이 나온다.
골짜기 바닥이 손실이 가장 작은 자리예요. 그곳을 향해 내려가면 되는데, 실제 모델에서는 이 그림 전체를 미리 볼 수 없다. 알 수 있는 것은 지금 서 있는 자리의 기울기뿐이다.

3
지금 손실 = 9
발밑 기울기를 느껴 더 낮은 쪽으로 내려가요

한 걸음 내려가기를 눌러 보자. 공이 발밑 기울기가 가리키는 낮은 쪽으로 굴러가며 손실이 줄어요.

한 걸음 내려갈 때마다 공의 높이, 곧 손실이 줄었다. 바닥이 보이지 않아도 괜찮다. 발밑이 어느 쪽으로 기울었는지만 알면 내려가는 방향은 늘 알 수 있어요.
오른쪽이 내리막이면 값을 키우고, 왼쪽이 내리막이면 값을 줄이면 된다. 방향을 알았으니 다음은 값을 실제로 얼마나 바꿀지다.

02

값을 조금씩 고쳐요

여기서 값은 우리가 돌릴 수 있는 손잡이 같은 것이다. 앞에서 본 선의 기울기와 절편이 바로 이런 손잡이다. 손잡이를 돌리면 손실이 오르내리고, 발밑 기울기를 보면 어느 쪽으로 돌려야 손실이 줄어드는지 알 수 있어요.
그 방향으로 값을 조금만 바꾼다. 말로 쓰면 새 값은 지금 값에서 기울기에 작은 수를 곱한 만큼을 뺀 것이다. 기울기의 반대쪽, 곧 내리막으로 옮기는 셈이다. 이 일을 되풀이하는 것이 핵심이다.

0손실 = 36
값(손잡이) = 6
기울기가 가리키는 쪽으로 값을 조금씩 고쳐요

값 조금 고치기를 눌러 보자. 기울기가 가리키는 쪽으로 값이 조금 바뀌고, 그만큼 손실이 줄어요.

걸음을 옮길수록 값이 골짜기 가운데로 다가가고 손실 막대가 점점 짧아졌다. 기울기가 가파른 곳에서는 한 번에 크게 움직이고, 바닥에 가까워질수록 기울기가 완만해져 걸음도 작아져요.
고치는 양이 기울기에 비례하기 때문이다. 그런데 정해야 할 것이 하나 남았다. 기울기에 곱하는 그 작은 수, 곧 한 걸음의 크기를 얼마로 할까?

03

보폭이 너무 크면 건너뛰어요

한 걸음의 크기를 정하는 이 수를 학습률이라고 부른다. 학습률이 크면 빨리 내려갈 것 같지만 함정이 있다. 바닥 근처에서 걸음이 너무 크면 바닥을 그냥 지나쳐 반대편 비탈로 올라가 버려요.
그러다 좌우로 오가며 오히려 손실이 커지기도 한다. 반대로 학습률이 너무 작으면 안전하지만 바닥까지 가는 데 한참 걸린다.

3
위치 = 0.40 · 손실 = 6.76
보폭을 골라 한 걸음씩 걸어요

작은 보폭과 큰 보폭을 골라 걸어 보자. 작으면 차근차근 바닥으로 가고, 너무 크면 바닥을 건너뛰어 반대편으로 튀어요.

작은 보폭은 차근차근 내려갔고, 너무 큰 보폭은 바닥을 넘겨 좌우로 튀며 점점 멀어졌다. 그래서 학습률은 너무 크지도 너무 작지도 않게 골라야 해요.
실제로는 여러 값을 시험해 보며 고르고, 학습이 진행될수록 학습률을 조금씩 줄이는 방법도 쓴다. 이제 알맞은 보폭으로 끝까지 걸어 보자.

04

걸음을 되풀이해 바닥에 닿아요

이제 방법이 다 모였다. 기울기로 방향을 정하고, 알맞은 보폭으로 한 걸음 옮기고, 다시 기울기를 보고 한 걸음 옮긴다. 이것을 계속 되풀이하면 값은 골짜기 바닥으로 다가간다.
바닥에 가까워질수록 기울기가 거의 평평해져 걸음도 저절로 작아지고, 마지막에는 거의 움직이지 않게 돼요. 이렇게 한곳에 자리를 잡는 것을 수렴한다고 한다.

3
걸음 0 · 손실 = 9.00
걸음을 되풀이하면 바닥으로 수렴해요

한 걸음을 계속 눌러 보자. 바닥에 가까워질수록 걸음이 작아지며 손실이 가장 작은 지점으로 수렴해요.

걸음을 거듭하자 공이 골짜기 바닥에 자리를 잡았고 손실 막대도 가장 짧아졌다. 안개 속에서도 발밑 기울기만 믿고 한 걸음씩 내려와 바닥에 닿은 것이다.
실제 모델의 손실은 이 그림처럼 골짜기가 하나뿐인 모양이 아닐 때가 많아요. 골짜기가 여럿이면 가장 깊은 바닥이 아니라 근처의 얕은 골짜기에 멈출 수도 있다. 또 손잡이가 수백만 개라서 손잡이마다 기울기를 따로 재어 한꺼번에 고친다. 데이터를 조금씩 나눠 그때그때 기울기를 재는 방식도 널리 쓰인다.

05

정리

정리하면 이렇다. 손실을 값에 따라 그리면 골짜기 모양이 된다. 바닥은 보이지 않지만 발밑 기울기는 잴 수 있으니, 기운 쪽으로 값을 조금 고치면 손실이 줄어든다. 이 걸음을 되풀이하면 바닥에 다가가요.
걸음의 크기인 학습률은 너무 크면 바닥을 건너뛰고 너무 작으면 느리다. 기울기를 재어 한 걸음씩 내려가는 것, 이것이 경사 하강법이다.

핵심을 1번부터 차례로 눌러 되짚어요

핵심을 차례로 눌러 되짚어 보자. (손실은 골짜기 → 기울기로 방향 → 한 걸음씩 고치기 → 보폭이 중요 → 바닥에 수렴)

이제 손실을 줄이는 가장 기본이 되는 방법을 알았다. 기울기를 재어 한 걸음씩 고쳐 가는 이 방법이 기계가 스스로 배우는 비결이에요.
그렇다면 이 손잡이들은 실제로 어디에 달려 있을까? 다음 레슨에서는 신경망을 이루는 가장 작은 단위인 뉴런을 보고, 뉴런이 가중치와 편향이라는 손잡이를 어떻게 고치며 배우는지 살펴본다.

한 줄 정리경사 하강법은 손실을 줄이려고 기울기를 재어 더 낮은 쪽으로 값을 한 걸음씩 고쳐 가는 방법이다. 손실을 값에 따라 그리면 골짜기 모양이 되고, 지금 선 자리의 기울기를 보면 어느 쪽이 내리막인지 알 수 있어요. 새 값은 지금 값에서 기울기에 학습률을 곱한 만큼을 뺀 것이라, 기울기가 가파를수록 크게, 완만할수록 작게 움직인다. 학습률이 너무 크면 바닥을 건너뛰어 반대편으로 튀고, 너무 작으면 내려가긴 해도 느리다. 알맞은 학습률로 걸음을 되풀이하면 손실이 가장 작은 지점으로 수렴해요. 실제 모델에서는 수많은 손잡이의 기울기를 한꺼번에 재어 고치고, 골짜기가 여럿이면 얕은 곳에 멈출 수도 있다.
← 인공지능
이 페이지가 도움 됐다면 후원하기