콘텐츠로 이동

P5-3.2 sigmoid

Section ID: P5-3.2 Version: v2026.07.20

P5-3.1에서는 활성화 함수(activation function)가 가중합 점수 \(z\)를 다음 층에 넘길 값 \(a\)로 바꾸는 함수라는 점을 보았습니다. 이제 대표 함수 하나씩을 따로 보며, 같은 점수라도 어떤 방식으로 다른 신호가 되는지 확인합니다.

sigmoid는 입력 점수 \(z\)를 0과 1 사이 값으로 눌러 주는 활성화 함수입니다. 큰 음수는 0에 가까워지고, 큰 양수는 1에 가까워지며, 0 근처에서는 비교적 빠르게 변합니다.

대표 활성화 함수의 기준선이 다시 필요하면 개념사전의 활성화 함수(activation function) 항목으로 돌아갑니다.

sigmoid가 값을 눌러 담는 질문

  • sigmoid는 어떤 수식과 출력 범위를 가지는가?
  • 왜 0과 1 사이 값처럼 읽히는가?
  • 어떤 장면에서 sigmoid가 직관적으로 유용한가?
  • sigmoid를 확률처럼 읽을 때 무엇을 조심해야 하는가?

이 절에서는 sigmoid와 다른 대표 함수의 수식 비교를 길게 다루지 않습니다. tanh는 P5-3.3, ReLU는 P5-3.4에서 따로 보고, 세 함수의 수식 비교는 P5-3.5에서 정리합니다. 출력층에서 sigmoid를 어떻게 해석할지는 P5-3.6과 P5-4.2에서 다시 연결합니다.

S자 곡선과 포화의 판단 기준

  • sigmoid를 0과 1 사이로 누르는 함수로 설명할 수 있습니다.
  • sigmoid 수식에서 입력 \(z\)가 커질수록 출력이 1에 가까워지는 이유를 직관적으로 말할 수 있습니다.
  • 큰 양수와 큰 음수에서 변화가 둔해지는 포화(saturation)를 설명할 수 있습니다.
  • sigmoid 출력과 운영 정책 threshold를 구분할 수 있습니다.

sigmoid의 수식

sigmoid는 보통 다음 수식으로 씁니다.

\[ \sigma(z)=\frac{1}{1+e^{-z}} \]

여기서 \(e^{-z}\)는 입력 \(z\)의 부호와 크기에 따라 분모를 크게 만들거나 작게 만듭니다.

  • \(z\)가 큰 양수이면 \(e^{-z}\)가 0에 가까워져 출력은 1에 가까워집니다.
  • \(z=0\)이면 \(e^0=1\)이므로 출력은 \(1/(1+1)=0.5\)입니다.
  • \(z\)가 큰 음수이면 \(e^{-z}\)가 매우 커져 출력은 0에 가까워집니다.

즉, sigmoid는 모든 입력을 0과 1 사이에 넣어 줍니다.

그래프를 어떻게 읽나

sigmoid 그래프는 S자 모양입니다. 중요한 것은 모양 이름보다 구간별 반응입니다.

sigmoid 활성화 함수 곡선

입력 구간 출력 감각 독자가 먼저 읽을 점
큰 음수 0에 가까움 강한 음성 쪽 신호로 눌립니다.
0 근처 0.5 주변 작은 점수 차이가 비교적 잘 드러납니다.
큰 양수 1에 가까움 강한 양성 쪽 신호지만 더 커져도 변화가 둔해집니다.

이 성질 때문에 sigmoid는 이진 분류(binary classification) 출력에서 자주 등장합니다. 값이 0과 1 사이에 있으므로 양성 쪽으로 얼마나 기울었는가를 읽기 쉽기 때문입니다.

다만 sigmoid 출력이 항상 잘 보정된 확률(calibrated probability)을 자동으로 보장하는 것은 아닙니다. 출력값을 운영 의사결정에 쓰려면 threshold와 데이터 분포, 평가 기준을 함께 봐야 합니다.

사례 및 예시

설비 경보 모델이 어떤 프레임에 대해 즉시 정지 쪽 신호 점수 \(z\)를 만들었다고 해 봅시다. 운영 정책은 sigmoid 출력이 0.7 이상이면 정지 후보로 올린다고 정해 두었습니다.

