jacobhan.me

기계학습 이야기

이중 하강 — 거대한 모델은 왜 과적합하지 않는가

머신러닝의 거의 모든 교과서가 똑같은 그래프 한 장을 싣는다. 그런데 그 그림은, 알고 보니 전체 이야기의 절반에 지나지 않았다.

어느 분야에나 좀처럼 의심받지 않는 핵심 명제가 하나쯤 있다. 기계학습(machine learning)에서 그 자리를 오래 지켜 온 것은 뜻밖에도 한 장의 그래프였다. 가로축에는 모델의 크기, 세로축에는 모델이 저지르는 오차를 놓고 두 개의 곡선을 그린 그림. 너무도 당연하게 받아들여진 나머지, 이 분야의 거의 모든 교과서가 약속이라도 한 듯 같은 모양으로 실어 왔다. 그런데 2010년대 후반, 연구자들은 이 그림이 사실은 전체 이야기의 절반에 지나지 않았음을 깨닫게 된다.

모든 교과서에 실린 그림

먼저 그 그래프가 무엇을 말하는지부터 보자. 기계학습 모델은 예시를 보고 배운다. 고양이 사진 수만 장을 보여 주며 "이건 고양이"라고 알려 주면, 모델은 그 안에서 규칙을 찾아낸다. 이때 학습에 쓴 예시들을 훈련 데이터, 학습에 한 번도 쓰지 않은 새 예시들을 테스트 데이터라고 부른다. 핵심은 언제나 후자다. 이미 답을 가르쳐 준 문제를 다시 맞히는 것은 의미가 없고, 처음 보는 문제를 얼마나 잘 푸느냐가 진짜 실력이기 때문이다.

이제 모델을 점점 키워 가며 두 종류의 오차를 따라가 보자. 첫 번째 곡선은 훈련 데이터에서의 오차다. 모델이 커지고 복잡해질수록 더 정교한 패턴을 담을 수 있으므로, 훈련 오차는 거의 예외 없이 계속 내려간다. 두 번째 곡선은 처음 보는 테스트 데이터에서의 오차다. 어떤 교과서를 펼쳐도 이 곡선은 늘 같은 모양, 즉 아래로 움푹 팬 U자(엄밀히는 골짜기 모양)를 그린다. 모델이 너무 작을 때는 테스트 오차가 높게 시작했다가, 적당한 크기에서 최저점을 찍고, 더 키우면 다시 가파르게 치솟는다.

이 두 곡선을 한 그림에 겹쳐 놓으면 다음과 같다.

과소적합 최적 과적합 모델 복잡도 → 오차 테스트 오차 (처음 보는 데이터) 훈련 오차 (학습한 데이터)
모든 교과서에 실린 그림. 모델이 복잡해질수록 훈련 오차는 계속 내려가지만, 처음 보는 데이터에 대한 테스트 오차는 어느 지점을 지나면 다시 치솟아 U자(엄밀히는 골짜기) 모양을 그린다.

곡선의 오른쪽 끝, 다시 치솟는 그 구간이 바로 과적합(overfitting)이다. 모델이 너무 커지고 유연해진 나머지, 데이터에 담긴 진짜 규칙뿐 아니라 우연히 섞여 든 잡음까지 통째로 외워 버린 상태다. 훈련 데이터는 거의 완벽하게 맞히지만, 정작 처음 보는 데이터 앞에서는 길을 잃는다. 이름 자체에 답이 들어 있다. 훈련 데이터에 "지나치게(over)" 맞췄다는 뜻이니, 훈련 오차를 한계까지 끌어내린 대가로 무언가 나쁜 일이 벌어진다는 이야기와 같다.

그래서 교과서들이 내린 처방은 분명했다. 과적합을 막으려면 데이터의 복잡도에 맞춰 모델의 표현력을 조심스럽게 억눌러야 한다. 너무 단순하면 규칙을 못 배우고, 너무 복잡하면 잡음을 외운다. 그 사이 어딘가의 균형점을 찾는 것이 기계학습의 핵심이라는 믿음. 이 원리가 어쩌다 흔들리게 되었는지를 보려면, 먼저 그 U자 곡선이 어디서 왔는지를 가장 단순한 예로 들여다보아야 한다.

곡선 맞추기로 본 과적합

