# 활성화 함수의  한계 (Limitations of Activation Functions)

#### 소실되는 기울기 문제 (Vanishing Gradient Problem)

소실되는 기울기 문제는 주로 시그모이드 함수(Sigmoid Function)와 하이퍼볼릭 탄젠트 함수(Tanh Function)에서 발생하는 대표적인 문제다. 이 함수들은 입력값이 매우 크거나 작을 때, 그 출력값이 포화 상태로 접어들어 변화량이 미미해진다. 예를 들어, 시그모이드 함수의 경우 출력값이 0에 가까워지거나 1에 가까워지면, 미분값이 0에 가까워져서 역전파(Backpropagation) 과정에서 기울기가 급격히 감소한다. 이로 인해 네트워크의 하위 계층으로 갈수록 기울기가 거의 전파되지 않게 되어, 가중치 업데이트가 제대로 이루어지지 않는 현상이 발생한다. 이러한 문제는 특히 심층 신경망(Deep Neural Networks)에서 학습을 방해하는 주요 요인 중 하나로 알려져 있다.

#### 폭발하는 기울기 문제 (Exploding Gradient Problem)

폭발하는 기울기 문제는 소실되는 기울기 문제와는 반대의 개념으로, 활성화 함수에 의해 기울기가 지나치게 커지는 현상을 말한다. 주로 Recurrent Neural Networks (RNNs)와 같은 구조에서 발생하며, 활성화 함수가 포화 영역에서 벗어날 때 발생할 수 있다. 기울기가 지나치게 커지면 역전파 과정에서 기울기 값이 기하급수적으로 증가하여, 가중치 업데이트 시 큰 변화가 생기고, 이는 결국 네트워크의 불안정성을 초래하게 된다. 폭발하는 기울기는 네트워크 학습의 발산으로 이어질 수 있으며, 이 경우 모델이 정상적으로 수렴하지 못하게 된다.

#### 시그모이드 함수의 출력 중심화 문제 (Output Centering Issue in Sigmoid Function)

시그모이드 함수의 또 다른 단점은 출력값이 항상 0에서 1 사이로 제한된다는 점에서, 이 함수는 0을 중심으로 대칭적이지 않다. 이는 출력의 평균이 0이 아닌 0.5에 수렴하는 경향을 가지게 하며, 이로 인해 역전파 과정에서 가중치 업데이트의 효율이 떨어질 수 있다. 출력이 0에 가까워지는 것이 아니라 0.5에 수렴할 때, 신경망의 출력은 학습 과정에서 균형을 맞추기 어려워지며, 이로 인해 네트워크의 학습 속도가 느려지거나 최적화에 어려움을 겪을 수 있다.

#### 렐루 함수의 죽은 뉴런 문제 (Dead Neuron Issue in ReLU Function)

렐루 함수는 비선형성을 도입하고 소실되는 기울기 문제를 완화시키는 데 중요한 역할을 하지만, 그 자체로도 단점을 가진다. 렐루 함수의 정의상, 입력이 음수일 경우 출력이 0이 되는데, 이로 인해 해당 뉴런이 영구적으로 비활성화되는 '죽은 뉴런' 문제가 발생할 수 있다. 이는 해당 뉴런이 더 이상 학습에 기여하지 않게 되고, 네트워크의 표현력이 감소하게 된다. 특히, 렐루 함수를 사용할 때 학습률이 너무 크면 많은 뉴런들이 죽은 상태로 남아 있게 되어, 네트워크 성능이 크게 저하될 수 있다.

#### 활성화 함수의 미분 불연속성 문제 (Discontinuity in Derivatives)

일부 활성화 함수, 특히 ReLU와 같은 비선형 함수는 특정 지점에서 미분이 불연속적이다. 예를 들어, ReLU 함수는 $ x = 0 $에서 미분이 정의되지 않는다. 이러한 불연속성은 역전파 과정에서 수치적 불안정을 유발할 수 있다. 특히, 학습 알고리즘이 수치적 방법에 의존하는 경우 이러한 문제는 더욱 두드러질 수 있다. 이는 네트워크가 극단적으로 큰 또는 작은 학습률에 민감하게 반응하게 하며, 학습 과정의 안정성을 해칠 수 있다.

#### 과대적합 문제 (Overfitting)

비선형 활성화 함수는 네트워크의 표현력을 증가시키지만, 이로 인해 과대적합(Overfitting) 문제가 발생할 수 있다. 네트워크가 너무 복잡해지면서 훈련 데이터에 지나치게 맞춰져, 일반화 능력이 떨어질 수 있다. 이는 특히 활성화 함수가 깊은 신경망에서 사용될 때 더 큰 문제가 될 수 있으며, 따라서 활성화 함수를 사용할 때는 적절한 정규화 기법이나 드롭아웃(Dropout)과 같은 기법이 필요할 수 있다.

#### 계산 비용 및 복잡도 (Computational Cost and Complexity)

일부 활성화 함수는 계산 비용이 크거나 복잡한 연산을 필요로 한다. 예를 들어, 시그모이드 함수나 tanh 함수는 지수함수를 계산해야 하므로, 대규모 신경망에서 사용될 경우 계산 비용이 상당히 증가할 수 있다. 이러한 연산 비용은 실시간 애플리케이션이나 자원이 제한된 환경에서의 사용을 어렵게 만들 수 있다. 반면, ReLU와 같은 간단한 함수는 계산 비용이 매우 낮지만, 그럼에도 불구하고 앞서 언급한 단점들로 인해 모든 상황에서 이상적이지는 않다.
