-
Shallow Neural NetworkGoogle ML Bootcamp/Neural Networks and DL 2023. 9. 6. 21:22728x90
2. Nerual Network Representation
Input layer - Hidden layer - Output layer
각각 a[0], a[1], a[2]로 표현되는데 a노드 속에 w와 b가 포함되어 있다.
3. Computing a Neural Network's Output
z = w.T*x + b
yhat = a = sigmoid(z)
이 식을 기본으로 각 노드의 값을 지정할 수 있다.
4. Vectorizing Across Multiple Examples
A[1]의 수평 조사 : 훈련 예제 전체를 인덱싱 한다. 훈련 셀 스캔 -> 수평 스캔 시 첫 번째 부터 숨겨진 단위부터 움직임.
숨겨진 단위의 활성화까지 조사.
A[1]의 수직 조사 : 다른 신경망의 노드 -> 수직 스캔 시 숨겨진 단위 번호에 대한 인덱
5. Explanation for Vectorized implementation
6. Activation Functions
- 활성화 함수를 사용하면 다음 레이어에 대한 학습이 조금 더 쉬워진다.
- 요즘은 sigmoid Function을 거의 사용하지 않는다. tanh 함수는 거의 항상 우수하다.
- sigmoid와 tanh 함수의 단점 중 하나는 z가 매우 크거나 매우 작으면 함수의 기울기의 도함수가 매우 작아짐. -> 함수가 거의 0에 거의 가까워져서 기울기 하강 속도가 낮아짐.
- 출력이 0, 1 값이고 이진 분류를 사용하는 경우, 출력층을 거의 사용하지 않는 경우 -> sigmoid function(거의 사용 X -> tanh 쓰는게 훨씬 좋음.)
- 다른 모든 단위 값 or 정류된 선형단위 -> ReLU
- 뭘 사용할지 잘 모를 경우 -> ReLU
7. Why do you need Non-Linear Activation Functions?
- 활성화함수의 역할은 결국 선형 함수를 만들어 내는 것이다. (a = wx + b)
- g(x) = z는 회귀 문제에 대해 머신 러닝을 하고 있는 경우라 선형 함수를 사용한다.
- 선형 함수를 사용하는 것은 일반적으로 출력층이고, 다른 곳들에서는 비선형함수인 활성화함수를 사용한다.
8. Derivatives of Activation Functions
9. Gradient Descent for Neural Networks
10. Random Initialization
- 일반적으로 가중치는 매우 작은 값으로 처리한다. (일반적으로 0.01) -> 깊은 신경망에서는 다른 숫자로 처리하는 것이 일반적.
- 가중치가 너무 크면 활성화 값을 계산할 때 z값이 너무 크거나 작을 수 있다. 그래서 시그모이드 함수의 끝부분에 다다를 수 있어 학습속도가 매우 느릴 수 있다.
728x90'Google ML Bootcamp > Neural Networks and DL' 카테고리의 다른 글
Deep Neural Network (0) 2023.09.10 Logistic Regression as Neural Network (0) 2023.09.03