- Train/ dev(development)/ test sets

dev set과 test set의 분포를 동일하게 하는 것이 좋다.
test set없이 dev set만 있어도 상관X
- Bias/ Variance
1) Bias(편향)
예측값과 실제 정답과의 차이의 평균
예측값이 실제 정답과 얼만큼 떨어져 있는지 나타냄
클수록 예측값과 정답 값 간의 차이가 크다.
2) Variance(분산)
다양한 데이터 셋에 대하여 예측값이 얼만큼 변화할 수 있는지에 대한 양, 얼만큼 예측값이 퍼져서 다양하게 출력될 수 있는 정도



- Regularization
overfitting을 방지(variance를 줄이는)방법으로 데이터를 늘리는 방법도 있지만, 대용량의 데이터 수준이 어려울 경우 regularization으로 해결 가능
1) Logistic regression

2) Neural network

- How does regularization prevent overfitting?
1) lamda 사용: lamda값을 크게 만들어 가중치 행렬 W를 0에 가깝게 설정
-신경망이 간단하고 작은 유닛으로 이뤄져서 overfiting 덜 일어남.

2) tanh함수 사용: lamda값이 커지고, 비용함수에 의해 가중치 w는 작아짐
-z = w*x + b에 의해 z도 작아짐.

3) Dropout Regularization(드롭아웃): 신경망 각각의 층에 대해 노드를 삭제하는 확률(1–keep_prob)을 설정하는 것.
기존 모델에 비해 작고 간소화된 네트워크가 만들어짐.
랜덤으로 노드를 삭제시켜, 하나의 특성에 의존하지 못하며 가중치를 다른 곳으로 분산(prevent overfitting)
드롭아웃의 노드를 유지하는 확률은 각층마다 다르게 설정 가능

Inverted dropout(역드롭아웃): 드롯아웃 방식에 따라 노드를 삭제 후에 얻은 활성화 값에 삭제하지 않을 확률(keep_prob)을 나눠주는 것.
4) Data augmentation(데이터 증강): 대칭, 확대. 왜곡, 회전 등의 방법을 통해 새로운 훈련데이터 획득. 더 많은 훈련데이터를 통해 overfitting 해결
5) Early stopping(조기 종료): 신경망이 개발 세트의 오차 저점 부근인 ‘가장 잘 작동하는 점’일 때 훈련을 멈추는 것.
->직교화 (Orthogonalization): 비용 함수를 최적화시키는 작업과 과대 적합하지 않게 만드는 것입니다. 각 과정은 별개의 작업으로 다른 방식으로 접근

- Normalizing training sets
1) Subtract mean(평균을 0으로 만든다)

2) Normalize variance(분산을 1로 만든다)

- Vanishing/ Exploding gradients(경사의 소실과 폭발)
경사 하강법에서 w의 값이 단위행렬(1)보다 큰 값이면 경사의 exploding
경사 하강법에서 w의 값이 단위행렬(1)보다 작은 값이면 경사의 vanishing
weight initialization(가중치 초기화): 경사의 소실과 폭발을 막기 위해
large n(깊은 신경망)인 경우 small w(작은 가중치)가 필요
Xavier initialization: tanh에서 w분산
- Gradient checking

-Gradient checking implementation notes
1) training에는 사용하지 않고 디버깅할때만 사용
2) 알고리즘이 경사 검사에 실패했다면, 어느 원소 부분에서 실패했는지 찾아본다.
특정 부분에서 계속 실패했다면 계산된 층에서 문제가 생긴 것을 확인할 수 있다.
3) regularization을 기억하자
4) 드롭아웃에서는 무작위로 노드를 삭제하기 때문에 적용하기 쉽지 않다.
드롭아웃을 끄고 진행
'3-1 > Deep Learning' 카테고리의 다른 글
6주차-Hyperparameters and Batch Norm (1) | 2024.05.11 |
---|---|
5주차-Optimization Algorithms (1) | 2024.05.11 |
3주차-Deep Neural Networks (1) | 2024.05.11 |
2주차-Shallow Neural Networks (2) | 2024.05.11 |
1주차-Introduction to Deep Learning (1) | 2024.05.11 |