시그모이드 함수
시그모이드 함수(Sigmoid Function)는 S자형의 곡선을 그리는 수학적 함수이다. 연속적이며 미분 가능한 특성을 가지고 있다. 이 함수는 수학, 생물학, 경제학, 신경과학 등 다양한 분야에서 사용되며, 특히 인공신경망(ANN)에서 활성화 함수로 널리 알려져 있다.
목차
상세
시그모이드 함수는 실수 전체를 정의역으로 가지는 데에 비해 함수값으로 유한한 구간 사이의 한정된 값만을 반환하며, 주로 과 사이의 값을 반환하도록 설정한다.
시그모이드 함수는 일반적으로 입력값인 의 값이 증가할 때 함수값인 의 값도 증가하는 양상을 보인다. 대표적인 시그모이드 함수에는 로지스틱 함수가 있으며 이는 다음과 같은 수식으로 나타낼 수 있다.
여기서 는 자연상수로, 약 에 해당한다. 이 함수는 입력 의 값이 어떤 범위에 있더라도 출력이 과 사이의 값을 가지며, 가 매우 큰 양수로 갈수록 출력은 에 가까워지고, 매우 큰 음수로 갈수록 출력은 에 가까워진다.
시그모이드 함수는 대표적인 활성화 함수로 사용되었다. 회귀분석에 있어서 선형 함수는 새로운 데이터의 추가가 기존의 분류 모델에 크게 영향을 미치는 반면, 시그모이드 함수에서는 해당 문제가 크지 않았다. 경사하강법을 시행할 때 기울기의 급격한 변화가 나타나지 않는다는 점도 시그모이드 함수의 장점이었다. 또한 시그모이드 함수의 중간 부분은 급격한 기울기를 가지는 반면, 출력값이 과 에 가까울수록 기울기가 완만하여 이진 분류를 해내는 데에 있어서 적합하였다. 뿐만 아니라, 인체가 어느 정도까지는 자극이 주어져도 이를 인식하지 못하다가 특정한 임계점을 넘어서는 순간 자극을 인식한다는 점과도 비슷한 측면이 있어 널리 사용되었다.[1][2]
특징
연속성과 미분 가능성
시그모이드 함수는 연속적이며 미분 가능하다. 이는 신경망의 학습 과정에서 매우 중요한 특성이다. 연속성 덕분에 함수의 그래프에서 점이 끊기지 않고, 미분 가능성 덕분에 역전파 알고리즘을 통해 네트워크의 가중치를 조정할 수 있다. 역전파 알고리즘은 신경망의 학습 과정에서 기울기를 계산하여 가중치를 업데이트하는 데 사용된다. 시그모이드 함수는 미분 가능한 함수로서, 이 과정에서 필요한 기울기를 제공한다.[3]
출력 범위
시그모이드 함수의 출력값은 항상 과 사이에 있다. 이는 함수가 확률을 모델링할 때 유용한 특성이다. 예를 들어, 이진 분류 문제에서 신경망의 출력층에 시그모이드 함수를 사용하면, 출력값을 과 사이의 확률로 해석할 수 있다. 즉, 특정 클래스에 속할 확률을 제공하며, 이는 분류 문제를 해결하는 데 유용하다.[4]
비선형성
시그모이드 함수는 비선형 함수로, 입력값에 비선형적인 변화를 일으킨다. 이는 신경망이 복잡한 패턴을 학습할 수 있도록 해준다. 비선형성 덕분에 신경망은 단순한 선형 회귀 문제를 넘어서서, 데이터의 복잡한 관계를 모델링할 수 있다. 여러 층의 뉴런을 통해 다양한 비선형 변환을 수행함으로써, 신경망은 더욱 복잡한 함수와 패턴을 학습할 수 있다.[5]
문제
기울기 소실 문제
시그모이드 함수는 입력값이 매우 크거나 작을 때 기울기가 거의 에 가까워지는 특성이 있다. 이는 기울기 소실(Vanishing Gradient) 문제를 발생시킬 수 있다. 기울기 소실 문제는 신경망의 깊은 층에서 기울기가 너무 작아져서 학습이 거의 이루어지지 않는 문제를 의미한다. 입력값이 매우 큰 양수나 작은 음수일 때, 시그모이드 함수의 출력이 또는 에 가까워지면서 기울기가 거의 이 되어, 역전파 과정에서 기울기가 소실된다. 이로 인해 깊은 신경망에서는 학습이 어렵고, 가중치 업데이트가 제대로 이루어지지 않을 수 있다.[6][7]
출력의 비대칭성
시그모이드 함수의 출력값은 과 사이로 제한되며, 함수의 중심은 이 아니라 에 있다. 이 비대칭성은 뉴런의 활성화 값이 항상 양수로 편향되게 만들며, 이는 역전파 과정에서의 가중치 업데이트가 비효율적으로 이루어질 수 있음을 의미한다. 비대칭성으로 인해 출력값이 에 가까운 경우, 기울기가 작아져 학습이 느려질 수 있다. 이로 인해 신경망의 학습 속도가 저하될 수 있다.[8]
계산 복잡성
시그모이드 함수는 지수 함수 를 포함하고 있기 때문에, 계산적으로 비용이 발생할 수 있다. 특히 대규모 데이터와 신경망에서 이러한 계산 비용은 성능에 부정적인 영향을 미칠 수 있다. 계산 비용이 크기 때문에, 신경망의 학습과 예측이 더 오랜 시간이 걸릴 수 있다.[9]
대안으로 도입된 함수
쌍곡탄젠트 함수
쌍곡탄젠트 함수는 시그모이드 함수의 문제점을 일부 해결할 수 있는 대안으로 도입되었다. tanh 함수는 다음과 같이 정의된다.
tanh 함수는 출력 범위가 에서 사이로, 시그모이드 함수보다 대칭적이며, 출력의 중심이 0에 위치한다. 이는 뉴런의 활성화값이 을 중심으로 대칭을 이루어, 역전파 과정에서 가중치 업데이트가 더 효율적으로 이루어지게 한다. 또한, 기울기 소실 문제도 일부 완화된다.[10]
더 구체적으로, 쌍곡탄젠트 함수의 가장 큰 장점 중 하나는 출력이 에서 사이의 값을 가지며, 을 중심으로 대칭적이라는 점이다. 이는 네트워크의 뉴런이 활성화될 때, 출력값의 평균이 에 가까워지게 만들어 준다. 출력이 을 중심으로 대칭이 되면, 다음 층으로 전달되는 데이터의 편향이 줄어들고, 가중치의 업데이트가 더 효율적으로 이루어진다. 이로 인해, 학습 속도도 증가하게 된다.
또한 쌍곡탄젠트 함수는 시그모이드 함수에 비해 기울기 소실 문제를 일부 완화시킬 수 있다. tanh 함수의 기울기는 시그모이드 함수에 비해 크기 때문에, 역전파 과정에서 기울기가 덜 소실된다. 이는 특히 깊은 신경망에서 중요한데, 기울기 소실 문제가 덜 발생함으로써 학습이 더 효과적으로 이루어질 수 있다. 더불어 쌍곡탄젠트 함수는 시그모이드 함수와 마찬가지로 지수 함수를 포함하고 있지만, 출력의 대칭성과 기울기 특성 덕분에 실제 학습 과정에서 시그모이드 함수보다 효율적으로 작용하는 경우가 많다.
쌍곡탄젠트 함수는 시그모이드 함수의 주요 문제점들을 상당 부분 해결했지만, 여전히 기울기 소실 문제를 완전히 제거하지는 못한다. tanh 함수도 입력값이 매우 크거나 작을 때, 출력이 또는 에 수렴하면서 기울기가 매우 작아지는 현상이 발생한다. 이로 인해, 딥러닝에서 완벽한 해결책이 되지는 못하며, 깊은 신경망을 학습할 때 여전히 어려움이 있었다.
쌍곡탄젠트 함수는 시그모이드 함수의 몇 가지 주요 단점을 해결하면서, 인공 신경망의 학습을 보다 효율적으로 만들었다. 출력의 대칭성 덕분에 편향 문제가 줄어들었고, 기울기 소실 문제도 일부 완화되었다. 이러한 이유로, tanh 함수는 시그모이드 함수보다 더 나은 대안으로 간주되었고, 인공 신경망의 활성화 함수로 널리 사용되었다. 그러나 tanh 함수 역시 기울기 소실 문제를 완전히 해결하지는 못했으며, 이후에는 ReLU와 같은 더 나은 활성화 함수들이 개발되었다.[1]
ReLU 함수
이후 시그모이드 함수의 한계로 ReLU 함수가 도입되었다. ReLU 함수는 다음과 같은 간단한 형태로 정의된다.
ReLU 함수는 시그모이드와 tanh 함수의 문제점을 크게 해결하면서, 딥러닝에서 가장 널리 사용되는 활성화 함수로 자리 잡았다. ReLU 함수는 기울기 소실 문제를 거의 제거하며, 계산이 간단하고 효율적이다. 다만, ReLU도 모든 입력에서 완벽하지 않으며, 일부 문제를 해결하기 위해 Leaky ReLU, Parametric ReLU와 같은 변형들이 제안되었다.[11]
더 구체적으로, ReLU 함수의 가장 큰 장점 중 하나는 기울기 소실 문제를 크게 완화시킨다는 점이다. 입력 값이 양수일 때 ReLU의 미분값은 1이므로, 역전파 과정에서 기울기가 잘 전달된다. 이로 인해 깊은 신경망에서도 기울기 소실 문제가 줄어들어 학습이 더 효율적으로 이루어진다.
또한 ReLU 함수의 출력은 이상의 값을 가지므로, 비대칭성이 해소된다. 이는 뉴런이 더 다양한 패턴을 학습할 수 있게 도와주며, 학습 속도를 높이는 데 기여한다. 더불어 ReLU 함수는 매우 간단하게 구현된다. 최대값을 계산하는 연산만 필요하기 때문에, 시그모이드 함수에 비해 계산적으로 훨씬 효율적이다. 특히 대규모 데이터와 신경망에서 ReLU의 계산 속도는 큰 장점으로 작용한다.
비록 ReLU 함수가 시그모이드 함수의 많은 문제점을 해결했지만, 그 자체로도 몇 가지 한계가 있다. 예를 들어, 입력 값이 음수일 때 출력이 항상 0이 되는 "죽은 ReLU" 문제(dead ReLU)가 발생할 수 있다. 이를 해결하기 위해 Leaky ReLU, Parametric ReLU(PReLU) 등 다양한 변형된 ReLU 함수들이 제안되었다.[12]
시그모이드 함수는 초기 인공 신경망 연구에서 중요한 역할을 했지만, 그 고유한 문제점들로 인해 깊은 신경망에서의 학습이 어려워졌다. ReLU 함수는 이러한 문제들을 해결하며 딥러닝의 발전에 크게 기여했으며, 오늘날 대부분의 신경망에서 기본 활성화 함수로 사용되고 있다. ReLU의 단순한 형태와 효과적인 성능은 딥러닝 모델의 학습을 보다 빠르고 효율적으로 만들었다.[1]
관계
AI : 인공신경망
시그모이드 함수는 초기 인공신경망 모델에서 중요한 역할을 했다. 신경망의 뉴런은 입력 신호를 받아 시그모이드 함수와 같은 비선형 활성화 함수를 통해 출력 신호를 생성한다. 이러한 비선형성 덕분에 신경망은 단순한 선형 회귀 문제를 넘어서 복잡한 패턴 인식과 비선형 문제를 해결할 수 있게 되었다. 시그모이드 함수는 특히 이진 분류 문제에서 사용되며, 출력값이 0과 1 사이의 확률로 해석될 수 있기 때문에 로지스틱 회귀(Logistic Regression)와 같은 모델에서 핵심적인 역할을 한다. 또한, 순환신경망(RNN)에서도 게이트 함수로 사용되며, 입력값의 중요도를 조절하는 데 기여한다.
각주
- ↑ 1.0 1.1 1.2 〈시그모이드 함수〉, 《AI 용어사전》
- ↑ 〈시그모이드 함수〉, 《위키백과》
- ↑ Go! Jake, 〈04. 딥러닝 신경망(Neural Network) - 활성화 함수, 계단 함수, 시그모이드 함수, ReLU의 모든 것〉, 《티스토리》, 2021-05-01
- ↑ 데이터 벌집, 〈(Machine Learning) 시그모이드 함수: 데이터 과학의 핵심 이해하기〉, 《티스토리》, 2024-01-26
- ↑ why, 〈시그모이드 곡선과 시장점유율〉, 《브런치스토리》, 2023-07-17
- ↑ 초보 개발자의 일기장, 〈기울기 소실(Gradient Vanishing)과 폭주(Exploding) 해결 방법 | ReLU 함수와 Leaky ReLU 함수, 그래디언트 클리핑(Gradient Clipping), 배치 정규화(Batch Normalization)〉, 《티스토리》, 2022-09-01
- ↑ 〈기울기 소멸 문제〉, 《위키백과》
- ↑ ursobad, 〈로지스틱 회귀(Logistic Regression)〉, 《티스토리》, 2020-09-29
- ↑ Mins, 〈(딥러닝 도전기) 2. 활성화 함수〉, 《네이버 블로그》, 2019-12-07
- ↑ MangBaam, 〈(머신러닝) 활성화 함수(계단, 시그모이드, 쌍곡탄젠트, ReLU, 소프트맥스 함수) 파이썬 예제〉, 《티스토리》, 2020-11-19
- ↑ Lora Baek, 〈활성화함수 -왜 Sigmoid가 아니라 Relu 함수를 쓸까?〉, 《티스토리》, 2023-04-12
- ↑ HDLY, 〈딥러닝 - 활성화 함수(Activation) 종류 및 비교〉, 《네이버 블로그》, 2020-02-25
참고자료
- 〈시그모이드 함수〉, 《AI 용어사전》
- 〈시그모이드 함수〉, 《위키백과》
- 〈기울기 소멸 문제〉, 《위키백과》
- Mins, 〈(딥러닝 도전기) 2. 활성화 함수〉, 《네이버 블로그》, 2019-12-07
- HDLY, 〈딥러닝 - 활성화 함수(Activation) 종류 및 비교〉, 《네이버 블로그》, 2020-02-25
- ursobad, 〈로지스틱 회귀(Logistic Regression)〉, 《티스토리》, 2020-09-29
- MangBaam, 〈(머신러닝) 활성화 함수(계단, 시그모이드, 쌍곡탄젠트, ReLU, 소프트맥스 함수) 파이썬 예제〉, 《티스토리》, 2020-11-19
- Go! Jake, 〈04. 딥러닝 신경망(Neural Network) - 활성화 함수, 계단 함수, 시그모이드 함수, ReLU의 모든 것〉, 《티스토리》, 2021-05-01
- 초보 개발자의 일기장, 〈기울기 소실(Gradient Vanishing)과 폭주(Exploding) 해결 방법〉, 《티스토리》, 2022-09-01
- Lora Baek, 〈활성화함수 -왜 Sigmoid가 아니라 Relu 함수를 쓸까?〉, 《티스토리》, 2023-04-12
- why, 〈시그모이드 곡선과 시장점유율〉, 《브런치스토리》, 2023-07-17
- 데이터 벌집, 〈(Machine Learning) 시그모이드 함수: 데이터 과학의 핵심 이해하기〉, 《티스토리》, 2024-01-26
같이 보기