1. Activation?
딥러닝 모델을 구성하다 보면 레이어 안에 활성화 함수(Activation)이 구성된다는 것을 알 수 있다.
그렇다면 활성화 함수는 무엇일까? 그리고 왜 사용하는 것일까?
활성화 함수는 은닉층을 통과 해서 나온 가중치 곱의 합에 '비선형성'을 추가하기 위해서 사용된다.
'비선형성'을 왜 추가해야할까?
바로 모델 레이어를 깊게 쌓는 것에 의미를 부여하기 위해서이다.
쉽게 말해서 활성화 함수 위치에 선형함수를 사용하게 되면 그냥 단순한 선형분류기의 기능밖에 하지 못한다.
위의 사진을 보면 선형과 비선형의 의미를 이해할 수 있을 것이다.
선형으로 분류하는 문제같은 경우는 신경망 모델이 아니더라고 기존 머신러닝 모델로 해결가능하다.
그러나 실제 세계의 문제에서는 선형 그래프의 모양처럼 문제가 나눠지지 않는다.
즉, 비선형 분류기를 구성해서 문제를 해결해야한다.
따라서, 레이에어 비선형성을 추가하기 위해서 활성화 함수를 이용하는것이다.
그렇다면 이러한 활성화 함수에는 어떠한 것들이 있을까?
아래부터 다양한 활성화 함수를 살펴보고 각 활성화 함수가 갖고 있는 장단점을 분석해 보자.
2. Activation 종류
2.1 Sigmoid (시그모이드)
대표적인 활성화 함수, 그리고 완전 초창기 딥러닝 모델에서 활용되던 활성화 함수인 시그모이드 함수이다
시그모이드 함수는 입력값을 받아서 0과 1사이의 값으로 출력한다.
또한 시그모이드 함수는 계단식 모양이 아니라 s자의 모양이기 때문에 미분이 가능했다.
미분가능이 필요한 이유는 가중치를 조절할때 미분을 활용해야 하기 때문이다.
그러나 이러한 시그모이드 함수의 단점은 명확하다.
음수의 값을 0에 가깝게 표현한다는 것이다.
따라서 레이어가 깊어질 수록 Gradigent Vanishing의 문제가 발생하게 되는데
이는 역전파를 위한 기울기가 갈수록 손실되는 것을 의미하면 결국 학습이 어려워진다.
이러한 문제점을 어느 정도보완한 함수가 등장한다.
2.2 Tanh (하이퍼볼릭 탄젠트 함수)
시그모이드 함수의 또다른 문제점은 함수의 중심점이 0이 아니라는 것이다.
즉, 함수값 중심이 0이 아니다(non-zero centered)라는것은 입력값이 항상 양수이기 때문에 가중치에 대한 기울기가
항상 양수 또는 음수가 되어 학습이 잘 안될 수 있다. 지그재그 문제가 발생하는 것이다.
따라서 학습이 잘되지 않고 속도가 느려진다.
tanh함수는 이를 보완하여 함수의 중심점을 0으로 이동시켰다.
또한 음수의 값을 입력값을 -1과 1사이로 출력하기 때문에 어느 정도의 Gradigent Vanishing문제를 해결했다.
그러나 '어느 정도'라는 것은 아직 Gradigent Vanishing문제가 남아있었다는 것을 의미하며
뒤에 이를 보완한 또다른 함수가 등장한다.
2.3 ReLU (렐루)
최근 딥러닝 모델에서 가장 많이 사용되는 활성화 함수인 ReLU이다.
입력값이 0보다 크면 기울기가 1인직선으로
0보다 작으면 0이된다.
도식에서 알수 있듯이 매우 간단한다.
따라서 모델의 학습속도가 빠르고 연산 비용도적다.
이러한 장점에 의해서 딥러닝 모델에서 가장많이 활용된다.
그러나 이러한 ReLU도 단점이 존재한다. 앞에서 말했듯이 0보다 작으면 0값이 되는데
이는 0보다 작은 값에서 뉴런이 죽을수도 있다는 것을 의미한다.
그럼에도 불구하고 가장많이 활용된다.
2.4 추가적인 활성화 함수
이후 등장하는 활성화 함수는 대부분 ReLU를 변형시킨것으로 ReLU의 단점을 보완하려고했다.
대표적인 것이 Leaky ReLU, PReLU, ELU, MaxOut이 있다.
Leaky ReLU
Leaky ReLU는 기존렐루에서 a를 곱한 x와 x를 비교하여 최댓값을 출력하는 것(a = 0.01 대부분)으로
값이 음수여도 0이되지 않고 음수로 나타난다.
따라서 기울기가 0이 되지 않기 때문에 뉴런이 죽는 문제는 발생하지 않는다
다른 추가적임 활성화 함수는 아래의 링크를 참고하길 바란다
지금까지 다양한 활성화 함수를 살펴보았다.
많은 종류의 활성화 함수가 등장하였지만
그럼에도 불구 하고 가장 많이 활용되는 것은 ReLU이다.
또한 데이터마다, 논문의 모델마다 활용되는 활성화 함수가 다르고 성능도 다르기 때문에
이를 상화에 맞춰서 경험적으로 비교하면서 사용하는 것이 최적의 방법일 것이다.
'ML 🐼 > 딥러닝 🔫' 카테고리의 다른 글
[논문 리뷰] Notion 논문리뷰 링크 (0) | 2023.08.31 |
---|---|
[논문 리뷰] CutMix : Regularization Strategy to Train Strong Classifiers with Localizable Features (2) | 2023.03.05 |
[딥러닝]규제 Regularization (0) | 2023.01.05 |
[딥러닝] 옵티마이저 (Optimizer) (0) | 2023.01.04 |
[논문 구현] 근본을 찾아서... 0. LeNet-5 (GradientBased Learning Applied to DocumentRecognition) (0) | 2022.12.05 |