콘텐츠로 이동

P5-3.3 tanh

Section ID: P5-3.3 Version: v2026.07.20

P5-3.2에서는 sigmoid가 점수를 0과 1 사이로 누르는 방식을 보았습니다. tanh는 비슷하게 S자형 압축을 하지만, 출력 범위가 \(-1\)부터 \(1\)까지라는 점이 다릅니다.

tanh는 음수와 양수를 모두 남기면서 0을 중심으로 표현을 만들고 싶을 때 중요한 비교 기준이 됩니다.

tanh의 0 중심 변환 질문

  • tanh는 어떤 수식과 출력 범위를 가지는가?
  • sigmoid와 달리 왜 0 중심(zero-centered)이라고 말하는가?
  • 음수와 양수 부호를 남긴다는 것이 왜 중요한가?
  • tanh의 포화 구간은 어떤 한계를 만드는가?

sigmoid와 ReLU까지 포함한 수식 비교는 P5-3.5에서 한 번에 정리합니다. 출력층 선택 문제는 P5-3.6에서 따로 다룹니다.

음수와 양수를 함께 남기는 판단 기준

  • tanh를 -1과 1 사이로 누르는 0 중심 함수로 설명할 수 있습니다.
  • tanh가 sigmoid보다 음수/양수 부호를 더 직접 남긴다는 점을 이해할 수 있습니다.
  • 큰 양수와 큰 음수에서 포화가 생긴다는 점을 말할 수 있습니다.
  • tanh가 은닉층 표현에서 어떤 감각을 주는지 설명할 수 있습니다.

tanh의 수식

tanh는 다음처럼 씁니다.

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

이 수식의 결과는 항상 \(-1\)\(1\) 사이에 있습니다.

  • \(z\)가 큰 양수이면 출력은 1에 가까워집니다.
  • \(z=0\)이면 출력은 0입니다.
  • \(z\)가 큰 음수이면 출력은 -1에 가까워집니다.

sigmoid가 0과 1 사이에만 값을 두는 것과 달리, tanh는 음수 방향과 양수 방향을 모두 표현합니다.

0 중심이라는 말

tanh를 0 중심이라고 부르는 이유는 \(z=0\)에서 출력도 0이고, 음수 입력은 음수 출력으로, 양수 입력은 양수 출력으로 남기기 때문입니다.

tanh 활성화 함수 곡선

입력 구간 출력 감각 독자가 먼저 읽을 점
큰 음수 -1에 가까움 안정 쪽 또는 반대 방향 신호가 음수로 남습니다.
0 근처 0 근처 약한 변화가 부호와 함께 나타납니다.
큰 양수 1에 가까움 강한 양수 신호지만 더 커져도 변화가 둔해집니다.

이 성질은 은닉층(hidden layer)에서 어느 방향의 신호인가를 남기고 싶을 때 직관적입니다. 값이 모두 양수 쪽으로만 몰리지 않고, 0을 기준으로 양쪽 방향을 가질 수 있기 때문입니다.

사례 및 예시

설비 상태를 보며 어떤 은닉 노드가 안정 쪽 신호경고 쪽 신호를 함께 표현한다고 해 봅시다. 이 노드는 음수면 안정 쪽, 양수면 경고 쪽으로 읽고, 절댓값이 커질수록 그 방향이 더 강하다고 읽는다고 해 보겠습니다. 이때 출력이 0 이상으로만 남으면 안정 쪽과 경고 쪽이 모두 약함/강함 정도로만 보여 방향 차이를 한눈에 붙잡기 어렵습니다.

tanh를 쓰면 음수는 안정 쪽 신호, 양수는 경고 쪽 신호처럼 읽을 수 있습니다.

