검수요청.png검수요청.png

활성화 함수

위키원
이동: 둘러보기, 검색

활성화 함수(Activation Function)는 인공신경망에서 뉴런의 출력을 결정하는 함수이다. 이 함수는 입력 신호를 받아서 비선형 변환을 적용하여 뉴런의 활성화 상태를 결정한다. 활성화 함수는 신경망이 복잡한 패턴을 학습하고 비선형성을 모델링할 수 있도록 도와준다.

아사달 스마트 호스팅 가로 배너 (since 1998).jpg
이 그림에 대한 정보
[아사달] 스마트 호스팅

개요[편집]

여러 개의 층으로 구성된 다층 구조의 신경망에서 주로 사용되며 이전 레이어에서의 가중합에 따라 활성화 여부가 결정된다. 이때 활성화 함수로는 다양한 종류의 함수가 사용될 수 있으며 신경망 전체 혹은 해당 레이어가 담당하는 역할에 따라 사용하는 활성화 함수의 종류가 달라진다. 인공신경망이 처음 나타났을 때에는 선형 분류에서는 뛰어난 성능을 보였지만 비선형 분류를 해결하는 데에는 어려움을 겪었다. 이때 비선형 활성화 함수를 사용하면 출력값이 선형적으로 나타나지 않기 때문에 비선형 분류에 활용할 수 있다는 장점이 부각되었다. 이를 통해 기존의 비선형 분류의 문제는 해결하였으나 기술이 발달하면서 파라미터의 개수가 점차 많아지게 되자 학습에 차질을 겪게 된다. 이 문제는 추후에 역전파 알고리즘(backpropagation algorithm)을 이용해 해결하게 된다.

활성화 함수의 종류는 다양하다. 먼저 출력값의 극성에 따른 구분이 가능한데, 양수만 출력하는 것을 단극성 활성화 함수, 음수와 양수를 모두 출력하는 것을 양극성 활성화 함수라고 한다. 또한 함수의 모양에 따라서도 다양하게 함수들을 분류할 수 있다.

주요 역할[편집]

비선형성 도입

신경망에서 활성화 함수가 없다면, 각 층(layer)에서 이루어지는 변환은 선형 연산(행렬 곱셈과 덧셈)에 불과하다. 즉, 입력 데이터를 단순히 가중치와 곱하고 합하는 과정만 반복되므로, 깊은 층을 추가하더라도 전체적인 모델은 선형 함수와 다를 바가 없게 된다. 하지만 실제 세계의 데이터는 대부분 복잡한 비선형 관계를 가지므로, 신경망이 이러한 복잡한 패턴을 학습하려면 반드시 비선형성이 필요하다. 활성화 함수는 이러한 비선형성을 신경망에 도입하여, 층을 거치면서 더욱 정교한 특징을 추출하고 복잡한 패턴을 학습할 수 있도록 만든다.

특징 추출 및 표현력 향상

활성화 함수는 단순히 비선형성을 추가하는 역할뿐만 아니라, 신경망이 입력 데이터에서 유의미한 특징(feature)을 효과적으로 추출하도록 돕는다. 예를 들어, ReLU 함수는 음수 값을 0으로 변환하는 특성을 가지고 있어, 모델이 중요한 특징에 집중하도록 유도한다. 반면, 하이퍼볼릭 탄젠트 함수는 출력 값을 -1에서 1 사이로 정규화하여, 신경망이 균형 잡힌 특징을 학습할 수 있도록 만든다. 이렇게 활성화 함수에 따라 신경망이 학습하는 방식이 달라지므로, 신중한 선택이 필요하다.

기울기 전파 및 학습 안정성 보장

신경망이 학습할 때, 역전파 알고리즘을 통해 오차를 최소화하는 방향으로 가중치를 조정한다. 이 과정에서 중요한 것이 바로 기울기(gradient)이다. 기울기가 너무 작아지는 문제(기울기 소실, vanishing gradient)나 지나치게 커지는 문제(기울기 폭발, exploding gradient)가 발생하면, 신경망의 학습이 비효율적으로 진행될 수 있다. 활성화 함수는 이러한 문제를 완화하는 데 중요한 역할을 한다. 예를 들어, ReLU 함수는 양수 입력에서는 기울기가 1로 유지되므로, 깊은 신경망에서도 기울기 소실이 덜 발생한다. 반면, 시그모이드 함수는 입력 값이 극단적으로 크거나 작을 때 기울기가 0에 가까워지므로, 깊은 네트워크에서는 학습이 원활하지 않을 수 있다.

출력 값의 정규화 및 안정성 유지

