인공지능

[인공지능/Deep Learning] 딥러닝의 기초 - 활성화 함수

y_lime 2024. 11. 22. 17:14

활성화 함수 (Activation Function)

  • 정의: 출력값을 활성화시키는 여부를 결정하고 그 값을 부여하는 함수.
  • 역할: 퍼셉트론의 출력값을 결정하는 비선형 함수로, 데이터의 비선형성을 반영하기 위해 사용
  • 특징
    • 선형 시스템의 한계: 선형 함수로만 구성된 네트워크는 다층 구조를 쌓아도 결국 하나의 선형 함수로 축소된다. 따라서 선형 시스템으로는 XOR과 같은 비선형 문제를 해결할 수 없다.
    • 비선형성 필요: 활성화 함수는 네트워크가 복잡한 패턴을 학습할 수 있도록 도와준다.

주요 활성화 함수

1. Sigmoid 함수

  • 모든 입력값에 대해 출력값이 실수값으로 정의
  • 출력값이 0과 1 사이의 연속적인 값으로 정의
  • 입력값이 작아질수록 0에 가까워지고 커질수록 1에 가까워짐
  • 확률 표현 가능 (이진 분류에 유용 : 0~1 사이).
  • 문제: Gradients Vanishing & Exploding 문제 발생.

2. Tanh 함수 (하이퍼볼릭 탄젠트)

  • 모든 입력값에 대해 출력값이 실수값으로 정의
  • 출력값이 -1과 1 사이의 연속적인 값으로 정의
  • 값이 작아질수록 -1, 커질수록 1에 수렴
  • 입력값이 0에 가까울수록 미분이 크기 때문에 출력값이 빠르게 변함
  • 문제: Gradients Vanishing & Exploding 문제 발생.

3. Softmax 함수

  • 다중 클래스 분류에서 사용, 각 클래스에 속할 확률 추정.
  • 모든 출력값의 합이 1이 되도록 정규화.
  • N개의 클래스 중 하나에 속할 확률을 표현.​

4. ReLU 함수 (Rectified Linear Unit)

  •  인 선형함수가 입력값 0 이하에서부터 rectified(정류)된 함수

  • 딥러닝 분야에서 가장 많이 사용되는 활성화 함수
  • 입력값이 0 이하일 때 출력값은 0, 0 초과 시 입력값 그대로 출력.
  • 구현이 단순하고 연산이 필요 없이 임계값만 활용하므로 빠름
  • Gradients Vanishing & Exploding 문제 해결.
  • 문제: Dying ReLU 현상 (음수 입력에 대해 뉴런이 죽음; 출력값과 미분값 모두 0으로 강제하므로 ).


5. Leaky ReLU 함수

  • ReLU 함수에서 발생하는 Dying ReLU 현상을 보완하기 위한 함수
  • 입력값이 음수일 때 출력값을 0이 아닌 0.001과 같은 매우 작은 값을 출력하도록 설정
  • 는 0.01, 0.001과 같은 하이퍼파라미터
  • 는 0이 아닌 값이기 때문에 입력값이 음수라도 기울기가 0이 되지 않아 뉴런이 죽지않음

SiLU 함수

  • ReLU 와 비슷한 특성을 가지지만 다양한 연구에서 ReLU보다 나은 성능을 보임
  • 음수에 대해 바로 0으로 수렴하지 않되, 너무 큰 음수에 대해서 0으로 수렴
  • 다음 특징으로 인해 성능을 높일 수 있다고 본다
    • Unbounded above where 
    • Bounded below where 
    • Non monotonicity
    • Smooth figure

미분

Unbounded above

  • sigmoid와 tanh는 각각 (0, 1), (-1, 1)을 범위로하지만 ReLU의 범위는 (0, ) 이다. SiLU역시 양수에 대해 무한대 범위를 가지므로 이러한 점이 gradient vanish를 막아줌

Unbounded above

  • 너무 큰 음수값에 대한 0으로의 수렴하여 일종의 강한 규제를 거는 효과
  • ReLU는 음수값을 무조건 0으로 보내므로 dying ReLU에 직면한다는 단점이 있지만 Swish는 어느 정도 작은 음수값에 대해서 허용함

Non monotoncity

  • Swish는 앞서 언급한 것처럼 약간의 음수를 허용하고 있고 심지어 양수부분은 직선 그래프가 아니므로 ReLU와 비슷하게 생겼지만 오히려 표현력이 좋다.
  • 미분그래프에서 0 근처를 보면 ReLU와의 차이점이 확연히 보인다. 전에 Step에 비해 Sigmoid가 가진 장점을 논의했듯이 gradient로 작은 음수가 전해지더라도 온전히 이전 layer로 전할 수 있어서 학습이 잘 된다.

Smooth figure

  • 6개 layer를 가진 임의의 신경망을 학습해서 출력 layer의 activation map이다. ReLU에서 별모양이 눈에 띄는데 activation map 상에서 갑작스러운 변화를 의미한다. 이건 작은 변화에도 민감하게 반응하게 만들어서 모델이 학습을 어렵게 하는 원인이라고 다른 연구에서 지목하기도 한다. Swish처럼 경계가 흐릿하면 ReLU와는 반대로 작은 변화에는 작게, 큰 변화에는 크게 반응하게 해서 optimizer가 제대로 minima를 찾아가게 한다.