1. 시그모이드 함수
1. 1. 시그모이드 함수란?
$$
h(x) = \frac{1}{1 + exp(-x)}
$$
- exp(-x)는 $e^{-x}$를 뜻하며, e는 자연상수이다.
- 신경망에서는 활성화 함수로 시그모이드 함수를 이용하여 신호를 변환하고, 그 변환된 신호를 다음 뉴런에 전달한다.
1. 2. 시그모이드 함수 구현
import numpy as np
def sigmoid(x):
return 1 / 1 + np.exp(-x))
- 여기서 np.exp(-x)가 exp(-x) 수식에 해당한다.
- 이 함수는 x가 넘파이 배열이여도 제대로 처리할 수 있다.
x = np.array([-1.0, 1.0, 2.0])
print(sigmoid(x))
# 출력 : [0.26894142 0.73105858 0.88079708]
- 이 함수가 넘파이 배열도 처리할 수 있는 이유는 넘파이의 브로드캐스트 기능에 있다.
- 브로드캐스트 기능이란 넘파이 배열과 스칼라값의 연산을 넘파이 배열의 원소 각각과 스칼라값의 연산으로 바꿔 수행하는 것
t = np.array([1.0, 2.0, 3.0])
print(1.0 + t)
print(1.0 / t)
# 출력
# [2. 3. 4.]
# [1. 0.5 0.33333333]
1. 3. 시그모이드 함수 그래프
import numpy as np
import matplotlib.pylab as plt
def sigmoid(x):
return 1 / (1 + np.exp(-x))
X = np.arange(-5.0, 5.0, 0.1)
Y = sigmoid(X)
plt.plot(X, Y)
plt.ylim(-0.1, 1.1)
plt.show()
2. ReLu 함수
2.1. ReLu 함수란?
$$
\text{ReLU}(x) = \max(0, x)
$$
- 수식에서 보듯 ReLu 함수는 입력이 0을 넘으면 그 입력을 그대로 출력하고, 0이하면 0을 출력하는 간단한 함수이다.
2.2. ReLu 함수 구현
import numpy as np
def relu(x):
return np.maximum(0, x)
- 구현 또한 간단하다. np.maximum으로 0과 x 중에 큰 값을 반환하는 함수이다.
2.3. ReLu 함수 그래프
'TIL > 밑바닥부터 시작하는 딥러닝' 카테고리의 다른 글
학습 알고리즘 (1) | 2024.06.18 |
---|---|
경사법 (1) | 2024.06.16 |
손실 함수 (1) | 2024.06.15 |
소프트맥스 함수 (0) | 2024.06.15 |
Numpy 다차원 배열의 계산 (0) | 2024.06.14 |