Softsign 함수란?
Softsign 함수는 신경망에서 사용하는 활성화 함수로, \(\phi(x) = x / (1 + |x|)\)로 정의됩니다. 하이퍼볼릭 탄젠트(tanh)와 마찬가지로 부드러운 S자 형태를 가지며 출력값이 열린 구간 \((-1, 1)\) 안으로 제한됩니다. 가장 큰 차이는 점근선에 다가가는 방식입니다. Softsign은 다항식 형태(\(1/|x|\) 비율)로 \(\pm 1\)에 접근하는 반면, tanh는 지수적으로 접근합니다. 이렇게 포화가 더 천천히 일어나기 때문에 일부 신경망 구조에서는 기울기 소실(vanishing gradient) 문제를 완화하는 데 도움이 될 수 있습니다.
계산기 사용법
세 가지 값을 입력하면 됩니다. x의 초기값(첫 번째 행의 x), 증가값(각 행마다 더해지는 간격), 그리고 반복 횟수(생성할 행의 개수)입니다. 그러면 계산기가 각 지점마다 x, Softsign \(\phi(x)\), 그리고 1차 도함수 \(\phi'(x)\) 값을 표로 만들어 줍니다. 이 표를 활용해 곡선을 그리거나 특정 지점의 값을 확인할 수 있습니다.
공식 설명
각 행에서 \(a = 1 + |x|\)로 두면 \(\phi(x) = x / a\), \(\phi'(x) = 1 / a^2\)가 됩니다.
$$f(x) = \frac{x}{1+|x|}, \qquad f^{\prime}(x) = \frac{1}{(1+|x|)^{2}}$$$$x_i = \text{Initial }x + i \cdot \text{Step}, \quad i = 0,1,\dots,\text{Repetitions}-1$$
\(|x|\)는 절대 음수가 될 수 없으므로 분모 \(a\)는 항상 1 이상이고, 따라서 0으로 나누는 일이 발생하지 않으며 함수는 모든 지점에서 부드럽게 이어집니다. Softsign 함수는 기함수(\(\phi(-x) = -\phi(x)\))이고, 그 도함수는 우함수(\(\phi'(-x) = \phi'(x)\))입니다. 원점에서는 \(\phi(0) = 0\), \(\phi'(0) = 1\)입니다.
예제 풀이
\(x = -5\)일 때: \(a = 1 + 5 = 6\)이므로 \(\phi(-5) = -5/6 = -0.8333333\), \(\phi'(-5) = 1/36 = 0.0277778\)입니다. \(x = 1\)일 때: \(a = 2\)이므로 \(\phi(1) = 0.5\), \(\phi'(1) = 0.25\)입니다. \(x = 0\)일 때: \(a = 1\)이므로 \(\phi(0) = 0\), \(\phi'(0) = 1\)입니다. 기본값(시작 -5, 간격 0.1, 101개 행)을 사용하면 표는 x를 -5부터 +5까지 훑게 됩니다.
자주 묻는 질문
도함수가 음수가 되지 않는 이유는 무엇인가요? \(\phi'(x) = 1/(1+|x|)^2\)는 제곱값의 역수이므로 항상 양수입니다. 즉 Softsign은 단조 증가 함수입니다.
Softsign은 tanh와 어떻게 다른가요? 둘 다 제한된 범위로 포화되지만, Softsign은 유리함수 형태로 더 완만하게 포화되는 반면 tanh는 지수적으로 빠르게 포화됩니다. 덕분에 Softsign은 더 넓은 입력 범위에서 기울기를 살려 둘 수 있습니다.
증가값을 음수로 설정할 수 있나요? 네. 음수 간격을 쓰면 표가 내림차순으로 진행되고, 간격을 0으로 두면 모든 행에서 같은 x 값이 반복됩니다.