반응형
훈련에 사용되는 컴퓨터 인스턴스의 메모리 제한과 데이타셋의 크기 때문에, 대부분의 경우 모든 훈련데이터를 알고리즘에 한번 (one pass)에 훈련시키는 것은 불가능하다.
* Epoch
1번의 Epoch: 전체 데이터셋이 정확히 한번 신경망을 통하여 순전파와 역전파를 한 것을 의미함
2 Epoch: 전체 데이터셋을 2번 학습한 것을 의미함
* mini-batch
데이터 셋을 한번에 알고리즘을 통과하는게 어려워서 데이터셋을 mini-batch들로 나눈다.
따라서 Batch Size는 한개의 mini-batch의 총 훈련샘플의 수를 의미함
* iteration
1번의 iteration: 훈련 중 신경망 모델의 가중치 (weights) 를 한 번 업데이트 하는 것 (한 번의 기울기 업데이트)을 의미
-> iteration 개수 = 1 Epoch을 수행하기 위해서 요구되는 batch의 개수
-> dataset: 1,000개 이미지, mini-batch: 100개 이미지인 경우 -> 1 Epoch를 수행하기 위해 10번의 iteration이 필요함
* 올바른 epoch 수는?
- 네트워크에 통과하는 동안 가중치들이 업데이트되며, epoch 수가 증가할 수록 네트워크는 underfitting에서 optimal, overfitting 됨
- epoch 수를 선택하는 magic rule은 없음
* 올바른 batch size는?
- epoch 수 처럼 최적의 batch size는 없음
- batch size가 너무 작으면 sample간 차이가 커서 높은 변동량을 가지고, 역으로 batch size가 너무 크면 제한된 컴퓨터 메모리에 적합하지 않고 data에 overfiting되는 경향이 있음
- batch size의 크기를 dataset 크기의 제곱근을 취하는 경우가 많음
반응형
'Major > Programming' 카테고리의 다른 글
MATLAB Figure 파일에서 데이터 추출하기 (0) | 2022.06.22 |
---|---|
[C++] 복소수 입력받아 변수에 저장하기 [Input a complex number and store it in a complex variable] (0) | 2022.06.08 |
Pretrained CNNs Download for MATLAB (0) | 2020.09.08 |
CNN (Convolutional Neural Network)의 각 Layer의 동작/역할 (0) | 2020.08.26 |
MATLAB 필수 ToolBox (0) | 2020.08.24 |
댓글