소프트맥스Softmax

여러 점수를 합이 100%인 확률로 바꾸는 계산

핵심 정리
  • 소프트맥스는 흩어진 점수 여러 개를 합이 100%가 되도록 나눠 주는 계산이에요.
  • 후보 하나만 봐서는 몫을 정할 수 없어요. 다른 후보의 점수까지 함께 봐야 해요.
  • 나눈 뒤에도 순서는 그대로예요. 점수가 높은 쪽이 몫도 커요.
  • 점수 차이를 그대로 옮기지 않고 키워서 나눠요. 조금만 앞서도 몫은 크게 벌어져요.
  • 나온 퍼센트는 모델이 얼마나 옳은지가 아니라 후보들 사이의 비율일 뿐이에요.
목차

1비유로 이해하기

상가 건물 하나에 수도요금 고지서가 한 장 나와요. 가게마다 계량기가 따로 달려 있어서, 관리인은 눈금을 전부 적은 다음 합계를 내고, 각 가게가 전체에서 몇 퍼센트를 썼는지 따져 그 비율대로 요금을 나눠요.

계량기에 찍힌 숫자만으로는 낼 돈이 정해지지 않아요. 옆 가게들의 눈금까지 다 모아 합을 만들어야 내 몫이 나와요. 내 눈금이 지난달과 똑같아도, 옆 가게가 물을 많이 쓴 달에는 내가 차지하는 비율이 줄어들어요.

소프트맥스가 이 나누기예요. 모델이 후보마다 적어 둔 날 점수를 전부 모아, 100% 안에서 각자의 몫으로 갈라 줘요. 눈금에 해당하는 그 날 점수를 로짓이라고 불러요.

2자세히 알아보기

한 후보만 보고는 정할 수 없어요

모델은 다음에 올 조각을 고르기 전에 후보마다 점수를 매겨 둬요. 이 점수는 눈금이 없는 날 숫자라서, 하나만 떼어 보면 높은 건지 낮은 건지도 알 수 없어요.

소프트맥스는 후보 전체를 한 묶음으로 놓고 계산해요. 모든 점수를 모아 합을 만든 뒤, 각 후보가 그 합에서 차지하는 만큼을 몫으로 줘요. 그래서 어떤 후보의 몫은 자기 점수만이 아니라 다른 후보들이 어떤 점수를 받았는지에 따라서도 달라져요.

경쟁자가 약하면 같은 점수로도 큰 몫을 가져가고, 다들 비슷하게 높으면 몫이 잘게 쪼개져요. 후보 수가 많아질수록 하나하나의 몫이 작아지는 것도 같은 이유예요.

순서는 그대로, 눈금만 바뀌어요

나누기를 거쳐도 후보의 순서는 하나도 바뀌지 않아요. 점수판에서 앞서던 후보가 몫에서도 앞서요. 순위를 정하려고 하는 계산이 아니라, 사람이 읽고 견줄 수 있는 눈금으로 옮기려고 하는 계산이거든요.

퍼센트로 바꿔 두면 편한 일이 많아요. 몇 퍼센트 이상인 후보만 남기는 식으로 자를 수 있고, 확률에 따라 무작위로 하나를 뽑아 답에 다양성을 줄 수도 있어요. 학습할 때 정답과 얼마나 어긋났는지 재는 일도 확률 형태여야 편해요.

차이를 키워서 나눠요

이름에 붙은 부드러움은 최고점 하나만 뽑아 몰아주지 않는다는 뜻이에요. 1등에게 100%를 주고 나머지를 0%로 만드는 대신, 2등과 3등에게도 얼마씩 남겨 둬요. 덕분에 아슬아슬하게 갈린 상황이 결과에 그대로 드러나요.

그렇다고 점수 비율을 곧이곧대로 옮기지도 않아요. 점수 차이는 몫으로 옮겨질 때 더 크게 벌어져요. 조금 앞선 후보가 꽤 큰 몫을 가져가고, 뒤처진 후보의 몫은 빠르게 0에 가까워져요. 점수 몇 칸 차이로 답이 사실상 하나로 굳는 일이 생기는 이유예요.

온도 설정이 바로 이 벌어짐을 조절해요. 온도를 낮추면 간격이 더 벌어져 1등이 거의 다 가져가고, 올리면 간격이 좁아져 아래 후보들에게도 몫이 돌아가요.

마지막 단계에만 쓰이는 게 아니에요

언어 모델에서 소프트맥스가 가장 눈에 띄는 자리는 다음 조각을 고르기 직전이에요. 하지만 모델 안쪽에서도 여러 번 쓰여요.

문장 속 어느 낱말에 얼마나 집중할지 정하는 어텐션이 대표적이에요. 낱말마다 관련 점수를 매긴 뒤, 그 점수를 100% 안에서 나눠 집중의 비율로 삼아요. 앞에서 본 갈래 고르기에서도 어느 갈래에 얼마나 무게를 줄지 이 방식으로 정해요.

사진을 여러 갈래로 나누는 모델도 마지막에 이 계산을 붙여요. 결과 화면에 뜨는 퍼센트가 다 더해서 100%가 되는 것은 이 때문이에요.

3조금 더 정확하게

소프트맥스는 점수 하나하나를 반드시 양수인 값으로 바꾼 뒤, 그 값들의 합으로 각각을 나누는 계산이에요. 그래서 음수 점수도 다룰 수 있고, 결과는 모두 0과 1 사이에 들어가며 합은 언제나 1이 돼요.

비유가 어긋나는 지점도 있어요. 수도 계량기는 눈금 비율이 그대로 요금 비율이 되지만, 소프트맥스는 점수 차이를 부풀려서 나눠요. 눈금이 두 배인 가게가 요금은 열 배를 내는 셈이라, 비율만 생각하면 결과가 예상보다 한쪽으로 쏠려 보여요. 또 계량기 눈금은 실제로 쓴 물의 양이라는 뜻이 분명하지만, 모델의 점수에는 그런 실체가 없어요. 그래서 몫이 90%로 나왔다고 해서 그 답이 열 번 중 아홉 번 맞는다는 뜻은 아니에요. 후보들 사이에서 그만큼 앞섰다는 표시일 뿐이에요. 후보 목록에 아예 없는 답은 0%로도 나타나지 않는다는 점도 함께 기억해 두면 좋아요.

4직접 해보기

5흔한 오해

  • 소프트맥스가 답을 고른다고 생각하기 쉽지만, 실제로는 몫을 나눌 뿐이고 고르는 일은 그다음 단계에서 따로 해요.

  • 90%가 나오면 열에 아홉은 맞는다고 여기기 쉽지만, 실제로는 후보들 사이의 비율일 뿐 정답률과는 다른 값이에요.

  • 점수를 비율 그대로 옮긴다고 생각하기 쉽지만, 실제로는 차이를 부풀려 나누기 때문에 앞선 후보가 훨씬 큰 몫을 가져가요.

7한 줄 요약

그러니까소프트맥스는 흩어진 날 점수를 계량기 눈금처럼 모아 합이 100%가 되게 몫을 나눠 주는 계산이에요.

잘못된 내용이나 더 좋은 비유가 있나요? 수정 제안 보내기 · 마지막 수정2026-09-02