# 인공신경망의 스위시 함수 (Swish Function)

스위시 함수(Swish Function)는 2017년 구글 브레인(Google Brain) 팀에 의해 제안된 활성화 함수로, 함수의 형태는 다음과 같이 정의된다:

$$
\text{Swish}(x) = x \cdot \sigma(x)
$$

여기서 $ \sigma(x) $는 시그모이드 함수(Sigmoid Function)이며, 다음과 같이 정의된다:

$$
\sigma(x) = \frac{1}{1 + e^{-x}}
$$

스위시 함수는 이전의 활성화 함수인 ReLU(Rectified Linear Unit)와 비교하여 매끄러운 곡선과 비선형성을 제공하며, 성능 면에서 더 나은 결과를 보이는 경우가 많다.

#### 스위시 함수의 수학적 특성

스위시 함수는 다음과 같은 흥미로운 수학적 특성을 가진다:

* **매끄러움(Smoothness):** 스위시 함수는 입력 값에 따라 연속적으로 변하며, ReLU와 달리 비연속적 변화가 없다. 이는 기울기 소실(Gradient Vanishing) 문제를 줄이는 데 도움이 된다.
* **비선형성(Non-linearity):** 스위시 함수는 비선형성을 가지며, 이는 신경망이 복잡한 패턴을 학습하는 데 필수적이다.
* **비대칭성(Asymmetry):** 스위시 함수는 $ x=0 $을 기준으로 비대칭적이다. 이는 ReLU와 달리, 음수 값에 대해서도 일부 출력을 제공하므로, 신경망이 더 다양한 입력 값에 대해 학습할 수 있도록 돕는다.
* **기울기 계산 가능(Gradient Calculable):** 스위시 함수의 도함수는 다음과 같이 계산된다:

$$
\frac{d}{dx} \text{Swish}(x) = \sigma(x) + x \cdot \sigma(x) \cdot (1 - \sigma(x))
$$

이 도함수는 입력 값에 대해 명확히 정의되어 있으며, 역전파 과정에서 기울기 계산이 용이한다.

#### 스위시 함수의 장점

스위시 함수는 여러 가지 측면에서 기존 활성화 함수와 비교할 때 다양한 이점을 제공한다:

* **성능 향상:** 스위시 함수는 다양한 신경망 구조에서 기존의 ReLU, Leaky ReLU 등 다른 활성화 함수보다 더 나은 성능을 보인다. 특히, 깊은 신경망에서의 성능 향상은 더욱 두드러진다.
* **기울기 소실 완화:** 스위시 함수는 매끄러운 곡선 특성으로 인해 기울기 소실 문제를 완화하는 데 기여한다. 이는 신경망이 더 깊어질수록 학습이 어려워지는 문제를 해결하는 데 유리한다.
* **입력 값 범위의 확장:** 스위시 함수는 음수 영역에서도 유의미한 출력을 제공하므로, 신경망이 더 다양한 입력에 대해 적응할 수 있다. 이는 특정한 상황에서 더 나은 일반화 성능을 보여준다.

#### 스위시 함수의 한계

스위시 함수에도 몇 가지 단점과 한계가 존재한다:

* **계산 비용:** 스위시 함수는 ReLU에 비해 계산 비용이 더 크다. 이는 $ \sigma(x) $를 계산해야 하기 때문이며, 특히 대규모 모델에서는 성능에 영향을 미칠 수 있다.
* **매개변수 추가:** 스위시 함수는 종종 베타(Beta) 매개변수와 함께 사용되며, 이는 추가적인 하이퍼파라미터 튜닝을 요구할 수 있다. 이 매개변수는 학습 과정에서 최적화되지만, 잘못된 초기화나 설정은 학습에 부정적인 영향을 미칠 수 있다.

***

관련 자료:

1. Ramachandran, Prajit, et al. Searching for activation functions. arXiv preprint arXiv:1710.05941 (2017).
2. Elfwing, Stefan, Eiji Uchibe, and Kenji Doya. Sigmoid-weighted linear units for neural network function approximation in reinforcement learning. arXiv preprint arXiv:1702.03118 (2017).
