모든 교육 데이터가 포함 된 단일 "일괄 처리"보다 미니 배치 크기가 더 좋은 이유는 무엇입니까?


40

딥 러닝 모델의 경우 일반적인 연습은 여러 교육 시대에 미니 배치 (일반적으로 작은 32/64)를 적용하는 것입니다. 나는 이것의 이유를 실제로 추측 할 수 없다.

내가 실수하지 않는 한 배치 크기는 훈련 반복 중에 모델에서 볼 수있는 훈련 인스턴스의 수입니다. 에포크는 각 훈련 사례가 모델에 의해 보여 졌을 때 완전한 회전입니다. 그렇다면 각 턴에서 사용 가능한 모든 훈련 인스턴스를 모델에 노출시켜 "최대 배치"를 적용하는 것과는 달리 훈련 인스턴스의 거의 중요하지 않은 서브 세트를 여러 번 반복하는 이점을 볼 수 없습니다 (물론 충분히 가정 할 때) 기억). 이 방법의 장점은 무엇입니까?


1
체크 아웃 대답을.
Icyblade



답변:


46

전체 데이터 세트와 반대로 미니 배치를 사용하는 주요 이점은 확률 적 경사 하강 1 의 기본 개념으로 돌아갑니다 .

배치 그라디언트 디센트에서 전체 데이터 세트에 대한 그라디언트를 계산하여 잠재적으로 방대한 양의 정보를 평균화합니다. 그렇게하려면 많은 메모리가 필요합니다. 그러나 실제 핸디캡은 배치 그라디언트 궤적이 나쁜 지점 (안 장점)에 도달하는 것입니다.

반면 순수 SGD에서는 데이터 세트 의 단일 인스턴스에서 계산 된 그라디언트를 추가 (빼기)하여 매개 변수를 업데이트합니다 . 하나의 임의의 데이터 포인트를 기반으로하기 때문에 노이즈가 심하며 배치 그라디언트에서 멀어 질 수 있습니다. 그러나 노이즈는 볼록이 아닌 최적화에서 원하는 것입니다. 이는 안장 점 또는 국소 최소 점에서 벗어날 수 있도록 도와주기 때문입니다 (Theorem 6 in [2]). 단점은 매우 비효율적이며 좋은 솔루션을 찾기 위해 전체 데이터 세트를 여러 번 반복해야한다는 것입니다.

미니 배치 방법은 상대적으로 빠른 수렴을 달성하면서 각 기울기 업데이트에 충분한 노이즈를 주입하는 절충안입니다.

1 Bottou, L. (2010). 확률 적 경사 하강을 이용한 대규모 기계 학습. COMPSTAT'2010 (pp. 177-186). Physica-Verlag HD.

[2] Ge, R., Huang, F., Jin, C., & Yuan, Y. (2015 년 6 월). 텐서 분해를위한 중철 점 온라인 스토캐스틱 그라디언트에서 탈출. COLT에서 (pp. 797-842).

편집하다 :

방금 Yann LeCun의 페이스 북에 대한이 의견을 보았습니다.이 질문에 대한 신선한 관점을 제공합니다 (죄송합니다.

큰 미니 배치 훈련은 건강에 좋지 않습니다. 더 중요한 것은 테스트 오류로 나쁜 것입니다. 친구는 친구가 32보다 큰 미니 배치를 사용하지 못하게합니다. 직면하자 : 2012 년 이후로 1보다 큰 미니 배치 크기로 전환 한 유일한 사람들은 32 배보다 작은 배치 크기에 대해 GPU가 비효율적이기 때문입니다. 그 이유는 끔찍한 이유입니다. 그것은 단지 우리의 하드웨어가 짜증을 의미합니다.

그는 며칠 전에 arXiv에 게시 된이 논문을 인용했습니다 (2018 년 4 월).

Dominic Masters, Carlo Luschi, 심층 신경망을위한 소규모 배치 교육 재 방문 , arXiv : 1804.07612v1

초록에서

큰 미니 배치를 사용하면 사용 가능한 계산 병렬 처리가 증가하지만 작은 배치 훈련은 향상된 일반화 성능을 제공하는 것으로 나타났습니다 ...

m = 2에서 m = 32 사이의 미니 배치 크기에 대해 최상의 성능이 일관되게 얻어졌으며, 이는 수천 개의 미니 배치 크기 사용을 주장하는 최근의 작업과 대조됩니다.


2
미니 배치 그라디언트 디센트가 배치 그라디언트 디센트보다 나쁜 국소 최소값을 피할 가능성이 더 높은 이유는 무엇입니까? 그 주장을 뒷받침 할 것이 있습니까?
Martin Thoma 2012

@MartinThoma JMLR에 관한 최근 논문 [2]의 정리 6을 보라.
horaceT

2
ϕ(w,X)

2
@MartinThoma 우리가 제공 한 데이터 세트에 대해 하나의 전역 최소값이 있다고 가정 할 때, 해당 전역 최소값에 대한 정확한 경로는 각 GD 분석법에 따라 다릅니다. 배치의 경우 유일한 확률 적 측면은 초기화시 가중치입니다. 동일한 초기 가중치 및 데이터 세트로 NN을 다시 훈련하면 그래디언트 경로가 동일합니다. 미니 배치 및 SGD의 경우 경로는 각 단계에서 훈련을 위해 데이터 포인트의 확률 적 샘플링에서 각 단계 사이에 확률 적 측면을 갖습니다. 이것은 미니 배치와 SGD가 도중에 로컬 옵티마를 벗어날 수있게합니다.
Wesley

8

메모리는 없습니다 당신이 있기 때문에, 정말이 일을하는 이유 수있는 데이터 집합 통해 반복 처리로 그라디언트 단지를 축적하고, 마지막에 적용하지만, 여전히 SGD 당신이 모든 단계에 적용 할 수 있습니다.

SGD가 널리 사용되는 이유는 다음과 같습니다.

1) 효율성. 전형적으로, 특히 훈련 초기에, 데이터의 상이한 서브 세트에 대한 파라미터-그라디언트는 동일한 방향을 가리키는 경향이있다. 따라서 데이터의 1/100에서 평가 된 그라디언트는 전체 데이터 세트에서와 동일한 일반 방향을 가리 키지 만 1/100 만 계산하면됩니다. 고도로 비선형적인 딥 네트워크에서의 수렴에는 일반적으로 그라디언트의 품질에 관계없이 수천 또는 수백만 번의 반복이 필요하므로 좋은 그라디언트를 기반으로하는 몇 가지 업데이트가 아니라 저렴한 그라디언트 추정값을 기반으로 많은 업데이트를 수행하는 것이 좋습니다.

