데이터

시그모이드, 소프트맥스, 하이퍼볼릭탄젠트 등 활성화 함수 개념 총 정리

파카잇 2023. 3. 24. 18:06

활성화 함수(Activation Function)는 인공 신경망에서 입력 신호를 전달받아 가중치를 적용한 후, 출력 값을 결정하는 함수입니다.
즉, 신경망의 출력 값을 결정하는 핵심적인 역할을 합니다.
인공 신경망에서 주로 사용되는 활성화 함수에는 선형 함수와 비선형 함수가 있습니다.
선형 함수는 입력 값에 대해 일정한 비율로 결과값이 변하는 함수로, 예를 들어 입력 신호가 2배가 되면 출력값도 2배가 됩니다.
따라서, 선형 함수는 다층 퍼셉트론(Multi-Layer Perceptron, MLP)에서는 효과적이지 않습니다.
비선형 함수는 함수 그래프가 직선이 아닌 함수로, 입력 값에 대해 비선형적으로 출력 값을 결정합니다.
비선형 함수를 사용하면 신경망의 출력 값을 더 복잡하게 만들 수 있으며, 이를 통해 보다 복잡한 문제를 해결할 수 있습니다.
대표적인 비선형 활성화 함수로는 시그모이드(Sigmoid), 하이퍼볼릭탄젠트(Hyperbolic tangent, tanh), 렐루(Rectified Linear Unit, ReLU), Leaky ReLU 등이 있습니다.
시그모이드 함수는 출력 값이 0과 1 사이의 값을 가지며, tanh는 출력 값이 -1과 1사이의 값을 가집니다.
ReLU 함수는 입력 값이 0 이하일 경우 0을 출력하고, 0을 초과하면 입력 값을 그대로 출력합니다.
Leaky ReLU는 입력 값이 0 이하일 경우 지정한 기울기만큼 기울어진 선을 그리며, 0을 초과할 경우 입력 값을 그대로 출력합니다.
딥러닝에서는 ReLU 함수가 일반적으로 가장 많이 사용되는 활성화 함수 중 하나입니다.
이유는 입력이 양수인 경우에는 기울기 값이 변하지 않기 때문에 시그모이드 함수와 tanh 함수에 비해 더 빠른 학습이 가능하기 때문입니다.

 

시그모이드 함수는 입력값을 0과 1 사이의 값으로 변환하는 비선형 함수입니다.
이 함수의 식은 다음과 같습니다.
f(x) = 1 / (1 + e^-x) 여기서 x는 입력값을 나타냅니다.
시그모이드 함수는 그래프를 그리면 S자 모양이 나타나기 때문에 시그모이드라는 이름이 붙었습니다.
시그모이드 함수는 보통 확률값을 출력하는데에 많이 사용됩니다.
이 함수를 사용하면 입력값이 커지면 1에 가까워지고, 작아지면 0에 가까워집니다.
따라서 시그모이드 함수의 출력값은 0과 1 사이의 값이 되며, 로지스틱 회귀나 인공신경망의 출력층 등에서 자주 사용됩니다.
하지만 시그모이드 함수는 입력값이 너무 크거나 작으면 그래디언트 소실 문제(vanishing gradient problem)가 발생하기 때문에, 딥러닝에서는 더 나은 활성화 함수를 사용하는 것이 권장됩니다.

 

소프트맥스 함수는 벡터의 출력값을 모두 0과 1 사이의 값으로 조정한 다음, 이들의 합이 1이 되도록 정규화하는 함수입니다.
이는 보통 다중 클래스 분류 문제에서 출력층에서 활성화 함수로 사용됩니다.
수식으로 나타내면, 입력값 $z=(z_1, z_2, ..., z_k)$를 받아서 $k$차원 벡터 $y=(y_1, y_2, ..., y_k)$를 출력합니다. $$
y_i = \frac{e^{z_i}}{\sum_{j=1}^k e^{z_j}} $$ $e$는 자연 상수로 2.71828...입니다.
소프트맥스 함수는 입력값을 확률로 해석할 수 있게 해주기 때문에 분류 문제에서 유용하게 사용됩니다.
예를 들어, 3개의 클래스가 있을 때 소프트맥스 함수의 출력값이 $(0.2, 0.5, 0.3)$으로 나오면, 이는 첫번째 클래스가 20%, 두번째 클래스가 50%, 세번째 클래스가 30%의 확률로 해당하는 클래스에 속한다는 것을 의미합니다.
이를 바탕으로 최종적인 분류결과를 도출할 수 있습니다.

 

하이퍼볼릭 탄젠트 함수는 수학에서 사용되는 하이퍼볼릭 함수중 하나로, tanh(x)로 표현됩니다.
x값에 대한 하이퍼볼릭 탄젠트 함수의 결과는 -1과 1사이의 값입니다.
하이퍼볼릭 탄젠트 함수는 일반적인 탄젠트 함수와 비슷하지만, 쌍곡선 함수를 사용하여 계산됩니다.
이는 x가 큰 값에서 빠르게 성장하거나 작은 값에서 빠르게 감소하는 일반적인 탄젠트 함수와는 다릅니다.
때문에, 하이퍼볼릭 탄젠트 함수는 종종 값의 범위가 정규화(normalization) 되어야 하는 많은 문제에 사용됩니다.
하이퍼볼릭 탄젠트 함수의 수식은 다음과 같이 나타낼 수 있습니다.
tanh(x) = (e^x - e^-x) / (e^x + e^-x) 여기서 e는 자연 상수를 의미하며, x는 라디안 단위로 표현된 각도나, 수치 값입니다.
하이퍼볼릭 탄젠트 함수는 다양한 분야에서 사용됩니다.
예를 들어, 신경망 모델의 시그모이드 함수와 비슷하게 사용되어 입력 값을 -1과 1 사이으롣 제한하여 활성화 함수를 만들 수 있습니다.
또한, 하이퍼볼릭 탄젠트 함수는 다양한 물리학, 공학, 경제학 등에서 수학적 모델링에 활용됩니다.