활성화 함수는 신경망의 출력 값을 특정 범위 내에서 유지하여 학습의 안정성을 보장하는 역할을 한다. 예를 들어, 시그모이드 함수는 출력을 (0,1) 범위로 제한하여 확률적 해석이 필요한 경우(예: 이진 분류 문제) 적합하다. 반면, Tanh 함수는 출력 값을 (-1,1)로 제한하여 평균값이 0에 가까운 데이터 분포를 유지하도록 돕는다. 적절한 정규화가 이루어지지 않으면, 신경망의 출력 값이 너무 크거나 작아져 학습이 불안정해질 수 있으므로, 데이터 특성에 맞는 활성화 함수를 선택하는 것이 중요하다.

종류와 특징[편집]

계단함수[편집]

계단함수(Step Function)는 가장 단순한 형태의 활성화 함수로, 특정 임계값을 기준으로 출력을 0 또는 1로 나눈다. 하지만 불연속 함수이기 때문에 미분이 불가능하여 역전파 학습이 어려우며, 연속적인 출력을 필요로 하는 신경망에는 적합하지 않다. 계단함수는 데이터의 손실이 발생할 가능성이 굉장히 높다. 따라서 과거에는 많이 사용되었지만, 현재는 많이 사용되지 않는다. 따라서 딥러닝 모델을 학습하는데 어려움이 있다. 코드는 다음과 같다.[1]

def step(x):
 return x > 0

시그모이드 함수[편집]

시그모이드 함수(Sigmoid Function)는 출력 범위를 (0,1) 사이로 제한하는 비선형 함수로, 확률적 출력을 생성하는 문제에서 많이 사용된다. 연속적이며 미분 가능한 특성을 가지고 있다. 하지만 입력 값이 크거나 작을 때 기울기가 매우 작아지는 기울기 소실 문제가 발생할 수 있으며, 이로 인해 깊은 신경망에서 학습이 어려워질 수 있다. 시그모이드 함수는 일반적으로 입력값인 의 값이 증가할 때 함수값인 의 값도 증가하는 양상을 보인다. 대표적인 시그모이드 함수에는 로지스틱 함수가 있으며 이는 다음과 같은 수식으로 나타낼 수 있다.

여기서 는 자연상수로, 약 에 해당한다. 이 함수는 입력 의 값이 어떤 범위에 있더라도 출력이 사이의 값을 가지며, 가 매우 큰 양수로 갈수록 출력은 에 가까워지고, 매우 큰 음수로 갈수록 출력은 에 가까워진다.

시그모이드 함수는 대표적인 활성화 함수로 사용되었다. 회귀분석에 있어서 선형 함수는 새로운 데이터의 추가가 기존의 분류 모델에 크게 영향을 미치는 반면, 시그모이드 함수에서는 해당 문제가 크지 않았다. 경사하강법을 시행할 때 기울기의 급격한 변화가 나타나지 않는다는 점도 시그모이드 함수의 장점이었다. 또한 시그모이드 함수의 중간 부분은 급격한 기울기를 가지는 반면, 출력값이 에 가까울수록 기울기가 완만하여 이진 분류를 해내는 데에 있어서 적합하였다. 뿐만 아니라, 인체가 어느 정도까지는 자극이 주어져도 이를 인식하지 못하다가 특정한 임계점을 넘어서는 순간 자극을 인식한다는 점과도 비슷한 측면이 있어 널리 사용되었다.[2][3]

하이퍼볼릭 탄젠트 함수[편집]

하이퍼볼릭 탄젠트 함수(Tanh Function)는 인공신경망에서 사용될 수 있는 대표적인 활성화 함수이다. 시그모이드 함수와 매우 유사한 모양의 함수로, 정의역은 실수 전체 집합이며 치역은 -1과 1 사이의 실수 집합이다. 일반적으로 x값이 증가할수록 y값이 증가하는 양상을 보이는데, x가 -2보다 작을 때 y값은 -1에 수렴하고 x가 2보다 클 때 y값은 1에 수렴한다. 시그모이드 함수와 유사하지만, 출력값의 범위가 로 확장되어 있다는 점에서 차이가 있다. 수식으로 나타내면 다음과 같다.

이 함수는 음수 입력 값에 대해 음수 출력을 제공하고, 양수 입력 값에 대해 양수 출력을 제공하는 대칭적인 형태를 가진다. 이러한 특성 덕분에 신경망에서 가중치가 업데이트될 때 중심을 0으로 맞추는 효과가 있으며, 시그모이드 함수보다 학습을 빠르게 진행할 수 있도록 한다.[4]

ReLU 함수[편집]

ReLU 함수인공신경망에서 자주 사용되는 활성화 함수이다. 정류 선형 유닛(Rectified linear unit)의 약자로, 주로 딥러닝 모델에서 뉴런의 활성화 여부를 결정하는 역할을 하며, 비선형성을 도입하여 신경망이 복잡한 문제를 학습할 수 있도록 돕는다. ReLU에서는 인 점을 제외하고는 모든 구간에서 선형함수이고 그 점에서 급격히 기울기가 변화하게 된다. 이 모습이 마치 전기회로정류소자의 출력 패턴과 비슷하다고 하여 지금과 같은 이름을 가지게 되었다. 기계학습 모델에서는 출력층이 아닌 층위의 노드에서 활성화 함수로 자주 사용된다. 수학적으로는 아래와 같이 정의된다.

