1. 인공 신경망
인공 신경망을 보다 쉽게 이해하기 위해
3층 인공 신경망을 예로 설명을 드리겠습니다.
우선 0층에서 x1과 x2 (입력값)을 입력합니다.
0층에서 받은 입력값은 각 w(가중치)에 곱해져 1층의 a로 값이 가게 됩니다.
(각 층에있는 1은 편향인 b(=-θ)를 표현하기 위함 입니다.)
여기서 활성화 함수인 Sigmoid함수를 사용하여 z값이 도출됩니다.
위 과정을 2층에서 한번 더 거친 뒤
마지막 3층에선 일반 벡터를 확률 벡터로 바꾸는 Softmax함수를 통해
y(결과값)가 도출되게 됩니다.
(괄호 안의 숫자는 층을 뜻합니다.)
2. 행렬
행렬의 덧셈
$$ \begin{pmatrix}
a & b \\
c & d
\end{pmatrix} + \begin{pmatrix}
e & f \\
g & h
\end{pmatrix} = \begin{pmatrix}
a+e & b+f \\
c+g & d+h
\end{pmatrix} $$
행렬의 상수배
$$ k\begin{pmatrix}
a & b \\
c & d
\end{pmatrix} = \begin{pmatrix}
ka & kb \\
kc & kd
\end{pmatrix} $$
행렬의 곱셈
$$ \begin{pmatrix}
a & b \\
c & d
\end{pmatrix} \times \begin{pmatrix}
e & f \\
g & h
\end{pmatrix} = \begin{pmatrix}
a \cdot e+b \cdot g & a \cdot f+b \cdot h \\
c \cdot e+d \cdot g & c \cdot f+d \cdot h
\end{pmatrix} $$
$$ (m \times n \ 행렬) \ \times \ (n \times l \ 행렬) \ = \ (m \times l \ 행렬) $$
행렬의 전치
$$ \begin{pmatrix}
a & b \\
c & d
\end{pmatrix} ^{T}
=
\begin{pmatrix}
a & c \\
b & d
\end{pmatrix} $$
$$ (A^{T})^{T} $$
$$ (AB)^{T} = B^{T}A^{T} $$
3. 인공 신경망의 행렬 표현
맨 위 인공 신경망의 1층 의식입니다.
$$ a_{1}=w_{11}x_{1}+w_{21}x_{2}+b_{1} $$
$$ a_{2}=w_{12}x_{1}+w_{22}x_{2}+b_{2} $$
$$ a_{3}=w_{13}x_{1}+w_{23}x_{2}+b_{3} $$
↓
프로그래밍 시 효율을 높이기 위해
위 식을 하나의 행렬 식으로 표현할 수 있습니다.
$$ (a_{1} \ a_{2} \ a_{3})=(x_{1} \ x_{2})
\begin{pmatrix}
w_{11} & w_{12} & w_{13}\\
w_{21} & w_{22} & w_{23}
\end{pmatrix}
+(b_{1} \ b_{2} \ b_{3}) $$
4. Softmax 함수
Softmax 함수는 입력받은 값을 0과 1사이의 수로 표현하며
모든 출력된 값의 합은 1이됩니다.
(확률로 해석 할 수 있습니다.)
Softmax 함수를 사용함으로써
값의 크고 작음을 변화시키지 않고
표현 범위를 이탈하는 Overflow를 방지 할 수 있습니다.
(Softmax 함수는 미분값의 형태가 기존값과 같은 e^x 를 사용합니다.)
- Softmax 변환 -
$$ 1. \ (a_{1}, \ a_{2}, \ a_{3}, \ \cdot \ \cdot \ \cdot \ ,a_{n}) $$
$$ \downarrow $$
$$ e^{x}를 적용 $$
$$ \downarrow $$
$$ 2. \ (e^{a_{1}}, \ e^{a_{2}}, \ e^{a_{3}}, \ \cdot \ \cdot \ \cdot \ ,e^{a_{n}}) $$
$$ \downarrow $$
$$ 정규화 $$
$$ \downarrow $$
$$ 3. ( \frac{e^{a_{1}}}{(e^{a_{1}}, \ e^{a_{2}}, \ e^{a_{3}}, \ \cdot \ \cdot \ \cdot \ ,e^{a_{n}})}
, \frac{e^{a_{2}}}{(e^{a_{1}}, \ e^{a_{2}}, \ e^{a_{3}}, \ \cdot \ \cdot \ \cdot \ ,e^{a_{n}})} , \ \cdot \ \cdot \ \cdot
, \frac{e^{a_{3}}}{(e^{a_{1}}, \ e^{a_{2}}, \ e^{a_{3}}, \ \cdot \ \cdot \ \cdot \ ,e^{a_{n}})} )
$$
'딥러닝' 카테고리의 다른 글
딥러닝 2 - 활성화 함수(Activation function) (0) | 2022.02.10 |
---|---|
딥러닝 1 - 퍼셉트론(Perceptron) (0) | 2022.02.09 |