파국적 망각과 지속 학습
신경망에 새로운 것을 가르치면 알던 것을 잊는 경향이 있습니다. 이 고질적 문제가 모델이 스트림이 아니라 큰 배치로 학습하는 이유입니다.
사람은 끊임없이 배웁니다. 일요일에 배운 것을 지우지 않고도 월요일에 새 기술을 익힐 수 있고, 평생에 걸쳐 꾸준한 흐름으로 지식을 쌓아 갑니다. 그런데 답답하게도 신경망은 기본적으로 이렇게 작동하지 않습니다. 신경망을 새 작업으로 훈련하면 이전에 알던 것을 덮어쓰려는 강한 경향이 있습니다. 때로는 거의 완전히요. 이 현상에는 극적이고 정확한 이름이 붙어 있습니다. 파국적 망각(catastrophic forgetting). 머신러닝에서 가장 오래되고 가장 고질적인 문제 중 하나이며, 모델이 왜 지금과 같은 방식으로 만들어지는지에 대해 많은 것을 설명해 줍니다.
이것이 가로막고 선 꿈은 **지속 학습(continual learning)**입니다. 옛것을 잃지 않으면서 새로운 작업과 지식을 흡수하며 시간이 지나도 계속 배우는 모델이죠. 우리는 아직 거기에 이르지 못했고, 그 이유를 이해하는 것은 이 시스템들이 어떻게 작동하는지에 대해 진정으로 깨우침을 줍니다.
망각은 어떤 모습인가
작업 A를 잘하도록 훈련된 신경망을 떠올려 보세요. 이제 같은 신경망을 새 작업 B로, B의 데이터만 보여 주며 훈련합니다. 신경망은 B를 배웁니다. 그리고 A에서의 성능은 무너집니다. 흔히 가파르게요. A에 대한 지식은 깔끔하게 옆으로 치워진 것이 아니라 덮어써집니다. 신경망은 A와 B를 함께 배운 것이 아닙니다. 사실상, 한때 A 신경망이었던 B 신경망이 된 것이죠.
"파국적"이라는 말은 값을 합니다. 하락은 부드럽고 우아하지 않습니다. 절벽일 수 있습니다. 첫 작업을 탁월하게 하던 모델이 두 번째를 배운 뒤에는 그 작업에 거의 쓸모없어질 수 있습니다. 아무것도 첫 기술을 능동적으로 지우려 하지 않았는데도요. 망각은 별개의 사건이 아니라 학습의 부작용입니다.
왜 일어나는가
원인은 신경망이 지식을 저장하는 방식에 내장되어 있고, 그것을 보면 이 동작이 신비로운 것이 아니라 필연적으로 느껴집니다.
신경망은 각 기술을 저마다의 서랍에 정리해 넣지 않습니다. 지식은 신경망의 가중치(weight), 즉 연결 강도에 저장되며, 분산되고 공유됩니다. 같은 가중치가 여러 작업에 동시에 참여하죠. "작업 A"를 담고 있어서 작업 B를 배워도 건드려지지 않을 깔끔한 칸 같은 것은 없습니다.
훈련은 지금 보고 있는 데이터에서 오차를 줄이도록 가중치를 조정합니다. 그 데이터가 전부 작업 B일 때, 최적화는 B의 오차가 원하는 곳으로 가중치를 기꺼이 옮깁니다. 그 가중치들 중 일부가 작업 A를 위해 정성껏 배치되었다는 사실은 전혀 인식하지 못한 채로요. A를 인코딩하던 바로 그 가중치가 B를 위해 용도 변경됩니다. B의 좁은 관점에서 보면 그저 조정할 숫자였기 때문이죠. 평범한 훈련에는 앞서 무엇이 있었는지에 대한 기억도, 충성심도 없습니다. 현재를 위해 최적화하고 과거가 그 자리에 없을 때, 얻게 되는 것이 바로 망각입니다.
왜 평소엔 이를 피해 가는가
이 문제가 그토록 근본적이라면, 훈련된 모델은 도대체 어떻게 작동할까요? 표준 레시피가 이를 조용히 비껴가기 때문입니다. 모델은 보통 모든 것을 한꺼번에, 모든 작업과 모든 데이터를 훈련 내내 뒤섞은 셔플된 배치로 훈련됩니다. 모든 배치가 모델이 알아야 할 모든 것의 대표적인 혼합을 담고 있으면, 최적화는 끊임없이 모든 작업을 동시에 상기하며 그것들을 모두 떠받치는 가중치에 안착합니다.
다시 말해, 파국적 망각에 대한 통상적인 답은 애초에 무언가를 하나씩 순서대로 배우지 않는 것입니다. 죄다 섞어서 한 번의 큰 패스로 훈련하는 거죠. 이것은 멋지게 작동하며, 그래서 기본값입니다. 하지만 이것은 해결책이 아니라 우회책이기도 합니다. 모든 데이터를 미리 함께 갖추고 있어야 하니까요. 훈련 후에 무언가 새로운 것을 추가하고 싶은데 처음부터 전부 다시 훈련하고 싶지는 않은 순간, 문제는 으르렁대며 되돌아옵니다.
실무에서 물어뜯는 곳
파국적 망각은 박물관의 유물이 아닙니다. 실제 결정을 좌우합니다.
- 파인튜닝 드리프트. 폭넓게 유능한 모델을 가져다 좁은 작업으로 강하게 파인튜닝하면, 일반 능력의 일부를 잃을 수 있습니다. 새것에는 더 능해지면서, 예전에 하던 것들에는 조용히 더 서툴러지는 거죠. 이것은 축소판 망각이며, 무거운 특화가 비용을 수반하는 이유입니다.
- 배포된 모델 업데이트. 새 자료로 살짝 훈련해 실시간 모델에게 새 정보를 가르치고 싶을 것입니다. 하지만 순진한 점진적 훈련은 나머지 모든 것을 저하시킬 위험이 있어, 팀들이 가중치를 제자리에서 업데이트하는 데 신중한 이유입니다.
- 재학습 비용. 안전한 길이 흔히 전체 혼합으로 재훈련하는 것이다 보니, 지식을 추가한다는 것은 새 부분만 저렴하게 덧붙이는 대신 비싼 훈련을 다시 하는 것을 뜻할 수 있습니다.
실무적 결론은, "그냥 새 자료로 조금만 더 훈련하면 되지"가 들리는 것만큼 안전한 경우는 드물다는 것입니다.
지속 학습에 대한 접근들
모델이 망각 없이 순차적으로 배우게 하는 데 바쳐진 연구 분야가 통째로 있습니다. 전략들은 몇 가지 직관적인 갈래로 나뉩니다.
- 리허설(rehearsal). 옛 데이터를 일부 간직했다가 새 훈련에 섞어, 현재를 배우는 동안 모델이 과거를 상기하게 합니다. 가장 미더운 아이디어이며 "과거가 그 자리에 없다"는 원인을 정면으로 공략합니다. 다만 옛 데이터를 저장하고 다시 들춰 봐야 하죠.
- 중요한 가중치 보호. 옛 작업에 가장 중요한 가중치가 무엇인지 식별해 훈련이 그것을 크게 바꾸지 못하게 억제하고, 나머지는 새 작업을 위해 자유롭게 움직이게 둡니다. 안전한 곳에서는 신경망을 업데이트하고, 옛 지식이 사는 곳은 조심스럽게 디디는 것이 목표입니다.
- 새 용량 추가. 공유 가중치를 덮어쓰는 대신, 옛 가중치는 그대로 두고 새 작업에 자기만의 새로운 파라미터를 줍니다. 간섭을 비껴가지만 모델이 커지고, 공유되어야 할 지식을 파편화할 수 있습니다.
이 중 어느 것도 문제를 완전히 해결하지 못합니다. 각각이 무언가를, 즉 저장 공간, 유연성, 크기, 단순성 중 하나를 내주고 기억의 일부를 되삽니다. 깔끔한 승자가 나타나지 않았다는 사실 자체가 이 문제가 얼마나 깊은지를 보여 줍니다.
왜 이것이 근본적으로 어려운가
기법들 밑에는 진짜 긴장이 깔려 있으며, 때로 **안정성 대 가소성(stability versus plasticity)**으로 표현됩니다. 학습 시스템은 새것을 흡수할 만큼 가소적이어야 하고, 옛것을 붙들 만큼 안정적이어야 합니다. 가소성 쪽으로 밀면 잊고, 안정성 쪽으로 밀면 아무 새것도 배우지 못합니다. 모든 지속 학습 방법은 사실 이 스펙트럼 위의 특정한 타협일 뿐이며, 둘을 한꺼번에 주는 공짜 점심은 없습니다. 생물의 뇌는 우리가 아직 인공 신경망에서 재현하는 법을 모르는 균형을 찾아낸 듯 보이는데, 이것이 이 문제가 여전히 미해결인 이유의 일부입니다.
정리
파국적 망각은 신경망이 새로운 것을 배울 때 옛 지식을 덮어쓰는 경향이며, 지식이 공유되고 분산된 가중치에 살기에, 평범한 훈련이 그 가중치가 예전에 무엇을 인코딩했는지 전혀 기억하지 못한 채 기꺼이 용도 변경하기 때문에 일어납니다. 이 분야는 대개 순차적으로가 아니라 모든 것을 한꺼번에 훈련함으로써 이를 피하는데, 이는 나중에 지식을 추가하고 싶은 순간 무너지는 우회책입니다. 지속 학습은 이를 넘어서려는 미해결의 탐구이며, 모든 접근은 기억할 만큼 안정적이면서 배울 만큼 가소적이어야 한다는 깊은 긴장에 대한 타협입니다. 그 긴장이 풀리기 전까지, "그냥 새것을 가르쳐라"는 머신러닝에서 가장 까다로운 요청 중 하나로 남아 있습니다.