즉, ReLU 함수는 입력값양수이면 그대로 출력하고, 음수이면 0으로 변환하는 간단한 함수이다. 이러한 구조 덕분에 계산이 빠르고, 경사소실(Gradient Vanishing) 문제를 완화하는 효과가 있다. 이 함수는 1960년대에 이미지 인식에서 특징추출(feature extraction)을 연구하면서 처음 사용되었다. 지점에서 미분이 불가능하고 구간에서는 신호가 완전히 무시된다는 점에서 비판받기도 하였으나, 경쟁자인 탄젠트 함수시그모이드 함수에 비해 계산의 효율성이나 학습 속도 측면에서 더 나은 성능을 보여준다는 점이 밝혀져 최근에는 가장 사랑받는 활성 함수의 위치에 있다.[5]

리키 렐루 함수[편집]

리키 렐루 함수(Leaky ReLU)는 인공신경망에서 활성화 함수로 사용되는 비선형 함수 중 하나이다. 이는 표준 ReLU 함수의 변형 버전으로, ReLU가 가진 '죽은 뉴런(Dying ReLU) 문제'를 해결하기 위해 개발되었다. ReLU 함수는 입력 값이 양수일 때는 그대로 출력하지만, 음수일 때는 0으로 변환하는 특성을 가진다. 이로 인해 음수 값이 입력될 경우 뉴런이 비활성화되어 가중치가 업데이트되지 않는 문제가 발생할 수 있다. 반면, 리키 ReLU는 음수 값에 대해 일정한 기울기()를 부여하여 음수 입력 값도 일부 반영될 수 있도록 한다. 이를 통해 학습 과정에서 뉴런이 완전히 죽지 않고 계속해서 정보를 전달할 수 있게 된다.[6] 리키 ReLU 함수는 다음과 같이 정의된다.

