상세 컨텐츠

본문 제목

sigmoid function의 이해

AI/Machine Learning

by mk coding 2024. 2. 4. 13:15

본문

 

a값이 클수록 기울기가 급해진다. 

b값은 그래프의 좌우이동을 의미한다. 

 

sigmoid(x) = 1 / ( 1 + e^(-x))

이때 x는 ax + b형태로 표현되며, 여기서 a는 기울기를, b는 y절편을 나타낸다. 

 

여기서 a값과 오차값은 반비례관계를 형성한다. 

 

a값이 커질 수록 sigmoid 함수의 기울기가 커지게 되는데, 이는 입력값에 대한 출력값의 변화를 더욱 민감하게 반영하게 된다. 즉, 입력값의 작은 변화에도 불구하고 출력값이 크게 변화하는 것. 이로 인해, 실제 값과 예측 값 사이의 오차가 줄어들게 되는데, 이는 모델이 데이터를 정확하게 학습하게 되어 오차를 최소화하는 효과를 가져온다. 그러나 a값이 너무 크면 Overfitting의 위험이 있으므로 적절한 a값을 찾는 것이 중요하다. 

다만, 이는 모델의 학습 과정과 데이터의 특성에 따라 달라질 수 있으므로 항상 a값이 커질수록 오차값이 작아지는 것은 아니다. 이는 여러 요인에 따라 달라질 수 있다. 

 

 

b값은 sigmoid 함수의 출력값을 얼마나 상하로 이동시킬 것인지를 결정한다. 즉, b값이 크면 sigmoid 함수의 출력값 전체가 상승하고, b값이 작아지면 출력값 전체가 하강한다. 

따라서 b값이 적절하지 않으면 예측값과 실제값 사이의 차이, 즉 오차가 커질 수 있다. 예를 들어 b값이 너무 크면 예측값은 항상 높아지고, b값이 너무 작으면 예측값은 항상 낮아진다. 

이렇게 되면 실제값과 예측값 사이의 차이가 커져 오차가 크게 나타날 수 있다. 따라서 적절한 b값은 설정하는 것이 중요하며, 이는 데이터의 특성과 모델의 학습 과정을 통해 결정된다. 

 

그러면 무조건 b값이 0인 게 좋은 것이 아닌가?

b값이 0이라는 것은 sigmoid 함수의 출력값이 y축을 기준으로 대칭인 형태가 된다. 즉, 입력값이 0일 때 sigmoid 함수의 출력값이 0.5가 된다. 이는 일부 상황에서는 적절할 수 있지만, 모든 경우에 이가 최적이라고는 할 수 없다.

실제로, b값은 모델이 데이터의 특성을 더 잘 학습하도록 도와주는 역할을 한다. 예를 들어, 어떤 데이터셋에서 대부분의 출력값이 0.5보다 큰 값이라면, b값을 적절히 조절하여 모델의 출력값이 대체적으로 더 큰 값을 가지도록 할 수 있다. 이렇게 함으로써 모델이 데이터의 특성을 더 잘 반영하도록 도와줄 수 있다. 

따라서 b값이 무조건 0인 것이 좋은 것이 아니며, 적절한 b값은 데이터의 특성과 모델의 학습 과정에 따라 달라진다. 이는 경사하강법의 최적화 알고리즘을 통해 적절한 값을 찾을 수 있다.  

 

관련글 더보기