수학 개념 지도
데이터와 학습(Data and learning)

역전파(Backpropagation)

신경망⁠(neural network)⁠의 손실을 각 가중치⁠(weight)⁠로 미분⁠(differentiation)⁠하는 방법. 출력에서 입력 쪽으로 연쇄법칙⁠(chain rule)⁠을 한 층씩 거꾸로 적용해, 모든 기울기⁠(slope)⁠를 한 번의 역방향 계산으로 얻는다.

∂L∂w1=∂L∂y^ ∂y^∂h1 ∂h1∂z1 ∂z1∂w1=(y^−y) v1 (1−h12) x\frac{\partial L}{\partial w_1} = \frac{\partial L}{\partial \hat y}\,\frac{\partial \hat y}{\partial h_1}\,\frac{\partial h_1}{\partial z_1}\,\frac{\partial z_1}{\partial w_1} = (\hat y - y)\, v_1\,(1-h_1^2)\, x
먼저 보면 좋은 개념연쇄법칙경사 하강법

신경망을 경사 하강법⁠(gradient descent)⁠으로 학습시키려면 손실 L을 가중치 하나하나로 미분한 값이 모두 필요합니다. 가중치가 수십억 개여도 이것을 싸게 얻는 방법이 역전파입니다. 아래는 입력 x 하나, 숨은 단위 둘, 출력 하나인 작은 신경망을 계산 순서대로 그린 그래프(계산 그래프⁠, computational graph⁠)입니다. 각 칸의 값은 왼쪽 칸들의 값만으로 정해집니다.

zj=wjx+bj,hj=tanh⁡zj,y^=v1h1+v2h2,L=12(y^−y)2z_j = w_j x + b_j,\quad h_j = \tanh z_j,\quad \hat y = v_1 h_1 + v_2 h_2,\quad L = \tfrac12(\hat y - y)^2

입력 x = , 정답 y = , 가중치 w1=w_1 = , v1=v_1 = 입니다. 다른 가중치

칸 위의 청록 수는 앞으로 계산한 값, 아래의 분홍 수는 L을 그 칸의 값으로 미분한 기울기, 변 위의 ×수는 그 변의 국소 미분(w₁, 1 − h₁², v₁, ŷ − y …)입니다.

앞으로 계산은 왼쪽에서 오른쪽으로 값을 채웁니다. 거꾸로 계산은 오른쪽 끝의 ∂L/∂L=1\partial L/\partial L = 1에서 출발해 한 칸씩 왼쪽으로 갑니다. 각 칸의 기울기는 오른쪽 칸의 기울기에 그 사이 변의 국소 미분을 곱한 것, 곧 연쇄법칙입니다. 예를 들어 w1w_1까지 가는 길을 따라 곱하면

∂L∂w1=(y^−y)⋅v1⋅(1−h12)⋅x\frac{\partial L}{\partial w_1} = (\hat y - y)\cdot v_1 \cdot (1-h_1^2)\cdot x

이고, 지금 값은 입니다. 같은 칸 z1z_1에서 갈라지는 ∂L/∂b1\partial L/\partial b_1은 마지막 곱셈만 1로 바뀌고, ∂L/∂v1=(y^−y) h1=\partial L/\partial v_1 = (\hat y - y)\,h_1 = 입니다. x처럼 두 갈래로 나가는 칸에서는 두 길로 돌아온 기울기를 더합니다(∂L/∂x=\partial L/\partial x = ). x를 조금 바꾸면 그 변화가 두 길로 퍼져 L에 닿고, 작은 변화들은 국소 선형성⁠(local linearity)⁠에 따라 그냥 더해지기 때문입니다.

L을 w₁만의 함수⁠(function)⁠로 본 그래프. 청록 접선⁠(tangent line)⁠의 기울기가 역전파로 얻은 ∂L/∂w₁입니다. 점을 끌어 보세요.

확인해 봅시다. w1w_1을 아주 조금 움직여 잰 수치 미분⁠(numerical differentiation)⁠ (L(w1+h)−L(w1−h))/2h\bigl(L(w_1+h) - L(w_1-h)\bigr)/2h는 , 역전파의 값과 같습니다. 수치 미분으로도 기울기를 얻을 수 있지만 가중치 하나마다 신경망 전체를 두 번씩 더 계산해야 합니다. 가중치가 P개면 한 번 계산에 P에 비례하는 일이 드니 모두 합쳐 O(P2)O(P^2)입니다(점근 표기법⁠, asymptotic notation⁠). 역전파는 앞으로 한 번, 거꾸로 한 번이면 P개의 기울기를 모두 얻고, 거꾸로 계산의 비용도 앞으로 계산의 몇 배 이내라 O(P)O(P)입니다. P가 수십억이면 이 차이가 곧 학습할 수 있느냐 없느냐입니다.

왜 이렇게 쌀까요? 층이 여럿이면 입력에서 L까지 가는 길의 수는 층마다 곱해져 폭발적으로 늘어납니다. 역전파는 칸마다 '여기서 L까지 가는 모든 길의 곱의 합'을 한 번만 계산해 적어 두고, 왼쪽 칸들은 그 값을 다시 씁니다. 겹치는 작은 문제의 답을 표에 적어 두는 동적 계획법⁠(dynamic programming)⁠과 같은 생각입니다. 층 단위로 보면 각 층의 국소 미분은 층의 출력 하나하나를 입력 하나하나로 미분한 값을 모은 행렬(독일 수학자 야코비의 이름을 딴 야코비 행렬⁠(Jacobian matrix)⁠)이고 연쇄법칙은 그 행렬⁠(matrix)⁠들의 곱입니다. 손실은 수 하나이므로 L 쪽부터 곱해 나가면 매번 '벡터⁠(vector)⁠ × 행렬'로 끝나지만, 입력 쪽부터 곱하면 '행렬 × 행렬'이 되어 훨씬 비쌉니다. 역전파는 곱하는 순서를 잘 고른 연쇄법칙입니다.

