12.7 Swish 함수
Swish는 입력을 시그모이드 함수로 가중하는 매끄러운 활성화 함수이다. Swish는 신경망 아키텍처 자동 탐색 연구에서 학술적으로 발견되었으며, 이후 SiLU (Sigmoid Linear Unit)라는 명칭으로도 알려져 있다. 이 절에서는 Swish의 정의, 학술적 동기, 도함수, 특성, 활용 사례를 학습 순서에 따라 기술한다.
1. 정의
Swish는 다음과 같이 정의된다.
\text{Swish}(z) = z \cdot \sigma(\beta z)
여기서 \sigma는 시그모이드 함수이며, \beta는 양의 매개 변수이다. \beta = 1인 경우는 다음과 같이 표현된다.
\text{SiLU}(z) = z \cdot \sigma(z) = \frac{z}{1 + e^{-z}}
이 형태가 SiLU (Sigmoid Linear Unit)로 학술적으로 자주 언급된다. 매개 변수 \beta가 학습 가능한 경우 학습 데이터로부터 활성화의 형태가 결정된다.
2. 학술적 발견
Swish는 Ramachandran, Zoph, Le가 2017년에 Searching for Activation Functions에서 신경망 아키텍처 탐색을 통하여 학술적으로 발견하였다. 이 연구는 활성화 함수의 후보 공간을 자동 탐색하여 다양한 신경망 과제에 대하여 우수한 성능을 보이는 활성화 함수를 식별하였다. 그 결과로 발견된 함수가 Swish이다.
한편 동일한 함수는 Hendrycks와 Gimpel이 2016년에 *Gaussian Error Linear Units (GELUs)*에서 SiLU의 명칭으로 이미 학술적으로 언급한 바 있으며, Elfwing, Uchibe, Doya가 2017년에 Sigmoid-Weighted Linear Units for Neural Network Function Approximation in Reinforcement Learning에서도 강화 학습 맥락에서 도입한 바 있다.
3. 도함수
Swish의 도함수는 다음과 같이 표현된다.
\text{Swish}'(z) = \sigma(\beta z) + \beta z \cdot \sigma(\beta z)(1 - \sigma(\beta z))
도함수는 모든 점에서 정의되며 매끄럽다. \beta = 1인 경우 z = 0에서 도함수의 값은 0.5이다.
12.7.4 학술적 특성
Swish의 주요 학술적 특성은 다음과 같다.
- 비선형성: 표현력의 보장
- 매끄러움: 모든 점에서 무한히 미분 가능
- 비단조성: z가 음의 영역의 일부에서 함수 값이 감소한 후 다시 증가하는 비단조 형태
- 유계가 없는 양의 영역: 입력이 큰 양의 영역에서 항등 함수에 가까워져 기울기 소실이 회피된다.
- 음의 영역의 작은 기울기: dying ReLU 문제가 회피된다.
- 학습 가능 매개 변수: \beta가 학습 가능한 경우 활성화의 형태를 학습 데이터에 적응시킬 수 있다.
비단조성은 Swish의 학술적 특이점으로, 일부 입력 영역에서 도함수가 음수가 된다. 이러한 비단조성이 표현력에 어떤 영향을 미치는지에 관하여는 학술적 분석이 진행되어 왔다.
12.7.5 활용 사례
Swish는 다음의 학술적 활용 사례에서 사용된다.
- 합성곱 신경망: EfficientNet과 같은 효율적 합성곱 신경망에서 ReLU의 대안으로 채택되었다. Tan과 Le의 EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks (2019)는 Swish를 EfficientNet 시리즈에 적용한 사례이다.
- 강화 학습: Elfwing 외의 학술 문헌에 따라 강화 학습의 함수 근사기로 활용된다.
- 트랜스포머와 기타 깊은 신경망: 일부 트랜스포머 변형(예: T5의 일부 변형, PaLM 등)에서도 SiLU 또는 Swish가 사용되었다.
12.7.6 GELU와의 관계
Swish는 GELU와 형태적으로 유사하다. 두 함수 모두 매끄러우며 비단조성을 가지고, 입력이 큰 양의 영역에서 항등 함수에 가까워지고 입력이 큰 음의 영역에서 0에 가까워진다. 두 함수의 차이는 가중 함수에 있으며, GELU가 표준 정규 분포의 누적 분포 함수를 사용하는 반면 Swish는 시그모이드 함수를 사용한다. 두 함수는 학술적으로 유사한 응용 영역에서 사용되며, 어느 함수가 더 우수한지에 관하여는 과제와 모형에 따른 차이가 보고되어 있다.
12.7.7 출처 및 버전 정보
- Hendrycks, D., Gimpel, K., Gaussian Error Linear Units (GELUs), arXiv:1606.08415, 2016
- Elfwing, S., Uchibe, E., Doya, K., Sigmoid-Weighted Linear Units for Neural Network Function Approximation in Reinforcement Learning, Neural Networks, 2018
- Ramachandran, P., Zoph, B., Le, Q. V., Searching for Activation Functions, arXiv:1710.05941, 2017
- Tan, M., Le, Q. V., EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks, International Conference on Machine Learning, 2019
- Goodfellow, I., Bengio, Y., Courville, A., Deep Learning, MIT Press, 2016