머신 러닝 작업을 위해 데이터를 섞어 야하는 이유


30

머신 러닝 작업에서는 데이터를 섞고 정규화하는 것이 일반적입니다. 정규화의 목적은 분명합니다 (같은 범위의 기능 값을 갖기 위해). 그러나 많은 어려움을 겪은 후 데이터를 섞는 데 중요한 가치를 찾지 못했습니다.

이 게시물 읽게 여기에 우리가 데이터를 셔플해야 할 때 논의를하지만, 우리는 데이터를 셔플해야하는 이유는 명확하지 않다. 또한 배치 그라디언트 디센트가 필요한 Adam 또는 SGD와 같은 알고리즘에서 자주 보았습니다 (데이터는 미니 배치로 분리하고 배치 크기를 지정해야합니다). 이 게시물 에 따르면 각 에포크마다 데이터를 셔플하여 각 배치마다 다른 데이터를 갖는 것이 중요 합니다. 따라서 데이터가 섞여서 더 중요하게 변경되었을 수 있습니다.

우리는 왜 이것을 하는가?


1
첫 번째 링크의 답변이 도움이되지 않은 이유를 정확하게 설명하는 것이 유용 할 수 있습니다. 그렇지 않으면, 우리는 개선이 거의없이 이미 언급 된 내용을 반복 할 위험을 감수하고 있습니다.
E_net4는

내가 말한 바와 같이 왜 그런지 아는 이유를 알고 싶습니다. 왜 그런지 아십니까? 실제로 거기에 설명되어 있습니까? 나는 이것에 대한 논문을 전혀 보지 못했다
미디어

1
주문 예의 영향에 대한 자세한 내용은 커리큘럼 학습 [pdf]을 참조하십시오.
Emre

1
나는 이것을 CrossValidated에 게시했으며 관련이 있다고 생각합니다. stats.stackexchange.com/a/311318/89653
Josh

@이 논문은 실제로 셔플 링에 반대합니다. 감사합니다. 이런 종류의 학습에 대해 듣지 못했습니다.
Media

답변:


18

