epoch 설정 방법_신경망 모델에서 Epoch, Iteration, Batchsize를 도입하는 가장 이해하기 쉬운 방법

이 기사에서는 신경망에서 자주 접하고 쉽게 혼동되는 세 가지 용어를 가장 간단한 방법으로 소개합니다. 총 1162개의 문자가 있으며, 모두 익히는데 약 6분이 소요됩니다.

batchsize: 간단히 말해서 한 번에 훈련을 위해 모델에 얼마나 많은 데이터를 던지고 싶은지 이 값은 1과 총 훈련 샘플 수 사이입니다.

batchsize가 너무 크거나 너무 작으면 좋지 않음 값이 너무 작으면 batchsize=1이라고 가정하면 매번 하나의 데이터를 학습에 사용 데이터의 총량이 많으면(데이터가 100,000개라고 가정) 100,000개의 데이터를 모델에 입력해야 함 데이터 학습을 완료하는 데 시간이 오래 걸리고 학습 효율이 매우 낮음 값이 너무 크면 batchsize=100000으로 가정하면, 한 번에 100,000개의 데이터를 모델에 던지면 메모리 오버플로가 발생할 수 있으며 정상적으로 학습할 수 없습니다.

따라서 훈련 속도와 메모리 용량 간의 최상의 균형을 찾기 위해 적절한 배치 크기 값을 설정해야 합니다.

몇 가지 경험:

일반 데이터 세트와 비교하여 Batch_Size가 너무 작으면 훈련 데이터가 수렴하기가 매우 어려워 과소적합이 발생합니다. Batch_Size를 늘리면 상대 처리 속도가 빨라지고 필요한 메모리 용량이 동시에 증가합니다. 더 나은 훈련 효과를 얻기 위해서는 일반적으로 Batchsize가 증가할 때 최상의 결과를 얻기 위해 모든 샘플(즉, 나중에 논의할 에포크)에 대한 훈련 횟수를 늘려야 합니다. Batchsize를 높이면 일반적으로 모든 샘플의 훈련 시간이 늘어나므로 시간 소모도 증가하므로 모델의 전체적인 효율성과 메모리 용량 간의 최상의 균형을 이루기 위해 적절한 Batchsize 값을 찾아야 합니다.

반복: 반복 횟수(데이터가 모델에 던져지는 횟수)

다음은 한눈에 이해할 수 있는 예입니다. 총 100개의 학습 데이터가 있고 배치 크기를 10으로 설정했다고 가정하면, 즉 총 100개의 데이터가 있고 한 번에 10개의 데이터가 학습을 위해 모델에 던져진다고 가정하면 모든 데이터를 학습하는 데 총 몇 번이 걸릴까요? 100/10=10(회), 즉 데이터를 10회 던짐(반복)하여 한 번 훈련할 수 있으며, 데이터 던짐 횟수(반복 횟수) = iteration=10입니다.

알아채다:

각 반복의 결과는 다음 반복의 초기 값으로 사용됩니다. 예를 들어, 위의 예에서 10번의 반복이 필요합니다.첫째, 모든 매개변수는 초기 값을 갖게 됩니다.첫 번째 반복 후에 모델의 매개변수는 새로운 값의 배치를 가져오고 이 매개변수 값의 배치는 두 번째 반복의 입력으로 사용됩니다.두 번째 반복을 통해 최적화된 매개변수 값의 배치를 얻고 이 매개변수 값은 세 번째 반복의 입력으로 사용됩니다... 이렇게 각 반복을 통해 모델의 매개변수는 최적의 매개변수에 접근하고 있습니다. 단계별로... 하나의 반복 = 하나의 순방향 패스 + 동일한 배치 크기 데이터 배치의 하나의 역방향 패스.

왼쪽에서 오른쪽으로 그리고 나서 왼쪽으로 모든 데이터는 에포크입니다.

에포크(Epoch): 훈련 세트의 모든 샘플은 훈련 모델을 통과하고 한 번 돌아옵니다(가는 것과 돌아오는 것이 있음). 이것이 에포크입니다.

알아채다:

일반적으로 신경망의 모든 데이터 집합을 한 번 통과하는 것으로는 충분하지 않으며, 동일한 신경망의 모든 데이터 집합을 여러 번(예: 20,000번) 전달해야 합니다.


예: 10000개 훈련 샘플, 배치 크기는 20으로 설정 , 모든 훈련 샘플 동일한 모델에서 5번 훈련된 다음 epoch=5, batchsize=20, iteration=10000/20=
500

Acho que você gosta

Origin blog.csdn.net/Adam897/article/details/126493516
Recomendado
Clasificación