본문 바로가기
IT/ML_용어

[ML][용어] Sigmoid 함수

by Moons0827 2024. 10. 11.
반응형


시그모이드 함수(sigmoid function)는 활성화 함수 중 하나로, 이진 분류 문제에 주로 사용됩니다. 이 함수는 입력 값을 0과 1 사이의 값으로 변환하며, 신경망에 비선형성을 제공해 복잡한 패턴을 학습할 수 있게 합니다.


 

1. sigmoid 함수의 정의

입력값에 음의 지수 함수를 적용하여 변환한 뒤, 그 값을 0과 1 사이의 값으로 압축합니다. 입력값이 양수일수록 1에 가까워지고, 음수일수록 0에 가까워지며, 출력값은 항상 0과 1 사이를 유지합니다.

 

수학적으로 정의하면 다음과 같습니다.

​여기서,

  • : 시그모이드 함수의 출력값.
  • x: 입력값.
  • e: 자연상수, 약 2.718로 알려진 오일러 수입니다.

 

 


2. 주요 특징

1) 확률 계산에 유용

 출력 값이 항상 0과 1 사이에 있습니다. 이 특성 덕분에 시그모이드 함수는 확률 값을 예측할 때 유용하게 사용됩니다. 

2) 어디서든 미분 가능

어디서든 미분 가능합니다. 이는 역전파(backpropagation) 과정에서 가중치 업데이트에 매우 유용합니다.

3) 비선형성

 시그모이드 함수는 비선형 함수이기 때문에 신경망의 비선형 변환을 가능하게 해 줍니다. 이는 신경망이 더 복잡한 문제를 학습할 수 있게 합니다.

4) 기울기 소실 문제

 입력 값이 매우 크거나 작을 때, 즉 x가 매우 큰 양수이거나 음수일 때 기울기(gradient)가 거의 0에 가까워지는 문제를 가지고 있습니다. 이는 깊은 신경망 학습에서 역전파 과정 중에 가중치가 업데이트되지 않는 상황을 초래할 수 있습니다.

5) S자 곡선

그래프의 모양은 S자 형태를 띄며, 중간값인 x=0을 기준으로 대칭적입니다. 입력이 0에 가까울 때 출력은 0.5에 가까워지고, 양의 무한대로 갈수록 출력이 1, 음의 무한대로 갈수록 출력이 0에 수렴합니다.


3. sigmoid  함수 코드 사용 예시

import numpy as np

# 시그모이드 함수 정의
def sigmoid(x):
    return 1 / (1 + np.exp(-x))

# 입력값 생성
x_values = np.array([-2, -1, 0, 1, 2])

# 시그모이드 함수 적용
y_values = sigmoid(x_values)

print("Input values:", x_values)
print("Sigmoid output:", y_values)
반응형

'IT > ML_용어' 카테고리의 다른 글

[ML][용어] ReLU 함수  (1) 2024.10.15
[ML][용어] GELU 함수  (0) 2024.10.07
[ML][용어] softmax 함수  (1) 2024.09.30

댓글