手动构建可没有自动舒服——AutoVoice解放你的双手

  • 2019 年 10 月 11 日
  • 笔记

关键词定位 – 问题定义

关键词定位问题,即识别实时音频流中的关键词并做出响应。这一问题包括检测音频流中的关键字,并且必须与持续收听其环境以发现用户交互请求的虚拟助理有关。换言之就是检测单词何时被发音,被发音的单词是哪个并且需要在资源受限的设备中快速运行。

在该问题中,我们定义音频流中的数据点

以及对应的输出标签

。通常情况下,

表示的是时间频率特征图,

表示当前关键词是否存在。在经典方法中,输出标签

是使用神经网络预测的,其结构表示为

并且其参数是

。但是在AutoVoice中,使用循环的建模方式,首先使用

对上下文信息

进行编码,使用函数

计算每个时间步骤的预测结果并通过GRU单元更新

,即

,然后通过求解训练集的标签序列来学习网络结构的参数,是训练集的大小,求解公式:

其中,

表示

的序列长度,

是一个可微损失函数。在推理阶段,给定一个新的音频流

,每个标签

是通过计算

来预测的,其中

是模型在以前的时间步长的预测结果。在这种情况下,每个预测步骤的计算成本完全取决于体系结构,记作

随机自适应架构搜索原理


我们前面提到的神经架构都是静态的,即一个问题中,网络架构是固定不变的。对于难易程度不同的问题,预测耗费的成本是一样的,这无疑造成了一种资源浪费。针对这一问题,提出了一种随机自适应架构搜索原理,即在每个时间步骤中,模型的架构可以根据预测问题的上下文信息做出改变。

在时间 t ,除了在可能的标签上产生分布之外,我们的模型还在可能的架构上保持分布,表示为

。现在根据

预测

并且上下文信息更新为

。在这种情况下,在时间 t 的预测成本现在是

,其中还包括架构分布

的计算。值得注意的是,由于模型选择了架构

,因此可以学习控制此成本本身。因此,成本学习问题可以定义为最小化预测损失和平均成本之间的折衷。考虑标签序列

,这种权衡定义为:

是从

中的采样结果,λ 控制成本和预测效率之间的权衡,考虑到

是可微分的。可以使用梯度的蒙特卡罗估计来最小化该成本。给定一个架构采样结果

,梯度可以近似为:

其中

在实践中,在该梯度公式中使用方差校正值来加速学习。

SANAS模型


在SANAS模型中引入了超网络的使用,简单理解超网络的就是一个有向无环图,其中节点表示层,边表示层与层之间的连接,超网络的作用是实现权值共享。我们把SANAS模型的搜索空间定义为超网络,那么架构搜索结果就可以表示为超网络中的搜索子图。下面我们详细了解SANAS模型的工作流程。

定义一个超网络作为搜索空间,节点表示神经网络层,边表示层与层之间的连接,定义为

,其中

表示输入层,

表示输出层,其余表示隐藏层。

SANAS模型流程图

如上图所示,工作流程为:

(1)在 t 时刻,输入上下文状态编码

(2)根据

计算可能的子图,即架构分布矩阵

(3)使用伯努利分布对

进行采样,生成特定子图

(4)计算

(○表示Hadamard乘积),即在时间 t 所使用的架构。

(5)使用函数

计算预测

和下一个状态

本文摘自:《深入理解AutoML和AutoDL》机械工业出版社.2019.9