신경망 구성
- 입력층: 입력 특성들의 층 a[0]로 표기
- 은닉층: 입력층과 출력층 사이에 있는 모든 층
- 출력층: 출력 특성들의 층
신경망의 개수를 셀 때 입력층은 세지 않는다. 입력층은 공식적인 신경망으로 치지 않음
- 위 그림은 1개의 은닉층을 가지는 얕은 신경망으로 1개의 각 입력층, 은닉층, 출령층을 가지고 있다
- 은닉층이(4x3) 벡터로
- 4행은 첫 번째 좌표로 해당 층(은닉층)에 있는 노드 의미
- 3열은 두 번째 좌표로 입력 특성(입력층)이 3개를 가지고 있다는 것을 의미
- 출력층이 (2x4) 벡터로
- 2행은 첫 번째 좌표로 해당 층에 있는 노드를 의미
- 4열은 두 번째 좌표로 입력 특성이 4개를 가지고 있다는 것을 의미
- 신경망 a[m]n에서
- m은 은닉층, 출력층 등인 레이어를 의미
- n은 해당 레이어의 구성 요소인 노드를 의미
신경망 출력 계산
입력값이 노드를 통과할 때, 두 가지 과정을 거치게 된다
- 입력 함수 z=wX + b (w=가중치 b=잔차), 활성화 함수 sigmoid인 층에서
(1) 입력값이 해당 층에서 함수 z가 실행되고, (2)활성화 함수 sigmoid함수 실행
- 예측값은 심층 신경망인 경우 다음 층에서 새로운 입력값으로 적용되고 여은 신경망에서 결과로 출력
- 벡터화에서 표기법을 정확하게 입력하는 것이 중요
[0] 입력층, [1] 은닉층, [2] 출력층
(1),(2)는 1번째, 2번째 훈련 샘플을 의미
벡터화
활성화 함수
sigmoid 함수
- 0에서 1사이의 값을 가진다.
- 은닉층에서는 별로 사용하지 않지만, 이항분류에서는 사용하기도 한다
- 기준값을 0.5로 설정하면, 결과값이 0.5이상인 경우 분류에 해당하고, 반대로 0.5미만인 경우 분류에 해당하지 않는 것으로 계산
- tanh함수는 -1에서 1사이값 가지기에, 이항분류는 0과1 사이값을 가지는 시그모이드가 효율적
- 큰 양수, 큰 음수값을 가질 경우 기울기가 0에 가까워져 경사하강법이 매우 느려짐
Tanh 함수
- -1에서 1사이의 값을 갖는다.
- 평균값이 0이기 때문에, 데이터를 원점으로 이동하는 효과 있다
- 평균이 0.5인 sigmoid함수보다 더 효율적
- 큰 양수, 큰 음수값을 가질 경우 기울기가 0에 가까워져 경사하강법이 매우 느려짐
Relu 함수
-
입력값이 0보다 작으면 0을 출력, 0보다 크면 입력값 그대로 출력
-
a=max(0,z)로 음수일 때 기울기는 0이지만, 양수일 때는 자기 자신이기에 기울기 1이다.
-
다른 함수에 비해 0보다 큰 활성화 함수의 미분 값이 많아서 빠르게 학습 가능
-
음수 경우 미분 값이0이기에, 이를 대비하여 음수에 약간의 기울기를 가지는 leaky Relu함수가 있다