반응형

[과적합을 줄이는 방법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 하여 추론을 한다.


반응형
반응형

AI 란 무엇인가?

AI는 General AI와 Narrow Ai로 구분된다

- General AI 는 모든 것을 다 할 수 있는 AI를 의미한다. ex) 아이언맨

- Narrow AI 는 한 분야의 것만을 할 수 있는 AI 이다. ex) 우리가 일반적으로 개발하는 AI를 의미한다. 

- 이러한 Narrow AI는 능동적으로 명령을 줘야 움직였던 머신들을 생각을 가지고 움직이도록 변화시키는 모든 기술들을 포괄하여 말한다.

 

Machine Learning이란 무엇인가?

Machine Learning 은 작게는 3가지로 나뉜다. 

Supervised Learning, Unsupervised Learning, Reinforcement Learning이다.

Superviesed Learning - 정답 label이 주어져 이를 기반으로 학습하는 머신런닝 기법이다.                                    ex) 주식 예측

Unsupervised Learning - 정답이 없는 문제를 학습시키는 머신런닝 기법,                                                              ex) clustering 

Reinforcement Learning- 당근과 책을을 줌으로써 문제를 알아서 학습할 수 있도록 하는 머신런닝 기법               ex) 알파고

 

Classification vs Regression 이란 무엇인가?

Supervised Learning은 크게 2가지로 나뉜다. Classification, Regression 이다.

Classification : 이진분류, 다중분류 와 같이 discrete한 output을 내는 문제이다.                                                  ex)주식의 값이 오를지 내릴지지 예측

Regression : 연속적인 output을 예측하는 문제이다.                                                                                          ex) 주식의 수치를 예측하는 문제.

 

Deep Learning이란 무엇인가?

Deep Leanring은 심층 신경망을 사용한 머신런닝 기법 중 한가지이다. 신경망을 어느 분야에 사용했느냐에 따라 신경망 모델이 다르며 크게 CNN, RNN, GAN, Reinforcement 계열이 연구가 많이 진행되었다.

CNN : CNN은 Convolutional Neural Network의 약자로 이미지 분류에 주로 사용되는 딥러닝 모델이다. 얀 르쿤 교수님이 처음으로 만들었다. 

RNN : RNN 은 Recurrent Neural Network의 약자로 주로 음성인식에 활용되며, 이전 데이터를 고려하여 문맥을 파악한 후 다음에 나올 단어를 예측하거나 말의 의미를 파악할 때 주로 사용된다.

GAN : GAN 은 Generative Adversarial Neural Network의 약자로 생성적 적대 신경망이다. 경쟁을 통해서 배운다는 의미이다. 이안굿펠로우 라는 사람이 만든 뉴럴네트워크로  감별사(Detective)가 실제 데이터와 생성해낸 데이터를 감별하지 못할 때까지 적대적으로 학습시키는 기법이다.

 

Reference

1)AI, Machine Learning, Deep Learning 차이

http://www.youtube.com/watch?v=arbbhHyRP90 

2) GAN이란 무엇인가

http://www.youtube.com/watch?v=N9ewzLUZhL8" target="_blank" rel="noopener" data-mce-href="http:// http://www.youtube.com/watch?v=N9ewzLUZhL8">http:// http://www.youtube.com/watch?v=N9ewzLUZhL8   

 

반응형

+ Recent posts