< 성능 최적화 >
-모델의 복잡도와 과적합
-모델링의 목적 : 학습용 데이터에 있는 패턴으로 그 외 데이터(모집단 전체)를 적절히 예측
- 모델의 복잡도
- 너무 단순한 모델 : train, val 성능이 떨어짐
- 적절히 복잡한 모델 : 적절한 예측력
- 너무 복잡한 모델 : train 성능은 높고, val 성능이 떨어짐
- 복잡한 모델이 되는 경우 => 선형, 로지스틱 : 변수의 수, DecisionTree : 트리크기(detph), KNN : K 값이 작을수록, XGB : 트리갯수
- 딥러닝의 복잡도 : hidden layer 수가 많을수록, node 수가 많을수록, epochs 가 많을수록 복잡해짐
- 딥러닝 모델의 복잡도 혹은 규모와 관련된 수 : 파라미터(가중치) 수
-> 파라미터가 아주 많은 언어 모델 : Large Language Model
★★★ Generalization loss (일반화 성능) -> 객관적 성능
: 학습한 데이터 외 데이터로 성능 검증한 모델의 '찐' 성능!!
- 적절한 모델은 어떻게 만들까?
- 적절한 복잡도 지점 찾기
- 알고리즘(모델)마다 각각 복잡도 조절 방법이 있음
- 복잡도를 조금씩 조절해 가면서 (보통 하이퍼파라미터 조정)
- Train error와 Validation error를 측정하고 비교 (관점은 Validation error!)
- 딥러닝에서 조절할 대상
- Epoch 와 learning_rate
- 모델 구조 : hidden layer 수, node 수
- 미리 멈춤 Early Stopping
- 임의 연결 끊기 Dropout
- 가중치 규제하기 Regularization(L1, L2 / Lasso, Ridge)