과적합을 설명할 때 가장 자주 쓰이는 그림은 점 몇 개에 곡선을 맞추는 문제다. 평면에 데이터 점 몇 개가 완만한 포물선 모양으로 흩어져 있다고 하자. 우리의 과제는 이 점들의 추세를 가장 잘 설명하는 곡선을 찾는 것이다.

가장 단순한 후보는 1차 다항식, 곧 직선이다. 그런데 직선으로는 휘어진 추세를 결코 담을 수 없다. 아무리 잘 맞춰도 점들과 직선 사이에는 큰 틈이 남는다. 이 틈, 즉 각 점에서 곡선까지의 어긋남을 제곱해 평균 낸 값을 평균제곱오차(mean squared error, 평균적으로 얼마나 빗나갔는지를 재는 척도)라 부른다. 직선은 표현력이 모자라 훈련 데이터에서도, 테스트 데이터에서도 오차가 크다. 이런 상태가 과소적합(underfitting)이다.

차수를 하나 올려 2차 다항식, 곧 포물선으로 맞추면 사정이 크게 나아진다. 데이터가 본래 포물선 모양이니 곡선이 추세를 깔끔하게 잡아내고, 훈련 오차와 테스트 오차가 함께 줄어든다. 그런데 욕심을 내어 차수를 계속 올리면 어떻게 될까. 곡선은 점들에 점점 더 바짝 달라붙는다. 차수를 충분히 높이면 마침내 모든 점을 한 치 오차 없이 통과하게 되고, 훈련 오차는 0이 된다. 하지만 그 대가로 곡선은 점과 점 사이에서 위아래로 사납게 출렁인다. 데이터에 우연히 섞인 잡음까지 빠짐없이 외운 결과다. 같은 6개의 점에 차수를 달리해 곡선을 맞추면 다음과 같이 갈린다.

1차 — 과소적합 2차 — 적절 5차 — 과적합
같은 6개의 데이터 점(검은 점)에 차수가 다른 곡선을 맞춘 결과. 1차 직선은 휘어진 추세를 담지 못한다(과소적합). 2차 곡선은 추세를 깔끔하게 잡는다. 5차 곡선은 점 6개를 모두 정확히 통과하며 잡음까지 외워 버린다(과적합) — 훈련 오차는 0이지만 점과 점 사이에서 심하게 출렁여 새 데이터에서는 더 나빠진다.

이렇게 차수가 높아질수록 곡선은 매끄러움을 잃고 잡음을 좇는다. 가로축에 모델의 복잡도(여기서는 다항식 차수)를, 세로축에 테스트 오차를 놓으면 앞서 본 그 U자 곡선이 그대로 나타난다. 차수가 낮으면 과소적합으로 오차가 크고, 적당하면 최저점을 찍고, 지나치면 과적합으로 다시 치솟는다.

통계학에서는 이 현상을 편향-분산 절충(bias-variance tradeoff)이라 부른다. 편향은 모델이 너무 단순해서 진짜 추세를 놓치는 정도, 분산은 모델이 너무 예민해서 데이터가 조금만 바뀌어도 결과가 출렁이는 정도다. 단순한 모델은 편향이 크고 분산이 작으며, 복잡한 모델은 그 반대다. 둘을 동시에 줄일 수는 없으니 어느 한쪽을 얻으려면 다른 쪽을 내주어야 한다 — 그래서 "절충"이다. 깔끔한 수학으로 뒷받침되는 이 설명은 U자 곡선이 왜 U자인지를 설득력 있게 들려준다. 그리고 바로 그 설득력 때문에, 데이터 복잡도에 맞춰 모델 크기를 신중히 조절해야 한다는 원리는 이 분야의 거의 모든 교과서에 실릴 만큼 당연한 상식이 되었다.

거대한 모델의 시대

2012년, 한 연구팀이 당시 기준으로는 어마어마하게 큰 이미지 분류용 신경망을 내놓았다. 파라미터(parameter, 모델이 학습으로 조정하는 내부 손잡이)가 약 6천만 개에 이르는 이 모델은 이미지 인식 대회를 압도적 성적으로 제패하며 오늘날 우리가 아는 딥러닝(deep learning) 시대의 문을 열었다. 신경망(neural network)은 뇌의 신경세포를 성기게 본떠 만든 모델로, 층(layer)을 깊이 쌓을수록 더 복잡한 패턴을 잡아낸다.

