WaveNet은 실제로 확장 된 회선이 아닙니다. 그렇지 않습니까?


10

최근 WaveNet 논문에서, 저자는 자신의 모델을 확장 된 회선의 층을 쌓은 것으로 언급합니다. 또한 '정규'컨벌루션과 확장 컨벌루션의 차이점을 설명하는 다음 차트를 생성합니다.

규칙적인 컨볼 루션은 다음과 같습니다. 비 확장 컨볼 루션 이것은 필터 크기가 2이고 보폭이 1 인 컨볼 루션으로 4 개의 레이어에 대해 반복됩니다.

그런 다음 모델에서 사용하는 아키텍처를 보여줍니다.이를 확장 된 회선이라고합니다. 이것처럼 보입니다. WaveNet 확장 컨볼 루션 그들은 각 층이 (1, 2, 4, 8)의 팽창이 증가한다고 말합니다. 그러나 나에게 이것은 필터 크기가 2이고 보폭이 2 인 규칙적인 컨볼 루션처럼 보이며 4 층에 대해 반복됩니다.

내가 이해하는 것처럼, 필터 크기가 2이고, 보폭이 1이고, 확장이 (1, 2, 4, 8) 인 확장 된 회선은 다음과 같습니다. 실제 확장 된 컨볼 루션

WaveNet 다이어그램에서 사용 가능한 입력을 건너 뛰는 필터는 없습니다. 구멍이 없습니다. 내 다이어그램에서 각 필터는 (d-1) 사용 가능한 입력을 건너 뜁니다. 이것이 팽창이 어떻게 작동하지 않는가?

내 질문은 다음 제안 중 어느 것이 옳습니까?

  1. 확장 및 / 또는 규칙적인 컨볼 루션을 이해하지 못합니다.
  2. Deepmind는 실제로 확장 된 컨볼 루션을 구현하지 않았고 오히려 스트 라이딩 된 컨볼 루션을 구현했지만 확장이라는 단어를 잘못 사용했습니다.
  3. Deepmind는 확장 된 회선을 구현했지만 차트를 올바르게 구현하지 않았습니다.

나는 그들의 코드가 정확히 무엇을하고 있는지 이해하기 위해 TensorFlow 코드에 능숙하지 않지만 Stack Exchange에 관련 질문을 게시했습니다 .이 질문에는이 질문에 대답 할 수있는 코드가 들어 있습니다.


귀하의 질문과 답변이 아래에서 매우 흥미로 웠습니다. WaveNet 용지 보폭과 팽창 속도의 동등성을 설명하지 않기 때문에, 나는 블로그 게시물의 주요 개념을 요약하기로 결정 theblog.github.io/post/...는 여전히 회귀 신경 작업하는 경우 당신이 흥미를 찾을 수 있습니다 네트워크
Kilian Batzner

답변:


9

wavenet의 논문에서 :

"A dilated convolution (also called a trous, or convolution with 
holes) is a convolution where the filter is applied over an area larger 
than its length by skipping input values with a certain step. It is 
equivalent to a convolution with a larger filter derived from the 
original filter by dilating it with zeros, but is significantly more 
efficient. A dilated convolution  effectively allows the network to 
operate on a coarser scale than with a normal convolution. This is 
similar to pooling or strided  convolutions, but 
here the output has the same size as the input. As a special case, 
dilated convolution with dilation 1 yields the standard convolution. 
Fig. 3 depicts dilated causal convolutions for dilations 1, 2, 4, and 
8."

애니메이션은 고정 된 보폭 1과 각 층에서 증가하는 팽창 계수를 보여줍니다. Google의 wavenet 블로그 게시물에서 애니메이션 그림 3


6

페니가 이걸 떨어 뜨 렸어요 이 세 가지 제안 중 올바른 것은 4입니다. WaveNet 논문을 이해하지 못했습니다.

내 문제는 WaveNet 다이어그램을 단일 샘플을 포함하는 것으로 해석하고 1D는 샘플 크기이고 다른 하나는 배치 카운트 인 2D 구조로 배열 된 다른 샘플에서 실행되는 것입니다.

그러나 WaveNet은 1의 보폭으로 1D 시계열에서 전체 필터를 실행하고 있습니다. 이는 분명히 메모리 사용량이 훨씬 적지 만 동일한 것을 달성합니다.

strided 구조를 사용하여 동일한 트릭을 시도하면 출력 치수가 잘못됩니다.

요약하자면, 2D 샘플 x 배치 구조를 사용하여 동일한 방법을 사용하면 동일한 모델을 사용할 수 있지만 훨씬 더 많은 메모리를 사용할 수 있습니다.

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