Key components of deep learning
- data 모델이 학습하기 위한 데이터
- model 데이터를 통해 학습하고자 하는 모델
- loss function 모델의 오차를 정의하는 함수
- algorithm loss를 최소화하는 최적화방법
variables를 optimization 하기 위해
적절한 stepsize를 찾는게 가장 중요한 문제
용어정리
Generalization
: 일반화, test error와 training error의 차이, 일반화가 좋다는 것은 성능이 학습 데이터와 비슷하게 나올 것이다.
Under-fitting
-Balanced
-Over-fitting
Over-fitting
: training data에서 잘 동작하지만 test data에서는 잘 동작하지 않음
Cross-validation
: 학습 데이터와 validation data를 나누는 것
Bias
-variance
: 정확도, 일관성
Bias and Variance trade-off
:
bias를 줄이면 variance가 높아질 가능성이 크고 그 반대도 성립, 학습 데이터에 noise가 있을 때 bias와 variance를 둘 다 줄이긴 힘들다
Bootstrapping
: 학습 데이터에서 여러 개를 뽑아 여러 개의 모델로 training data로 만드는 것
Bagging
: Bootstrapping aggregation
boostrapping으로 여러 개의 학습 데이터를 활용
Boosting
: 잘 예측되지 않는 학습 데이터에만 잘 동작하는 새로운 모델을 만들고 이러한 모델들을 합침
Batch size를 많이 쓰면 sharp minimum에 도달, 적게 쓰면 flat minimum에 도달.
sharp보다 flat minimum에서 training function과 testing function의 차이가 작다.
→ sharp minimum보다 flat minimum에 도달하는게 낫다. batch size를 줄이면 일반적으로 generalization이 좋아진다
적절한 learning rate를 정하는 것이 중요
momentum : 각 mini batch에서 이전 mini batch의 정보를 활용해서 업데이트, 한쪽으로 흘러간 gradient direction을 어느 정도 유지 → 큰 변화에도 학습이 잘됨
lookahead gradient : momentum에 다음 gradient를 계산한 값을 더해 accumulation, 좀 더 빠르게 convergence 가능
변한정도에 따라 많이 변한 parameters를 더 적게, 적게 변한 parameters를 많이 변화 시키게 함
sum of gradient squares : gradient의 변한 정도
→ 분모의 gradient가 점점 커지는데 뒤로 갈수록 W가 업데이트 안됨, 학습이 멈춤
→ Adadelta
window size를 지정하여 범위 안의 gradient squares의 변화
EMA of gradient squares와 momentum을 같이 활용
generalization을 잘 되게 규제(학습에 반대되도록).
학습을 방해함으로 학습 데이터 뿐만 아니라 test data에도 잘 동작하도록 만들어줌.
출처 - 부스트캠프 AI tech 교육자료
[부스트캠프 AI Tech] Week 3 - Day 1