오차 역전파로 표현 학습하기
출력 오차의 미분을 연쇄 법칙으로 거꾸로 전해 은닉 단위까지 학습시키는 역전파를 보인 논문
먼저 알아야 할 것
다루는 내용
루멜하트·힌턴·윌리엄스는 가중합과 시그모이드로 된 층 신경망에서, 출력 오차 E의 미분을 연쇄 법칙으로 출력층부터 아래층까지 전달해 모든 가중치의 기울기를 순전파·역전파 두 번의 계산으로 구하는 역전파 절차를 제시했습니다. 가중치는 경사 하강에 모멘텀 항을 더한 식으로 고칩니다. 대칭 감지 과제는 은닉 단위 2개로 풀었고, 두 가족 나무 과제에서는 은닉 단위가 국적·세대·가계 갈래 같은 특징을 스스로 배워 학습하지 않은 4개 관계에도 일반화했습니다.
초록
이 논문은 뉴런과 비슷한 단위들로 된 신경망을 위한 새로운 학습 절차인 역전파(back-propagation)를 설명합니다. 이 절차는 신경망의 실제 출력 벡터와 원하는 출력 벡터 사이의 차이를 재는 척도가 최소가 되도록, 신경망 연결의 가중치를 반복해서 조정합니다. 가중치를 조정한 결과, 입력에도 출력에도 속하지 않는 내부의 '은닉' 단위들이 과제 영역의 중요한 특징을 나타내게 되고, 과제의 규칙성은 이 단위들의 상호작용으로 포착됩니다. 쓸모 있는 새 특징을 만들어 내는 능력은 역전파를 퍼셉트론 수렴 절차 같은 이전의 더 단순한 방법과 구별해 줍니다.
해설
오차 역전파로 표현 학습하기
출력의 오차를 미분의 연쇄 법칙으로 뒤쪽 층까지 거꾸로 전해, 입력도 출력도 아닌 '은닉 단위'의 가중치까지 학습시키는 방법을 보인 4쪽짜리 논문입니다. 지금의 모든 딥러닝 학습은 이 계산 위에서 돌아갑니다.
| 항목 | 내용 |
|---|---|
| 원제 | Learning representations by back-propagating errors |
| 저자 | David E. Rumelhart · Geoffrey E. Hinton · Ronald J. Williams (UC 샌디에이고 · 카네기멜런대) |
| 발표 | 1986 · Nature 323권 533–536쪽 · nature.com/articles/323533a0 |
| 트랙 · 수준 | 딥러닝 기초 · 기초 |
| 먼저 알면 좋은 것 | 편미분과 연쇄 법칙, 경사 하강법, 시그모이드 함수, 퍼셉트론, 가중합 |
들어가기 전에
이 해설은 아래 내용을 안다고 보고 씁니다. 처음이라면 먼저 읽고 오면 수식과 손계산을 훨씬 쉽게 따라올 수 있습니다.
- 역전파를 계산 그래프로 손계산하기 — 계산 그래프 · 마디별 기울기 규칙 · 2층 신경망 손계산으로 익히는 역전파
- 신경망과 딥러닝 — 시그모이드 뉴런부터 역전파 네 방정식 · 교차 엔트로피까지 손계산으로 배우는 수업
한눈에 보기
- 신경망 학습이 "오차 를 가중치 로 미분해 반대 방향으로 조금씩 움직이는 것"이라는 것을 정확히 압니다.
- 순전파(앞으로 계산) → 역전파(뒤로 미분 전달) 두 번의 계산으로 모든 가중치의 기울기를 구하는 과정을 작은 숫자로 직접 따라가 봅니다.
- 왜 '은닉 단위'가 필요한지, 퍼셉트론과 무엇이 다른지 설명할 수 있습니다.
- 모멘텀(가속) 항이 들어간 가중치 갱신식의 뜻을 압니다.
- 논문이 보인 두 예제(대칭 감지 · 두 가족 나무)에서 은닉 단위가 스스로 의미 있는 특징을 배웠다는 것을 이해합니다.
초록 (번역)
이 논문은 뉴런과 비슷한 단위들로 된 신경망을 위한 새로운 학습 절차인 역전파(back-propagation)를 설명합니다. 이 절차는 신경망의 실제 출력 벡터와 원하는 출력 벡터 사이의 차이를 재는 척도가 최소가 되도록, 신경망 연결의 가중치를 반복해서 조정합니다. 가중치를 조정한 결과, 입력에도 출력에도 속하지 않는 내부의 '은닉' 단위들이 과제 영역의 중요한 특징을 나타내게 되고, 과제의 규칙성은 이 단위들의 상호작용으로 포착됩니다. 쓸모 있는 새 특징을 만들어 내는 능력은 역전파를 퍼셉트론 수렴 절차 같은 이전의 더 단순한 방법과 구별해 줍니다.
무엇을 풀었나
입력 단위가 출력 단위에 바로 연결되어 있으면, 실제 출력과 원하는 출력의 차이를 줄이도록 연결 세기를 고치는 규칙을 찾기는 쉽습니다. 어려운 것은 그 사이에 은닉 단위(hidden unit)가 있을 때입니다. 은닉 단위는 과제가 "이 값이 돼야 한다"고 정해 주지 않기 때문입니다.
저자들은 퍼셉트론을 예로 듭니다. 퍼셉트론에도 입력과 출력 사이에 '특징 분석기'가 있지만, 그 입력 연결은 사람이 손으로 정해 고정합니다. 그래서 진짜 은닉 단위가 아니고, 표현(representation)을 배우지 못합니다.
결국 학습 절차가 은닉 단위가 언제 켜져야 원하는 입출력 동작에 도움이 되는지, 즉 은닉 단위가 무엇을 나타내야 하는지를 스스로 정해야 합니다. 논문은 범용적이고 비교적 단순한 절차 하나로 이것이 가능하다는 것을 보입니다.
핵심 아이디어
1. 단위 하나의 계산 — 가중합과 시그모이드
직관: 여러 사람의 의견(입력)에 각자 다른 신뢰도(가중치)를 곱해 더하고, 그 합을 0~1 사이 "찬성 정도"로 부드럽게 눌러 주는 것입니다(해설용 비유).
단계:
- 아래층 단위들의 출력 에 연결 가중치 를 곱해 더합니다. 이것이 총입력 입니다.
- 총입력을 시그모이드 함수에 넣어 출력 를 얻습니다.
| 기호 | 뜻 |
|---|---|
| 아래층 단위 의 출력(상태) | |
| 단위 에서 단위 로 가는 연결의 가중치 | |
| 단위 의 총입력(가중합) | |
| 단위 의 출력. 0과 1 사이의 실수 |
편향(bias): 항상 1을 내는 입력 하나를 더 두고, 그 가중치를 편향으로 씁니다. 반대 부호의 임계값과 같은 역할이며, 다른 가중치와 똑같이 학습합니다.
왜 이렇게 했나: 논문은 식 (1) · (2)를 꼭 써야 하는 것은 아니고, 도함수가 유한한(bounded derivative) 출력 함수면 무엇이든 된다고 밝힙니다. 다만 비선형 함수 앞에서 입력을 선형으로 합치면 학습 절차가 크게 단순해진다고 설명합니다. 퍼셉트론의 계단 함수는 미분이 안 되지만, 시그모이드는 어디서나 미분됩니다.
숫자로 해 보기(해설용 예): 입력 , 가중치 이면 , 출력 입니다.
2. 층 구조와 순전파
가장 단순한 형태는 층으로 된 신경망입니다.
- 맨 아래 입력 단위층, 그 위에 원하는 만큼의 중간층(은닉층), 맨 위 출력 단위층이 있습니다.
- 같은 층 안의 연결, 위층에서 아래층으로 가는 연결은 금지합니다. 중간층을 건너뛰는 연결은 허용합니다.
- 입력 벡터를 넣고, 아래층부터 차례로 식 (1) · (2)를 적용해 출력층까지 계산합니다. 이것이 순전파(forward pass)입니다. 같은 층의 단위는 동시에 계산할 수 있습니다.
3. 오차의 정의
학습 목표는 모든 입력에 대해 출력 벡터가 원하는 출력 벡터와 같거나 충분히 가깝게 되는 가중치를 찾는 것입니다.
| 기호 | 뜻 |
|---|---|
| 사례(입력-출력 쌍) 번호 | |
| 출력 단위 번호 | |
| 사례 에서 출력 단위 의 실제 상태 | |
| 사례 에서 출력 단위 의 원하는 상태 |
왜 인가: 미분하면 지수 2가 내려와 1/2과 상쇄되어, 식 (4)처럼 깔끔해집니다(해설).
경사 하강으로 를 줄이려면 모든 가중치에 대한 편미분 가 필요합니다. 이것은 사례별 편미분의 합이므로, 사례 하나씩 두 번의 계산(순전파 · 역전파)으로 구합니다.
4. 역전파 — 연쇄 법칙으로 오차를 거꾸로 전하기
직관: 결과가 틀렸을 때, 최종 결재자부터 시작해 "내 판단이 결과를 얼마나 틀리게 했나"를 계산하고, 그 책임을 자기에게 의견을 준 사람들에게 신뢰도(가중치)만큼 나눠 넘기는 것입니다(해설용 비유). 각자는 넘겨받은 책임만 보고 자기 신뢰도를 고칩니다.
단계 (사례 하나, 첨자 생략):
① 출력 단위에서 출력에 대한 미분:
② 연쇄 법칙으로 총입력에 대한 미분. 시그모이드의 도함수가 이므로:
③ 총입력은 아래층 상태와 가중치의 선형 함수이므로, 가중치에 대한 미분은:
④ 아래층 단위 의 출력이 오차에 주는 영향은, 에서 나가는 모든 연결의 영향을 더한 것입니다:
⑤ 이제 아래층의 를 알았으므로, ②~④를 한 층씩 내려가며 반복합니다. 이것이 역전파(backward pass)입니다.
| 기호 | 뜻 |
|---|---|
| 단위 의 출력을 조금 바꾸면 오차가 얼마나 변하나 | |
| 단위 의 총입력을 조금 바꾸면 오차가 얼마나 변하나 | |
| 시그모이드의 기울기. 출력이 0.5일 때 가장 큼(0.25) | |
| 가중치 를 고칠 방향과 크기 |
왜 효율적인가: 각 단위는 위층에서 받은 와 자기 연결 가중치만으로 계산합니다. 모든 가중치의 기울기를 순전파 한 번과 역전파 한 번으로 구하며, 계산이 국소적(local)이라 병렬 하드웨어로 구현하기 쉽다고 논문은 설명합니다.
5. 숫자로 해 보기 — 2-1-1 신경망 (해설용 예)
입력 2개 → 은닉 1개 → 출력 1개, 편향은 0으로 둡니다. 입력 , 은닉 가중치 , , 출력 가중치 , 원하는 출력 입니다.
순전파
| 단계 | 계산 | 값 |
|---|---|---|
| 은닉 총입력 | 0.5 | |
| 은닉 출력 | 0.622 | |
| 출력 총입력 | 0.622 | |
| 출력 | 0.651 | |
| 오차 | 0.061 |
역전파
| 단계 | 식 | 값 |
|---|---|---|
| (4) | −0.349 | |
| (5) | −0.0794 | |
| (6) | −0.0494 | |
| (7) | −0.0794 | |
| (5) | −0.0187 | |
| (6) | −0.0187 | |
| (6) | 0 |
학습률 로 식 (8)을 적용하면 는 , 은 로 늘고, 입력이 0이었던 는 그대로입니다. 출력이 정답 1 쪽으로 조금 올라가는 방향입니다.
6. 가중치 갱신 — 경사 하강과 모멘텀
가장 단순한 경사 하강은 누적한 기울기에 비례해 가중치를 바꿉니다.
저자들은 사례마다 바로 고치는 대신, 모든 사례의 기울기를 누적한 뒤 고치는 방식을 썼습니다. 사례마다 고치면 기울기를 따로 저장할 메모리가 필요 없다는 장점이 있다고도 적습니다.
식 (8)은 2차 미분을 쓰는 방법보다 수렴이 느리지만, 훨씬 단순하고 국소 계산만으로 병렬 하드웨어에서 구현할 수 있습니다. 논문은 단순함과 국소성을 잃지 않으면서 크게 개선하는 가속 방법을 제시합니다. 현재 기울기로 가중치 공간에서 점의 위치가 아니라 속도를 바꾸는 것입니다.
| 기호 | 뜻 |
|---|---|
| 학습률(한 번에 움직이는 크기) | |
| 전체 사례를 한 번 다 돌 때마다(한 sweep) 1씩 증가 | |
| 0~1 사이 지수 감쇠 계수. 현재 기울기와 이전 변화의 비중을 정함 |
직관: 언덕을 굴러 내려가는 공처럼, 이전에 움직이던 방향의 관성을 유지합니다. 같은 방향으로 계속 기울면 점점 빨라지고, 방향이 오락가락하면 서로 상쇄됩니다(해설용 비유).
숫자로 해 보기(해설용 예): , , 이번 기울기 , 지난번 변화 이면 입니다. 기울기만 쓰면 였을 걸음이 관성 덕분에 다섯 배 넘게 커졌습니다.
대칭 깨기: 처음 가중치를 모두 같게 두면 은닉 단위들이 똑같이 배우므로, 작은 무작위 가중치로 시작합니다.
7. 순환 신경망으로 확장
논문은 층 신경망과, 같은 연결을 여러 번 반복해 돌리는 순환(반복) 신경망이 같다는 것도 보입니다(그림 5). 반복의 각 시간 단계를 층 하나로 펼치면 됩니다. 두 가지 조건이 붙습니다.
- 순전파 동안 각 단위의 출력 기록을 모두 저장해야 역전파 식 (5) · (6)을 쓸 수 있습니다.
- 서로 다른 층의 대응하는 가중치는 같은 값이어야 하므로, 대응하는 가중치들의 를 평균해 같은 양만큼 바꿉니다.
이렇게 하면 반복 탐색이나 순차 구조도 학습할 수 있다고 설명합니다. 오늘날 "시간에 따른 역전파(BPTT)"라 부르는 생각의 출발점입니다(해설).
전체 흐름
flowchart TD
A[입력 벡터] --> B[순전파: 층마다 x = Σ y·w, y = 시그모이드 x]
B --> C[출력 y와 정답 d로 오차 E 계산]
C --> D[출력층: ∂E/∂y = y - d]
D --> E[∂E/∂x = ∂E/∂y · y 1-y]
E --> F[∂E/∂w = ∂E/∂x · 아래층 y]
E --> G[아래층 ∂E/∂y = Σ ∂E/∂x · w]
G -->|한 층씩 내려가며 반복| E
F --> H[모든 사례 기울기 누적]
H --> I[Δw = -ε ∂E/∂w + α Δw 이전]
I -->|다음 sweep| B결과
논문의 실험 수치는 모두 그림 설명에 있습니다.
① 대칭 감지 (그림 1)
- 과제: 1차원 이진 입력 배열이 가운데를 기준으로 좌우 대칭인지 판별합니다. 입력 단위 하나만 봐서는 대칭 여부에 대한 증거가 전혀 없으므로, 입력을 출력에 바로 연결하는 것만으로는 풀 수 없고 중간층이 꼭 필요합니다.
- 결과: 은닉 단위 2개만으로 해를 찾았습니다. 가능한 입력 벡터 64개 전체를 1,425번 반복(sweep)했고, 매 sweep 후 누적 기울기로 가중치를 고쳤습니다. 식 (9)의 매개변수는 , , 초기 가중치는 ~ 균등 분포의 무작위 값입니다.
- 배운 해의 핵심: 은닉 단위 하나에서 가운데를 기준으로 대칭인 위치의 가중치는 크기가 같고 부호가 반대입니다. 그래서 대칭 입력이 오면 두 은닉 단위의 순입력이 0이 되고, 음의 편향 때문에 둘 다 꺼져 출력 단위(양의 편향)가 켜집니다. 가운데 양쪽의 가중치 크기는 1:2:4 비율이어서, 대칭이 아닌 패턴은 어느 은닉 단위 하나를 켜 출력을 끕니다.
② 두 가족 나무 (그림 2~4)
- 과제: 구조가 같은 영국 가족과 이탈리아 가족의 관계를 (사람 1)(관계)(사람 2) 세 쌍으로 나타냅니다. 관계는 아버지 · 어머니 · 남편 · 아내 · 아들 · 딸 · 삼촌 · 숙모 · 형제 · 자매 · 조카(남) · 조카(여) 12가지입니다. 앞 두 항을 주면 셋째 항을 맞혀야 합니다.
- 구조: 5층 신경망. 사람 1을 위한 입력 24개, 관계를 위한 입력 12개 → 각 입력 묶음이 자기만의 6개 단위 묶음(2층)에 연결 → 가운데 12개 단위 → 끝에서 둘째 층 6개 → 출력.
- 학습: 가능한 세 쌍 104개 중 100개로 학습, 1,500 sweep. 처음 20 sweep은 , , 나머지는 , . 가중치를 해석하기 쉽게 매 가중치 변경 후 0.2%씩 줄이는 '가중치 감쇠(weight-decay)'를 넣었습니다. 켜져야 할 출력이 0.8 넘고 꺼져야 할 출력이 0.2 미만이면 오차를 0으로 봤습니다.
- 결과: 학습하지 않은 4개 세 쌍에도 올바르게 일반화했습니다. 사람을 나타내는 2층 단위 6개를 보면, 단위 1은 주로 영국인/이탈리아인 구분을, 단위 2는 세대를, 단위 6은 가족의 어느 갈래인지를 나타냈습니다. 이런 특징은 입력 · 출력 부호화 어디에도 명시돼 있지 않았는데, 은닉 단위가 과제의 숨은 구조를 스스로 찾아낸 것입니다.
③ 국소 최소에 대한 경험
- 오차 곡면에 국소 최소가 있어 전역 최소를 보장하지는 못합니다. 그러나 여러 과제에서 전역 최소보다 크게 나쁜 국소 최소에 빠지는 일은 매우 드물었고, 과제를 겨우 풀 만큼만 연결이 있는 신경망에서만 겪었다고 보고합니다. 연결을 몇 개 더하면 가중치 공간에 차원이 늘어 장벽을 돌아가는 길이 생긴다고 설명합니다.
왜 중요한가 · 이후 영향
- "특징을 손으로 만들지 않는다": 은닉 단위가 영국/이탈리아 · 세대 같은 특징을 스스로 배운 예는, 데이터에서 표현을 학습한다는 딥러닝의 핵심 생각을 처음 설득력 있게 보여 줬습니다.
- 모든 신경망 학습의 엔진: 합성곱망(LeNet · AlexNet), 순환망, 트랜스포머까지 학습은 모두 역전파로 기울기를 구하고 경사 하강류로 고치는 구조입니다. 지금의 자동 미분 라이브러리는 식 (4)~(7)을 어떤 계산 그래프에도 자동으로 적용하는 도구입니다.
- 모멘텀: 식 (9)는 이후 옵티마이저 연구로 이어져, Adam도 기울기의 지수 이동 평균이라는 같은 생각을 씁니다.
- 같은 시기 독립 발견: 논문은 David Parker와 Yann Le Cun이 이 학습 절차의 변형을 독립적으로 발견했다고 밝힙니다.
한계 · 주의할 점
- 뇌의 학습 모델은 아닙니다. 저자들 스스로 현재 형태의 절차는 뇌의 그럴듯한 학습 모델이 아니라고 씁니다. 다만 가중치 공간의 경사 하강으로 흥미로운 내부 표현을 만들 수 있으니, 생물학적으로 그럴듯한 경사 하강 방법을 찾을 가치가 있다고 제안합니다.
- 국소 최소 보장 없음: 경험적으로 드물었다는 보고일 뿐, 이론적 보장은 없습니다.
- 수렴 속도: 식 (8)은 2차 미분을 쓰는 방법보다 느리다고 논문이 인정합니다.
- 시그모이드의 약점(해설): 는 최대 0.25라 층이 깊어지면 기울기가 곱해지며 작아집니다. 이 '기울기 소실' 문제는 이후 ReLU · 정규화 · 잔차 연결 같은 기법으로 풀립니다. 이 논문의 실험은 얕은 신경망이었습니다.
- 원문 확인 범위: 저자(힌턴) 공개 사본의 스캔 이미지로 읽었습니다. 그림 속 개별 가중치 값은 옮기지 않았고, 그림 설명의 수치만 썼습니다.
이어서 읽을 것
- 앞: 퍼셉트론 — 은닉 단위를 학습하지 못하던 출발점
- 뒤: 문서 인식을 위한 기울기 기반 학습 (LeNet) — 역전파로 합성곱망을 학습해 실제 문자 인식에 쓴 논문
- 뒤: AlexNet · Adam · 배치 정규화 · ResNet — 더 깊은 신경망을 역전파로 잘 학습시키기 위한 후속 연구
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 역전파(back-propagation) | 출력 오차의 미분을 연쇄 법칙으로 출력층에서 입력층 쪽으로 거꾸로 전하며 모든 가중치의 기울기를 구하는 방법 |
| 은닉 단위(hidden unit) | 입력도 출력도 아닌 중간 단위. 원하는 값이 정해져 있지 않음 |
| 표현(representation) | 은닉 단위들의 활동 패턴이 입력의 어떤 특징을 나타내는 방식 |
| 순전파(forward pass) | 입력에서 출력까지 차례로 값을 계산하는 것 |
| 연쇄 법칙(chain rule) | 합성 함수의 미분은 각 단계 미분의 곱이라는 규칙 |
| 시그모이드(sigmoid) | 실수를 0~1 사이로 부드럽게 눌러 주는 S자 함수 |
| 편향(bias) | 항상 1인 입력에 붙는 가중치. 임계값 역할 |
| 경사 하강(gradient descent) | 기울기의 반대 방향으로 조금씩 움직여 오차를 줄이는 방법 |
| 학습률 | 한 번에 움직이는 크기 |
| 모멘텀 | 이전 변화의 관성을 얼마나 남길지 정하는 계수 |
| sweep | 학습 사례 전체를 한 번 다 도는 것(오늘날의 '에폭') |
| 국소 최소(local minimum) | 주변보다는 낮지만 가장 낮은 곳은 아닌 오차 지점 |
| 가중치 감쇠(weight decay) | 매번 가중치를 조금씩 0 쪽으로 줄여 불필요하게 커지지 않게 하는 것 |
스스로 점검
- 퍼셉트론의 '특징 분석기'는 왜 진짜 은닉 단위가 아닌가?
— 입력 연결을 사람이 손으로 정해 고정하므로 상태가 입력 벡터로 완전히 정해지고, 표현을 배우지 못하기 때문입니다. 역전파는 은닉 단위의 입력 가중치까지 학습합니다.
- 식 (7)에서 아래층 단위의 를 구할 때 왜 합 을 하나?
— 단위 의 출력이 위층 여러 단위 에 연결되어 있어, 오차에 대한 영향이 그 모든 연결을 통해 나가기 때문입니다. 각 경로의 영향 를 더합니다.
- 모든 가중치를 0으로 같게 시작하면 어떤 문제가 생기나?
— 은닉 단위들이 똑같은 값을 내고 똑같은 기울기를 받아 계속 똑같이 변합니다. 대칭이 깨지지 않아 서로 다른 특징을 배우지 못하므로, 작은 무작위 가중치로 시작합니다.
다음에 볼 것
이 글을 이해했다면 이어서 보면 좋은 항목입니다.
- 신경망과 딥러닝 — 시그모이드 뉴런부터 역전파 네 방정식 · 교차 엔트로피까지 손계산으로 배우는 수업
- 딥러닝 문서로 배우기 (D2L) — 소프트맥스 · 교차 엔트로피 · ReLU MLP · 자동 미분 · PyTorch 학습 루프를 한 번에 익히는 수업
- 딥러닝 이해하기 — 손실 함수를 최대우도로 만드는 조리법 · 깊이의 이점 · He 초기화를 숫자로 익히는 수업
출처
- 원문: nature.com/articles/323533a0 (1986 · David E. Rumelhart 외)
- 확인에 쓴 공개본: cs.utoronto.ca/~hinton/absps/naturebp.pdf
AI 원리부터 이해하기 · 딥러닝 기초 모듈
딥러닝 기초 모듈 학습
이 글은 딥러닝 기초 모듈의 학습 자료입니다. 전체 29개 자료 중 4번째입니다.
출처·원문
원문 보기요약만