신경망 네트워크 개요
뉴런 열 하나하나마다 z와 a값을 계산한다.
로지스틱 회귀에선 z와 a를 한 번 계산했지만 신경망에서는 여러번 계산한다.
신경망에서도 역방향 계산을 하여 w와 b를 갱신한다.
신경망 네트워크의 구성 알아보기
input layer / hidden layer / output layer(최종 y햇 값을 계산.)
입력값과 출력값은 알 수 있지만 은닉층의 값은 알 수 없다.
a: 이전 단계에서의 입력값을 다음 layer로 전달해주는 값. 활성값.
a^[1]는 (4,1) 벡터.
최종적으로 y햇의 값은 곧 a^[2]가 된다.(이전 층에서 넘어온 값들을 활성함수에 적용한 결과값) 로지스틱 회귀에서 a가 곧 y햇이 되는 것과 비슷하다.
이 신경망은 2층 신경망.(입력층은 세지 않는다.)
신경망 네트워크 출력의 계산
각 노드마다 두 개의 단계를 거친다.
1: z값 계산
2: 시그모이(z)값 계산.
[n]은 레이어 번호
아래첨자는 노드번호이다.
각 노드에 대한 z값과 a값을 계산하는 과정 또한 벡터화할 수 있다.
다음과 같이 z는 (4,3)의 벡터가 되고,(각 세 개의 x에 대해 4개의 값) b는 (4,1)의 벡터가 된다.(b는 x에 상관없이 노드마다 각각 x1 x2 x3에 대 같은 값을 가진다)
[1](레이어 1) 에 대해 다음과 같이 벡터화가 가능.
w에 대해 W[1], b에 대해 b[1], a에 대해 노드 1부터 4까지 a[1]
정리하여 벡터로 나타내면
이 네줄의 코드만 있으면 신경망의 출력값을 계산할 수 있다.
이때, x는 a[0]이고 y햇은 a[2]라는 것을 기억하자.
지금까지 한 것은 하나의 훈련 샘플에 관한 것이다.
많은 샘플에 대한 벡터화
다수의 훈련 샘플에 대해 벡터화하는 방법을 알아본다.
위와 같은 코드를 벡터화한다.
A에 대해 각각의 열이 한 훈련 샘플에 대한 활성값이다. 행은 각각의 은닉 유닛.
벡터화 구현에 대한 설명
앞 강의에서 벡터화한 것이 왜 올바른 식인지, 왜 그랬는지를 알아본다.
x와 W벡터를 곱하면 열벡터가 된다.
Z[1]는 W[1]와 X를 곱한 것을 가로로 쌓은 벡터다.
X에는 훈련세트가 가로로 쌓여 있다.
'머신러닝' 카테고리의 다른 글
[딥러닝] 딥러닝 1단계: 신경망과 딥러닝 - 5. 심층 신경망 네트워크 (0) | 2024.04.08 |
---|---|
[딥러닝] 딥러닝 1단계: 신경망과 딥러닝 - 4. 얕은 신경망 네트워크 (2/2) (1) | 2024.04.01 |
[딥러닝] 딥러닝 1단계: 신경망과 딥러닝 - 3. 파이썬과 벡터화 (2/2) (0) | 2024.03.25 |
[딥러닝] 딥러닝 1단계: 신경망과 딥러닝 - 3. 파이썬과 벡터화 (1/2) (0) | 2024.03.18 |
[딥러닝] 딥러닝 1단계: 신경망과 딥러닝 - 2. 신경망과 로지스틱 회귀 (2/2) (1) | 2024.03.18 |