'epoch', 'batch'및 'minibatch'의 차이점은 무엇입니까?


36

내가 아는 한 Stochastic Gradient Descent를 학습 알고리즘으로 채택 할 때 누군가는 전체 데이터 세트에 'epoch'를 사용하고 단일 업데이트 단계에서 사용되는 데이터에 'batch'를 사용하고 다른 하나는 'batch'와 'minibatch'를 사용합니다. 다른 사람들은 'epoch'와 'minibatch'를 사용합니다. 이것은 논의하는 동안 많은 혼란을 가져옵니다.

그렇다면 올바른 말은 무엇입니까? 아니면 그들은 모두 허용되는 방언입니까?

답변:


24
  • Epoch는 전체 교육 세트를 한 번 통과 함을 의미합니다.
  • 배치는 모든 데이터를 사용하여 한 번의 반복 동안 그라디언트를 계산 함을 의미합니다.
  • 미니 배치는 한 번의 반복 동안 모든 데이터의 하위 집합 만 가져옵니다.

15

하나의 에포크 (epoch)는 일반적으로 알고리즘이 모든 교육 인스턴스를 한 번 본다는 것을 의미합니다 . 이제 교육 인스턴스 가 있다고 가정합니다 .n

배치 업데이트를 실행하는 경우 모든 매개 변수 업데이트에는 알고리즘이 각 교육 인스턴스를 정확히 한 번, 즉 매개 변수가 한 번 업데이트되는 모든 시점을 확인해야합니다.n

당신이 배치 크기 = 미니 배치 업데이트를 실행하면 , 모든 파라미터 업데이트는 알고리즘 참조가 필요합니다 Bn 개의 즉, 교육의 경우, 귀하의 매개 변수에 대한 업데이트 모든 시대 N / B 번.bbnn/b

nn


3

"에포크"는 일반적으로 전체 학습 데이터 세트에 학습 알고리즘을 노출시키는 것을 의미합니다. 때때로 데이터를 생성 할 때 항상 의미가있는 것은 아닙니다.

"일괄 처리"와 "미니 비트"는 혼동 될 수 있습니다.

모든 데이터가 한 번에 알고리즘에 노출 될 수있는 것은 아니기 때문에 (일반적으로 메모리 제약 때문에) 교육 예제를 "일괄 처리"해야 할 수도 있습니다.

SGD와 관련하여 "미니 비치"는 가중치를 업데이트하기 전에 전체 배치에서 그래디언트가 계산됨을 의미합니다. "미니 배치"를 사용하지 않는 경우 "배치"의 모든 교육 예제는 학습 알고리즘의 매개 변수를 독립적으로 업데이트합니다.


마지막 단락이 확실합니까? "일괄 처리 된"SGD는 신기원의 모든 데이터를 사용하여 매우 정확한 기울기를 천천히 계산한다고 생각했습니다. 마지막 문장은 크기가 1 인 미니 배치처럼 들립니다.
Matt Krause

또한 Cross Validated에 오신 것을 환영합니다!
매트 크라우스

그렇습니다. 원래 SGD의 크기는 1입니다. 소프트웨어 제작자의 해석에 따라 달라집니다. 문서에 "mini-batch"가 언급되지 않은 경우가 종종 batch == mini-batch입니다.
ferrouswheel

Err, 배치 GD가 모든 데이터를 사용한다는 의미입니다. 나는 보통 배치 (batch)와 미니 배치 (batch)를 상호 교환 적으로 사용하지만, 실제로 아주 작은 것을 지적하고 싶을 때 "미니 배치"는 ...
Matt Krause
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.