手動構建可沒有自動舒服——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