| 장면 | \(z\) | tanh 출력의 직관 | 먼저 남는 판단 | | --- | --- | --- | | 안정 신호가 강함 | \(-2\) | -1에 가까워 안정 쪽 방향이 강하게 남습니다. | 안정 쪽으로 기운다는 부호가 바로 보입니다. | | 약한 안정 신호 | \(-0.3\) | 0보다 조금 작아 안정 쪽이지만 강하지는 않습니다. | 안정 쪽이지만 거의 중립에 가깝다고 읽을 수 있습니다. | | 거의 중립 | \(0\) | 0으로 남아 한쪽으로 기울지 않습니다. | 아직 방향을 강하게 정하지 않습니다. | | 약한 경고 신호 | \(0.3\) | 0보다 조금 커 경고 쪽이지만 강하지는 않습니다. | 경고 쪽이지만 아직 약하다고 읽을 수 있습니다. | | 경고 신호가 강함 | \(2\) | 1에 가까워 경고 쪽 방향이 강하게 남습니다. | 경고 쪽으로 강하게 기운다는 부호가 바로 보입니다. |

이 사례에서 먼저 봐야 할 것은 0을 중심으로 왼쪽과 오른쪽이 갈린다는 점입니다. \(-0.3\)\(0.3\)은 둘 다 작은 값이지만, 하나는 안정 쪽이고 다른 하나는 경고 쪽입니다. tanh는 이런 약한 방향 차이도 부호로 남겨 줍니다.

또 하나는 포화(saturation)입니다. \(z=2\)가 이미 1에 가까워졌다면, 그보다 더 큰 양수로 가도 출력 차이는 점점 덜 커집니다. 음수 쪽도 마찬가지로 큰 음수에서는 -1 근처로 압축됩니다.

이 사례에서 확인해야 할 결과는 tanh가 단순히 값을 줄이는 함수가 아니라, 0을 중심으로 방향이 있는 내부 표현을 만들고, 큰 양수와 큰 음수에서는 양끝으로 포화된다는 점입니다.

연습 및 예제

다음 값들을 tanh에 넣는다고 생각해 봅니다.

\(z\) 먼저 예상할 출력 먼저 확인할 질문
\(-4\) -1에 매우 가까움 큰 음수는 어디까지 내려가는가
\(-0.2\) 0보다 조금 작음 약한 안정 쪽 신호가 남는가
\(0\) 0 왜 0 중심이라고 부르는가
\(0.2\) 0보다 조금 큼 약한 경고 쪽 신호가 남는가
\(4\) 1에 매우 가까움 큰 양수는 어디까지 올라가는가
\(8\) 1에 더 가까움 \(4\)와 비교해 차이가 얼마나 더 남는가

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

  1. \(-0.2\)\(0.2\)는 둘 다 작은 값인데, 왜 tanh에서는 약한 안정약한 경고처럼 서로 반대 방향으로 읽을 수 있는가?
  2. \(z=4\)\(z=8\)로 키워도 왜 출력 차이는 \(z=0\)에서 \(z=0.2\)로 갈 때만큼 크게 살아나지 않는가?

정답 방향은 분명합니다. tanh는 0 근처에서는 작은 변화도 음수/양수 부호와 함께 비교적 직접 남기지만, 큰 양수와 큰 음수 구간에서는 각각 1과 -1에 가까워지며 차이를 압축합니다. 따라서 tanh를 읽을 때는 어느 방향인가, 0에서 얼마나 떨어졌는가, 이미 포화 구간에 들어갔는가를 함께 봐야 합니다.

체크리스트

  • tanh 수식과 출력 범위 \(-1\)부터 \(1\)까지를 말할 수 있는가?
  • \(z=0\)일 때 출력이 0이 되는 이유를 설명할 수 있는가?
  • tanh가 sigmoid보다 0 중심 표현에 가깝다는 점을 이해했는가?
  • 큰 양수와 큰 음수에서 포화가 생긴다는 점을 말할 수 있는가?
  • tanh가 P5-3.5의 수식 비교에서 어떤 기준으로 비교되는지 예상할 수 있는가?

출처와 참고 자료