신경망을 훈련하면서 왜 데이터를 섞어 야합니까?


15

신경망의 미니 배치 훈련에서, 중요한 관행은 모든 시대 이전에 훈련 데이터를 섞는 것입니다. 각 시대의 셔플 링이 도움이되는 이유를 누군가가 설명 할 수 있습니까?

Google 검색에서 다음 답변을 찾았습니다.

  • 훈련이 빠르게 수렴하는 데 도움이됩니다.
  • 훈련 중 편견을 방지합니다
  • 모델이 훈련 순서를 배우지 못하게합니다.

그러나 임의의 셔플 링으로 인해 이러한 효과가 발생하는 이유를 이해하기가 어렵습니다. 누구나 직관적 인 설명을 제공 할 수 있습니까?

답변:


8

다른 설명을 해보려면 :

신경망에서 가장 강력한 기능 중 하나는 기능이 매우 복잡하여 입력 및 출력 데이터 간의 매우 복잡한 관계를 배울 수 있다는 것입니다. 이러한 관계에는 시대별로 데이터가 공급되는 순서와 같이 예상치 못한 사항이 포함될 수 있습니다. 각 에포크 내에서 데이터의 순서가 동일하면 모델이이를 훈련 오류를 줄이는 방법으로 사용할 수 있으며 이는 일종의 과적 합입니다.

속도와 관련하여 : 미니 배치 방법은 확률 적 경사 하강 (및 그에 따른 개선)에 의존합니다. 즉, 최소값을 찾기 위해 임의성에 의존합니다. 미니 배치를 섞으면 그라디언트가 더 다양해 지므로 좋은 방향에 도달 할 가능성이 높아 지므로 수렴에 도움이됩니다.


1
신경망은 각 시대에 데이터가 공급되는 순서를 어떻게 알 수 있습니까?
코드 교황

1
한마디로 그들은 할 수 없습니다. 미니 배치 훈련 (즉, 에포크 당 하나 이상의 배치)을 사용하는 경우, 데이터에 대한 특정 순서는 하나의 미니 배치에 대해 훈련함으로써 솔버가 특정 영역에 진입 할 수 있다는 의미에서 훈련에 영향을 줄 수 있습니다. 다른 것보다는 지역 최소 ...). 그러나 각 예측이 다른 모든 예측과 독립적으로 이루어지기 때문에 데이터 순서에 대한 피드 포워드 NN "학습"은 실제로 정확하지 않으며 미니 배치 내에서 의 순서 는 전혀 영향을 미치지 않습니다.
Josh

6

매우 간단한 관점에서, 데이터는 순차적으로 공급되는데, 이는 적어도 데이터 순서가 출력에 영향을 미칠 있음을 시사합니다 . 순서가 중요하지 않은 경우 무작위 화는 확실히 아프지 않습니다. 순서가 중요하다면, 무작위 화는 이러한 무작위 효과를 부드럽게하여 체계적인 편견이되지 않도록 도와줍니다. 요컨대, 무작위 화는 저렴하고 결코 아프지 않으며 종종 데이터 순서 효과를 최소화합니다.


6

참고 :이 답변 전체에서 나는 교육 손실 최소화를 언급하며 유효성 검사 손실과 같은 중지 기준에 대해서는 논의하지 않습니다. 중지 기준의 선택은 아래 설명 된 프로세스 / 개념에 영향을 미치지 않습니다.

X(W)WXXWWX

PWPP+1P=2WX

XX

XXiXiXi(Wi)Xi+1Xi+1(Wi)Xi(Wi)Xi+1XiXWW

XWX X


이 유용한 설명에 감사드립니다. 답을 깊게 읽은 후 두 가지 질문이 있습니다. 1. 미니 배치가 어느 정도 제한된 다각화를 제공한다고 언급했습니다. 나는 이것이 왜 현지에서 최소한으로 멈추지 않기에 충분하지 않은지 이해하지 못합니다. 솔버가 한 배치 표면의 국소 최소값에있는 경우, 다음 배치 표면의 국소 최소값이 아닌 확률이 높기 때문에 고착되지 않아야합니다. 2. 솔버가 손실 함수 표면에 어떻게 수렴하고 표면이 항상 다른 배치를 사용하여 변경됩니까?
코드 교황

다양 화 혜택은 여전히 ​​셔플 링이 없지만 여전히 셔플 링을 사용할 때만 큼 중요하지는 않습니다. 셔플 링을 사용할 경우 셔플 링을 사용하는 경우 똑같은 손실 표면을 두 번 이상 볼 수 없습니다. 중지 기준에 대해서는 일반적으로 지정된 반복 횟수에 대한 평균 손실 감소율이 허용 오차보다 작 으면 훈련이 중지되도록 내 문서를 작성했습니다.
Josh

