Deep Learning (4)
Multi Layer Perceptron의 개념을 바탕으로 자연어처리(NLP)와 같은 딥러닝의 응용 부분으로 확장할 때 먼저 학습해야하는 개념이 있다. 이번 시간에는 그 개념들에 대해 알아보자.
1. Normalizing inputs
2. Batch/Mini-batch
1.
input을 정규화 한다.. 라는 의미를 가진다.
Backpropagation으로 정규화를 진행할 때, 입력값으로 주어지는 x1과 x2의 값의 차이가 크면, (ex. x1은 1,000,000 / x2는 50) 학습을 진행할 때 큰 문제가 발생하게 된다.
따라서 두 입력값의 scale을 맞춰 주는 것이 필요한데, 여기서 두 입력값에 대해서 normalization을 진행하는 방법은 학습에 큰 도움이 되지 않는다.
그러면 어떤 방법으로 진행해야 할까?
다음과 같이 x1과 x2가 주어졌다고 생각하자.
Normalizing Inputs은 기본적으로 Normalizing Training Set 에 적용된다.
위의 식을 바탕으로 계산이 진행된다.
mean 값을 구하고, x 에 mean값을 빼준다.
위에서 구한 값을 바탕으로 variance를 구한 다음 Normalization을 진행한다.
x 에서 mean 값을 빼주면 위와 같이 값들이 중앙으로 모이게 되고 (중앙 값은 0에 수렴하게 됨)
업데이트 된 mean값은 0이 된다.
위의 과정을 모두 거치면 x1과 x2의 값이 적절하게 튜닝된다.
이렇게 튜닝을 거치면 학습에도 도움이 되고 backpropagation도 잘 작동하게 된다.
일반적으로 Normalization은 무조건 진행하고 학습을 진행한다.
training set에는 이렇게 적용하는데... Testing에는 ??
테스팅에는 mean과 variance를 구하지 않는다.
테스팅 시에는 입력값에 대한 정보를 가지고 있지 않다고 가정하고 진행하는게 좋기 때문이다.
그래서, Normalization을 진행하긴 하지만 여기서 사용하는 mean값과 variance값은 Training Set에서 가져온다.
Normalization을 진행하지 않은 Set와 진행한 Set이다.
진행한 set는 빠르게 학습을 진행할 수 있다.
2.
Backpropagtion을 진행할 때 학습데이터가 100,000개가 있다면 100,000개의 오류를 모두 더해 Loss를 계산하고, 파라미터 W를 업데이트한다. 여기서 100,00개의 데이터가 있다는 건 이미지가 100,000개 있다는 걸 의미하고 이 이미지를 벡터로 표현하게 될 시 size가 엄청나게 커질 수 있다. 이 경우 매개변수를 한 덩어리로 고려하는 걸 Batch Gradient Descent라고 한다. (Batch = 한번에)
실제로 딥러닝 학습에서는 전체 학습데이터를 1회분의 작은 단위로(Batch) 잘라내고, Batch 단위로 오류를 계산하고 매개변수를 업데이트 한다. (이 때 Batch 크기는 16~32로 설정) => Mini batch Stochastic(무작위) Gradient Descent
이렇게 학습을 진행하게 되면 그냥 하는 것 보다 속도 부분에서 월등한 차이가 있고, Generalization이 더 잘 돼 Regulation 효과를 얻을 수 있다. (Overfitting 문제를 해결하는데 도움을 줌)
epoch 는 전체 학습데이터에 대한 수행 횟수를 의미하고, epoch의 값은 어떤 상황에서 적용할지에 따라 달라진다.
Batch든 Mini-batch든 결국 비슷한 값으로 수렴하게 된다. 하지만 Mini-batch를 사용했을 때 시간이 훨씬 빠르다.
'Machine Learning > AI Introduction' 카테고리의 다른 글
Advice for Applying ML/DL (2) (0) | 2021.12.04 |
---|---|
Advice for Applying ML/DL (1) (0) | 2021.12.04 |
Deep Learning (3) (0) | 2021.11.18 |
Deep Learning - Backpropagation (0) | 2021.11.14 |
Deep Learning (2) (0) | 2021.11.14 |
댓글
이 글 공유하기
다른 글
-
Advice for Applying ML/DL (2)
Advice for Applying ML/DL (2)
2021.12.04 -
Advice for Applying ML/DL (1)
Advice for Applying ML/DL (1)
2021.12.04 -
Deep Learning (3)
Deep Learning (3)
2021.11.18 -
Deep Learning - Backpropagation
Deep Learning - Backpropagation
2021.11.14