
활성화 함수는 입력 신호의 총합을 출력 신호로 변환하는 함수이며, 입력 신호의 총합이 활성화를 일으키는지를 정하는 역할을 한다.


위 사진에서 h()가 활성화 함수이다.
임계값을 경계로 출력이 바뀌는 함수이다. 퍼셉트론에서는 계단 함수를 사용한다.

def step_function(x):
y = x > 0
return y.astype(np.int)
import numpy as np
import matplotlib.pylab as plt
def step_function(x):
return np.array(x > 0, dtype=np.int)
x = np.arange(-5.0, 5.0, 0.1)
y = step_function(x)
plt.plot(x, y)
plt.ylim(-0.1, 1.1)
plt.show
신경망에서는 시그모이드 함수를 이용하여 신호를 변환하고, 변환된 신호를 다음 뉴런에 전달한다.

def sigmoid(x):
return 1 / (1 + np.exp(-x))
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()
입력이 0을 넘으면 그 입력을 그대로 출력하고, 0 이하이면 0을 출력하는 함수이다.

def relu(x):
return np.maximum(0, x)
>>> A = np.array([[1, 2], [3, 4]])
>>> A.shape
(2, 2)
>>> B = np.array([[5, 6], [7, 8]])
>>> B.shape
(2, 2)
>>> np.dot(A, B)
array([[19, 22],
[43, 50]])
>>> X = np.array([1, 2])
>>> X.shape
(2,)
>>> W = np.array([1, 3, 5], [2, 4, 6])
>>> W.shape
(2, 3)
>>> Y = np.dot(X, W)
>>> print(Y)
[5 11 17]
퍼셉트론은 활성화 함수로 계단 함수를 사용하고, 신경망은 활성화 함수로 시그모이드 함수를 사용한다.