이만큼 큰 모델을 다루는 연구팀에게 과적합은 가장 큰 골칫거리였다. 6천만 개의 손잡이는 데이터를 통째로 외워 버리기에 충분했기 때문이다. 그래서 팀은 과적합을 누르기 위한 여러 장치를 동원했다. 훈련 중 이미지를 조금씩 옮기거나 뒤집고 색을 바꿔 같은 사진을 여러 변형으로 보여 주는 데이터 증강(data augmentation), 학습할 때마다 신경세포 일부를 무작위로 꺼 버리는 당시로서는 새로운 기법인 드롭아웃(dropout), 그리고 손잡이 값이 지나치게 커지지 않도록 손실에 벌점을 더하는 가중치 감쇠(weight decay, 통계학에서는 같은 아이디어를 능형회귀(ridge regression)라 부른다)다. 이런 장치를 통틀어 정규화(regularization), 곧 모델이 데이터에 과적합하지 않도록 학습 과정을 길들이는 방법이라 한다. 실제로 이 장치들을 빼면 모델은 눈에 띄게 심하게 과적합했다.

이때 많은 연구자가 자연스러운 결론에 이르렀다. 큰 신경망은 본래 과적합 쪽으로 심하게 기울어 있어, 정규화를 걸지 않으면 훈련 데이터를 외워 버리고 일반화에 필요한 규칙을 배우지 못한다. 따라서 정규화로 균형을 되돌려 주어야 한다 — 편향-분산 절충의 논리를 거대 모델에 그대로 옮긴 믿음이었다. 그런데 정작 해 보니, 강한 정규화 없이도 이 거대한 모델들이 놀랍도록 잘 일반화하는 경우가 자꾸 관찰되었다. 무언가 앞뒤가 맞지 않았다.

무작위 라벨 실험

2017년, 한 연구팀이 이 모순을 정면으로 건드리는 실험을 설계했다. 정규화가 정말 과적합을 막아 주는지 시험하기 위해, 그들은 이미지에 붙은 정답표(라벨)를 전부 무작위로 뒤섞었다. 고양이 사진에 "항공모함", 다음 고양이 사진에 "바다뱀" 하는 식으로, 사진과 정답이 아무 관계도 없게 만든 것이다.

이렇게 망가뜨린 데이터에는 배울 만한 규칙이 처음부터 존재하지 않는다. 신호는 없고 잡음만 남았다. 모델이 이런 훈련 데이터에서 점수를 내는 유일한 방법은 강의실을 통째로 외우듯, 어떤 사진엔 어떤 엉터리 정답이 붙었는지를 하나하나 암기하는 것뿐이다. 만약 정규화가 정말로 암기를 막아 준다면, 정규화를 건 모델은 이 무작위 라벨을 외우지 못해 훈련 데이터에서조차 점수를 내지 못해야 한다.

그러나 결과는 정반대였다. 정규화를 걸어 두었는데도, 모델은 수만 장에서 수백만 장에 이르는 훈련 이미지의 엉터리 정답을 거의 전부 그대로 외워 냈다. 당연히 이런 모델은 테스트 데이터에서 형편없었다 — 무작위로 찍는 것과 다를 바 없었다. 이 실험이 드러낸 사실은 분명했다. 정규화를 걸어 두어도 거대한 신경망은 데이터를 통째로 외울 능력이 있다는 것. 정규화가 암기를 원천 봉쇄한다는 통념은 틀렸다는 것이다.

같은 모델을 정답표만 제대로 돌려놓고 똑같이 학습시키면, 이번에는 외우기에 그치지 않고 새 데이터에도 잘 들어맞는 의미 있는 규칙을 배운다. 똑같은 모델, 똑같은 학습 방식인데 결과가 갈린다. 정규화는 분명 도움이 되지만, 큰 모델이 일반화하는 근본 이유는 아니었던 셈이다. 그렇다면 진짜 이유는 무엇인가. 그리고 과적합을 향해 기울어 있다던 그 거대한 모델들은, 왜 외울 능력을 갖고도 굳이 일반화하는 쪽을 택하는가.

과적합 너머에는 무엇이 있는가

