이 글은...
Andrew Ng 교수의 Deep Learning 강좌 C1W3L03 까지의 내용을 정리한 것이다. 신경망 네트워크의 구성과 대략적인 계산 흐름을 살펴보았다.
내용 요약
신경망 네트워크의 구성 알아보기
신경망은 아래 그림과 같이 3개의 층으로 구별할 수 있다.
- 입력층: 학습 데이터의 입력 특성들의 층이다.
- 은닉층: 입력층과 출력층 사이에 있는 층, 데이터를 확인할 수는 없다.
- 출력층: 출력 특성들의 층이다.
신경망 네트워크의 층을 표기할 때는 $a^{[l]}$라고 쓴다. 여기서 $l$이 층 수를 의미한다. 입력층은 0층이다. 신경망 네트워크의 층수를 셀 때 입력층은 포함하지 않는다. 위 그림에서 층은 3개로 구분되지만 2층 신경망이라 부른다.
신경망 네트워크 출력의 계산
위에서 살펴본 은닉층 노드 하나를 자세히 보면 아래 그림과 같다. 노드 하나는 로지스틱 회귀 과정에서 사용했던 연산 1회를 하고있다는 것을 알 수 있다.
앞에서 살펴본 신경망 네트워크를 예로들어 각 노드에서 하는 연산을 풀어쓰면 아래와 같다.
$z^{[1]}_1=w^{[1]T}_1x+b^{[1]}_1, \quad a^{[1]}_1=\sigma({z^{[1]}_1})$
$z^{[1]}_2=w^{[1]T}_2x+b^{[1]}_2, \quad a^{[1]}_2=\sigma({z^{[1]}_2})$
$z^{[1]}_3=w^{[1]T}_3x+b^{[1]}_3, \quad a^{[1]}_3=\sigma({z^{[1]}_3})$
$z^{[1]}_4=w^{[1]T}_4x+b^{[1]}_4, \quad a^{[1]}_4=\sigma({z^{[1]}_4})$
이렇게 반복되는 연산을 하게되는데 이것을 벡터화하면 이렇게 쓸 수 있다.
$z^{[1]}=W^{[1]T}X+b^{[1]}$
$a^{[1]}=\sigma(z^{[1]})$
그리고 출력층인 2층에서는 아래와 같이 쓸 수 있다.
$z^{[2]}=W^{[2]T}a^{[1]}+b^{[2]}$
$a^{[2]}=\sigma(z^{[2]})$
2층에서 다른점은 입력층 $X$가 1층 출력값인 $a^{[1]}$로 바뀌었다는 것과 $W$와 $b$ 행렬 크기가 다르다는 점이다. 출력층에서는 $W$의 크기가 (1, 4)이고 $b$의 크기가 (1, 1)이다.
'연구 노트 > 머신러닝' 카테고리의 다른 글
[TIL] 210410 - Deep LearniNg (~C1W3L07) (0) | 2021.04.12 |
---|---|
[TIL] 210406 - Deep LearniNg (~C1W3L05) (0) | 2021.04.06 |
[TIL] 210401 - Deep LearniNg (~C1W2L18) (0) | 2021.04.02 |
[TIL] 210331 - Deep LearniNg (~C1W2L15) (0) | 2021.03.31 |
[TIL] 210330 - Deep LearniNg (~C1W2L13) (0) | 2021.03.30 |