을 바탕으로 우리가 DataScience에 게시 된 질문 CrossValidated에 게시 된 질문의 중복 때 어떻게해야합니까? , CrossValidated ( https://stats.stackexchange.com/a/311318/89653 ) 와 동일한 질문에 대한 답변을 다시 게시하고 있습니다.

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

신경망 훈련 프로세스는 손실 함수의 최소값을 찾는 것이다 , 뉴런 간의 가중치 매트릭스 (또는 여러 매트릭스)을 나타내고, 상기 트레이닝 데이터 세트를 나타내고있다. 나는에 대한 첨자를 사용하는 의 우리의 최소화를 나타 내기 위해 단지 무게에 걸쳐 발생하는 (즉, 우리가 찾고있는 있도록 동안 최소화) 고정되어 있습니다.엑스()엑스엑스엑스

이제 요소 가 있다고 가정하면 (즉 , 네트워크에 가중치가 있음), 는 차원 공간 의 표면입니다 . 시각적 아날로그를 제공하기 위해 우리는 단지 두 개의 뉴런 가중치 ( )를 가지고 있다고 상상해보십시오 . 그러면 는 쉬운 기하학적 해석을합니다. 3 차원 공간의 표면입니다. 이것은 주어진 웨이트 행렬 W 에 대해 손실 함수가 X에서 평가 될 수 있고 그 값이 표면의 높이가 된다는 사실에서 발생합니다 .+1=2엑스

그러나 비 볼록성의 문제가 있습니다. 내가 기술 한 표면은 수많은 국소 적 최소값을 가지게되는데, 그래디언트 디센트 알고리즘은 그 최소값에서 "고착"될 수있는 반면, 더 깊거나 더 낮거나 더 나은 해결책이 근처에있을 수있다. 표면이 주어진 대해 고정되어 있기 때문에 모든 훈련 반복에서 가 변경되지 않은 경우에 발생할 수 있습니다 . 다양한 최소값을 포함하여 모든 기능이 정적입니다.엑스엑스

이에 대한 해결책은 셔플 링과 결합 된 미니 배치 훈련입니다. 주어진 반복 동안 행을 셔플하고 행의 일부만 훈련하면 는 모든 반복 마다 변경되며 실제로 전체 반복 교육 반복 및 에포크에서 두 번의 반복이 동일한 에서 수행되지 않을 가능성이 있습니다. . 결과는 솔버가 로컬 최소값에서 쉽게 "바운스"될 수 있다는 것입니다. 훈련 미니 배치 X i로 솔버가 반복 i 에서 로컬 최소값에 고정되어 있다고 상상해보십시오 . 이 극소 대응 가중치의 특정 값에서 평가; 우리는 그것을 X i ( WX엑스엑스나는엑스나는 . 우리가 사용하고 있기 때문에 다음 반복에 대한 우리의 손실면의 형상은 실제로 변경 X의 I + 1 이며,X를 I + 1 ( W I ) 에서 매우 다른 값을 취할 수있다X I ( W I ) 및 그것을 지역 최소값에 해당하지 않을 가능성이 있습니다! 이제 그라디언트 업데이트를 계산하고 교육을 계속할 수 있습니다. 명확하게하려면 다음의 모양X는 내가 + 1이 됩니다 - 일반적으로 -의 다를 수X의 엑스나는(나는)엑스나는+1엑스나는+1(나는)엑스나는(나는)엑스나는+1엑스나는. 나는 손실 함수를 참조하고 여기에 참고 훈련 세트에서 평가 X ; 특정 값 W에 대한 손실 (스칼라 일뿐)의 평가가 아니라 가능한 모든 W 값에 대해 정의 된 완전한 표면 입니다. 또한 셔플 링없이 미니 배치를 사용하는 경우 손실 표면의 "다각화"정도는 여전히 남아 있지만 솔버가 볼 수있는 유한 한 (그리고 상대적으로 작은) 고유 한 오류 표면이 있습니다 (특히, 각각의 에포크 동안 동일한 정확한 미니 배치 세트-따라서 손실 표면-).엑스

내가 의도적으로 피한 것 중 하나는 미니 배치 크기에 대한 논의였습니다. 왜냐하면 이것에 대한 백만 가지 의견이 있고 상당한 실질적인 영향을 미치기 때문입니다 (더 큰 배치로 더 큰 병렬화를 달성 할 수 있음). 그러나 나는 다음과 같은 가치가 있다고 생각합니다. 는 주어진 가중치 행렬 W 에 대해 X의 각 행에 대한 값을 계산하여 (평균을 합산하거나 계산하는 연산자) 평균값을 계산함으로써 평가 되므로 , X 의 행 배열은 전체를 사용할 때 영향을 미치지 않습니다. 배치 그라디언트 디센트 (즉, 각 배치가 전체 X 이고 반복 및 에포크가 동일한 경우).엑스엑스 엑스


+1. 이 답변은 더 많은 업 보트가있는 다른 답변보다 기술적으로 더 잘 설명됩니다.
Gokul NC

29

셔플 링 데이터는 분산을 줄이고 모델이 일반 상태를 유지하고 과적 합을 줄이는 데 도움이됩니다.

데이터를 섞는 명백한 경우는 데이터가 클래스 / 대상별로 정렬되어있는 경우입니다. 여기에서 학습 / 테스트 / 검증 세트가 데이터의 전체 분포를 나타내는 지 확인하기 위해 섞습니다.

배치 경사 하강의 경우 동일한 논리가 적용됩니다. 배치 그라디언트 디센트의 기본 개념은 단일 배치에서 그라디언트를 계산하면 일반적으로 "진정한"그라디언트를 상당히 잘 평가할 수 있다는 것입니다. 이렇게하면 매번 전체 데이터 세트에 대해 "진정한"그래디언트를 계산하지 않아도되므로 계산 시간이 절약됩니다.

항상 전체 데이터 세트를 대표하지 않는 배치를 생성 할 위험이 있으므로 그래디언트 추정값이 해제되므로 각 에포크 후에 데이터를 셔플하려고합니다. 각 에포크 후에 데이터를 섞으면 잘못된 배치가 너무 많이 "고착"되지 않습니다.

규칙적인 확률 론적 경사 하강에서, 각 배치의 크기가 1 일 때, 학습을 전반적으로 유지하기 위해 각 시대 이후에도 데이터를 섞으려고합니다. 실제로, 데이터 포인트 (17)가 항상 데이터 포인트 (16) 이후에 사용된다면, 데이터 포인트 (16)가 모델에 대해 수행하는 모든 업데이트에 따라 그 자체의 그라디언트가 바이어스 될 것이다. 데이터를 섞으면 각 데이터 포인트가 동일한 포인트에 의해 바이어스되지 않고 모델에서 "독립적 인"변경을 생성 할 수 있습니다.


1
설명했듯이 교육 / 테스트 세트가 대표가되도록 데이터를 섞습니다. 회귀에서는 예를 들어 작은 값에서만 훈련하지 않도록하려는 경우 셔플 링을 사용합니다. 셔플 링은 대부분 안전 장치이며 최악의 경우 유용하지는 않지만 그렇게해도 아무것도 잃지 않습니다. 확률 적 그라디언트 하강 부분의 경우, 모델이 데이터를 제공 한 순서대로되어 있지 않은지 다시 확인하고자합니다. 따라서이를 방지하기 위해 셔플
Valentin Calomme

2
셔플 링은 분산을 줄이고 편향을 증가시킬 수 있다고 생각합니다 (즉, 데이터에 과적 합하는 경향을 감소시킵니다). 우리가 전체 배치 그라디언트 하강을 수행했다고 가정 해 봅시다. 그런 다음 솔버가 찾으려고하는 전역 최소값 (필수 항목을 찾을 수있는 것은 아님)이 있습니다. MSE 손실을 사용하는 경우 매번이 솔루션에 도달 할 수 있으면 바이어스를 최소화 할 수 있습니다. 그러나이 글로벌 최소값은 다른 트레이닝 세트에 대해 다른 위치에서 발견 될 가능성이 높으므로이 솔루션은 분산이 높은 경향이 있습니다.
Josh

2
셔플 링을 통해 전체 트레이닝 세트에 대해 전체 최소값에 도달 한 솔루션 (더 높은 편향)으로 수렴 할 가능성은 적지 만 더 나은 일반화 (더 낮은 분산)하는 솔루션을 찾을 가능성이 높습니다.
Josh

7

데이터가 지정된 순서로 정렬되어 있다고 가정합니다. 예를 들어 클래스를 기준으로 정렬 된 데이터 세트입니다. 따라서이 주제를 고려하지 않고 교육, 유효성 검사 및 테스트 할 데이터를 선택하면 각 작업마다 다른 클래스를 선택하게되며 프로세스가 실패합니다.

따라서 이러한 종류의 문제를 해결하기 위해 간단한 솔루션은 데이터를 섞어 다양한 교육, 유효성 검사 및 테스트 데이터 세트를 얻습니다.

미니 배치에 대해서는 이 게시물에 대한 답변 귀하의 질문에 대한 해결책이 될 수 있습니다.


1
@Media 제공된 링크에서 가장 관련있는 대답은 다음과 같습니다. "미니 배치 셔플 링은 그라디언트를 더 가변적으로 만들어 좋은 방향을 칠 가능성을 높이기 때문에 수렴에 도움을 줄 수 있습니다"
OmG

실제로 나는 이것을 SGD의 논문에서 보았지만 논문의 저자들이 주장한 것처럼 그것은 수렴의 이유가 셔플 링이 아니라고 주장했다. 나는 링크를 보았고 조금 의심했다. 더 명확하게 볼 놀라운 종이. 저자는 거기에 요점을 언급했지만, 알
Media

1

우리는 미니 배치 / SGD에 대해서만 셔플 링을해야하며 배치 그라디언트 디센트는 필요하지 않습니다.

데이터를 섞지 않으면 데이터를 정렬하거나 유사한 데이터 포인트가 나란히 배치되어 수렴이 느려집니다.

  • 유사한 샘플은 유사한 표면을 생성합니다 (1 개의 샘플에 대한 손실 함수를위한 1 개의 표면)-> 그래디언트는 유사한 방향을 가리 키지 만이 방향은 거의 최소를 가리 키지 않습니다.
  • "최상 방향": 최소값을 직접 가리키는 모든 표면의 모든 기울기 평균 (배치 기울기 강하)
  • '미니 바취 방향': 다양한 방향의 평균이 최소값에 가깝지만 최소값을 가리 키지 않습니다.
  • "1- 샘플 방향": 미니 배치에 비해 최소를 더 멀리 가리 킵니다.

여기 에 선형 회귀에 대한 L-2 손실 함수의 플롯을 그렸습니다.y=2x


1

엑스엑스

@Josh의 답변을 보완하면서, 같은 이유로 일괄 처리 전에 셔플 링을 수행해야한다고 덧붙이고 싶습니다. 그렇지 않으면, 유한 한 수의 표면을 얻게됩니다.


커뮤니티에 오신 것을 환영합니다.
미디어

1

모델의 정확도를 높이려면 항상 훈련 데이터에 모든 종류의 데이터가 있어야합니다.

훈련 데이터를 섞으면이 목표를 달성하는 데 도움이됩니다.


1

주어진 반복 동안 행을 셔플 링하고 이들의 서브 세트에 대해서만 훈련함으로써, every 모든 반복마다 변경되며, 실제로 전체 훈련 반복 및 에포크에 대해 두 번의 반복이 정확히 동일한 𝑋에서 수행되지 않을 가능성이있다

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