2018년, 한 연구팀이 이 수수께끼에 새로운 해석을 내놓았다. 그들의 질문은 단순하면서도 도발적이었다. 전통적인 편향-분산 절충이 완전히 틀린 것은 아니라 해도, 그것이 이야기의 전부는 아닐 수도 있지 않을까. 교과서의 U자 곡선은 늘 과적합 구간에서 멈춰 있었다. 그렇다면 거기서 멈추지 말고, 모델 크기를 그 너머로 계속 키우면 곡선은 과연 어떻게 될까.

상식대로라면 답은 뻔하다. 과적합이 심해질수록 테스트 오차는 끝없이 치솟아야 한다. 그런데 연구팀은 손글씨 숫자 데이터로 작은 실험을 해 보고는 뜻밖의 장면을 목격했다. 모델을 키우자 테스트 오차는 예상대로 한 번 치솟았다. 그러나 거기서 멈추지 않고 더 키우니, 오차가 어느 지점을 넘어서며 다시 내려가기 시작한 것이다. 그것도 이전의 최저점보다 더 낮은 곳까지.

곡선은 한 번이 아니라 두 번 내려가고 있었다. 첫 번째 골짜기(교과서가 아는 그 U자), 그다음의 봉우리, 그리고 두 번째 더 깊은 골짜기. 연구팀은 이 현상에 이중 하강(double descent), 곧 "두 번 내려간다"는 이름을 붙였다. 교과서가 한평생 그려 온 U자 곡선은, 알고 보니 이 더 큰 그림의 왼쪽 절반에 지나지 않았다. 전체 모양은 다음과 같다.

보간 임계점 고전적 영역 현대적 영역 (과매개변수화) 훈련 오차 = 0 교과서가 멈추는 곳 여기서 다시 내려간다 모델 크기 → 테스트 오차
이중 하강. 교과서의 U자 곡선은 전체 그림의 왼쪽 절반에 불과하다. 모델이 훈련 데이터를 처음으로 완벽히 맞추는 “보간 임계점”에서 테스트 오차가 정점을 찍지만, 거기서 모델을 더 키우면 오차가 다시, 때로는 이전 최저점보다 더 낮게 내려간다.

왼쪽 절반만 떼어 놓고 보면 영락없는 교과서의 U자다. 편향-분산 절충은 이 왼쪽 세계에서는 흠잡을 데 없이 옳다. 다만 그 세계가 전부가 아니었을 뿐이다. 봉우리를 넘어 오른쪽으로, 모델이 충분히 거대해진 영역에서는 전혀 다른 일이 벌어진다. 다만 이 작은 실험만으로는 가설에 머물렀다. 이중 하강이 진짜 거대한 딥러닝 모델에서도 재현되는지, 그리고 도대체 무엇이 이 현상을 일으키는지는 아직 밝혀지지 않은 채였다.

더 크게, 그리고 더 오래

이듬해인 2019년, 또 다른 연구팀이 이중 하강이 실재함을 결정적으로 보여 주었다. 그들은 손글씨 숫자 같은 장난감 문제를 넘어, 오늘날 거대 언어 모델의 토대가 된 트랜스포머(Transformer)를 비롯한 여러 신경망 구조에서, 그리고 이미지와 언어 데이터 양쪽 모두에서 같은 현상이 똑같이 나타남을 확인했다. 이중 하강은 특정 모델의 변덕이 아니라 폭넓게 나타나는 현상이었다.

더 흥미로운 발견도 있었다. 이중 하강은 모델 크기를 키울 때만이 아니라, 같은 모델을 더 오래 학습시킬 때도 똑같이 나타났다. 이는 실무자에게 결코 가볍지 않은 시사점이었다. 보통 모델을 학습시킬 때는 테스트 오차를 지켜보다가, 오차가 더 줄지 않고 다시 오르기 시작하면 그 지점을 과적합의 신호로 보고 학습을 멈춘다. 이를 조기 종료(early stopping)라 한다.

