AI 논문

소프트맥스 버그, 딥러닝 기본 함수에 숨어 있던 두 오류

2026년 10월 26일 · 09:00 발행arXiv:2610.31642 ↗학습기법

20년 동안 아무도 열어보지 않은 상자

딥러닝 모델을 학습시킬 때 거의 반드시 거치는 함수가 있다. 소프트맥스(softmax)와 교차 엔트로피(cross-entropy)다. 모델이 뱉은 점수 묶음을 확률처럼 바꾸고, 정답과 얼마나 다른지를 숫자 하나로 요약하는 역할이다. 모든 분류 모델, 모든 언어 모델이 이 두 함수를 거친다.

너무 기본이어서 아무도 의심하지 않는 부품이기도 하다. 그런데 이 함수의 표준 구현에 수치 오류 두 개가 있다는 논문이 나왔다. 저자에는 컴퓨터 비전 쪽에서 이름이 알려진 Jonathan T. Barron이 포함돼 있다.

버그 1: 기울기가 0으로 반올림된다

첫 번째 버그는 'Softmax Collapse'다.

모델 학습은 "답을 어느 방향으로 얼마나 고칠지"를 나타내는 기울기(gradient)를 계산해 조금씩 움직이는 과정이다. 소프트맥스를 거친 기울기에는 성질 하나가 반드시 성립해야 한다. 모든 항목의 기울기를 더하면 정확히 0이 되어야 한다. 확률의 총합이 1로 고정돼 있으니, 어딘가를 올리면 반드시 다른 곳이 그만큼 내려가야 하기 때문이다.

문제는 정답 항목의 점수가 다른 항목들보다 압도적으로 커질 때 생긴다. 이때 정답 항목의 기울기는 아주 작은 값이 되고, 컴퓨터가 쓰는 부동소수점 표현에서는 그 작은 값이 0으로 반올림된다. 그 결과 합이 0이 되어야 할 기울기가 어긋나고, 모델은 "내려갈 곳이 없는" 방향으로 밀리기 시작한다.

버그 2: 똑같은데 0이 아니다

두 번째는 'Softmax Cancellation'이다. 주로 지식 증류(distillation), 즉 큰 교사 모델을 작은 학생 모델에 옮기는 상황에서 드러난다.

학생이 교사를 완벽하게 따라잡았다면 둘의 점수 차이는 0이고, 따라서 더 고칠 것이 없으니 기울기도 0이어야 한다. 그런데 표준 구현에서는 학생 점수와 교사 점수가 가까워질수록 둘이 완전히 같아도 0이 아닌 기울기가 남는다. 거의 같은 두 큰 수를 빼면 오차만 남는, 부동소수점 연산의 고전적인 함정이다.

학생은 교사와 같아진 뒤에도 계속 떠밀린다. 멈춰야 할 자리에서 멈추지 못한다.

고치면 무엇이 달라지나

저자들은 두 버그를 모두 고친 간단한 구현을 제시했다. 흥미로운 건 수정 이후에 사라지거나 바뀐 현상들의 목록이다.

알려져 있던 현상수정 후
'Slingshot' 현상사라짐
weight decay를 쓸 때 grokking더 빨라짐
weight decay 없을 때 정확도 붕괴발생하지 않음
증류 중 학생이 교사에서 멀어지는 표류멈춤

여기서 'grokking'은 모델이 한동안 암기만 하는 듯 보이다가 갑자기 일반화 성능이 뛰어오르는 현상이고, 'Slingshot'은 학습 후반에 손실이 불안정하게 튀는 현상이다. 둘 다 지난 몇 년간 "신경망 학습의 신비한 성질"로 다뤄지며 여러 가설이 붙었던 대상이다.

또 하나. 모델이 데이터를 암기한 뒤 점수가 무한히 커지지 않는 이유가, weight decay와 Adam 옵티마이저의 ε 하이퍼파라미터 사이의 평형으로 설명된다는 점도 보였다. ε은 0으로 나누는 것을 막기 위해 넣는 아주 작은 상수이고, 보통 아무도 의미를 두지 않는 값이다.

그래서 진짜 의미하는 것

과장하면 안 되는 부분부터. 이 논문이 "딥러닝이 전부 틀렸다"고 말하는 건 아니다. 지금까지의 수많은 학습은 이 버그를 안고도 잘 작동했고, 지금 쓰는 모델들이 쓸모없어지는 것도 아니다. 영향이 드러나는 구간은 좁다. 한 항목의 점수가 극단적으로 커진 뒤, 또는 학생이 교사에 거의 수렴한 뒤다. 학습 초중반의 대부분 구간에서는 차이가 보이지 않을 수 있다.

오해하기 쉬운 부분. "구현 버그"라는 말 때문에 누가 코드를 잘못 썼다는 이야기로 들리기 쉽다. 그렇지 않다. 문제는 수식이 아니라 수식을 유한한 자릿수의 숫자로 옮기는 과정에 있다. 수학적으로는 완벽하게 맞는 식이, 부동소수점 세계로 내려오면 성질 하나를 잃는다. 널리 쓰이는 프레임워크들이 공통으로 가진 성질이라는 뜻이다.

실무에 어떤 의미인가. 가장 실용적인 함의는 '신비한 현상'을 대하는 태도에 있다. 학습 곡선이 이상하게 튀거나, 증류한 학생이 교사를 넘어 표류하거나, 특정 시점에 정확도가 무너질 때 우리는 보통 데이터나 학습률이나 모델 구조를 의심한다. 이 논문은 후보 하나를 추가한다. 수치 표현 자체를 의심해 볼 것.

그리고 더 넓게는, 연구 공동체가 현상에 이름을 붙이고 이론을 쌓기 전에 바닥의 구현을 한 번 확인해야 한다는 교훈이기도 하다. Slingshot과 grokking에 붙었던 여러 설명 중 일부는, 알고 보니 반올림 오차를 설명하려던 것일 수 있다.

마무리

좋은 논문은 새 기법을 더하기도 하지만, 때로는 쌓여 있던 설명을 덜어낸다. 이 논문은 후자에 가깝다. 고치는 방법도 복잡하지 않다. 다만 고쳐야 한다는 사실을 알아차리는 데 시간이 걸렸을 뿐이다.

출처

Jonathan T. Barron, Dan Gnanapragasam, Michael Tschannen, "A Fix for Softmax and Cross-Entropy", arXiv:2610.31642 (2026-10-22)

https://arxiv.org/abs/2610.31642