반응형

[과적합을 줄이는 방법3] CNN Batch Normalization

 

 

 

 

 

appendix. 한글 내용

[과적합을 피하는 방법3] Batch Normalization

- batch normalization이란 각 batch 별 평균과 분산을 기반으로 각 layer에서 나오는 output을 normalization하는 기법이다.
- 추론 단계에서는 평균과 분산을 이동평균으로 계산한 값을 사용한다.
- 평균이 0이고 분사이 1인 값으로 정규화를 해버리면 relu activation function에서 0 이하가 제거가 되므로 스케일링과 편향을 곱하고 더해준다.
- 결과적으로 모든 계층이 동일한 Feature를 출력하여 학습에 유리함.
- 추론 단계에서는 이동평균을 사용하영 배치 정규화의 평균과 분산을 계산함
- 정규화 평균과 스케일, 바이어는 고정 값이므로 단일 곱과 더하기 연산으로 계산됨.
- 학습 시, bias의 역할이 batch normalization의 bias와 역할이 겹치므로 fully connected bias는 사용하지 않는다.
- 최종적으로 학습 시에는 파라미터 값이 상수이므로 학습 시에는 연산량이 많이 필요하다고 하더라도, 추론시에는 연산량이 이전과 똑같다.


합성공 계층의 배치 정규화 방법

- Fully connected Layer 의 batch normalization은 batch 크기의 평균과 분산을 계산 후, 정규화를 한다.
- Convolution Neural Network는 batch size, image height, image width를 고려하여 정규화를 수행한다.
추론 단계에서는 똑같이 적용된다.

 

반응형
반응형

[과적합 줄이는 방법2] Regularization, Argumentation

 

 

appendix. 한글 내용

과적합을 줄이는 방법2

1. 정규화 기법
- Loss에 웨이트 가중치 항을 더하여 전체 Loss는 증가함
- 웨이트가 작으면 일반화에 유리하기 떄문이다.

사례) Image Reconstruction
- GAN이란 Generative Adversarial Network로 적대적 생성 신경만이다
- 비지도 학습이 GAN은 평가에 있어서 주관적이 요소가 많이 개입되므로 Regularization을 사용하여 튜닝이 필요하다.
- 또한 평가하는 방법은 이미지 대회에서 우승한 신경망을 기반으로 평가를 수행한다. Fake Image와 Real Image를 VGG Network에 입력으로 하고 나온 특징 값을 비교하여 만든 loss가 vgg loss 이다.


2. Data Argumentation
- 데이터가 부족하면 데이터 증강이 필요하며, 이를 data argumentation이라고 한다.
- Data Argumentation 기법에는 다양한 방법이 있으며, 서로의 조합을 새로운 Argumentation 기법을 만들 수 있다.
- Argumentation 기법의 순서에 영향을 미치지 않는 것을 invariant, 영향을 미치는 것을 variant라고 한다.


반응형
반응형

[과적합 줄이는 방법] Early Stopping, Dropout, Batch Normalization

 

 

Appendix. 한글 

과적합을 줄이는 방법

1. Early Stopping

Training Data : 학습만을 위하여 사용하는 data
Validation Data : Hyper Parameter를 수정하기 위해 사용하는 data
Test Data : 최종 검증을 위한 데이터

Early stopping을 사용하여 Validation Loss 값이 최소가 되는 지점에서 자동으로 학습을 중단하도록 하는 방법이다.

2. Drop Out
- dropout은 학습 시에 뉴럴 네트워크 간의 연결을 일정 비율만큼 끊은 후, 학습하는 방법이다.
- 일반적으로 0.5 확률로 연결을 끊는다.
- dropout을 사용하면 여러개의 신경망을 합치는 앙상블과 같은 효과를 얻을 수 있다.


3. Batch Normalization
Vanila Gradient Descen는
한번 update를 하기 위하여 모든 데이터를 학습하여 경사하강을 수행함
batch size 개수 만큼 gradient 업데이트를 수행한다.
이것을 미니배치 학습법이라고 한다.

배치 정규화가 필요한 이유는 Internal Covariate Shift를 해결하기 위함이다.
Internal Covariate Shift 란
학습이 진행됨에 따라 입력 데이터의 분포가 달라지게 된다.
이러한 현상을 Internal Covariance Shift라고 한다.
이러한 현상을 해결하기 위하여 Fully Connected Layer와 Relu 사이에 Batch Normalization을 넣으며, 이는 mini batch 학습을 한다는 가정하에 수행된다.
각 배치별로 발생하는 평균과 분산을 이용하여 노말라이제이션을 수행하는 것이다.
학습 단계에서의 batch normalization은 각 층이 동일한 scale로 학습이 되었기 때문에 발산과 수렴이 덜하게 된다.
주로 발산과 수렴은 층의 입력과 출력의 차이가 많이 발생하여 gradient descent 시 발산 혹은 수렴이 되기 때문이다.
또한 정규화 후, 스케일링을 곱하고 편향을 더해준다. 그 이유는 relu를 사용하게 될 경우 0 이하의 값은 모두 사라지기 때문에 의미 있는 정보가 사라지는 것을 막기 위하여 스케일링과 편향 값이 추가되었다.
추론 단계에서의 batch normalization도 비슷하다.
추론 단계에서는 Training 단계에서 이동 평균으로 미리 계산한 평균과 분산 값을 가져와 사용한다. 이 값을 기반으로 Batch Noramlization 하여 추론을 한다.