실제로 어떤 모델과 데이터에서는, 테스트 오차가 한 번 오른 뒤 학습을 끈기 있게 더 돌리면 이중 하강을 그리며 다시 내려갔고, 때로는 이전 최저치보다도 낮아졌다. 전통적인 절충 이론을 굳게 믿고 봉우리에서 학습을 멈췄다면, 두 번째 골짜기는 구경도 못 했을 것이다. 더 나아가 어떤 조건에서는 훈련 데이터를 늘리는 것조차 일시적으로 성능을 떨어뜨릴 수 있다는, 상식과 정반대되는 일까지 관찰되었다. 참고로 이 실험들에서 데이터에 약간의 잡음을 일부러 섞으면 이중 하강 곡선이 한결 또렷해진다. 잡음을 넣지 않아도 현상 자체는 나타나지만, 덜 뚜렷할 뿐이다.

왜 이런 일이 벌어지는가

이쯤에서 자연히 의문이 든다. 봉우리 너머에서 모델은 어째서 다시 똑똑해지는가. 답의 실마리는 뜻밖에도, 앞서 본 가장 단순한 곡선 맞추기 예제에 그대로 들어 있다. 놀랍게도 이중 하강은 점에 곡선을 맞추는 그 단순한 문제에서도 똑같이 재현된다.

핵심은 곡선이 데이터를 "처음으로 완벽히 통과하는" 그 순간에 있다. 다항식의 차수를 점점 올리다 보면, 곡선의 조절 손잡이(계수) 개수가 데이터 점의 개수와 딱 맞아떨어지는 지점이 온다. 이 지점에서 곡선은 모든 점을 한 치 오차 없이 지난다. 이것을 보간 임계점(interpolation threshold)이라 부르는데, 데이터를 완벽히 맞출 수 있는 가장 작은 모델에 해당한다. 그런데 바로 이 지점이 일반화 성능이 가장 나쁜 곳이다. 손잡이 수와 점의 수가 같아 곡선이 단 하나로 결정되어 버리는 탓에, 그 유일한 해가 잡음에 사정없이 휘둘리기 때문이다. 봉우리는 다름 아닌 이 보간 임계점에 자리한다.

그렇다면 임계점 너머, 손잡이가 점보다 더 많아지면 어떻게 될까. 이때부터는 모든 점을 정확히 지나는 곡선이 하나가 아니라 무수히 많아진다. 여기에 반전이 숨어 있다.

최소 노름 해 — 가장 매끄러운 곡선 점을 똑같이 지나는 다른 곡선들
변수(조절 손잡이)가 데이터 점보다 많아지면, 모든 점을 정확히 지나는 곡선은 하나가 아니라 무수히 많아진다. 학습 알고리즘은 그중에서 계수가 가장 작은(즉 가장 덜 출렁이는) 곡선을 고르는 경향이 있고, 이 매끄러운 해가 처음 보는 데이터에서도 잘 들어맞는다.

무수히 많은 후보 곡선 가운데, 학습 알고리즘은 아무거나 고르지 않는다. 계수를 제곱해 모두 더한 값이 가장 작은 곡선, 곧 가장 덜 출렁이고 가장 매끄러운 해를 고르는 경향이 있다. 이 값을 계수의 크기 척도라는 뜻에서 노름(norm)이라 부르고, 그렇게 골라낸 해를 최소 노름 해라 한다. 핵심은 이것이다. 손잡이가 점보다 많아질수록 후보가 풍부해지고, 그만큼 매끄러운 해를 찾기가 쉬워진다. 봉우리에서는 잡음에 휘둘리는 뻣뻣한 해 하나뿐이었지만, 그 너머에서는 매끄러운 해를 고를 자유가 생기는 것이다. 곡선이 매끄러워지니 테스트 오차가 다시 내려간다. 이중 하강의 두 번째 골짜기는 이렇게 만들어진다.

거대한 신경망에서도 논리는 비슷하다. 보간 임계점 근처에서는 데이터를 완벽히 맞추는 해가 사실상 하나뿐이라 잡음에 크게 흔들리지만, 모델이 그보다 훨씬 커지면 데이터를 완벽히 맞추는 해가 여러 개 생긴다. 이때 신경망을 학습시키는 알고리즘인 확률적 경사하강법(stochastic gradient descent, 손실이 줄어드는 방향으로 조금씩 더듬어 내려가는 방법)은, 그 여러 해 가운데 잡음을 어느 정도 걸러 내고 전체 데이터에 두루 잘 맞는 매끄러운 해로 수렴하는 성질이 있다. 곡선 맞추기의 풀이법이 그랬던 것처럼 말이다.

