Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

RECORD AI

Computing Neural Network Output 본문

Deep Learning/basic Neural Networks

Computing Neural Network Output

SC_LEE 2022. 12. 26. 14:19
반응형

Computing Neural Network Output


목표

  • neural Network이 정확히 어떻게 출력값을 계산하는지 확인
  • logistic regression과 비슷하지만 여러번 반복

preview

  • logistic regression

  1. $z = w^Tx+b$
  2. $a = \sigma(z)$

이 원은 $z$를 계산하고 활성화 $a$를 $\sigma(z)$로 계산하는 2 step 계산을 나타낸다.


neural network representation

  • 위 2 step을 많이 반복한다.

은닉층의 노드 하나를 집중해서 자세히 살펴본다.

1. 노드의 왼쪽이라 생각하고 $z=w^Tx+b$를 계산한다.

  • 이 값들은 모두 첫번째 은닉층과 관련됐기 때문에 모두 윗첨자 [1]을 붙여준다.
    은닉층의 첫번째 노드이기 때문에 아래첨자 1도 붙여준다.


a of node1

2. $a_1^{[1]}=\sigma(z_1^{[1]})$을 계산한다.

  • 신경망의 노드인 원은 이 2 step을 의미


$z_2^{[1]},a$ of node2

3. 두번째 노드도 1,2 step과 같이 계산한다.


4. 나머지 두 노드도 비슷한 계산을 한다.

  • $a_i^{[l]}$
    $l$ : layer
    $i$ : node in layer

노드들에 대한 식

$w_1^{[1]T} = (w_1^{[1]})^T$

  • for 문을 써서 구현하면 비효율적 → vectorization

1. compute $z$ as vector

1) $w$를 행렬처럼 쌓으면 열벡터의 전치인 $(4,3)$이 된다.


$w$


column vector의 전치

2) feature $x_1,x_2,x_3$과 곱하면


$w^{[1]}$ and feature $x$


3) dot 연산에 의해 다음과 같이 얻는다.

dot연산한 $w^{[1]}$ and feature $x$


4) $b$를 더해주면 결과의 각 행은 위에서 계산한 네 값과 정확히 일치한다.


vectorizaion output



5) 따라서 이 값은 $ z_1^{[1]}, z_2^{[1]}, z_3^{[1]}, z_4^{[1]}$과 같다.

$ z_1^{[1]}, z_2^{[1]}, z_3^{[1]}, z_4^{[1]}$


  • $Z^{[1]}$ : 각 $z$를 열벡터로 쌓은 벡터


    $ Z^{[1]}$


  • $W^{[1]}$ : $w$를 쌓아서 만든 (4, 3) 행렬

  • $b^{[1]}$ : $b$를 쌓아서 만든 (4, 1) 행렬



$ W^{[1]}, b^{[1]}$


2. compute $a$

1) $a^{[1]}$ : $a_1^{[1]}$부터 $a_4^{[1]}$을 stack한 벡터



$a^{[1]}$


2) $\sigma(Z^{[1]})$와 같다.


$\sigma(Z^{[1]})$

  • $\sigma$ : $Z^{[1]}$의 각 원소들의 sigmoid 값을 계산하는 함수

노드들에 대한 shape


2NN



Given input x


1. $z^{[1]}=W^{[1]}x+b^{[1]}$

$z^{[1]} : (4,1)$
$W^{[1]} : (4,3)$
$x : (3,1) $ :

  • $a^{[0]}$ (feature x의 가명) $=x$, $a^{[2]}=\hat{y}$



2. $a^{[1]}=\sigma (z^{[1]})$

  • $a^{[1]} : (4,1)$
  • $z^{[1]} : (4,1)$



3. $z^{[2]}=W^{[2]}a^{[1]}+b^{[2]}$

  • $W^{[2]} : (1,4)$
  • $a^{[1]} : (4,1)$
  • $b^{[2]} : (1,1)$
  • $z^{[2]} : (1,1)$

4. $a^{[2]}=\sigma (z^{[2]})$

  • $a^{[2]} : (1,1)$
  • $z^{[2]} : (1,1)$

  • 마지막 출력 유닛을 parameter $w,b$를 가지는 logistic regression과 비슷하게 생각하면
    $w,b$대신에 $(1,4)$차원 $W^{[2]}$과 $(1,1)$차원 $b^{[2]}$를 쓰는것을 제외하면
    $w^{T}=W^{[2]}$, $b=b^{[2]}$와 비슷하다.

정리

  • $z=w^{T}x+b$
  • $\hat{y}=a=\sigma(z)$ 계산
  • 은닉층 : 1개인 신경망에서는 아래를 구현

  1. 은닉층의 logistic regression 노드들의 출력값 계산
  2. 출력층의 logistic regression 노드의 출력값 계산

참고 1

반응형
Comments