신경망을 훈련하면서 왜 데이터를 섞어 야합니까? 있습니까? Google 검색에서 다음

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

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

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

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



답변

다른 설명을 해보려면 :

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

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


답변

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


답변

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

X(W)

W

X

X

W

W

X

P

W

P

P+1

P=2

W

X

X

X

X

X

i

Xi

Xi(Wi)

Xi+1

Xi+1(Wi)

Xi(Wi)

Xi+1

Xi

X

W

W

X

W

X

X


답변

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


답변

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

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


답변

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

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

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

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

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


답변