ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 활성화 함수 총정리 – 시그모이드, ReLU, 하이퍼볼릭 탄젠트, Swish, SoftPlus
    딥러닝/활성화 함수 2022. 6. 8. 15:01

    최초의 활성화 함수는 매컬러-피츠 모델과 퍼셉트론에서 쓰인 계단 함수입니다. 이후 딥러닝이 활성화 되면서 시그모이드 계열 함수들이 쓰이다가 ReLU 함수들과 그 변형들이 쓰이기 시작했습니다.

     

    활성화 함수 (Activation Function)은 S자형의 시그모이드 계열과 구간 선형 함수인 ReLU 계열로 구분됩니다. 

     

    시그모이드 함수

    시그모이드 함수는 S자 형의 함수입니다. 함수 값의 결과인 축의 범위는 [0,1] 사이의 값입니다. 음수 값은 출력으로 나오지 않습니다. 모든 입력 x축 구간에서 미분할 수 있고 계속해서 증가하는 증가함수이므로 미분 값이 항상 양수입니다.

     

    • 출력은 [0,1]
    • 항상 양수 값만 출력
    • 증가함수
    • 모든 입력 구간에서 미분 가능

    하지만 시그모이드 함수는 문제점이 몇 가지 있습니다.

    • 시그모이드 공식에는 지수항을 포함하고 있기 때문에 연산 비용이 많이 듭니다. 하지만 이후 소개되는 ELU, Swish의 경우에도 같은 문제점이 있기는 해서 단점이긴 단점이지만 큰 단점은 아닌 것 같습니다.
    • 그라디언트 세츄레이션 문제 그라디언트는 편미분을 통해 계산되는데 시그모이드 함수 부분에서 미분을 할 경우 함수의 양쪽 끝부분인 -4와 +4 부분을 포함한 구간에서 미분치가 0이 됩니다. 그럴 경우 그라디언트가 0이 되고 학습이 진전이 되지 않아 오차가 더 이상 떨어지지 않게 됩니다.
    • 양수만 출력하는 것도 문제점이라고 볼 수 있습니다.

     

    하이퍼볼릭 탄젠트

    출력 값이 [-1,1] 사이의 값으로 시그모이드가 항상 양수를 출력하는 문제점을 개선한 함수로 쓰이기 시작했습니다. 하이퍼볼릭 탄젠트는 tanh라고 쓰며 공식은

    이고 시그모이드 항을 포함하도록 식을 정돈할 수도 있습니다. 하이퍼볼릭 탄젠트는 출력 값의 범위만 음수를 허용했을 뿐 이전의 시그모이드 함수의 단점을 그대로 가지고 있습니다.

    • 함수 정의에 지수항이 포함되어 있어 연산 비용이 많이 듭니다.
    • -4, +4를 포함하는 구간에서 미분 값이 0가 되어 그라디언트 세츄레이션 문제가 발생할 수 있습니다.

    ReLU 함수

    ReLU 양수 입력에 대해 어떠한 변형 없이 입력 값을 그대로 출력 값으로 하고 음수 입력에 대해 항상 0를 리턴하는 함수입니다. 따라서 입력 값이 양수인 경우에만 활성화 함수를 거쳐 값이 살아 있습니다. ReLU는 몇 가지 장점이 있습니다.

    • 식이 단순하여 연산이 거의 없고 x항의 미분은 1로 일정하므로 미분을 계산할 필요가 없기 때문에 때문에 빠릅니다.
    • 미분 값이 0이 되는 구간은 없습니다. 미분 값을 구할 수 없는 구간은 있습니다. 뾰족한 x=0  지점입니다.
    • 또한 음수 구간의 데이터를 일괄적으로 엘리먼트로 바꾸어 밀집 가중치 행렬에서 희소 가중치 행렬에 가깝게 변환하는 효과를 줍니다. 이는 연산량 감소로 이어집니다.

     

    단점도 아직 존재합니다.

    • 양수만 출력. 이를 개선하기 위해 Leaky ReLU가 탄생하였습니다.

    • 활성화 함수 ReLU를 거친 값들이 연속해서 0 값이 되는 경우가 있어 이를 Dead ReLU라고 부릅니다. 뉴런의 10-20%까지 이런 현상을 보이게 되면 학습에 문제가 생길 수 있습니다.

    활성화 함수에 대해 교과서적으로 설명했습니다. 실제로는 이것 저것 써보면서 잘 된 경험이 있으면 거의 그 활성화 함수를 주로 고려하게 됩니다. 저는 다음에 나오는 Swish 함수를 주로 사용합니다.

     

    Swish 함수

    구글에서 처음 개발하였고 네이버 RexNet에서 활성화 함수로 사용되었습니다.

    Softplus 함수

    삼성전자가 ICCV 2019 워크샵 논문에서 그 효용성을 강조하였습니다.

    '딥러닝 > 활성화 함수' 카테고리의 다른 글

    코사인 유사도 Loss  (0) 2022.06.05
    엔트로피와 크로스엔트로피 Cross Entropy  (0) 2022.06.05

    댓글

Designed by Tistory.