신경망 연구자들이 신기원에 관심을 갖는 이유는 무엇입니까?


69

확률 적 경사 하강에서의 에포크 (epoch)는 데이터를 통한 단일 통과로 정의된다. 각 SGD 미니 배치에 샘플이 추출되고, 기울기가 계산되고 매개 변수가 업데이트됩니다. 에포크 설정에서 샘플은 교체없이 추출됩니다.k

그러나 이것은 불필요한 것 같습니다. 각 반복마다 전체 데이터 세트에서 랜덤 드로우 로 각 SGD 미니 배치를 그리지 않겠 습니까? 많은 수의 에포크 (epoch)에 걸쳐서, 샘플이 조금씩 보이는 작은 편차는 중요하지 않은 것처럼 보입니다.k


1
질문에 +1, 흥미롭게도 물어 보려고하는 것과 거의 같은 질문이있었습니다!
Haitao Du

일화적인 증거이지만 최근에는 훈련 규모가 50000 인 MNIST 데이터에 SGD를 사용하여 1 계층 신경망을 설치했습니다. 한 번의 무작위 통과 후 분류 정확도는 30-40 %를 넘지 않았고, 로그 우도는 분명히 수렴되지 않았습니다. 그래서 나는 30 % 더 많은 에포크에 대해이 절차를 반복하여 90 % 이상의 정확도를 달성했습니다. 적어도 반례에 의해 이것이 나에게 필요할 수 있음을 보여주었습니다.
tomka

6
@tomka 그것은 데이터를 여러 번 통과해야한다는 증거를 제시하는 것으로 보입니다. 여기에서 제안 된 방법과 일치합니다 . 훈련 반복 광고 구역 당 샘플을 계속 유지하십시오 . k
Sycorax

1
또 다른 흥미로운 질문은 미니 배치 주문이 과적 합에 영향을 미칠까요?
Kh40tiK

3
@Pinocchio 표준 SGD 사례는 교체없이 샘플링하는 것입니다 (샘플 풀이 고갈 될 때까지 새 에포크가 모든 데이터로 다시 시작됨). 내 질문은 교체와 함께 샘플링을 사용하지 않는 이유입니다. 한 가지 답은 교체하지 않고 샘플링하면 모델의 수렴 속도가 향상된다는 것입니다.
Sycorax

답변:


60

실용성에 대한 Franck의 대답과, 소그룹을 보는 것에 대한 David의 대답 (둘 다 중요한 점)은 대체하지 않고 샘플링을 선호하는 이론적 인 이유가 있습니다. 그 이유는 아마도 David의 요점과 관련이있을 수 있습니다 (본질적으로 쿠폰 수집기의 문제임 ).

2009 년 Léon Bottou는 특정 텍스트 분류 문제에 대한 수렴 성능을 비교했습니다 ( ).n=781,265

보토 (2009). 확률 적 그라디언트 하강 알고리즘의 흥미롭게 빠른 수렴 . 학습 및 데이터 과학에 관한 심포지엄의 절차. ( 저자 pdf )

그는 SGD를 통해 서포트 벡터 머신을 세 가지 접근 방식으로 교육했습니다.

  • 랜덤 : 반복 할 때마다 전체 데이터 세트에서 랜덤 샘플을 추출합니다.
  • 주기 : 학습 프로세스를 시작하기 전에 데이터 세트를 섞은 다음 순차적으로 살펴보면 각 시대에 동일한 순서로 예제가 표시됩니다.
  • 셔플 : 각 에포크 이전에 데이터 세트를 다시 섞어 각 에포크가 다른 순서로 진행되도록합니다.

그는 경험적으로 수렴 . 여기서 는 비용 함수, 는 최적화 단계 의 매개 변수 이며 기대는 셔플 링에 대한 것입니다 할당 된 배치.E[C(θt)minθC(θ)]Cθtt

  • 랜덤의 경우, 수렴은 대략 의 순서로 이루어 졌습니다 (기존의 이론에서 예상 한대로).t1
  • 사이클은 의 순서로 수렴을 얻었습니다 ( 경우 순열에 따라 달라집니다 (예 : 그림 1의 경우 )).tαα>1α1.8
  • 셔플은 더 혼란했지만, 최적 라인은 준 , 많은 랜덤보다 빠르다.t2

