Deep Learning (DL)

활성화 함수 - 시그모이드 함수(Sigmoid function) 란?

심전코 2022. 10. 29. 02:19

 

 

활성화 함수(Activation function)

활성화 함수는 가중 합의 출력 값이 입력되었을 때, 그대로 출력 하지 않고

값을 증폭 시키거나, 감소 시키는 등 얼마 만큼의 신호로 출력 할 지 정해주는 함수이다.

 

2. 시그모이드 함수

 

계단 함수의 신호를 컴퓨터가 받기에는 제한되는 부분이 있어

(임계 값 지점에서 미분이 불가능하고, 나머지 지점에서는 미분 값이 0 이 나옴)

이를 개선하기 위하여 시그모이드 함수가 고안되었다.

(계단 함수를 활성화 함수로 채택하면 학습이 제대로 이루어 지지 않음)

 

시그모이드 함수는 1 과 0 두 가지 분류인 2진 분류 문제 적합한 함수이다.

 

Sigmoid function

 

계단 함수의 그래프와 유사하지만 부드러움이 추가된 곡선의 형태를 띄고 있다.

 

 

계단 함수처럼

임계 값 ( 0 ) 보다 작은 부분은 0 에 가까워 지고, 큰 부분은 1에 가까워 진다.

하지만 위에서 언급한 것처럼,

곡선의 형태를 띄고 있어 모든 지점에서 미분이 가능하며, 미분 값도 0 이 아니다.

 

 

코드 예시

def sigmoid(x):
  return 1/ (1+np.exp(-x)) 
	# np.exp : 밑이 자연상수 e 를 지수함수(e^x) 의 형태로 변환해줌.
	# np.exp(0) == e^0 == 1.0
	# np.exp(1) == e^1 == 2.718..
  
x = np.array([-5, -1, 0, 0.1, 5, 500000])
print(sigmoid(x))
# [0.00669285 0.26894142 0.5        0.52497919 0.99330715 1.        ]

x = np.linspace(-10, 10, 100) 
  
plt.plot(x, sigmoid(x)) 
plt.xlabel("x") 
plt.ylabel("Sigmoid(X)") 
  
plt.show()

Sigmoid function