2
어쩌면 나는 현지 최소에 대한 귀하의 질문에 실제로 대답하지 못했습니다. 이론적으로, 이러한 손실 표면은 반응의 확률 분포 (모델 예측 변수에 대한 조건)가 전체 훈련 데이터 세트에서 일정하다고 가정하기 때문에 어느 정도 유사성을 나타내야합니다. 따라서 최소값이 충분히 깊으면 많은 미니 배치에 표시되어야하므로 솔버가 튀어 나오지 않을 것입니다. 그러나 최소값이 기본적으로 "소음"인 경우이 전략은 잘 작동하고 모델이 계속 훈련 할 수 있도록해야합니다.
Josh

감사. 두 번째 응답은 NN이 다른 표면에도 불구하고 수렴하는 이유를 명확하게 이해할 수있게합니다. 첫 번째 질문과 관련하여, 동일한 시퀀스를 갖는 것이 셔플 링을 사용할 때보 다 배치의 많은 손실 표면에서 "노이즈"가 반복 될 가능성이 더 높다고 말하는 것이 옳습니까? 이것은 셔플 링없이 미니 배치를 사용할 때 여전히 로컬 최소에 갇힐 수있는 이유를 줄 수있는 유일한 설명입니다.
코드 교황

@CodePope 나는 그것이 옳다고 생각합니다. 또한 훈련이 시작된 이후 손실이 크게 줄어들면 그라디언트는 매우 작으며 솔버가 기본적으로 동일한 시퀀스의 손실 표면을 볼 때 "루프"에 빠질 수 있습니다. 이것은 다소 제한된 경험을 바탕으로 한 추측적인 설명이므로 이에 대한 이론적 인 관심이있는 경우 전문가에게 문의하는 것이 좋습니다.
Josh

4

마지막 몇 개의 미니 배치 레이블에 실제로 더 많은 노이즈가 있다고 상상해보십시오. 그런 다음이 배치는 최종 학습 가중치를 잘못된 방향으로 당깁니다. 매번 셔플하면 마지막 몇 배치가 불균형 적으로 시끄럽게 될 가능성이 줄어 듭니다.


1

고정 데이터 세트를 사용하여 네트워크를 훈련 할 때, 훈련 중 절대 섞이지 않는 데이터를 의미합니다. 40,70, -101,200 등과 같이 매우 높고 매우 낮은 무게를 얻을 가능성이 큽니다. 이는 단순히 네트워크에서 학습 데이터를 학습하지 않았지만 학습 데이터의 소음을 학습했음을 의미합니다. 과적 합 모델의 클래식 사례. 이러한 네트워크를 통해 훈련에 사용한 데이터에 대한 예측을 파악할 수 있습니다. 다른 입력을 사용하여 테스트하면 모델이 분해됩니다. 이제 각 에포크 (전체 세트의 반복) 후에 트레이닝 데이터를 섞을 때, 단순히 각 에포크에서 뉴런에 다른 입력을 공급하고 단순히 가중치를 조절하여 가중치가 제로에 가까워 질수록 "더 낮은"가중치를 얻을 가능성이 높아집니다. 즉, 네트워크에서 더 나은 일반화를 수행 할 수 있습니다.

나는 그것이 분명했으면 좋겠다.


1

보다 직관적 인 설명은 다음과 같습니다.

그래디언트 디센트를 사용할 때는 손실이 그래디언트 방향으로 줄어들기를 원합니다. 그라디언트는 각 가중치 업데이트 라운드마다 단일 미니 배치의 데이터로 계산됩니다. 우리가 원하는 것은이 미니 배치 기반 그라디언트는 대략 인구 그라디언트입니다. 이는 더 빠른 수렴을 생성 할 것으로 예상되기 때문입니다. (네트워크에 하나의 미니 배치로 100 개의 class1 데이터를 공급하고 다른 미니 배치로 100 개의 class2 데이터를 공급하면 네트워크가 호버링한다고 가정 해보십시오. 더 작은 방법은 각 미니 배치에서 50 개의 class1 + 50 개의 class2를 공급하는 것입니다.)

미니 배치에서 모집단 데이터를 사용할 수 없으므로이를 달성하는 방법은 무엇입니까? 통계 기술은 다음과 같이 알려줍니다. 모집단을 섞고 첫 번째 batch_size 데이터 조각이 모집단을 나타낼 수 있습니다. 그렇기 때문에 인구를 섞어 야합니다.

즉, 모집단에서 데이터를 샘플링하고 샘플이 합리적인 기울기를 생성 할 수있는 다른 방법이 있다면 셔플 링이 필요하지 않습니다.

그게 내 이해 야 도움이 되길 바랍니다.

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