흥미로운 대목은 여기다. 아무도 알고리즘에게 "매끄러운 해를 골라라"라고 시키지 않았다는 점이다. 그런데도 알고리즘은 스스로 그런 해를 향해 간다. 이렇게 명시적으로 지시하지 않았는데 알고리즘이 은연중에 단순한 해를 선호하는 성질을 암묵적 정규화(implicit regularization)라 부른다. 정규화는 우리가 일부러 거는 줄로만 알았는데, 학습 알고리즘 자체가 조용히 정규화를 하고 있었던 셈이다.

편향과 분산, 다시 보기

이 모든 것을 편향과 분산의 언어로 다시 정리해 보자. 어떤 모델의 테스트 오차는 세 조각으로 깔끔하게 쪼갤 수 있다. 모델이 진짜 추세를 놓쳐서 생기는 편향의 제곱, 데이터가 바뀔 때마다 결과가 출렁여서 생기는 분산, 그리고 무엇으로도 줄일 수 없는 데이터 본연의 잡음이다. 편향은 데이터를 여러 번 새로 뽑아 곡선을 다시 맞췄을 때 그 평균이 진짜 추세에서 얼마나 벗어나는지로, 분산은 그렇게 다시 맞춘 곡선들이 서로 얼마나 흩어지는지로 가늠한다.

고전적인 U자 구간에서 곡선을 좌우하는 것은 바로 이 편향과 분산의 줄다리기다. 차수가 낮으면 편향이 커서 오차가 높고, 차수를 올리면 편향은 줄지만 모델이 잡음에 예민해져 분산이 커진다. 보간 임계점, 곧 봉우리에서 분산이 폭발하는 까닭도 여기 있다. 데이터를 완벽히 맞추는 해가 하나로 묶여 버려 잡음에 그대로 끌려다니기 때문이다.

그런데 임계점을 넘어서면 이야기가 달라진다. 그 너머에서도 오차를 여전히 편향과 분산으로 쪼갤 수는 있다. 다만 곡선의 모양을 좌우하는 것이 더 이상 둘의 절충이 아니다. 알고리즘이 매끄럽고 노름이 작은 해를 고르는 덕분에 분산이 다시 가라앉고, 그에 따라 전체 오차도 함께 내려간다. 봉우리 왼쪽에서는 절충이 곡선을 지배하지만, 오른쪽에서는 매끄러운 해를 향한 알고리즘의 취향이 곡선을 지배한다.

그래서 교과서를 버려야 하는가

이쯤 되면 묻고 싶어진다. 그렇다면 그간의 통계학과 기계학습 교과서는 다 틀린 것이고, 내다 버려야 하는가. 답은 "아니다"이다. 흥미롭게도, 그 U자 곡선을 가장 널리 퍼뜨린 표준 교과서의 저자 가운데 한 사람이, 이중 하강이 알려진 뒤 바로 이 현상을 깊이 파고든 논문을 공동으로 내놓았다. 정규화를 걸지 않은 채 데이터를 완벽히 맞추는 최소 노름 해를 수학적으로 분석하자, 이중 하강 곡선이 정확히 재현되었다. 2021년에는 같은 계열의 입문용 개정판이 나오면서, 익숙한 U자 곡선을 여전히 비중 있게 다루는 한편 이중 하강을 소개하는 새 장을 더했다.

그 장의 결론은 편향-분산 절충과 이중 하강이 서로 모순되지 않는다는 것이다. 열쇠는 우리가 모델의 복잡도를 무엇으로 재느냐에 있다. 앞서 본 다항식 그래프에서 가로축은 다항식의 차수였다. 그러나 보간 임계점을 넘어서면, 차수만으로 복잡도를 따지는 것은 더 이상 타당하지 않다. 임계점 너머에서 최소 노름 해를 고르면, 임계점에서 유일하게 결정되던 뻣뻣한 곡선보다 오히려 더 단순하고 매끄러운 곡선이 나올 수 있기 때문이다. 차수는 높아졌는데 곡선은 더 단순해진 것이다.

편향-분산 절충 이론은 곡선이 반드시 U자여야 한다고 말한 적이 없다. 복잡도를 차수로 재느냐 매끄러움으로 재느냐에 따라, 같은 이론이 전혀 다른 모양의 곡선을 허락한다.

