활성화 함수란?
활성화 함수(activation function)는 인공 신경망의 각 뉴런에서 입력에 대한 출력을 결정하는 역할을 한다. 비선형 함수로 사용되어, 인공 신경망이 선형적인 문제 뿐만 아니라 비선형적인 문제를 처리할 수 있게 한다.
활성화 함수의 비선형성은 네트워크의 표현력을 향상시킨다. 선형 함수는 입력에 대해 단순한 선형 변환만 수행하여 제한된 표현력을 가진다. 그러므로, 모든 계층이 선형 활성화 함수를 사용하는 경우 여러 계층을 쌓아도 여전히 선형 변환의 결과로 제한된다. 이는 깊은 신경망이 단층 신경망과 유사한 표현 능력만 가지는 것을 의미한다.
그러나, 비선형 활성화 함수를 사용하면 각 계층은 입력에 대한 비선형 변환을 수행한다. 이로 인해 다양한 형태의 비선형 패턴을 모델링할 수 있으며, 네트워크의 표현력이 크게 향상된다. 비선형 활성화 함수는 입력에 대한 복잡한 비선형 변환을 수행하기 때문에, 인공 신경망은 다양한 종류의 데이터와 비선형 문제를 다룰 수 있게 된다.
또한, 비선형 활성화 함수는 그래디언트(gradient)를 전파하는 데에도 중요한 역할을 한다. 역전파(backpropagation) 알고리즘은 오차를 역으로 전파하여 가중치를 조정하는데, 이 과정에서 활성화 함수의 미분 값이 필요하다. 비선형 활성화 함수를 사용하면 다양한 미분 가능한 함수를 적용할 수 있으며, 그래디언트 계산과 가중치 업데이트를 원활하게 수행할 수 있다.
따라서, 활성화 함수의 비선형성은 인공 신경망의 표현력을 향상시키고, 다양한 비선형 문제를 해결하며, 그래디언트 계산과 역전파를 가능하게 함으로써 학습을 효과적으로 수행할 수 있도록 한다.
활성화 함수에는 어떤 것들이 있을까?
Step Function:
- 특징: 입력값에 따라 이진 분류를 수행하는 함수로서, 임계값을 초과하면 활성화되고 그렇지 않으면 비활성화된다. 계단 모양의 결정 경계를 가지며, 주로 이진 분류 문제에 사용된다.
- 차이점: 입력값의 작은 변화에도 출력이 크게 변하지 않고, 경사하강법과 같은 최적화 알고리즘에서 문제가 발생할 수 있다.
Sigmoid Function:
- 특징: S자 형태를 가지는 비선형 활성화 함수로서, 입력값을 0과 1 사이의 값으로 압축한다. 신경망에서 출력층의 이진 분류 문제나 확률값을 나타내는 데에 주로 사용된다.
- 차이점: 입력값에 따라 출력값이 부드럽게 변화하며, 모든 입력 범위에 대해 양수를 출력한다. 그러나 큰 입력값에 대해서는 그래디언트 소실 문제가 발생할 수 있다.
ReLU (Rectified Linear Unit):
- 특징: 입력값이 0보다 작을 때는 0을 출력하고, 0보다 크거나 같을 때는 입력값을 그대로 출력한다. 주로 은닉층에서 사용되며, 계산이 간단하고 효율적인 함수이다.
- 차이점: 입력값이 양수일 경우 그 값을 그대로 출력하기 때문에, 다른 활성화 함수들과 달리 선형적인 형태를 가진다. 따라서, 네트워크의 표현력을 향상시키는 데 도움이 된다.
Identity Function:
- 특징: 입력값을 그대로 출력하는 선형 함수이다. 주로 회귀 문제에서 사용되며, 입력과 출력이 1:1 관계를 갖는 경우에 사용된다.
- 차이점: 모든 입력 범위에 대해 양수 및 음수 값을 출력할 수 있으며, 함수의 특성상 추가적인 비선형 변환이 없다.
Softmax Function:
- 특징: 다중 클래스 분류 문제에서 사용되는 활성화 함수로서, 입력값을 각 클래스에 속할 확률로 변환한다. 출력값들의 합이 1이 되도록 정규화된다.
- 차이점: 입력값에 따라 출력값들이 확률로 해석될 수 있고, 다중 클래스 분류에 적합한 형태를 가진다. 다중 클래스 분류에서 사용되며, 출력층에서 주로 활성화 함수로 사용된다.
'AI' 카테고리의 다른 글
Standard Scaling (0) | 2023.07.29 |
---|---|
데이터 시각화: pandas, matplotlib (0) | 2023.07.22 |
인공 신경망(Artificial Neural Network, ANN) (0) | 2023.07.01 |
다중 선형 회귀(Multiple Linear Regression) VS. 다항 회귀(Polynomial Regression) (0) | 2023.06.30 |
데이터를 train, valid, test로 나누는 이유는? (0) | 2023.06.30 |