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