본문 바로가기
딥러닝 with Python

[개념정리] SiLU(Sigmoid Linear Unit) 활성화 함수

by CodeCrafter 2024. 10. 12.
반응형

이번에 알아볼 내용은 활성화 함수 중 최근 모델들에 많이 사용되는 

 

SiLU에 대해서 알아보겠습니다.

 

1. SiLU (Sigmoid Linear Unit) 

SiLU(Sigmoid Linear Unit, 또는 Swish로도 알려졌습니다)는 인공 신경망의 활성화 함수 중 하나로 아래와 같이 정의 됩니다.

 

 

 

여기서 σ(x) 는 Sigmoid 함수를 의미합니다.

 

즉, SiLU는 입력값인 x와 sigmoid 함수의 출력을 곱한 것을 최종 출력으로 도출하는 함수입니다.

 

이를 직관적으로 생각해보면, 부분적인 스케일링(Scaling)을 하는 것으로 보이는데요.

 

즉, 위 그림에서 보이듯 sigmoid 함수는 0과 1사이의 값을 도출하기 때문에,

입력값 x가 양수일때 x의 크기를 유지하면서 점진적으로 축소시키고, x가 음수일때는 그 값을 더 작게 만들어 줍니다. 

 

이와 같은 SiLU의 특징은 다음과 같이 크게 3가지 정도로 요약해 볼 수 있습니다.

 

1) 부드러운 비선형성 : ReLU(Rectified Linear Unit)과는 달리 SiLU는 연속적이고 미분 가능한 함수이기에 더 안정적인 학습을 제공할 수 있습니다.

 

2) 자연스러운 학습의 흐름 제공 : 음수값 입력에 대해선 값을 완전히 억제하는(0으로 만들어버리는) ReLU와 달리, 약하게나마 값을 도출하여 정보 손실을 최대한 적게 만들어주기 때문에 학습에 안정성을 더할 수 있습니다.

 

3) ReLU 대비 성능 향상 : 최근 도입되었던 유명한 기본 Architecture 들에서 SiLU를 활용하여 ReLU보다 더 좋은 성능을 보인 연구들이 많이 있습니다. 

 

* 대표적으로 Efficient Net이나, Vision Transformer, Mamba 등 기본 아키텍처로 많이 활용되는 최신 모델들에 SiLU가 활용되고 있습니다. 

 

(아래는 SiLU와 ReLU를 2차원에서 비교한 그래프입니다.)

 

반응형

댓글