이것은 그의 그림 1입니다. 주어진 비율에서 수렴의 그림

이것은 나중에 이론적으로 종이로 확인되었습니다.

Gürbüzbalaban, Ozdaglar 및 Parrilo (2015). 왜 랜덤 전환이 확률 적 그라디언트 디센트를 이길까요 ? arXiv : 1510.08560 . ( NIPS 2015 초청 토크 비디오 )

이들의 증거는 손실 기능이 강하게 볼록한 경우, 즉 신경망에는 적용되지 않는 경우에만 적용됩니다. 그러나 비슷한 추론이 신경망 사례에 적용될 수 있다고 예상하는 것이 합리적입니다 (분석하기가 훨씬 더 어렵다).


3
이것은 매우 통찰력있는 답변입니다. 당신의 공헌에 감사드립니다.
Sycorax

1
무지에 대해 유감이지만, 세 가지의 차이점이 무엇인지 조금 더 설명해 주시겠습니까? 특히 랜덤에 대해 혼란스러워합니다. "샘플"이라고 말하면 무슨 뜻입니까? 나는 이것이 당신이 참조하는 것이 아니라 표준 신경망 미니 배치 SGD가 일반적으로 각 반복에서 교체없이 배치를 샘플링한다는 것을 알고 있습니다. 그게 랜덤인가요? 그렇다면 Shuffle과 어떻게 다릅니 까?
피노키오

1
이제 다시 읽었으므로 세 가지 모두 동일한 알고리즘으로 보입니다. 데이터 세트가 섞여 있는지 여부와 SGD의 배치가 항상 무작위 인 경우 얼마나 자주 차이가 있습니까?
피노키오

3
@Pinocchio 4 계도 데이터 세트를 상상해보십시오. 무작위는 ACADBBCA로 갈 수 있습니다. 각 항목은 완전히 무작위입니다. 사이클이 BDAC로 갈 수 있음 BDAC BDAC; 각 에포크마다 하나의 순서를 선택한 다음 반복합니다. 셔플은 BDAC ADCB CBAD 일 수 있습니다. 그것은 신기원으로 진행되지만 각각은 무작위입니다. 이 분석에서는 미니 배치를 사용하지 않으며 한 번에 한 요소 씩만 SGD를 사용합니다.
Dougal

이것은 좋은 대답입니다. Thnx 당신!
DankMasterDan

24

큰 훈련 세트가있는 성능 관점에서는 실제로는 불필요하지만 에포크를 사용하는 것이 편리 할 수 ​​있습니다.

  • "신경망은 10 개 에포크에 대해 훈련되었다"는 "신경망은 18942 회 반복에 대해 훈련되었다"또는 "신경망이 303072 개 이상의 샘플에 대해 훈련되었다"보다 더 명확한 설명을 제공한다.
  • 훈련 단계에서 임의의 가중치 초기화, 미니 배치 셔플 링, 드롭 아웃 등의 임의의 일이 진행됩니다.
  • 구현하기 쉽다
  • 훈련 세트가 신기원을 갖지 못할 정도로 큰지 궁금해하지 않습니다.

[1]은 또 하나의 이유를 제시하는데, 오늘날의 컴퓨터 구성에서는 그다지 중요하지 않습니다 :

모든 확률 구배 하강 법 (미니 배치 사례 포함)은 추정기의 효율성을 위해 각 예 또는 미니 배치를 대략 독립적으로 샘플링하는 것이 중요합니다. 메모리에 대한 임의 액세스 (또는 더 나쁜 디스크에 대한 액세스)가 비싸기 때문에 증분 그라디언트 (Bertsekas, 2010)라고하는 근사값은 메모리의 순서에 따라 고정 된 순서로 예제 (또는 미니 배치)를 방문하는 것입니다. 또는 디스크 (각 예제가 한 번만 방문하는 순수한 온라인 사례가 아닌 경우 두 번째 시대에 동일한 순서로 예제를 반복).이와 관련하여 예제 또는 미니 배치를 먼저 임의의 순서로 배치하는 것이 더 안전합니다 (이 경우를 확실히하기 위해 먼저 예제를 섞는 것이 유용 할 수 있음). 미니 배치가 방문하는 순서가 각 에포크마다 변경되면 더 빠른 수렴이 관찰되었으며, 이는 트레이닝 세트가 컴퓨터 메모리에 유지되는 경우 상당히 효율적일 수 있습니다.


