2. 신경망 Neural Network
2-1. 신경망의 구조 Neural network structure
신경망은 크게 입력층 Input layer, 은닉층 Hidden layer, 출력층 Output layer으로 나뉨
신경망에서 편향 $b$는 가중치가 $b$이고 입력값이 1인 $x_{0}$으로 표현함
이때 신경망은 아래와 같이 표현 가능함
$$y = h(b+w_{1}x_{1}+w_{2}x_{2})$$
$$h(x) = \left\{\begin{matrix}
1 (x > 0)
\\
0 (x \leq 0)
\end{matrix}\right.$$
2-2. 활성화 함수 Activation Function
활성화 함수 Activation Function: 위의 $h(x)$처럼 입력 신호의 총합을 출력 신호로 변환하는 함수
- 계단 함수 Step Function
퍼셉트론에서 채용하고 있는 활성화 함수
퍼셉트론과 신경망의 주된 차이는 사용하는 활성화 함수가 다르다는 것
# 계단 함수 구현
import numpy as np
def step_function(x):
y = x>0
return y.astype(np.int)
x = np.array([-1.0, 1.0, 2.0])
y = x>0
print(y) # [False True True]
print(y.astype(np.int)) # [0 1 1]
# 계단 함수의 그래프 구현
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()
- 시그모이드 함수 Sigmoid Function
아래는 시그모이드 함수를 나타낸 식
$$h(x) = \frac{1}{1+e^{-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()
- ReLU 함수 Rectified Linear Unit
아래는 ReLU를 나타낸 식
$$h(x) = \left\{\begin{matrix}
x(x > 0)
\\
0(x \leq 0)
\end{matrix}\right.$$
# ReLU 구현
def relu(x):
return np.maximum(0, x)
2-3. 출력층 구현하기 Implement Output Layer
- 항등 함수 Identity Function
입력을 그대로 출력하는 함수
- 소프트맥스 함수 Softmax Function
분류에 사용하는 함수로, 식은 아래와 같음
$$y_{k} = \frac{e^{a_{k}}}{\sum_{i=1}^{n}e^{a_{i}}}$$
# 소프트맥스 함수 구현
def softmax(a):
c = np.max(a) # c는 오버플로우 방지를 위해 도입, 함수 출력은 동일함
exp_a = np.exp(a-c)
sum_exp_a = np.sum(exp_a)
y = exp_a/sum_exp_a
return y
아래 코드를 통해 소프트맥스 함수의 특징도 확인 가능
a = np.array([0.3, 2.9, 4.0])
y = softmax(a)
print(y) # [0.01821127 0.24519181 0.73659691]
print(np.sum(y)) # 1.0
소프트맥스 함수의 출력은 확률로 해석할 수 있음
Textbook used -> book.interpark.com/product/BookDisplay.do?_method=detail&sc.prdNo=263500510&gclid=EAIaIQobChMImIeshoSn7wIVWVtgCh0sqQ6IEAYYASABEgLGm_D_BwE
싸니까 믿으니까 인터파크도서
파이썬으로 익히는 딥러닝 이론과 구현 새로운 지식을 배울 때 설명만 들어서는 석연치 않거나 금방 잊어버리게 됩니다. 그래서 무엇보다 '직접 해보는 것'이 중요합니다. 이 책은 딥러닝의 기
book.interpark.com
<Source>