블로그 5에서 간략히 복습하자면: 학습 오토마타(Learning Automata)는 현재 일어나고 있는 일에 적응할 수는 있었지만, 지연된 결과에는 무력했습니다. 게임을 20턴 후에 패배하게 만드는 체스 수. 절을 세 개나 건너뛰어 문장을 망가뜨리는 단어. 이들은 '내가 한 것'과 '훨씬 나중에 발생한 일'을 연결할 방법이 없었습니다.
이 글은 그 간극을 메우려 했던 두 사람과, 그 뒤에 숨겨진 문제를 발견했던 세 번째 사람에 관한 내용입니다. 끝까지 읽으면 '적격도 추적(eligibility trace)'이 무엇인지, 역전파(backpropagation)가 실제로 어떻게 작동하는지(작은 예시와 함께), 그리고 왜 모든 현대 AI 시스템이 여전히 이 10년의 아이디어로 구동되는지 알게 될 것입니다.
먼저, 평범한 영어로 문제 설명하기
처음으로 쿠키를 굽는다고 상상해 보세요. 2단계에서 티스푼 대신 테이블스푼 가득 소금을 실수로 넣었습니다. 계속 진행합니다: 섞기, 식히기, 모양 만들기, 굽기. 50단계(맛보는 시간)에 쿠키가 형편없습니다.
Cooking cookies baking
이제 스스로에게 물어보세요: 실수는 어느 단계에서 발생했는가?
2단계에서는 아무것도 맛보지 못했습니다. 피드백은 아주 마지막에 나타났습니다. 학습하려면, 나쁜 결과를 그것을 유발한 단계로 거슬러 올라갈 방법이 필요합니다. 이것이 바로 **신용 할당 문제(credit assignment problem)**입니다 (혹은 선호하는 경우 '비난 할당'이라고도 합니다): 무언가 좋거나 나쁜 일이 발생했을 때, 당신의 이전 결정 중 어느 것이 공로를 인정받거나 비난을 받아야 하는가?
1970년대 초반에 이 분야에는 서로 소통하지 않는 두 가지 요소가 있었습니다:
- 벨만 방정식(Bellman's equations) (블로그 3): 수학적으로 완벽하고 증명 가능한 최적해이지만, 세상의 완전한 모델이 필요합니다. 아무도 그것을 가지고 있지 않습니다.
- 사무엘의 체커 플레이어와 트세틀린의 오토마타(Samuel's checkers player and Tsetlin's automata) (블로그 4 및 5): 실용적이고 적응성이 뛰어나지만, 그 배경 이론이 없고 나중에 도착하는 결과에 대한 좋은 답도 없습니다.
1970년대에는 그 격차를 좁히기 시작한 세 가지 아이디어가 등장했습니다. 우리가 어디에 있는지 항상 알 수 있도록 로드맵을 알려드립니다:
- Klopf는 단일 뉴런에 '추진력(drive)'과 방금 수행한 것에 대한 짧은 '기억'을 부여합니다. (누구에게 공로를 돌리고, 언제?)
- Werbos는 전체 네트워크에 '방향성'을 부여합니다: 여러 레이어를 거쳐 잘못된 점을 뒤로 밀어내는 방법입니다. (책임 소재가 얼마나 멀리까지 돌아가는가?)
- Grossberg는 '경고'를 추가합니다: 너무 열정적으로 학습하면 이미 알고 있던 것을 지워버릴 수 있습니다. (우리의 오래된 기술은 어떻게 유지할까?)
이후 우리는 **적응 동적 계획법(Adaptive Dynamic Programming)**이 이들을 어떻게 연결했는지, 그리고 그것이 현대 AI 내부에서도 작동하는 Actor-Critic 아이디어를 어떻게 만들어냈는지를 보게 될 것입니다.
간단 용어 정리 (Quick glossary)
이 단어들을 자주 보게 될 것입니다. 암기할 필요 없이 그냥 훑어보세요:
- 뉴런(인공): 작은 계산기입니다. 입력된 숫자를 받아 각각 '가중치(weight)'를 곱하고, 더한 다음 결과를 출력합니다.
- 가중치 (Weight): 뉴런이 특정 입력에 얼마나
신경원이 수동적인 전선이 아니라면 어떨까요? 만약 무언가를 원한다면 어떨까요?
1972년 보고서 『Brain Function and Adaptive Systems: A Heterostatic Theory』에서 Klopf는 뉴런이 마치 작은 **쾌락주의자(hedonists)**처럼 작용한다고 제안했습니다. 즉, 좋은 결과를 가져온 연결은 강화하고 그렇지 못한 연결은 약화시키는 쾌락 추구자라는 것입니다.
이는 뉴런을 임계값 스위치로 보는 교과서적인 그림에 대한 직접적인 도전이었습니다. 입력(inputs)이 들어오고 가중합(weighted sum)을 거쳐 발화하거나 하지 않는 방식입니다. 이 그림 속의 뉴런은 결과에 대한 기억도, 선호도도 없습니다. Klopf는 이것으로는 전체 이야기가 될 수 없다고 말했습니다.
classics vs klopf neuron
이질항상성(Heterostasis) 대 항상성(Homeostasis): (온도 조절 장치 대 운동선수)
당시 생물학 교과서들은 살아있는 시스템이 항상성(homeostasis), 즉 균형과 안정을 추구한다고 말했습니다. **온도 조절 장치(thermostat)**를 생각해 보세요. 방 온도를 21°C로 유지하려고 합니다. 21°C에 도달하면 만족합니다.
Klopf는 **이질항상성(heterostasis)**을 제안했습니다. 이는 편안한 상태를 넘어서 더 나은 무언가를 향해 나아가려는 추진력입니다. 운동선수를 생각해 보세요. 지난 달 개인 최고 기록에 도달하는 것은
그의 대답은 바로 **적격성 흔적(eligibility trace)**입니다. 이것을 빛나는 발자국처럼 생각해보세요. 연결이 활성화되면 시간이 지나면서 희미해지는 발자국을 남깁니다. 만약 그 발자국이 아직 빛나고 있는 동안 보상이 도착한다면, 그 연결은 크레딧을 받을 자격('eligible')이 있습니다. 하지만 발자국이 이미 희미해졌다면 그렇지 않습니다.
eligibility trace
이 아이디어를 업데이트 규칙으로 단순화하여 설명하면 다음과 같습니다 (Klopf 자신의 후기 공식들은 더 정교해졌지만, 핵심은 이와 같습니다):
Δw_i(t)=α⋅[r(t)−r̄(t)]⋅x_i(t−τ)
각 부분을 읽어보겠습니다:
Δw_i: 입력 i의 가중치를 얼마나 변경할지 (즉, '학습 단계').
α (알파): 학습률(learning rate), 즉 어느 정도 큰 단계를 밟을지를 결정합니다.
r(t): 실제로 얻은 보상입니다.
r̄(t): 기대했던 보상입니다.
x_i(t − τ): 흔적, 즉 한 순간 전 입력 i가 얼마나 활성화되었는지를 나타냅니다.
중간 부분인, r − r̄이 중요합니다. 이것은 **놀라움(surprise)**입니다:
- 기대보다 더 많이 얻었나요 (
r > r̄)? 최근에 활성화된 것을 강화하세요.
- 기대보다 적게 얻었나요? 약화시키세요.
- 정확히 기대했던 만큼만 얻었나요? 아무것도 바꾸지 마세요. 배울 것이 없습니다.
surprise FACTOR
예시: 평소 마시던 커피를 주문했는데 맛있습니다. 놀라움이 없고, 학습도 없습니다. 새로운 카페에 가봤는데 커피가 환상적입니다. 큰 긍정적인 놀라움(positive surprise)이 발생했고, 당신의 뇌는
그리고 '발자국(footprint)' 아이디어 역시 사라지지 않았습니다. TD($ ext{λ}$)라고 불리는 현대 알고리즘들은 본질적으로 이 형태의 적격도 추적(eligibility traces)을 여전히 사용하고 있습니다.
잠시 멈추고 확인해 보세요. 뉴런이 왜 '놀라움 신호(surprise signal)'와 '적격도 추적(eligibility trace)' 둘 다 필요한지 한 문장으로 설명할 수 있나요? (놀라움은 얼마나 변화해야 하는지를 알려주고, 추적은 무엇을 변화시켜야 하는지를 알려줍니다.)
현재 위치: Klopf는 뉴런에 구동력과 단기 기억을 부여했습니다. 하지만 단일 뉴런으로는 너무 작습니다. 여러 층의 뉴런이 있을 때, 보상(reward)이 마지막 층에만 연결된다면 어떻게 될까요? 이것이 다음 문제입니다.
Paul Werbos와 아무도 읽지 않은 알고리즘 (1974)
보상을 '원하지만' 자신의 어떤 결정이 그것을 야기했는지 파악할 수 없는 뉴런은 영원히 불안정하게 움직일 것입니다. 그리고 이것은 다층 네트워크에서 매우 심각한 문제가 됩니다. 최종 답이 틀렸다면, 어느 층의 어느 가중치(weight)가 책임져야 할까요? 1974년 당시에는 신경망에 대한 실용적인 답변을 가진 사람이 아무도 없었습니다.
Paul Werbos가 있었습니다. 사람들의 관심을 끌게 하는 것이 어려운 부분이었습니다.
그가 1974년에 발표한 하버드 박사 논문 《회귀를 넘어서: 행동 과학에서의 예측 및 분석을 위한 새로운 도구(Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences)》에서, Werbos는 오류를 층을 통해 **역방향으로 전파(propagating error backward)**함으로써 다층 신경망을 훈련하는 방법을 설명했습니다. 오늘날 우리는 이것을 **역전파(backpropagation)**라고 부릅니다 (종종 단순히 '백프로프'로 불립니다).
무서운 수학 없이 이해하는 역전파: 조립 라인
가젯을 만드는 세 개의 스테이션으로 이루어진 조립 라인을 상상해 보세요. 스테이션 1이 자신의 작업을 스테이션 2에 전달하고, 그다음 스테이션 3으로 전달하며, 완성된 가젯은 검사받습니다. 검사관이 말합니다:
책임(Blame)은 스테이션별로 뒤쪽으로(backward) 흐르며, 각 스테이션은 다음 스테이션이 알려준 것을 사용하여 작동합니다. 이것이 바로 역전파(backpropagation)입니다.
Back prop
기어(gears)를 이용한 연쇄 법칙 (The chain rule)
이것의 수학적 원리는 미분학(calculus)의 **연쇄 법칙(chain rule)**이며, 이름보다 훨씬 다루기 쉽습니다. 여기 기어를 이용한 아이디어가 있습니다.
만약 노브 A를 1 단위 돌리면 노브 B가 3 단위 움직인다고 가정해 봅시다. 그리고 노브 B를 1 단위 돌리면 최종 출력이 2 단위 움직입니다. 그러면 노브 A를 1 단위 돌리는 것은 출력에 3 × 2 = 6 단위의 변화를 가져옵니다.
이것이 바로 연쇄 법칙 전체입니다: 효과들이 연결될 때, 민감도(sensitivities)들을 곱해야 합니다.
∂w_i/∂L=∂a/∂L⋅∂z/∂a⋅∂w_i/∂z
chain rule
기호 해석:
L: 손실(loss) (최종 출력이 얼마나 틀렸는지).
a: 뉴런의 출력값 (그것의