표기법(notation)
계층 간 가중치 표기법(weight notation)
가중치 $w^{(2)}_{21} \Rightarrow$ 계층 2의 노드에 적용되는 가중치로서,
1 계층의 노드 1에서 2 계층의 노드 2로 전달되는 신호를 강화 또는 약화시키는 가중치(즉, 가중치에서의 아래 숫자는 다음 계층의 노드 번호가 먼저 나온다.)
노드의 바이어스 표기법(bias notation)
바이어스 $b^{(2)}_{1} \Rightarrow $ 계층 2에 있는 첫 번째 노드에 적용되는 바이어스
노드의 선형 회귀 계산 값 표기법(linear regression notation)
선형 회귀 계산 값 $x^{(2)}_{2} \Rightarrow$ 계층 2의 두 번째 노드 선형 회귀(linear regression) 계산 값
($z^{(2)}_{2} = x_{1}w^{(2)}_{21} + x_{2}w^{(2)}_{22}+b^{(2)}_{2}$)
노드의 출력 표기법(node output notation)
노드의 출력 값 $a^{(2)}_{2} \Rightarrow $ 계층 2의 두 번째 노드 출력 값으로서, 로지스틱 회귀(logistic regression) 계산 값
활성화 함수로서 sigmoid 사용한다면 $a^{(2)}_{2} = sigmoid(z^{(2)}_{2})$
피드 포워드(feed forward)
입력 층(input layer)으로 데이터가 입력되고,
1개 이상으로 구성되는 은닉 층(hidden layer)을 거쳐서 마지막에 있는 출력층(output layer)으로 출력 값을 내보내는 과정
(이전 층에서 나온 출력 값 $\Rightarrow$ 층과 층 사이에 적용되는 가중치의 영향 받음 $\Rightarrow$ 다음 층의 입력 값)
피드 포워드(feed forward) 예시 과정
입력 층(input layer) 출력
딥러닝 입력 층에서는 활성화 함수인 sigmoid를 적용하지 않고,
입력 값 그대로 출력으로 내보내는 것이 관례
일반 식 : $a^{(1)}_{1} = x_{1} \;\;\; a^{(1)}_{2} = x_{2}$
행렬 식 : $\begin{pmatrix} a^{(1)}_{1} & a^{(1)}_{2} \end{pmatrix} = \begin{pmatrix} x_{1} & x_{2} \end{pmatrix} $
은닉 층(hidden layer) 선형 회귀 값
일반 식 :
$z^{(2)}_{1} = a^{(1)}_{1}w^{(2)}_{11} + a^{(1)}_{2}w^{(2)}_{12} + b^{(2)}_{1}$
$z^{(2)}_{2} = a^{(1)}_{1}w^{(2)}_{21} + a^{(1)}_{2}w^{(2)}_{22} + b^{(2)}_{2}$
행렬 식 :
$\begin{pmatrix} z^{(2)}_{1} & z^{(2)}_{2} \end{pmatrix} = \begin{pmatrix} a^{(1)}_{1} & a^{(1)}_{2} \end{pmatrix} \cdot \begin{pmatrix} w^{(2)}_{11} & w^{(2)}_{21} \\ w^{(2)}_{12} & w^{(2)}_{22} \end{pmatrix} + \begin{pmatrix} b^{(2)}_{1} & b^{(2)}_{2} \end{pmatrix}$
은닉 층(hidden layer) 출력
$a^{(2)}_{1} = sigmoid(z^{(2)}_{1}) \;\;\; a^{(2)}_{2} = sigmoid(z^{(2)}_{2}) $
출력 층(output layer) 선형 회귀 값
일반 식 :
$z^{(3)}_{1} = a^{(2)}_{1}w^{(3)}_{11} + a^{(2)}_{2}w^{(3)}_{12}+b^{(3)}_{1}$
행렬 식 :
$\begin {pmatrix} z^{(3)}_{1} \end{pmatrix} = \begin{pmatrix} a^{(2)}_{1} & a^{(2)}_{2} \end{pmatrix} \cdot \begin{pmatrix} w^{(3)}_{11} \\ w^{(3)}_{12} \end{pmatrix} + \begin{pmatrix} b^{(3)}_{1} \end{pmatrix}$
출력 층(output layer) 출력
$ y = a^{(3)}_{1} = sigmoid(z^{(3)}_{1})$
y는 정답 t와의 차이인 오차(loss)가 최소가 되도록 각 층에 있는 가중치와 바이어스를 조정해주어야 한다.
'머신러닝' 카테고리의 다른 글
[머신러닝] 오차 역전파 - 오차 역전파 식 유도, 공식 (0) | 2020.08.11 |
---|---|
[머신러닝] 신경망, 인공지능, 딥러닝 (0) | 2020.07.26 |
[머신러닝] 로지스틱 회귀 - 분류, 시그모이드 함수, 손실 함수 (0) | 2020.07.24 |
[머신러닝] 선형 회귀- 손실 함수, 경사 하강법 (0) | 2020.07.20 |
[머신러닝] python matplotlib 사용법 - line plot, scatter plot (0) | 2020.07.19 |