활성화 함수 (Activation Function)

개요

✔ 출력값을 활성화를 일으키게 할 것인가를 정하고 그 값을 부여하는 함수

퍼셉트론의 출력값을 결정하는 비선형(non-linear) 함수

✔ Data를 비선형으로 바꾸기 위함

특징

  • 선형(linear) 시스템은 쉽지만, 망이 깊어지지 않음
  • 선형 함수로 여러 함수를 합성하는 경우, 치환을 통해 하나의 선형 함수로 만들 수 있어서 여러 층을 쌓는 효과를 볼 수 없기 때문
  • 선형함수로만 구성한다면 성질로 인해 hidden layer는 결국 하나
  • 선형 시스템의 XOR 한계 문제

종류

Sigmoid 함수

+center

  • 모든 입력값에 대해 출력값이 실수값으로 정의
  • 값이 작아질수록 0, 커질수록 1에 수렴
  • 출력이 0 ~ 1 사이로 확률 표현 가능
  • Gradients Vanishing & Exploding 문제 존재
미분

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

+center

  • 모든 입력값에 대해 출력값이 실수값으로 정의
  • 값이 작아질수록 -1, 커질수록 1에 수렴
  • 입력값이 0에 가까울수록 미분이 크기 때문에 출력값이 빠르게 변함
  • Gradients Vanishing & Exploding 문제 존재

Softmax 함수

+full

  • 다중 클래스 분류에서 사용되는 활성화 함수
  • 분류될 클래스가 n개라 할 때, n차원의 벡터를 입력받아, 각 클래스에 속할 확률을 추정함
  • class 분류를 위하여 마지막 단계에서 출력값에 대한 정규화

  • 출력값이
  • 입력값을 각각 지수함수로 취하고, 이를 정규화
  • 정규화로 인해 각 출력값은 0~1 값을 가짐
  • 모든 출력값의 합은 1
  • 가지 중 한가지에 속할 확률 표현 가능

ReLU 함수 (Rectified Linear Unit)

+center

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

  • 딥러닝 분야에서 가장 많이 사용되는 활성화 함수
  • Sigmoid, tanh의 Gradients Vanishing & Exploding 문제 해결
  • 입력값이 음수일 경우, 출력값과 미분값 모두 0으로 강제하므로 죽은 뉴런을 회생하는데 어려움 존재(= Dying ReLU)
  • 구현이 단순하고 연산이 필요 없이 임계값만 활용하므로 빠름
미분


Leaky ReLU 함수

+center

  • 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

  • sigmoidtanh는 각각 (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를 찾아가게 한다.

참고


Prev: 2. 딥러닝 학습

Next: 4. 손실 함수(Loss Function)


DeepLearning