-
활성화함수란
입력 신호의 총합을 출력 신호로 변환하는 함수입니다.
입력 신호의 총합이 활성화를 일으키는지를 정하는 역할을 합니다.
활성화 함수의 처리 과정 h가 활성화 함수 입니다.
입력 신호의 총합인 a를 입력값으로 가지고 y를 출력하네요.
y = h(b + x1w1 + x2w2)
위 식의 활성화 함수는 임계값을 경계로 출력이 바뀝니다. 활성화 함수가 계단함수인 것입니다.
퍼셉트론이 예시가 되겠네요.
이 활성화 함수를 다른 함수로 바꾸면 신경망을 만들 수 있습니다.
그럼 활성화 함수의 종류를 알아봅시다.
종류
계단 함수, 시그모이드 함수, ReLU 함수 등이 있습니다.
시그모이드 함수는 신경망에서 자주 사용합니다.
입력을 넣으면 값이 작아져서 나옵니다. 그래서 계단함수와는 다르게 곡선입니다.
(h(1.0) -> 0.7..., h(2.0) -> 0.8...)
(시그모이드 함수 식)
최근에 신경망에서 자주 사용한다는 ReLU함수 입니다.
ReLU는 0보다 작으면 0을 출력하고 0보다 크면 값을 그대로 출력합니다.
구현
import numpy as np import matplotlib.pylab as plt def step_function(x): return np.array(x>0, dtype=np.int) def sigmoid(x): return 1/(1 + np.exp(-x)) def relu(x): return np.maximum(0, x) #계단 x0 = np.arange(-5.0, 5.0, 0.1) y0 = step_function(x0); plt.plot(x0, y0); plt.ylim(-0.1, 1.1) #시그모이드 x1 = np.arange(-5.0, 5.0, 0.1) y1 = sigmoid(x1) plt.plot(x1, y1); plt.ylim(-0.1, 1.1) #ReLU x2 = np.arange(-5.0, 5.0, 0.1) y2 = relu(x2) plt.plot(x2, y2) plt.ylim(-0.1, 1.1) plt.show()
각 함수를 그래프까지 그려봤습니다.
0.1 단위로 그래프를 그립니다. x의 범위가 조금만 커져도 양이 많습니다.
그래서 입력값과 출력값을 넘파이 배열로 합니다.
반응형'딥러닝' 카테고리의 다른 글
미니배치 학습 구현하기 (0) 2020.01.16 2층 신경망 클래스 구현하기 (1) 2020.01.16 손실함수와 경사법 (0) 2020.01.16 3층 신경망 구현해보기 (0) 2020.01.10 퍼셉트론 (0) 2020.01.09