반응형
앞서 계단 함수 포스팅에서 임계값을 기준으로 출력값이 바뀌는 함수를 활성화함수라고 배웠는데요. 이번에는 신경망 분야에서 이용할 수 있는 다른 활성화 함수, 시그모이드(sigmoid)와 ReLU (Rectified Linear Unit) 함수에 대해서 알아보겠습니다.
계단 함수에 관한 내용은 아래 링크를 참조하세요.
1. 시그모이드 함수
시그모이드 함수는 수식으로 표현하면
$s(x)$ = $\frac{1}{1 + e^{-x}}$
입니다.
이 식을 수식으로 만드는 것은 매우 간단한데요.
아래 코드는 시그모이드 함수를 만들고 그래프로 그립니다.
import numpy as np
import matplotlib.pyplot as plt
def sigmoid(x):
return 1/(1 + np.exp(-x))
x = np.arange(-8.0, 8.0, 0.01)
y = sigmoid(x)
plt.plot(x, y)
plt.ylim(-0.1, 1.1)
plt.show()
위 코드를 실행하면 아래와 같은 그래프를 얻습니다.
2. ReLU 함수
ReLU함수는 입력 값이 0 이하이면 0을, 0을 넘으면 그 값 그대로를 출력하는 함수입니다.
즉, 식으로 표현하면
$f(x)$ = $\left\{\begin{matrix} x \ (x > 0) \\ 0 \ (x \leq 0) \end{matrix}\right.$
입니다.
아래 코드는 ReLU 함수를 선언하고 그래프로 그립니다.
import numpy as np
import matplotlib.pyplot as plt
def relu(x):
return np.maximum(0, x)
x = np.arange(-3.0, 3.0, 0.01)
y = relu(x)
plt.plot(x, y)
plt.ylim(-0.1, 3.1)
plt.show()
그림을 그려보면 아래와 같은 그래프를 얻습니다.
반응형
'Python > deep learning' 카테고리의 다른 글
윈도우에서 TensorFlow설치: PIP 사용 (1) | 2023.05.08 |
---|---|
신경망 파이썬 코드로 구현하기 (0) | 2023.03.30 |
신경망의 가중치를 행렬로 표현하기 (0) | 2023.03.28 |
파이썬에서 계단 함수 만들기 (0) | 2023.03.21 |
퍼셉트론 AND, NAND, OR, XOR 게이트: python (0) | 2023.03.13 |
댓글