반응형
반응형

[ADsp 정리] 3-5-1. 정형 데이터 마이닝

 1. 데이터 마이닝  
1.1 의미
-  대용량의 데이터에서 특징 및 패턴을 찾아 의사결정에 활용하는 방버
- 통계적 분석은 분석이나 검증을 수행하지만, 의미있는 정보를 찾는다는 점에서 차이가 존재함

1.2 정보를 찾는 방법에 따른 종류
- Aritifical Intelligence, Decision Tree, K mean clustering, 연관분석, 회귀 분석, 로짓 분석, Nearest Neighborhood
2. 지도학습 및 비지도학습 분류
2.1 지도 학습
Decision Tree, Artificial Neural Network,  일반화 선형 모델, 회귀 분석, 로지스틱 회귀분석, 사례기반 추론, K-Nearest Neighbor

2.2 비지도 학습
OLAP(On-Line Analytical Processing), 연관성 규칙발견, 군집 분석( K-Mean Clustering), SOM(Self Organizing Map)
3. 분석 목적에 따른 유형 분류
2.1 예측 모델링
 Classification : 회귀 분석, 판별분석, 신경망, 의사 결정 나무
2.2 설명 모델링
연관규칙 : 항목간 연관 규칙
연속규칙 : 시간 정보 포함
데이터 군집화 : 그룹 분할 
4. 데이터 마이닝 단계
목적 설정 -> 데이터 준비 -> 데이터 가공 -> 데이터마이닝 기법 적용 -> 검증
5. 데이터 마이닝을 위한 데이터 분할
5.1. Training data : 50%
모델을 훈련시킬 때 사용

5.2 Validation data : 30%
모델의 성능을 검증할 때 활용

5.3 Test data : 20%

5.4 데이터 양이 충분치 않을 경우
홀드 아웃(Hold Out) : Training data, Test data 만 나누어 사용
교차 확인(Cross Validation ) : k fold cross validation 라고하며 10-fold 교차분석을 주로 사용한다.
주어진 데이터를 k개로 나눈 후, k-1집단을 학습, 나머지는 검증용으로 사용하여 k번 반복 측정 후, 평균을 내는 방법 
 6. 성과 분석
  Positive(Condition) Negative(Condition)  
Positive(Predict) TP(True Positive)
옳은 검출
FP(False Positive)
틀린 검출
Precision(정확도)

Negatice(Predict) FN(False Negative)
검출되어야 하는데 검출 X
TN(True Negative)
검출안되야 하는데 검출 X
X
  Sensitive(민감도) 
Recall(재현율)
Specificity(특이도)  
1) 정분류율(Accuracy)
Accuracy = (TP+TN)/(TP+TN+FP+FN) 

2) 오분류율(Error Rate)
1-Accuracy = (FP+FN)/(TP+TN+FP+FN)

3) 특이도(Specificity)
True Negative Rate = TN / (TN+FP)

4) 재현율(Recall) / 민감도(Sensitivity), 
True Positive Rate = TP/(TP+FN)

5) 정확도(Precision)
Precision = TP/(TP+FP)

6) 재현율(Recall)
Recall = TP/(TP+FN)

7) F1 Score
F1 = 2 x (Precision x Recall)/ (Precision+Recall)

8) 평가 방법
A. ROC Curve (Receiver Operating Characteristic Curve)
- ROC Curve란 가로축 FPR(False Positive Rate = 1- 특이도), 세로축 TPR(True Positive Rate, 민감도) 도 시각화
- 2진 분류에 사용되며, ROC의 면적을 나타내는 AUROC(Area Under ROC)값이 클수록 모형의 성능이 좋음 
- TPR은 True인 케이스를 True로 예측한 비율
- False 케이스를 True 로 잘못 예측한 비율이다.  
- AUROC의 면적이 정확도 판단 기준은 0.9~1 : Exellent, 0.8~0.9 : Good, 0.7~0.8 :Fair, 0.6~0.7:Poor, 0.5~0.6:Fail 

B. mAP(mean Average Precision) 
- Object Detection에서 map라는 지표를 사용하여 정답을 판단한다. 
- IoU(Intersection Over Union)가 0.5 이상일 경우 TP, 이하일 경우 FP라고 한다.
- IoU는 예측한 면적과 Ground Truth면적의 교집합/ 합집합 이다. 
- Object Detcion에서는 Precision 과 Recall 값을 활용하여 PR곡선을 그릴 수 있다. 
- Confidence Level의 Threshold 값을 변화시켜가면 x축에는 Recall , y축에는 Precision을 그리면 된다.  
- PR곡선의 면적을 게산하면 Average Precision를 구할 수 있다. 
- 각 객체의 AP를 다 더한 다음 클래스 수만큼 나누면 MAP(Mean Average Precision)를 계산할 수 있다.  
7. 과적합(Overfitting), 과소 적합(Underfitting), 일반화(Generalization) 
A.과적합(Overfitting)
- 과하게 학습하여 다른 데이터에 대해서 제대로 대응하지 못하는 현상
B. 과소적합(Underfitting)
- 경향은 맞지만 지나치게 일반화 됨
C. 일반화(Generalization)
- 과적합도 과소적합도 아니므로, 새로운 데이터가 들어와도 잘 예측함

 

반응형

+ Recent posts