手动构建可没有自动舒服——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