[1] 요슈아 벤 지오. " 심층 아키텍처의 그라디언트 기반 교육에 대한 실제 권장 사항. "신경망 : 무역의 비법. Springer Berlin Heidelberg, 2012. 437-478.


1
이것들은 좋은 점처럼 보이지만 업데이트와 관련하여 에포크 당 샘플링 는 종속 샘플링 인 것으로 보입니다 (에포크에서 샘플이 두 번 나타날 확률은 0이기 때문에). 따라서 필자는 "대략 독립적으로"라는 의미가 "독립적으로"가 아니라면 에포크 구성이 독립적이라고 주장 할 수있는 방법을 잘 모르겠습니다. k
Sycorax

1
교체없이 @Sycorax Sampling은 독립적이지 않더라도 교환 가능 하다는 의미에서 "대략 독립적"입니다 . 하나의 데이터 포인트에 대해 너무 신경 쓰지 않는 분류자를 훈련시키는 관점에서, 이러한 교환 가능성은 "대략 독립적"에 가깝습니다.
Dougal

18

나는 그것이 중요하지 않다는 것에 다소 동의하지 않습니다. 백만 개의 훈련 예제가 있다고 가정하고 천만 개의 샘플을 가져옵니다.

R에서는 분포가 어떻게 보이는지 빠르게 볼 수 있습니다.

plot(dbinom(0:40, size = 10 * 1E6, prob = 1E-6), type = "h")

이항 PMF

일부 예는 20 회 이상 방문되며 그 중 1 %는 3 회 이하로 방문합니다. 실제 데이터에서 예의 예상 분포를 나타 내기 위해 교육 세트를 신중하게 선택한 경우 특히 데이터를 더 작은 그룹으로 분할하기 시작하면 데이터 세트의 일부 영역에 실제로 영향을 줄 수 있습니다.

최근 일리노이 유권자가 30 배의 오버 샘플링을 효과적으로 수행하고 인구 통계 그룹에 대한 모델의 추정치를 (그리고 전체 미국 인구에 대해서는 더 적게) 크게 변경 한 최근 사례를 고려하십시오 . 흐린 날에 녹색 배경으로 촬영 한 "Ruffed Grouse"이미지를 실수로 좁은 피사계 심도로 오버 샘플링하고 다른 종류의 그 라우스 이미지를 언더 샘플링하면 모델이 해당 기능을 카테고리 레이블과 연관시킬 수 있습니다. 데이터를 분할하는 방법이 많을수록 이러한 하위 그룹이 많을 것이고 이러한 종류의 실수에 대한 더 많은 기회가있을 것입니다.


1
나는 그것이 큰 훈련 세트에 대해 실제로 큰 차이를 만들지 않을 것이라고 생각하지만, 분명히 더 작은 훈련 세트를 기대할 것입니다.
Franck Dernoncourt

5
@FranckDernoncourt 글쎄, 요점은 작은 하위 그룹을 살펴보기 시작하면 큰 데이터 세트에 중요 할 수 있다는 것입니다. 큰 데이터 세트에서는 드문 절차가 아닙니다.
dimpol

이항이 아닌 균일 한 분포를 사용해야합니다
lahwran

2
@lahwran 우리는 요소 에서 배를 샘플링하여 샘플링 하고 있습니다. R에서 이것은입니다 . 여기에서로 주파수 분포를 플로팅 할 수 있습니다 . 위에 그려진 이항 분포와 같습니다. 107106samples = sample(1:1E6, size = 1E7, replace = TRUE)plot(table(table(samples)) / 1E7)
David J. Harris

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