활성화 함수 총정리 – ReLU, Sigmoid, Tanh의 차이와 선택법

함수 코드 작성 사진


딥러닝 모델을 처음 만들었을 때, 구조를 구성하고 학습 코드를 작성하는 것까지는 어렵지 않았지만, '활성화 함수를 무엇으로 선택할 것인가'라는 문제 앞에서는 막막함을 느꼈습니다. 단순히 튜토리얼에서 쓰는 함수를 그대로 따라 했지만, 모델 성능이 만족스럽지 않았고, 다양한 활성화 함수의 특성과 차이를 정확히 이해하지 못하고 있었다는 점을 나중에서야 깨달았습니다. 이 글에서는 대표적인 활성화 함수인 ReLU, Sigmoid, Tanh를 중심으로 각각의 특징과 사용 시 고려해야 할 점들을 정리해보겠습니다.

ReLU 함수 – 간단하지만 강력한 기본 선택지

ReLU(Rectified Linear Unit)는 현재 딥러닝에서 가장 널리 사용되는 활성화 함수입니다. 정의는 간단하며, 입력이 0보다 크면 그대로 출력하고, 그렇지 않으면 0을 출력합니다. 수식으로는 f(x) = max(0, x)로 표현됩니다.

ReLU의 가장 큰 장점은 계산이 빠르고, 경사 소실 문제를 완화한다는 점입니다. 이전에 주로 사용되던 Sigmoid나 Tanh 함수는 입력값이 커지거나 작아질수록 기울기가 0에 가까워지는 경향이 있어 역전파 과정에서 학습이 잘 되지 않는 문제가 있었습니다. 반면 ReLU는 양수 구간에서는 일정한 기울기를 유지하기 때문에 깊은 신경망에서도 안정적인 학습이 가능합니다.

그러나 ReLU에도 단점은 존재합니다. 입력이 음수일 경우 출력이 0이 되며, 이로 인해 뉴런이 죽은 상태(dead neuron)가 되는 현상이 발생할 수 있습니다. 이런 문제를 완화하기 위해 Leaky ReLU, Parametric ReLU와 같은 변형 함수들도 사용됩니다.

실무에서는 특별한 이유가 없다면 대부분의 은닉층에서 기본적으로 ReLU를 사용하며, 그 단순함과 효율성 덕분에 다양한 모델에서 좋은 성능을 보이는 안정적인 선택지입니다.

Sigmoid 함수 – 확률 출력에 적합한 고전적인 선택

Sigmoid 함수는 전통적인 인공신경망에서 많이 사용되었던 활성화 함수로, 입력값을 0과 1 사이의 실수로 변환합니다. 수식으로는 f(x) = 1 / (1 + exp(-x))로 정의됩니다. 이 함수는 출력이 확률처럼 해석될 수 있어, 이진 분류 문제의 출력층에서 자주 사용됩니다.

Sigmoid의 장점은 출력 범위가 제한적이기 때문에 출력값을 안정적으로 컨트롤할 수 있다는 점입니다. 하지만 단점도 명확합니다. 입력값이 매우 크거나 작을 경우, 함수의 기울기가 거의 0에 가까워지며, 이로 인해 역전파 시 그래디언트가 사라지는 ‘기울기 소실’ 문제가 발생합니다.

또한 출력이 0을 기준으로 대칭적이지 않기 때문에, 뉴런의 출력이 항상 양수로 치우치는 경향이 있으며, 이는 다음 층의 뉴런들이 비효율적으로 학습되는 원인이 되기도 합니다. 이런 점 때문에 현재는 대부분의 은닉층에서는 Sigmoid 대신 ReLU 계열이 선호되지만, 이진 분류의 출력층에는 여전히 널리 사용되고 있습니다.

Tanh 함수 – 중심이 0인 매끄러운 비선형 함수

Tanh 하이퍼볼릭 탄젠트 함수는 Sigmoid 함수와 유사하지만, 출력 범위가 -1에서 1 사이이며, 중심이 0이라는 점에서 차이가 있습니다. 수식은 f(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x))로 표현됩니다.

Tanh 함수는 출력이 양과 음 모두 가능하다는 특성 덕분에, Sigmoid보다 더 나은 수렴 속도와 학습 안정성을 제공합니다. 특히 입력값의 평균이 0 근처에 있을 때, 뉴런이 더 효율적으로 작동할 수 있도록 도와줍니다. 그래서 일부 모델에서는 ReLU가 널리 사용되기 이전에 Tanh가 은닉층의 기본 활성화 함수로 많이 쓰였습니다.

그러나 Tanh도 기울기 소실 문제가 존재합니다. 입력값이 크거나 작아질수록 기울기가 0에 가까워지기 때문에, 딥러닝 모델이 깊어질수록 학습 속도가 급격히 저하될 수 있습니다. 이런 이유로 최근에는 깊은 신경망 구조에서는 사용 빈도가 낮아졌지만, shallow network나 특정 상황에서는 여전히 유효한 선택이 될 수 있습니다.

결론 – 상황에 맞는 활성화 함수 선택이 중요하다

활성화 함수는 신경망에서 비선형성을 부여하고, 뉴런이 복잡한 패턴을 학습할 수 있도록 돕는 핵심 요소입니다. ReLU, Sigmoid, Tanh는 각각의 특성과 장단점을 가지고 있으며, 어떤 함수를 선택하느냐에 따라 학습 속도와 성능이 크게 달라질 수 있습니다.

일반적으로 은닉층에서는 ReLU가 기본 선택지이며, 출력층에서는 문제의 특성에 따라 Sigmoid나 Softmax, 혹은 선형 함수를 사용합니다. 예를 들어 이진 분류 문제는 Sigmoid, 다중 분류는 Softmax, 회귀 문제는 선형 활성화가 사용됩니다. Tanh는 입력이 음수와 양수를 모두 포함하며 중심화된 데이터일 경우 고려할 수 있습니다.

제가 참여했던 한 자연어 처리 프로젝트에서는, 초기에는 ReLU만 사용했지만 Tanh를 일부 층에 도입하자 수렴 속도가 개선된 경험이 있었습니다. 이처럼 단순히 기본 설정에 의존하기보다는 문제의 특성과 데이터 분포, 모델의 구조에 따라 활성화 함수를 신중히 선택하는 것이 중요합니다.

댓글

이 블로그의 인기 게시물

모델 평가 지표 정리 – 정확도, 정밀도, F1 Score까지

선형회귀와 로지스틱 회귀 – 가장 기초적인 예측 모델들

지도학습 vs 비지도학습 – 머신러닝의 대표 학습 방식 비교