본문 바로가기
컴퓨터공학 & 정보통신

[인공지능] Swish 활성화 함수 이해하기

by TaeGyeong Lee 2026. 1. 11.

Swish는 2022년에 논문을 통해 소개된 활성화 함수(Activation Function)입니다. ReLU의 단점을 개선하였습니다. 

 

Swish 

활성화 함수는 아래와 같은 형태입니다. σ(x)는 시그모이드 함수합니다. 

𝑓(𝑥) = 𝑥 · σ(𝑥)

where σ(x) = (1 + exp(−x))−1

swish와 다른 활성화함수의 그래프 추이입니다. leaky ReLU와 가장 비슷한 것 같습니다. 

 

ReLU 와 비교 

Deep netowrk 에서 성능 비교

Swish 와 ReLU의 정확도를 비교한 결과, Layer 40 ~ 50 층에서 Swish 가 훨씬 좋은 성능을 보였습니다. 레이어가 깊어갈 수록 데이터가 압축되는 squishing 이 일어나는데, Swish 가 ReLU에 비해 squishing 을 잘 대응합니다. 

 

batch-size 성능 비교

batch size가 128 / 256 / ... / 2048 일때 모두 Swish가 더 우수했습니다. (테스트 모델 : ResNet-32 with different activation functions on CIFAR-10) 

 

Swish-β

β 값을 추가하여 활성화 함수를 좀 더 졍교하게 만들 수 있는데요, 논문에서 이 함수를 swish-β 로 소개합니다. 중요한 내용은 아니고, Swish 함수가 ReLU와 비슷하면서도 다른 특성을 지닌다는 것을 알 수 있기에 소개한 것 같습니다. 

f(x; β) = 2x · σ(βx)

where σ(x) = (1 + exp(−x))−1

β값에 따라 swish-β는 선형함수가 되기도, ReLU와 유사한 함수가 됩니다. 

β : 0 일때 

선형함수와 동일합니다. 

f(x) = x (β = 0)

β -> infinte 일때

ReLU 함수와 유사해집니다. 

 

특징 

swish가 다른 활성화 함수에 비해 동일한 네트워크에서 더 우수한 성능을 내는 이유를 4가지 성질을 통해 설명합니다. 

Unbounded Above

비유계, 함수의 출력의 상한 / 하한이 정해지지 않은 것, Swish는 함수 출력 상한이 정해지지 않은 함수입니다. (무한대로 증가) 

 

Bounded Below

아래로 유계, 하계가 존재 (전체 집합에서 부분집한 어떤 값을 가져오더라도, 그 값보다 작거나 같은 값을 하계라고 칭함)

 

Non-monolitic 

비단조성, 결론-관계가 단조롭지 않음, Swish 함수 일부 구간에서 입력값이 증가하더라도, 출력값이 감소하는 구간이 존재 

 

Smoothness

다른 활성화 함수에 비해 같은 범위 내 더 다양한 결과를 도출합니다. 

예) "검정색 - 흰색" 이 아니라 "검정색 - 회색90 - 회색80 - ... - 회색10 - 흰색" 

 

Mish

swish를 참고하여 만들어진 Mish라는 활성화 함수도 있습니다. 

Mish(x) = x ∗ Tanh(Softplus(x))

 

생각

좋은 활성화 함수를 '발명' 보다는 '발견'한 느낌 입니다. 논문 저자들이 최대한 swish 가 성능이 좋은 이유를 서술했지만, 뭔가 최대한 다 시도해 보고 이게 제일 괜찮구나 싶어서 논문을 쓴 느낌입니다. 

원래 이쪽 논문이 이런 건지는 잘 모르겠습니다. 수학적으로 / 논리적으로 좀 더 규명할 수 있는 근거가 있으면 좋겠다는 생각입니다. 

swish 논문을 쭉 읽어보면 모든 예제 및 실험은 배치 정규화를 가정했습니다. swish를 활용하고자 할 때 배치 정규화의 역할이 중요하다는 것을 기억하는 것이 좋을 듯 합니다. 

 

참고 자료