SGD의 핵심 아이디어
Pr. Coursera에 대한 그의 인기 코스에서 Hinton 은 다음 사실을 언급합니다 .
Rprop은 매우 큰 데이터 세트가 있고 미니 배치 가중치 업데이트를 수행해야 할 때 실제로 작동하지 않습니다. 미니 배치에서 작동하지 않는 이유는 무엇입니까? 글쎄, 사람들은 그것을 시도했지만 그것을 작동시키기가 어렵다는 것을 알았습니다. 작동하지 않는 이유는 확률 적 경사 하강 법의 핵심 아이디어를 위반 하기 때문입니다. 학습률이 충분히 낮을 때 연속적인 미니 배치에 대한 경사도를 평균화합니다. 9 개의 미니 배치에서 0.1의 기울기를 얻고 10 분의 1 미니 배치에서 -0.9의 기울기를 얻는 가중치를 고려하십시오. 우리가 원하는 것은 그 그라디언트가 서로를 대략적으로 취소하여 거의 동일하게 유지하는 것입니다. 그러나 그것은 rprop에서 일어나는 일이 아닙니다. rprop를 사용하면 가중치가 9 배 증가하고 한 번만 감소하므로 가중치가 훨씬 커집니다.
보시다시피 SGD의 핵심 아이디어는 미니 배치의 연속적인 그라디언트를 평균화해야한다는 것입니다. 누구에게 이것에 대한 유효한 공식 소스가 있습니까? 정당한 이유가 있습니까? 나는 지금까지 어떤 증거도 만나지 못했습니다.
답변
데이터 생성 분포의 영향
이를 확인하기 위해 먼저 배치 경사 하강 법 (전체 데이터 세트를 사용하여 경사도 계산)을 사용하거나 미니 배치 경사 하강 법을 사용하지 않고 경사의 실제 (정확한) 값 을 계산하지 않는다는 점을 먼저 언급해야 합니다.
그래디언트의 실제 값을 계산하려면 가능한 모든 기능 값 세트를 사용해야합니다. $x$, (그리고 출력 $y$).
더 공식적으로, 최소화하려는 수량을 예시 별 손실 함수의 예상 값으로 참조합니다 ($J(x,y,\theta)$, 어디 $\theta$ 매개 변수) wrt 가능한 모든 $x,y$ 값, 진정한 그라디언트 $g$ 다음과 같이 지정됩니다. $$g = \frac{\partial}{\partial \theta}\mathbb{E}_{x,y\sim p_{data}}(J(x,y,\theta)) $$그리고 우리가 특정 조건 을 가정 하면 다음과 같습니다.$$g = \mathbb{E}_{x,y\sim p_{data}}\left(\frac{\partial}{\partial \theta}J(x,y,\theta)\right) $$
어디 $p_{data}$는 IS 데이터 생성 분포 (분포 된 값 중$x$ 과 $y$그려집니다). 그러나이 데이터 생성 분포는 일반적으로 알 수 없습니다. 우리는 주어진 데이터 세트 만 알고 있습니다.
이 때문에 주어진 모든 정보 (훈련 세트)를 사용하여 매개 변수를 업데이트하기 위해 대신 훈련 데이터로 정의 된 경험적 분배 를 사용합니다 ($\hat{p}_{data}$)의 확률을 $1/m$ 각각에 $m$ 견본 $(x^{(1)}, y^{(1)}), \,(x^{(2)}, y^{(2)}),\,...\,,(x^{(m)}, y^{(m)})$데이터 세트의. 따라서 그라디언트는 다음과 같이 근사됩니다.$$ \begin{aligned} \hat{g}&=\frac{\partial}{\partial \theta}\mathbb{E}_{x,y\sim \hat{p}_{data}}(J(x,y,\theta))\\&=\frac{\partial}{\partial \theta}\left(\sum_{i=1}^m \frac{1}{m}J_i(x^{(i)},y^{(i)},\theta)\right)\\ &= \frac{1}{m}\sum_{i=1}^m\frac{\partial }{\partial \theta}J_i(x^{(i)},y^{(i)},\theta) \end{aligned} $$ Batch gradient descent로 끝납니다.
그러나 미니 배치는 어떻게됩니까?
mini-bath 업데이트를 사용함으로써 우리는 지속적으로 새로운 데이터를보고 있습니다 (한 시대 만 계산한다고 가정). 따라서이 경우 미니 배치 를 사용하여 데이터 생성 분포를 사용합니다.
즉, 각 미니 배치 업데이트에서이 데이터 생성 분포를 샘플링하여 추정치 ($\hat{g}$)의 실제 그라디언트 ($g$) 그것은 편향되지 않습니다 ie $\mathbb{E}_{x,y\sim p_{data}}(\hat{g})=g$. 이것을보고 고려하기 위해$\text{s-sized}$ 미니 배치 : $$\begin{aligned} \mathbb{E}_{x,y\sim p_{data}}(\hat{g})&=\mathbb{E}_{x,y\sim p_{data}}\left(\frac{g^{(1)}+...+g^{(s)}}{s}\right)\\ &=\frac{1}{s}(\mathbb{E}_{x,y\sim p_{data}}(g^{(1)}+...+g^{(s)}))\\ &=\frac{1}{s}s\,\,g=g \end{aligned} $$따라서 연속적인 미니 배치 업데이트를 수행하면 평균적으로 진행됩니다 (예 :$\mathbb{E}_{x,y\sim p_{data}}(\hat{g})$) 그라디언트의 실제 값으로 매개 변수를 업데이트합니다. 그리고 이것이 저자들이 질문의 인용문에서 언급 한 것이라고 생각합니다.
훌륭한 참조 :
Deep Learning 책, Ian Goodfellow et. al 장 8.1 여기
에서 답변
전체 경사 하강 법 단계에서 손실 함수는 개별 샘플 포인트에서 손실 항의 평균으로 정의됩니다. 손실 함수를 최소화하려면 개별 기울기를 평균해야합니다.
확률 적 경사 하강 법에서 배치를 선택하는 데 편견이없는 경우 배치에 대한 평균화는 전체 경사의 편향되지 않은 추정치를 생성합니다.
이 강의 노트를보세요 http://www.stat.cmu.edu/~ryantibs/convexopt-F18/scribes/Lecture_24.pdf