TL; DR : 미니 배치 크기가 너무 크면 일반적으로 정확도 가 떨어 집니다!
관심있는 사람들을 위해 여기에 설명이 있습니다.
속도에는 두 가지 개념이 있습니다.
계산 속도는 단순히 하드웨어에서 수치 계산을 수행하는 속도입니다. 당신이 말했듯이, 일반적으로 더 큰 미니 배치 크기로 더 높습니다. 선형 대수 라이브러리는 더 많은 메모리를 사용하지 않고 벡터 및 행렬 연산에 벡터화를 사용하여 속도를 높이기 때문입니다. 이익은 어느 정도까지 중요 할 수 있습니다. 내 경험상, 속도가 조금만 향상되는 시점이 있습니다. 요점은 데이터 세트, 하드웨어 및 수치 계산에 사용되는 라이브러리 (후드 아래)에 따라 다릅니다.
그러나 알고리즘의 수렴 속도를 알려주는 다른 속도 개념도 있다는 것을 잊지 마십시오.
첫째, 알고리즘이 수렴한다는 것은 무엇을 의미합니까? 검증 세트에서 계산 된 정확성 또는 오류에 만족할 때를 정의하고 결정하는 것은 우리의 책임입니다. 미리 정의하고 알고리즘이 해당 시점에 도달 할 때까지 기다리거나 훈련 프로세스를 모니터링하고 유효성 검증 오류가 크게 증가하기 시작할 때 (모델이 데이터 세트를 과적 합하기 시작) 중지하도록 결정할 수 있습니다. 미니 배치로 작업하는 경우 SGD (Stochastic Gradient Descent)를 사용하기 때문에 오류를 발생시키기 시작한 첫 순간부터 바로 중단해서는 안됩니다. (전체 배치) 그라디언트 디센트 (Gradient Descent)의 경우, 각 에포크 (epoch) 후에 알고리즘은 최소한 로컬 또는 글로벌 알고리즘이됩니다. SGD는 실제로 최소한으로 정착하지 않습니다. 주변에서 계속 진동합니다. 무기한으로 진행될 수 있습니다.
이제 모든 이론에 주목해야 할 "캐치"가 있습니다. 더 작은 배치 크기를 사용할 때 더 큰 배치 크기를 사용할 때보 다 오차 계산에 노이즈가 더 많습니다. 글쎄, 그것은 나쁘지 않습니까? 문제는 잡음이 알고리즘이 잘못된 로컬 최소값에서 벗어나는 데 도움이되고 더 나은 로컬 최소값 또는 글로벌 최소값을 찾을 가능성이 높아진다는 것입니다.
따라서 "원치 않는"노이즈의 도움으로 더 큰 배치 크기 보다 작은 배치 크기를 사용하여 더 나은 솔루션을 더 빨리 찾을 수 있다면 알고리즘에서 만족스러운 결과를 얻는 데 걸리는 총 시간을 조정할 수 있습니다 솔루션과 더 높은 정확도.
내가 말하고 싶은 것은 주어진 정확도 (또는 오류)에 대해 배치 크기가 작을수록 많은 사람들이 생각하는 것처럼 총 교육 시간이 짧아 질 수 있습니다.
또는 이전과 동일한 교육 시간을 유지하기로 결정한 경우 배치 크기가 작을수록 정확도가 약간 높아질 수 있으며, 특히 학습 속도를 적절하게 선택한 경우 가장 적합 할 것입니다.
시간이 있으면이 백서를 참조하십시오 :
ImageNet의 CNN 발전에 대한 체계적인 평가
특히, "3.7. 배치 크기 및 학습 속도"와 그림 8을 확인하십시오. 미니 배치 크기 가 클수록 정확도가 떨어집니다. 학습 속도를 휴리스틱으로 조정하더라도.
일반적으로 배치 크기 32는 좋은 시작점이며 64, 128 및 256으로 시도해야합니다. 일부 데이터 세트에는 다른 값 (낮거나 더 높음)이 적합 할 수 있지만 일반적으로 지정된 범위가 가장 적합합니다. 실험을 시작하십시오. 32 세 미만에서는 벡터화를 최대한 활용하지 않기 때문에 계산 속도가 현저히 낮아 너무 느려질 수 있습니다. "메모리 부족"오류가 발생하면 미니 배치 크기를 줄여보십시오.
따라서 메모리에 맞는 가능한 가장 큰 미니 배치 크기를 사용하는 것이 아닙니다.
결론적으로, 귀하의 질문에 대답하기 위해, 미니 배치 크기가 작을수록 (너무 작은 것은 아님) 일반적으로 큰 배치 크기보다 훈련 알고리즘의 반복 횟수가 적을뿐만 아니라 전반적인 정확도가 높아집니다. 동일한 양의 훈련 시간 또는 그 이하에서 더 나은 성능을 발휘하는 신경망.
소음이 높을수록 소음이 심하게 들리게하는 것보다 나쁜 지역 최저치에서 벗어나는 데 도움이된다는 것을 잊지 마십시오.