Deep Learning 핵심 요소
Data (모델 학습에 필요한)
Model (데이터를 변환할)
Loss (모델의 오차를 수량화하는)
Algorithm (loss를 최소화시키기 위해 parameter 조정하는)
Historical Review
Neural Networks
위키: 인간 뇌의 뉴런을 애매하게 영향을 받은 computing system
—> 뇌의 뉴런을 완벽하게 모방해야 하는가? —> 꼭 그럴필요는 없다! (비행기 사례)
정의: 비선형 연산과 행렬을 곱하는 연산이 반복되어있는 함수를 근사하는 모델
Linear Neural Networks (선형 회귀)
backpropagation
(gradient descent)
다 차원의 경우
—> 두 vector space간의 변환
선형회귀를 쌓는다면?
—> 결국 단층 선형회귀와 동일해진다.
activation function (비선형 함수)
예시
loss function
모르는 데이터에 대해 모델이 얼마나 잘 작동하는지 (gap을 최소로)
Cross-validation (k-fold)
Bias and Variance
—> bias와 variance는 trade off 관계
Bootstrapping
Bagging, Boosting
Bagging (Bootstrapping Aggregating)
Boosting
- 모델을 만들고 해당 모델의 약점을 보완한 모델을 생성 (해당 과정 반복)
ref. https://www.datacamp.com/community/tutorials/adaboost-classifier-python
Stochastic gradient descent: single sample을 이용하여 업데이트
Mini-batch gradient descent: 데이터의 subset을 이용하여 업데이트
Batch gradient descent: 전체 데이터를 이용하여 업데이트
Batch-size가 왜 중요할까?
—> batch size가 커질수록 sharp minimum이 되고 test시에 오차가 커진다!
이전 정보를 활용
이동 후에 이전 정보를 사용
많이 변한 parameter는 적게 update, 적게 변한 parameter는 많이 update
—> 분모가 무한이 되면, update X
Adagrad의 분모가 계속 커지는 현상을 방지
—> learning rate가 없다.
과거의 gradient와 squared gradient를 합친 방법
Regularization
학습을 방해 → 다양한 데이터에 잘 작동
Early Stopping
train error와 validation error가 최소인 부분에서 stop
Parameter Norm Penalty
parmeter가 너무 커지지 않게 한다.
Data Augmentation
Noise Robustness
Label Smoothing
데이터를 섞어준다.
Drop out
random하게 뉴런을 사용
Batch Normalization
parameter 통계학적 정규화