百科问答小站 logo
百科问答小站 font logo



wav2vec中的30ms是怎么得来的? 第1页

  

user avatar   SeptEnds 网友的相关建议: 
      

简而言之,是通过巧妙地设计 conv kernel size 和 stride 叠出来的 receptive field


wav2vec 的 encoder network 是 5 层带因果卷积的 CNN,每层 kernel sizes 分别为 (10; 8; 4; 4; 4),strides 分别为 (5; 4; 2; 2; 2)。

所以,经过第一个层卷积后:

  • 每个第一层神经元可以看到 10 (第一层卷积 kernel size = 10) 个原始输入数据点
  • 相邻两个第一层神经元看到的原始输入数据相差 5 个点(第一层卷积 stride = 5);

经过第二层卷积后:

  • 每个第二层神经元可以看到 10 + (8-1)*5 = 45(第二层卷积 kernel size = 8,它能看到 8 个第一层神经元。其中第 1 个第一层卷积神经元可以看到 10 个点;后 7 个第一层神经元每个都可以多看到 5 个原始输入点,其中 5 是第一层卷积的 stride)个原始输入数据点
  • 相邻两个第二层神经元看到的原始输入数据相差 5*4=20 个点(5 和 4 分别为第一层卷积和第二层卷积的 stride,第二层卷积的输出向后滑动一步,其感受野要在原始输入上滑动 5*4 这么多个点)
  • 希望这里文字表达清楚了……如果没有,等我有空了补一张图……

经过第三层卷积后(计算原理同第二层卷积,下同):

  • 每个第三层神经元可以看到 45 + (4-1)*20 = 105 个原始输入数据点
  • 相邻两个第三层神经元看到的原始输入数据相差 20*2=40 个点

经过第四层卷积后:

  • 每个第四层神经元可以看到 105 + (4-1)*40 = 225 个原始输入数据点
  • 相邻两个第四层神经元看到的原始输入数据相差 40*2=80 个点

经过第五层卷积后:

  • 每个第五层神经元可以看到 225 + (4-1)*80 = 465 个原始输入数据点
  • 相邻两个第五层神经元看到的原始输入数据相差 80*2=160 个点

因此,在 16kHz 的采样率(每秒钟采 16k 个点,表示这些时刻传感器采样到的空气振动情况)下,每个第五层神经元可以看到 465/16kHz = 29ms,相邻两个第五层神经元看到的原始输入数据相差 160/16kHz = 10ms,这就是论文里这句话的来源。

The output of the encoder is a low frequency feature representation zi 2 Z which encodes about 30 ms of 16 kHz of audio and the striding results in representations zi every 10ms.

同理,后面还有一句

The context network has nine layers with kernel size three and stride one. The total receptive field of the context network is about 210 ms.

如果你掌握了 receptive field 和 striding 的计算方法,应该也能自己算出来这里的 210ms 是怎么来的了。

公布答案:(465 + 160 * 2 * 9) / 16kHz = 209ms




  

相关话题

  如何评价Yann LeCun 说的「要研究机器学习,本科应尽量多学物理和数学课」? 
  Hatcher的代数拓扑自学有无其他参考? 
  小学生有必要上数奥班吗? 
  如何看待数学大神韦东奕的讲课方式难以理解学生纷纷退课,课堂教学应该采取什么样的互动方式? 
  为什么中国小学数学教育要揪“除”和“除以”的区别? 
  做数学的人需要记忆很多东西吗? 
  极坐标表示 5000 到 50000 之间的素数为什么会形成一条螺旋线? 
  让人工智能去下路边街头的象棋残局会赢吗? 
  本科阶段数学系的你的一天是怎么度过的? 
  勒让德猜想被证明了吗? 

前一个讨论
为什么考研还这么多往生化环材土木水利的坑里跳的,是他们还没看见劝退文吗?
下一个讨论
迁移学习入门,新手该如何下手?





© 2025-03-29 - tinynew.org. All Rights Reserved.
© 2025-03-29 - tinynew.org. 保留所有权利