활성화 함수 개념에 대해서 이야기해봅시다.
활성화 함수 개념에 대해 알기
활성화 함수(Activation Function)은 인공지능(AI) 분야에서 입력 노드에 대해 출력 노드를 정의하는 특별한 함수를 의미합니다. 활성화 함수는 여러 개의 층으로 구성되어 있는 다층 구조의 인공 신경망(Neural Network)에서 사용되는 함수로 이전 레이어에서의 가중함에 따라 활성화 여부가 결정되는 형태입니다.
활성화 함수(Activation Function)은 함수(Function)의 활성화 여부에 따라서 만약 함수가 활성화가 되면 더 큰 힘을 발휘하게 되는 형태입니다.
활성화 함수에는 다양한 종류의 함수가 사용될 수 있습니다. 신경망이나 해당 레이어가 담당하는 역할에 따라서 활성화 함수는 달라질 수 있습니다.
활성화 함수에는 다양한 종류가 있습니다. 활성화 함수는 크게 단극성 활성화 함수와 양극성 활성화 함수로 구분할 수 있습니다.
단극성 활성화 함수는 출력 값의 극성에 따라 구분이 될 때 음수일 경우 출력하지 않고 양수일 경우 출력하는 형태입니다. 음수일 경우에는 일반적으로 힘을 못 쓰는 상태가 되며 양수일 때는 특별한 능력을 발휘하는 상태가 되는 것입니다. 양극성 활성화 함수는 음수와 양수를 모두 출력할 수 있는 함수입니다.
활성화 함수의 대표적인 예로는 계단 함수, 시그모이드(Sigmoid) 함수, 렐루(ReLU, Rectified Linear Unit) 함수, 리키 렐루(Leaky ReLU) 함수, 소프트맥스(Softmax) 함수로 5가지를 들 수 있습니다.
활성화 함수 개념에 대한 설명
활성화 함수(Activation Function)은 생성형 AI 분야에서 정보를 다음 계층으로 어떤 형태로 전달할지를 결정하는 중요한 함수입니다. 활성화 함수는 일반적인 상황 보다 더 강력한 힘을 발휘하는 역할을 합니다.
활성화 함수(Activation Function)의 경우, 예를 들어 음수 -10을 입력 받으면 0을 출력하고 양수 10을 입력 받으면 그 입력 값을 그대로 출력하는 형태로 다음 계층으로 전달할 정보의 형태를 결정하게 됩니다. 여기서 “0을 출력하는 것”은 함수가 별도의 능력을 발휘하지 않는 일반적인 형태인 것이며 “입력 값을 그대로 출력하는 것”은 함수가 능력을 발휘하는 형태가 됩니다.
활성화 함수는 마치 게임에서 캐릭터가 특정한 아이템을 얻었을 때 공격력이 크게 증가하는 현상과 비슷합니다. 특정한 아이템이 바로 활성화 함수와 비슷한 역할을 하는 것입니다.
활성화 함수(Activation Function)의 대표적인 예시로는 계단 함수, 시그모이드(Sigmoid) 함수, 렐루(ReLU, Rectified Linear Unit) 함수, 리키 렐루(Leaky ReLU) 함수, 소프트맥스(Softmax) 함수 등이 있습니다.
[활성화 함수 5가지 예시]
구분 | 내용 |
1 | 계단 함수(Step Function) |
2 | 시그모이드(Sigmoid) 함수 |
3 | 렐루(ReLU, Rectified Linear Unit) 함수 |
4 | 리키 렐루(Leaky ReLU) 함수 |
5 | 소프트맥스(Softmax)함수 |
계단 함수(Step Function)는 가장 간단한 형태의 활성화 함수입니다. 계단 함수는 0 또는 1을 출력하는 형태입니다. 계단 함수는 함수의 정의역이 여러 개의 부분 구간으로 나눌 수 있을 때 각 부분 구간 안에서는 상수 함수이고 부분 구간의 경계에서는 함수가 불연속인 함수 모양입니다.
계단 함수의 그래프는 계단 모양의 그래프 형태를 띄게 됩니다. 즉, 함수 전체의 모양은 계단 처럼 보이게 됩니다. 계단 함수는 가장 간단한 활성화 함수 형태로 계산이 간편하기 때문에 단일 퍼셉트론(Perceptron) 활성화 함수로 사용됩니다. 하지만 딥러닝(Deep Learning)의 은닉층의 활성화 함수로는 사용될 수 없습니다.
시그모이드(Sigmoid) 함수는 “S” 자 모양의 곡선을 그리는 함수 형태입니다. 시그모이드 함수는 0과 1 사이의 값을 출력하며 가장 오랫동안 전통적으로 사용하는 활성화 함수입니다. 시그모이드 함수는 기울기 소멸 문제를 가지고 있습니다. 시그모이드 함수는 실수 전체를 정의역으로 가지고 있는 함수입니다. 함수의 출력 값은 유한한 구간 사이의 한정된 값만을 반환하는 형태입니다. 일반적으로 시그모이드 함수는 0과 1사이 값을 출력하도록 설정하게 됩니다.
렐루(ReLU, Rectified Linear Unit) 함수는 0 이하의 입력 값에 대해서는 0으로 출력하고 0을 넘어가는 입력 값은 입력값 그대로를 출력하는 활성화 함수입니다. 렐루 함수는 기존의 시그모이드 함수가 가지고 있는 기울기 소멸 문제(Gradient Vanishing Problem)를 효과적으로 해결할 수 있었던 함수입니다. 다만, 렐루 함수의 경우 0 이하의 입력 값에 대해서는 일괄적으로 0으로 출력하는 한계점을 가지고 있습니다.
리키 렐루(Leaky ReLU) 함수는 렐루 함수가 0 이하의 입력 값에 대해서 일괄적으로 0으로 출력하는 한계점을 보완하기 위해서 만들어진 활성화 함수입니다. 다만, 리키 렐루 함수는 처리 비용이 많이 들어가는 함수입니다.
소프트맥스(Softmax) 함수는 모든 출력 값들이 0과 1 사이의 값 사이로 정규화 되어 나타나는 활성화 함수입니다. 소프트맥스 함수는 인공 신경망의 출력층으로 주로 사용됩니다. 다중 클래스에 대한 예측 값에 대해서 정규화를 통해 확률 값으로 보여지게끔 만들어줍니다. 소프트 맥스 함수는 로지스틱 회귀 함수를 다차원적으로 일반화 시킨 함수입니다.
소프트 맥스 함수는 다항 로지스틱 회귀 분석에서 사용되고 인공 신경망에서는 확률 분포를 얻기 위한 활성화 함수로 사용됩니다. 소프트 맥수 함수의 출력 값은 0과 1 사이의 정규화된 값으로 출력되고 출력되는 값들을 모두 합하면 1이 되는 중요한 특징을 가지고 있습니다.