이 방법은 여러 번 따로 발견되었습니다. 1970년 핀란드의 세포 린나인마가 일반적인 계산의 역방향 자동 미분⁠(reverse-mode automatic differentiation)⁠을 석사 논문에 적었고, 1974년 폴 워보스가 박사 논문에서 신경망 학습에 쓰자고 제안했으며, 1986년 미국의 심리학자 데이비드 러멜하트, 영국 출신 컴퓨터 과학자 제프리 힌턴, 로널드 윌리엄스가 『네이처』에 낸 논문이 숨은 층⁠(hidden layer)⁠이 쓸모 있는 특징을 스스로 배운다는 것을 보여 주면서 널리 퍼졌습니다.

이어지는 곳. 오늘날의 딥러닝⁠(deep learning)⁠ 도구는 앞으로 계산만 적으면 계산 그래프를 기록해 두었다가 거꾸로 따라가는 자동 미분⁠(automatic differentiation)⁠으로 기울기를 냅니다. 층이 깊으면 1−h21-h^2처럼 1보다 작은 수가 거듭 곱해져 앞쪽 층의 기울기가 사라지는 문제가 생기는데, 이것이 ReLU(양수에서는 기울기가 늘 1)와, 층의 입력을 출력에 그대로 더해 주는 지름길인 잔차 연결(거꾸로 계산할 때 기울기가 그 지름길로 줄지 않고 흘러감)을 쓰는 까닭 가운데 하나입니다. 같은 행렬을 시간 걸음마다 거듭 곱하는 순환 신경망⁠(recurrent neural network)⁠에서는 기울기가 지수적으로 사라지거나 폭발하기 쉽습니다. 퍼셉트론⁠(perceptron)⁠의 계단 함수는 거의 모든 곳에서 미분이 0이라 역전파로 학습할 수 없었고, 매끄러운 활성화 함수⁠(activation function)⁠가 그 문을 열었습니다. 기울기로 한 걸음씩 내려가는 대신 곡률⁠(curvature)⁠까지 쓰는 뉴턴 방법⁠(Newton's method)⁠은 두 번 미분이 필요해 큰 신경망에서는 거의 쓰지 않습니다.

관련된 시대와 장소벨 연구소

이 개념이 나오는 긴 글

미분에서 회전까지 · 1편 · 미분 순간의 속도 속도계는 '지금 이 순간'의 속도를 보여 준다. 순간에는 시간이 흐르지 않는데, 무엇을 재는 걸까? 계산언어학 말을 세는 기계 문법은 규칙일까, 확률일까? 파니니의 문법에서 촘스키의 위계, 섀넌의 영어 엔트로피, 오늘날의 언어 모델까지. 신경망과 기계 학습 배우는 기계 예를 보여 주면 규칙을 스스로 찾는 기계. 1958년의 퍼셉트론에서 오늘의 심층 신경망까지, 그 밑바닥에는 미분과 연쇄법칙이 있다. 언어 모델 다음 단어를 맞히는 기계 다음 낱말을 짐작하는 일만으로 어디까지 갈 수 있을까? 마르코프의 글자 세기에서 섀넌의 추측 게임, 트랜스포머와 규모의 법칙, 사람의 선호까지. 밑바닥에는 확률의 곱셈 규칙과 로그 하나가 있고, 그 수학은 모델이 왜 그럴듯하게 틀리는지도 말해 준다. 역문제 거꾸로 푸는 문제는 왜 어려운가 원인에서 결과를 계산하기는 쉽다. 흐린 사진, CT, 블랙홀 사진은 왜 결과에서 원인을 되찾기 어려웠을까? 작은 특잇값이 잡음을 키우는 벽과, 정규화·릿지 회귀·베이즈 사전확률이 사실은 같은 처방이라는 이야기. 반환과 동적 계획법 같은 계산, 다른 덧셈 가장 짧은 길, 길의 가짓수, 가장 그럴듯한 해석, 갈 수 있는지 없는지. 따로 태어난 알고리즘들이 사실은 한 계산이고, 달라지는 것은 더하기와 곱하기 자리에 무엇을 넣느냐뿐이다. 그렇게 바꿔 넣어도 되는 까닭은 분배법칙 하나다. 범주론 화살표만으로 본 수학 최대공약수와 교집합과 '그리고'는 같은 것이고, 화살표를 뒤집으면 최소공배수와 합집합과 '또는'이 된다. 무엇으로 만들었는지 묻지 않고 어떻게 이어지는지만 보는 언어로, '자연스럽다'는 말의 뜻, 관계만으로 대상을 알아보는 요네다의 생각, 함자로 본 연쇄법칙, 어디에나 있는 수반까지 사이트의 여러 분야를 가로지른다.

이 개념 위에 세워진 것

이 개념을 언급하는 페이지

이 페이지가 가리키는 개념