여기서 는 작은 양수(예: 이며, 일반적으로 하이퍼파라미터로 설정할 수 있다. 즉, 입력 값 가 양수일 때는 기존 ReLU와 동일하게 를 그대로 출력한다. 입력 값 가 음수일 때는 를 출력하여 0이 아닌 작은 값이 출력되도록 한다. 이러한 방식으로 음수 영역에서도 일정한 기울기를 유지하면서 뉴런이 비활성화되지 않도록 조정하는 것이 리키 ReLU의 핵심이다.

스위시 함수[편집]

스위시 함수(Swish Function)는 구글(google)이 개발한 활성화 함수로, 입력을 σ(x)·x (σ는 시그모이드 함수)로 변환하여 보다 부드러운 출력을 생성한다. ReLU보다 학습 성능이 향상되는 경우가 많으며, 깊은 신경망에서도 효과적이다. 부드러운 비선형성, 음수 값 허용, 적응적 활성화 등의 장점을 가지고 있다. 특히 컴퓨터 비전, 자연어 처리(NLP), 강화학습 등 다양한 분야에서 ReLU보다 더 나은 성능을 보일 수 있으며, 최신 딥러닝 모델에서도 적극적으로 활용되고 있다. 스위시 함수는 수식으로 표현하면 다음과 같다.

여기서 시그모이드 함수(sigmoid)이며, 입력값 에 시그모이드 값을 곱한 형태이다. 이 함수는 ReLU 함수(Rectified Linear Unit)와 같은 비선형 활성화 함수들과 유사한 구조를 가지면서도, 특정한 입력 구간에서 음수 값을 유지하는 특성을 가진다. 이러한 특징 덕분에 신경망의 학습 성능을 개선하고, 일부 경우에는 ReLU보다 더 나은 결과를 보인다.[7]

미시 함수[편집]

미시 함수(Mish Function)는 스위시 함수와 유사하지만 tanh 연산을 활용하여 더욱 부드러운 출력과 강력한 표현력을 제공한다. 최신 딥러닝 모델에서 일부 활되고 있으며, 이미지 처리 등에서 좋은 성능을 보인다. 수식은 다음과 같이 정의된다.

여기서 소프트플러스 함수는 로 정의되며, 이는 ReLU의 매끄러운 근사 함수로 알려져 있다. 미시 함수는 입력값 에 대해 소프트플러스 함수를 적용한 후, 하이퍼볼릭 탄젠트 함수(tanh)를 사용하여 비선형성을 강화한다. 미시 함수는 Swish 함수와 유사한 형태를 가지지만, Swish보다 더 부드러운 활성화와 학습 안정성을 제공한다. 특히, 미분 가능성이 높고 기울기 소실(Vanishing Gradient) 문제를 완화하는 특성이 있어, 다양한 딥러닝 모델에서 ReLU를 대체할 수 있는 강력한 활성화 함수로 주목받고 있다.[8]

선택의 중요성[편집]

학습 속도 및 수렴 속도에 미치는 영향

활성화 함수의 선택은 신경망이 얼마나 빠르게 학습할 수 있는지를 결정하는 중요한 요소이다. 예를 들어, ReLU 함수는 음수 입력을 0으로 변환하여 계산량을 줄이고, 양수 입력에서는 기울기를 유지하므로 학습 속도가 빠르다. 반면, 시그모이드 함수하이퍼볼릭 탄젠트 함수는 기울기 소실 문제로 인해 깊은 신경망에서는 학습이 느려질 수 있다. 따라서 학습 속도를 고려하여 적절한 활성화 함수를 선택하는 것이 중요하다.

과적합과 일반화 능력 조절

활성화 함수의 선택은 모델이 훈련 데이터에 과적합하지 않고 새로운 데이터에서도 좋은 성능을 발휘할 수 있도록 조절하는 데 중요한 역할을 한다. 예를 들어, 너무 복잡한 활성화 함수를 사용하면 모델이 훈련 데이터의 패턴을 과도하게 학습하여 새로운 데이터에서 성능이 저하될 수 있다. 반대로, 너무 단순한 활성화 함수를 사용하면 모델이 충분히 복잡한 패턴을 학습하지 못할 수 있다. 따라서 데이터의 특성과 모델의 복잡도를 고려하여 적절한 활성화 함수를 선택해야 한다.

기울기 소실 및 기울기 폭발 방지

딥러닝 모델에서는 역전파를 통해 가중치를 업데이트하는 과정에서, 기울기가 지나치게 작아지거나 커지는 문제가 발생할 수 있다. 예를 들어, 시그모이드 함수는 입력이 극단적으로 크거나 작을 때 기울기가 거의 0이 되어 기울기 소실 문제가 발생한다. 이는 신경망의 학습을 방해하는 주요 원인이 된다. 반면, ReLU 계열 함수는 기울기 소실 문제를 줄이지만, 음수 값에서 기울기가 0이 되는 ‘죽은 뉴런(Dying Neuron)’ 문제가 발생할 수 있다. 따라서 최신 연구에서는 이러한 문제를 해결하기 위해 리키 ReLU, PReLU(Parametric ReLU), 스위시 함수, 미시 함수 등의 활성화 함수가 제안되고 있다.

문제 유형에 따른 최적의 활성화 함수 선택

활성화 함수는 문제 유형에 따라 다르게 선택해야 한다.

  • 이진 분류(Binary Classification): 시그모이드 함수가 적합하다. 출력이 0과 1 사이의 확률값으로 해석되기 때문이다.
  • 다중 분류(Multi-Class Classification): 소프트맥스 함수(Softmax)가 적합하다. 각 클래스에 대한 확률을 출력하고, 총합이 1이 되도록 정규화해준다.
  • 회귀 문제(Regression): 선형 활성화 함수(identity function) 또는 ReLU 계열 함수가 자주 사용된다.
  • 심층신경망(Deep Neural Networks): 기울기 소실 문제를 줄이기 위해 ReLU, 리키 ReLU, 스위시 함수, 미시 함수 등의 함수가 선호된다.
하드웨어 및 계산 성능 고려

활성화 함수는 단순히 모델의 정확도뿐만 아니라, 연산 효율성에도 영향을 미친다. 예를 들어, 시그모이드나 Tanh 함수는 지수(exp) 연산을 포함하므로 계산 비용이 높다. 반면, ReLU 함수는 단순한 max(0,x) 연산만 수행하므로 매우 빠르다. 최근에는 하드웨어 가속을 고려하여, 스위시와 같이 더 나은 성능을 제공하면서도 계산량이 적은 함수들이 연구되고 있다.

각주[편집]

  1. 이동 컴공누나, 〈[AI 기본 지식 활성화 함수의 모든 것]〉, 《티스토리》, 2021-04-16
  2. 이동 시그모이드 함수〉, 《AI 용어사전》
  3. 이동 시그모이드 함수〉, 《위키백과》
  4. 이동 하이퍼볼릭탄젠트 함수〉, 《AI 용어사전》
  5. 이동 ReLU〉, 《AI 용어사전》
  6. 이동 Leaky ReLU (리키 렐루, 누출 ReLU, 누설 ReLU)〉, 《위키독스》
  7. 이동 Tae-Jun, 〈[활성화 함수] SiLU(Swish)〉, 《티스토리》
  8. 이동 응스응스응, 〈Mish〉, 《티스토리》, 2021-06-06

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 활성화 함수 문서는 인공지능 모델에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.