| 장면 | \(z\) | sigmoid 출력의 직관 | threshold 0.7 기준 판단 | | --- | --- | --- | | 안정적으로 복구된 장면 | \(-2\) | 0에 가까운 값으로 눌려 정지 쪽 신호가 약해집니다. | 정지 후보로 올리지 않습니다. | | 애매한 경계 장면 | \(0\) | 0.5 근처라 어느 쪽으로도 강하게 기울지 않습니다. | 아직 정지 후보로 올리지 않습니다. | | 주의가 필요한 장면 | \(1\) | 0.7을 조금 넘는 값이 되어 양성 쪽으로 기웁니다. | 정지 후보로 올립니다. | | 강한 경보 장면 | \(3\) | 1에 가까워져 정지 쪽 신호가 강하게 보입니다. | 정지 후보로 올립니다. |

이 표에서 먼저 봐야 할 것은 sigmoid 출력운영 판단이 같은 말이 아니라는 점입니다. 예를 들어 \(z=1\)\(z=3\)은 모두 양성 쪽이지만, 하나는 threshold를 조금 넘긴 장면이고 다른 하나는 이미 1에 가까워진 장면입니다. sigmoid는 점수를 0과 1 사이 신호로 바꿔 주고, threshold는 그 신호를 어디서 행동으로 바꿀지 정하는 별도 기준입니다.

또 하나는 포화(saturation)입니다. 사람은 z=3z=1보다 훨씬 크니 출력 차이도 계속 크게 벌어질 것이라고 예상하기 쉽습니다. 하지만 sigmoid는 높은 구간에서 1에 가까워지며 차이를 압축합니다. 그래서 양성 쪽으로 기울었다는 방향은 분명하게 남기지만, 큰 양수끼리의 세부 차이는 덜 살아날 수 있습니다.

이 사례에서 확인해야 할 결과는 sigmoid가 점수를 0~1 사이의 해석하기 쉬운 값으로 바꾸고, threshold는 그 값을 행동 기준으로 다시 읽으며, 큰 양수와 큰 음수에서는 변화가 둔해진다는 점입니다.

연습 및 예제

다음 점수들을 sigmoid에 통과시킨다고 생각해 봅니다. 운영 정책은 계속 0.7 이상이면 정지 후보라고 둡니다.

\(z\) 먼저 예상할 출력 범위 먼저 확인할 질문
\(-4\) 0에 매우 가까움 강한 음성 쪽으로 얼마나 눌리는가
\(0\) 0.5 경계 기준점이 왜 되는가
\(1\) 0.7을 조금 넘는 쪽 threshold를 막 넘는가
\(4\) 1에 매우 가까움 이미 포화 구간에 들어갔는가
\(8\) 1에 더 가까움 \(4\)와 비교해 출력 차이가 얼마나 더 남는가

이 표를 읽을 때는 다음 두 질문을 직접 닫아야 합니다.

  1. \(z=1\)양성 쪽으로 기울었다실제로 행동 기준을 넘었다를 동시에 보여 주는가?
  2. \(z=4\)\(z=8\)로 키우면 출력은 커지지만, 왜 차이가 \(z=0\)에서 \(z=1\)로 갈 때만큼 크게 벌어지지 않는가?

정답 방향은 분명합니다. sigmoid는 \(z=1\) 근처에서는 threshold 판단에 직접 영향을 줄 수 있을 만큼 아직 변화가 살아 있지만, \(z=4\)\(z=8\)처럼 큰 양수 구간에서는 둘 다 1에 가까워져 차이를 강하게 압축합니다. 따라서 sigmoid를 읽을 때는 출력이 어느 쪽으로 기우는가, threshold를 넘는가, 이미 포화 구간에 들어갔는가를 나누어 봐야 합니다.

체크리스트

  • sigmoid 수식 \(\sigma(z)=1/(1+e^{-z})\)를 읽을 수 있는가?
  • \(z=0\)일 때 출력이 0.5가 되는 이유를 말할 수 있는가?
  • 큰 음수는 0에, 큰 양수는 1에 가까워진다는 점을 설명할 수 있는가?
  • sigmoid 출력과 실제 운영 threshold를 구분할 수 있는가?
  • sigmoid가 P5-3.5의 수식 비교와 P5-3.6의 출력층 해석으로 이어진다는 점을 이해했는가?

출처와 참고 자료