DropOut은 컨볼 루션 레이어와 정확히 어떻게 작동합니까?


10

드롭 아웃 ( paper , description )은 일부 뉴런의 출력을 0으로 설정합니다. 따라서 MLP의 경우 아이리스 플라워 데이터 세트에 대해 다음 아키텍처를 가질 수 있습니다 .

4 : 50 (tanh) : dropout (0.5) : 20 (tanh) : 3 (softmax)

다음과 같이 작동합니다.

에스영형에프미디엄엑스((2마스크(,(1나는_V이자형영형아르 자형)))

함께 , , , , (단순화를위한 바이어스 무시) W 1R 50 × 4 D { 0 , 1 } 50 × 1 W 2R 20 × 50 W 3R 20 × 3나는_V이자형영형아르 자형아르 자형4×11아르 자형50×4{0,1}50×12아르 자형20×50아르 자형20×

함께 및=()나는제이

나는제이(1,=0.5)

여기서 동작 곱하여 와 포인트 - 방식 (참조 마드 제품 ).마스크(,미디엄)미디엄

따라서 매번 행렬 샘플링하기 때문에 드롭 아웃은 노드가 0으로 곱해집니다.

그러나 CNN의 경우 정확히 무엇이 빠졌는지 명확하지 않습니다. 세 가지 가능성을 볼 수 있습니다.

  1. 완전한 기능 맵 삭제 (따라서 커널)
  2. 커널의 한 요소를 삭제 (커널의 요소를 0으로 대체)
  3. 기능 맵의 한 요소 삭제

답변에 참조 / 견적을 추가하십시오.

내 생각

Lasagne는 (3)을 수행한다고 생각합니다 ( 코드 참조 ). 이것은 가장 간단한 구현 일 수 있습니다. 그러나 원래 아이디어에 더 가까운 것은 (1) 일 수 있습니다.

Caffe와 비슷한 것 같습니다 ( code 참조 ). tensorflow의 경우 사용자가 결정해야합니다 ( 코드 - noise_shape=None전달 될 때 어떤 일이 발생하는지 잘 모르겠습니다 ).

어떻게해야합니까

(2)와 (3)은 네트워크가 공간 위치에 불균형을 추가하게 만들 수 있으므로 바람직하지 않습니다. 따라서 (1)이 유일한 변형입니다. 그러나 기본 구현을 사용하면 어떻게 될지 잘 모르겠습니다.


Lasagne 사용자 그룹 에서도 질문을했습니다 .
Martin Thoma

친구는 (2)와 (3)은 네트워크가 정보를 공간적으로 확산 시키도록 강요 할 수 있기 때문에 좋은 생각이 아닐 수 있다고 언급했습니다.
Martin Thoma

답변:


1

(+1)

자세한 내용은이 백서의 섹션 3이 도움이 될 수 있다고 생각합니다. Max-pooling & Convolutional dropout . 구체적으로 3.2.

테스트 할 때는 논문의 설명에 따라 네트워크의 모든 노드를 사용하지만 보유 가중치에 따라 필터 가중치를 조정합니다.

내 답변을 수정하거나 수정하십시오.

이것이 조금이라도 도움이되기를 바랍니다.

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