비유하자면 편향-분산 절충은 뉴턴 역학과 같다. 일상의 거의 모든 상황에서 정확하고 유용하지만, 더 극단적인 영역에서는 더 큰 이론의 한 특수한 경우로 드러나는. 이중 하강은 그 너머를 처음 엿본 장면, 말하자면 기계학습판 상대성 이론의 첫 단서에 가깝다. 뉴턴이 틀려서 폐기된 것이 아니듯, 교과서의 U자 곡선도 틀린 것이 아니라 더 큰 그림의 일부였던 셈이다.

이중 하강은 만능 법칙이 아니다

한 가지는 분명히 해 두어야 한다. 이중 하강은 어디서나 일어나는 보편 법칙이 아니다. 여러 데이터와 모델에서는, 규모를 키울수록 테스트 오차가 그저 계속 나빠지기만 하고 끝내 다시 내려오지 않는다. 두 번째 골짜기는 약속된 것이 아니다.

이중 하강이 나타날지는 데이터의 잡음 정도, 그리고 무엇보다 데이터를 완벽히 맞추는 여러 해 가운데 학습 알고리즘이 어떤 것을 고르느냐에 결정적으로 달려 있다. 이렇게 알고리즘이 특정한 해를 선호하는 성향을 모델의 귀납적 편향(inductive bias)이라 한다. 그리고 거대한 신경망은 유난히 운 좋은 귀납적 편향을 지닌 것처럼 보인다. 외울 능력이 차고 넘치는데도, 실제로는 매끄럽고 일반화가 잘되는 해를 골라잡는 것이다.

외우다가 어느 날 갑자기 깨치는 모델

이 운 좋은 편향을 가장 극적으로 보여 주는 사촌 격 현상이 있다. 2022년, 한 연구팀이 작은 산술 문제(이를테면 나머지 연산)로 신경망을 학습시키다 기이한 장면을 목격했다. 모델은 처음에 훈련 문제의 답을 통째로 외우기만 했다. 훈련 정확도는 100%인데 테스트 정확도는 찍기 수준에 머문, 누가 봐도 가망 없는 과적합 상태였다. 그런데 이 정체기를 한참 견디며 학습을 계속하자, 어느 순간 모델이 갑자기 규칙을 깨치고 테스트 정확도가 치솟았다.

연구팀은 이 현상에 그록킹(grokking), 곧 "문득 환히 이해한다"는 뜻의 이름을 붙였다. 더 흥미로운 점은, 새로 찾아낸 그 일반화하는 해가 앞서 외우기만 하던 해보다 노름이 더 작다는 사실이다. 충분한 시간이 주어지자 알고리즘이 무겁고 복잡한 암기형 해에서 가볍고 단순한 일반화형 해로 슬그머니 옮겨 간 것이다. 학습을 더 오래 돌릴 때 나타나는 이중 하강과, 매끄러운 해를 향한 알고리즘의 취향이 다른 얼굴로 다시 등장한 장면이라 할 만하다.

아직 따라잡지 못한 이론

거대한 신경망이 무엇이든 외워 낼 수 있다는 사실도 놀랍지만, 외울 능력을 갖고도 처음 보는 데이터에 그토록 잘 일반화한다는 사실은 더더욱 놀랍다. 기계학습 이론은 여전히 현실을 뒤쫓는 중이다. 마치 지능을 닮은 무언가가 눈앞에서 작동하는데, 우리는 그것이 어떻게 작동하는지 이제 막 더듬어 알아 가는 새로운 자연 현상을 마주한 형국이다.

U자 곡선은 머릿속에 너무도 깔끔하게 들어맞는 그림이었다. 한 세대의 연구와 실무를 형성할 만큼. 그러나 이중 하강이 일러 주는 교훈은 그 그림이 틀렸다는 것이 아니다. 오히려, 머릿속에 한 점 어긋남 없이 들어맞는 깔끔한 그림일수록 한 번쯤 그 너머를 의심해 볼 가치가 있다는 것이다. 봉우리에서 멈추지 않고 한 걸음 더 나아갔을 때, 비로소 두 번째 골짜기가 모습을 드러냈듯이.

· · ·