확률 적 경사 하강을 위해 배치 크기는 얼마나 커야합니까?


답변:


72

"샘플 크기는"당신은라고도 대해 얘기하고 배치 크기 , . 배치 크기 매개 변수는 미니 배치 SGD (Stochastic Gradient Descent)를 사용하여 신경망을 학습 할 때 튜닝 할 하이퍼 파라미터 중 하나이며 데이터에 따라 다릅니다. 하이퍼 파라미터 검색의 가장 기본적인 방법은 학습 속도와 배치 크기에 대한 그리드 검색을 수행하여 네트워크를 수렴시키는 쌍을 찾는 것입니다.B

배치 크기를 이해하려면 배치 그라디언트 디센트, 온라인 SGD 및 미니 배치 SGD 간의 관계를 확인하는 것이 중요합니다. 다음은 세 가지 유형의 일반화 인 미니 배치 SGD의 가중치 업데이트 단계에 대한 일반 공식입니다. [ 2 ]

θt+1θtϵ(t)1Bb=0B1L(θ,mb)θ
  1. 배치 구배 하강,B=|x|
  2. 온라인 확률 구배 하강 :B=1
  3. 미니 배치 확률 적 경사 하강 : 이지만.B>1B<|x|

1을 사용하면 손실 함수는 더 이상 임의 변수가 아니며 확률 근사값이 아닙니다.

SGD는 훈련 세트의 무작위로 선택된 서브 세트를 본 후 가중치를 업데이트하기 때문에 일반 "배치"그라디언트 디센트보다 빠르게 수렴합니다. 하자 우리의 훈련 세트를하고하자 . 배치 크기 는 의 카디널리티 일뿐입니다 ..xmxBmB=|m|

배치 그라데이션 하강는 가중치를 갱신 전체 데이터 세트의 그라데이션을 사용하여 ; 반면 SGD는 미니 배치 대한 평균 그래디언트를 사용하여 가중치를 업데이트합니다 . 합계와 반대로 평균을 사용하면 데이터 집합이 매우 큰 경우 알고리즘이 너무 큰 단계를 수행하지 못합니다. 그렇지 않으면 데이터 집합의 크기에 따라 학습 속도를 조정해야합니다. SGD에 사용 된 기울기의 확률 적 근사는 배치 구배 기울기에서 사용 된 결정적 기울기와 같습니다. .θxmE[LSGD(θ,m)]=L(θ,x)

샘플을 채취하고 가중치를 업데이트 할 때마다이를 미니 배치 라고합니다 . 전체 데이터 세트를 실행할 때마다이를 epoch 라고합니다 .

데이터 벡터가 있는데 , 우리의 신경망을 매개 변수화하는 초기 가중치 벡터 인 , 손실 함수 우리가 최소화하려는 . 우리가있는 경우 교육 예제와의 배치 크기 , 우리는 C 미니 배치에 그 교육 사례를 분할 할 수 있습니다 :x:RDθ0:RSL(θ,x):RSRDRSTB

C=T/B

간단히하기 위해 T를 B로 균등하게 나눌 수 있다고 가정 할 수 있습니다. 그렇지 않은 경우가 많지 않더라도 각 미니 배치에 적절한 가중치를 크기의 함수로 할당해야합니다.

에포크가있는 SGD에 대한 반복 알고리즘 은 다음과 같습니다.M

t0while t<Mθt+1θtϵ(t)1Bb=0B1L(θ,mb)θtt+1

참고 : 실제로 우리는 메모리에서 이러한 교육 예제 데이터를 읽고 있으며 컴퓨터에서 수행하는 캐시 프리 페치 및 기타 메모리 트릭으로 인해 메모리 액세스가 통합 되면 (예 : 메모리를 읽을 때) 알고리즘이 더 빠르게 실행됩니다. 순서대로 무작위로 뛰어 다니지 마십시오. 따라서 대부분의 SGD 구현은 데이터 세트를 섞은 다음 읽을 순서대로 예제를 메모리에로드합니다.

위에서 설명한 바닐라 (운동량 없음) SGD의 주요 매개 변수는 다음과 같습니다.

  1. 학습 속도 :ϵ

나는 엡실론을 신기원 수부터 학습 속도까지의 함수로 생각하고 싶습니다. 이 기능을 학습률 일정 이라고 합니다 .

ϵ(t):NR

학습 속도를 고정 시키려면 엡실론을 상수 함수로 정의하십시오.

  1. 배치 크기

배치 크기에 따라 가중치를 업데이트하기 전에 몇 개의 예를 볼지 결정됩니다. 낮을수록 훈련 신호가 더 시끄러울수록 높을수록 각 단계의 기울기를 계산하는 데 시간이 오래 걸립니다.

인용 및 추가 자료 :

  1. 그라디언트 기반 학습 소개
  2. 딥 아키텍처의 그라디언트 기반 교육에 대한 실제 권장 사항
  3. 확률 적 최적화를위한 효율적인 미니 배치 교육

1
For simplicity we can assume that D is evenly divisible by B. T 를 B로 균등하게 나눌 수 있다는 것을 의미하지 않습니까?
Antoine

4
실제로 OP의 질문에 대답하기 위해 B is typically chosen between 1 and a few hundreds, e.g. B = 32 is a good default value, with values above 10 taking advantage of the speed-up of matrix-matrix products over matrix-vector products.Bengio의 2012 년 논문에서
Antoine

@sabalaba 좋은 답변입니다. 그러나 방정식 "M 에포크가있는 SGD에 대한 반복 알고리즘이 아래에 나와 있습니다"라는 식에서 각 미니 배치를 실행 한 후 가중치를 업데이트 할 것입니까? 즉,이 에포크 즉 위에 루프 내부합니다 (C 미니 일괄 통해) 다른 루프 안된다 동안 t <M
Kaushik이 아차

2
통계에서 표본 은 여러 관측치로 구성됩니다. 따라서 표본 크기 는 통계학자가 올바르게 해석합니다. 컴퓨터 과학 (특히 기계 학습)에서 샘플 은 단일 관측치이며 배치 는 샘플 모음입니다. 약간 혼란 스러울 수 있습니다. :) 자료, 통계에 대한 샘플 데이터 과학자에 배치입니다 en.wikipedia.org/wiki/Sample_size_determination
올렉 Melnikov 보낸

"배치 크기 매개 변수는 조정하려는 하이퍼 파라미터 중 하나 일뿐입니다." 여러 튜닝 모델을 실행하면 처음부터 SGD의 전체 목적을 상실하지 않습니까? OP가 샘플 크기에 대한 경험 법칙을 요구한다고 생각합니다. 데이터에 레코드와 변수 가 포함 된 경우 기울기를 적절히 계산하기에 적합한 표본 크기는 얼마입니까? nm
RobertF
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.