2) 최적화 : 시끄러운 업데이트를 통해 나쁜 로컬 최적화에서 벗어날 수 있습니다 (실제로 이것이 중요하다는 소스는 없지만).

3) 일반화. SGD는 실제로 훈련 세트에서 "평평한"최소값을 찾아서 일반화를 도와주는 것으로 보입니다 ( Zhang et al : Deep Learning III : SGD의 일반화 속성 참조 ). 직관적으로, 우리는 SGD를 일종의 배깅 ( Baging) 이라고 생각할 수 있습니다 . 많은 데이터 미니 배치를 기반으로 매개 변수를 계산함으로써 미니 배치를 가로 질러 일반화하는 규칙을 강화하고 그렇지 않은 규칙을 취소함으로써 훈련 세트.


3

내가 실수하지 않는 한 배치 크기는 훈련 반복 중에 모델에서 볼 수있는 훈련 인스턴스 수입니다.

맞음 ( "무게 업데이트 단계"라고하더라도)

epoch는 모델에서 각 교육 인스턴스를 볼 때 완전한 회전입니다.

옳은

그렇다면 각 턴에서 사용 가능한 모든 훈련 인스턴스를 모델에 노출시켜 "최대 배치"를 적용하는 것과는 달리 훈련 인스턴스의 거의 중요하지 않은 서브 세트를 여러 번 반복하는 이점을 볼 수 없습니다 (물론 충분히 가정 할 때) 기억). 이 방법의 장점은 무엇입니까?

글쎄요. 일반적으로 메모리가 부족합니다. 이미지 분류에 대해 이야기하고 있다고합시다. ImageNet은 널리 사용되는 데이터 세트입니다. 꽤 오랫동안 VGG-16D는 가장 인기있는 모드 중 하나였습니다. 하나의 224x224 이미지에 대해 (기능 맵에서) 15245800 부동 소수점을 계산해야합니다. 이는 이미지 당 약 61MB를 의미합니다. 이것은 각 이미지를 훈련하는 동안 필요한 메모리 양에 대한 대략적인 하한입니다. ImageNet에는 수천 개의 이미지가 있습니다 (약 120 만?). 메인 메모리는 많지만 GPU 메모리는 많지 않습니다. GPU가 약 21x까지 속도를 높이는 것을 보았습니다. 따라서 GPU를 사용하고 싶을 것입니다.

또한 : 하나의 미니 배치 시간이 훨씬 짧습니다. 그래서 질문은 : GPU에서 시간당 미니 배치로 n 단계를 업데이트하거나 GPU없이 배치로 m 단계를 업데이트하는 것입니다 (n >> m).


제한된 메모리 문제는 아닙니다. 고정 된 모델 매개 변수를 사용하여 여러 배치에서 데이터 집합에 대한 그래디언트를 계산할 수 있습니다 (기능적으로 단일 거대한 배치에서 그래디언트를 계산하는 것과 동일 함). 실제로 SGD / MBGD의 확률 / 잡음으로 인한 일반화 속성과 수렴에 도달하기 위해 데이터 세트를 통한 에포크가 더 적다는 사실에 관한 것입니다. 단일 에포크 (epoch) 내에서 모델 매개 변수를 업데이트하면 중간 매개 변수가 개선되어 에포크 (epoch) 내에서 추가 그래디언트 계산이 더욱 유익 해집니다.
매디슨 5

1

다른 답변 들과는 별개이지만 종종 결합되는 두 가지 수량이 있음을 지적 할 가치가 있다고 생각합니다.

  1. 각 단계에서 매개 변수의 기울기를 계산하는 데 사용되는 입력 수입니다.

다른 사람들이 지적했듯이 미니 배치에 대한 그라디언트는 실제 그라디언트의 근사치입니다. 미니 배치가 클수록 근사치가 더 좋습니다.

  1. 배열로 수집되고 "동시"계산 된 입력 수

여기서의 절충은 전적으로 성능 (메모리 / 사이클)에 관한 것입니다.

이러한 양은 일반적으로 동일합니다. 즉 미니 배치 크기이지만 원칙적으로 분리 할 수 ​​있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.