2022. 8. 2. 15:36ㆍ인공지능,딥러닝,머신러닝 기초
1. 최적화(Optimization)
0)정의
-> Train data에서 최고의 성능을 얻응려고 모델 파라미터들을 조정하는 과정
1)일반화(Generalization)
- 훈련된 모델이 처음 보는 데이터에 대해 잘 추론할 수 있는 상태
- 학습을 통해 일반화된 특징들을 잘 찾은 상태
2) 과대적합(Overfitting)
- 검증 결과 Train set에 대한 성능은 좋은데 validation dataset에 대한 성능은 안좋은 상태로, 학습을 과하게 한 상태를 말함
- 학습이 과하게 되어 쓸데 없는 패턴을 모두 외워버려, 오힐 처음본데이터에 대한 예측 성능이 떨어짐
- 보통 Train Dataset의 크기에 비해 모델이 너무 복잡한 경우 발생
[개선]
- 더 많은 데이터를 수집 -> 모델이 복잡해도 학습시킬 데이터가 충분히 많으면 괜찮다
- 모델의 복잡도를 낮춰 단순한 모델을 만듦 -> 네트워크 모델의 크기를 작게 만들고, 모델의 학습을 규제하는 기법을 적용
- Epoch(또는 Step)수를 줄인다 -> Validation의 성능 지표가 가장 좋았던 Epoch 까지만 학습
- 과대적합을 방지하기 위한 규제 방식 = 모두 모델을 간단하게 만드는 방법
3) 과소적합(Underfitting)
- 검증 결과 Train set과 Validation Set 모두 성능이 안 좋은 상태로, 모델의 학습이 덜 된 상태를 의미
- Train Dataset의 크기에 비해 모델이 너무 단순해서 데이터에 대한 특징들을 다 찾지 못한 상태를 의미
[개선]
· 모델의 복잡도를 높임 -> 모델 네트워크의 크기를 키움 (Layer or Unit의 수를 늘림)
· Epoch (또는 Step) 수를 늘린다. -> Train / Validation의 성능이 계속 좋아지는 상태에서 끝난 경우 더 학습을 시킴
4) Epochs의 최적화
- 데이터셋을 여러번 반복 학습을 하게 되면 초반에는 train, validation성능이 모두 개선됨
- Bt학습이 계속 반복되면 Train성능은 꼐속 좋아지지만 어느 시점부터는 overfitting이 발생하여 Validation의 성능은 나빠짐
- Epochs를 반복하는 것은 같은 데이터셋을 반복적으로 학습하는 것이기 때문에 적절한 Epoch 수를 넘어가면 Overfitting발생
2. DNN 모델 크기 변경
0) 개요
- 모델의 Layer나 Unit수가 많을 수록 복잡한 모델이 됨
- OVerfittign의 경우 모델을 간단하게 만들고 Underfitting일 경우 모델을 크게 만든다.
- 큰 모델에서 시작하여 Layer나 Unit수를 줄여가며 Validation Loss의 감소 추세를 관찰한다
1) 데이터에 비해 작은 모델의 특징
- Train/Validation 성능 개선의 속도가 느림-> 반복 횟수가 충분하지 안으면 학습이 덜 된 상태에서 중단될 수 있음
- Underfitting이 발생할 가능성이 큼
2) 데이터에 비해 큰 모델의 특징
- Validation 성능이 학습 초반부터 나빠진다
- Train에 대한 성능은 빠르게 개선됨
- Overfitting이 발생할 가능성이 큼
3. Dropout Layer 추가를 통한 Overfitting 규제
0) 정의
· Neural Network의 Overfitting 방지를 위한 규제 기법
· Overfitting이 발생하는 이유는 모델이 너무 복잡하기 때문으로, 너무 복잡한 모델은 학습 시 Train Dataset으로부터 너무 많은 특징을 찾기 때문에 일반성이 떨어지게됨
1) Dropout
- 학습시 일부 Unit(Node)들을 Random하게 빼고 학습함 / 이때 빠지는 노드들을 Dropout Node라고 함
- 선택된 노드들의 weight들을 모두 0으로 학습시키며, 이 노드들은 최적화 대상에서 빠짐
- Dropout이 적용되는 Layer에서 Dropout Node의 비율을 너무 크게 지정하면 Underfitting발생 -> 0.2~0.5 사이값이 적정
- 매 Step마다 Dropout Node들은 Random하게 바뀜
2) 효과
- Dropout은 Overfitting의 원인인 co-adaptation현상을 감소/방지하는 효과가 있음
- Dropout 적용 시 Step마다 다른 network를 학습시키는 형태가 되어 앙상블(ensemble) 효과가 있음
*co-adaptation현상이란?
- 학습시 생기는 오차를 줄이기 위해 네트워크 내의 모든 Node들의 모든 파라미터들이 업데이트 되는 현상
- 발생한 오차에 대해 모든 파라미터가 공동 책임으로 업데이트 되는 것으로, 이에 각 노드들이 역할이 나눠지지 못하고 공동화 되며 그로 인해 쓸데없는 패턴까지 학습하게 되는 것(Overfitting 원인)
Dropout사용하게 되면, 학습시 마다 Node들을 학습에서 제외하므로 이런 co-adaptation현상을 줄일 수 있음
3) 적용
- Dropout은 학습시에만 적용하고 검증, 테스트, 새로운 데이터 추론 시에는 적용되지 않음
4. Batch Normalization ( 배치 정규화 )
0) 정의
- > 각 Layer 에서 출력된 값을 평균:0, 표준편차: 1로 정규화하여 각 Layer의 입력분포를 균일하게 만들어 줌
1) Internal Covariate Shift(내부 공변량 변화) 문제
- 내부 공변량 변화 = 학습 과정에서 각 층을 통과할 때마다 입력 데이터 분포가 달라지는 현상
- 입력 데이터의 분포가 정규 분포를 따르더라도 레이어를 통과하면서 그 분포가 바뀌어 성능이 떨어지는 문제가 발생
- 각 레이어를 통과할 때 마다 분포를 정규 분포로 정규화하여 성능을 올린다
2) 작동방식
- Batch Normalization은 입력 데이터와 파라미터의 가중 합을 구한 결과에 적용한 뒤 그 결과를Activarion함수에 전달함
3) 효과
· 랜덤하게 생성되는 초기 가중치에 대한 영향력을 줄일 수 있음
· 학습하는 동안 과대적합에 대한 규제의 효과를 줌
5. Optimizer의 Learning Rate (학습률) 조정을 통한 성능 향상
0) 개요
- Optimizer 의 learning rate이 너무 크거나 너무 작으면 최적의 파라미터를 찾지 못할 수 있음
- Lerning rate를 하나로 지정할 수 있으나, 학습이 반복되는 동안 그 값을 변경하여 성능 향상을 꾀하기도 함
1) Learning Rate Decay
- 일정한 step마다 일정한 비율로 Learning rate를 변경함
- 초반에는 크게 설정하고, 갈수록 rate를 줄여주는 방향으로 구함
-> 일반적으로 5 epochs마다 절반으로 줄이거나 20epochs마다 1/10씩 줄이기도 하며, 보통 고정된 학습 속도로 검증 오차를 살펴보다 검증 오차가 개선되지 않을 때마다 학습 속도를 감소시키는 방법을 택함
2) Callback을 이용한 조정
- 특정 횟수의 반복동안 성능 지표가 향상되지 않으면 learning rate를 조정
* Callback이란 ?
-> 학습 도중 특정 이벤트가 발생하면 호출되도록 정의한 기능
6. Hyper Parameter Tuning
0) parameter
-> 모델이 학습하여 데이터에 가장 적합한 값을 찾아내는 파라미터로, Weights (W)와 Bias (b)가 있다.
1) Hyper Parameters
-> 모형의 구조를 결정하거나 optimization 방법을 결정하는 변수들로, 개발자가 직접 설정하는 파라미터다.
① Optimizer의 종류
② Learning Rate (alpha)
③ Hidden Laryer의 수
④ Hidden Unit의 수
⑤ Activation Function의 종류
⑥ Minibatch Size
⑦ Regularization
⑧ Dropout Rate
'인공지능,딥러닝,머신러닝 기초' 카테고리의 다른 글
Activation Function(활성화 함수)종류 (0) | 2022.09.01 |
---|---|
인공지능_부스트코스 01 _class and instance (0) | 2022.08.27 |
Optimization : Lagrange Dual Problem & Strong duality and Karush-Kuhn-Tucker Conditions (0) | 2022.07.20 |
MLP / SVR (0) | 2022.07.20 |
ANN (0) | 2022.07.18 |