ML
활성화 함수 구현하기
IT_달토끼
2023. 3. 27. 17:21
먼저 numpy와 matplotlib 라이브러리를 임포트한다.
import numpy as np
import matplotlib.pyplot as plt
각각의 함수를 구현한다.
1. 계단함수
1) 정의: 0을 경계로 출력이 0에서 1(또는 1에서 0)으로 바뀌는 함수로, 그래프의 결과가 계단처럼 생김
2) 코드
def step_function(x):
return np.array(x > 0, dtype = np.int)
x = np.arange(-5.0, 5.0, 0.1) #-5.0에서 5.0 전까지 0.1간격의 넘파이 배열 생성
y = step_function(x)
plt.plot(x, y)
plt.ylim(-0.1, 1.1) #y축의 범위 지정
plt.show()
3) 실행결과
2. 시그모이드(Sigmoid) 함수
1) 정의: 0 또는 1을 반환하는 계단 함수와 달리 실수 값을 반환하는 함수로, 매끄러운 S자 모양의 비선형 함수
2) 코드
def sigmoid(x):
return 1 / (1 + np.exp(-x)) #np.exp(-x)는 자연상수e의 -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()
3) 실행결과
3. ReLU(Rectified Linear Unit) 함수
1) 정의: 입력이 0을 넘으면 그 입력 그대로 출력하고, 0이하이면 0을 출력하는 함수, 0을 기준으로 상승하는 형태
2) 코드
def relu(x):
return np.maximum(0, x)
x = np.arange(-5.0, 5.0, 0.1)
y = relu(x)
plt.plot(x, y)
plt.ylim(-0.1, 1.1)
plt.show()
3) 실행결과
출처: 「밑바닥부터 시작하는 딥러닝」, 사이토 고키 지음, 개앞맵시 옮김, 한빛미디어