為了更精確的情感識別,A LSTM 出現了

2021-09-19 18:49:42 字數 2829 閱讀 3120

收錄於:icassp-2018

研究背景

lstm 現在被廣泛地應用在rnn中。它促進了rnn在對序列訊號建模的應用當中。lstm 有兩個輸入,乙個**於前一層,還有乙個**於本層的前乙個時刻。因此,lstm隱含了這樣乙個假設,本層的現時狀態依賴於前一時刻的狀態。這種「一步」的時間依賴性,可能會限制lstm對於序列訊號動態特性的建模(尤其對一些時間依賴性在時間軸上跨度比較大的任務)。在這篇**裡,針對這樣的乙個問題,我們提出了advancedlstm (a-lstm),以期打破傳統lstm的這種侷限性。a-lstm利用線性組合,將若干時間點的本層狀態都結合起來,因此不僅可以看到」一步「以前的狀態,還可以看到更遠以前的歷史狀態。

在這篇文章中,我們把a-lstm應用到整句話層級(utterance level)上的情感識別任務中。傳統的情感識別依賴於在整句話上提取底端特徵(low level descriptors)的統計資料,比如平均值,方差等等。由於實際應用中,整句話中可能會有一些長靜音,或者是一些非語音的聲音,這種統計資料就可能不準確。在這篇**中,我們使用基於注意力模型(attention model)的加權池化(weighted pooling)遞迴神經網路(recurrent neural network)來更有效地提取整句話層級上的特徵。

高階長短期記憶網路

a-lstm利用線性組合,將若干時間點的本層狀態都結合起來。這其中的線性組合是利用與注意力模型(attention model)類似的機制進行計算的。具體公式如下。

fig 1 中c'(t)即為前面若干時間狀態的線性組合。這個線性組合以後的時間狀態將被輸入下一時間點進行更新。可以想象,每次的更新都不只是針對前一時刻,而是對若干時刻的組合進行更新。由於這種組合的權重是有注意力模型控制,a-lstm可以通過學習來自動調節各時間點之間的權重佔比。如果依賴性在時間跨度上比較大,則更遠以前的歷史狀態可能會佔相對大的比重;反之,比較近的歷史狀態會佔相對大的比重。

加權池化遞迴神經網路

在這篇**中,我們使用基於注意力模型的加權池化遞迴神經網路來進**感識別(見fig 2)。這一神經網路的輸入是序列聲學訊號。利用注意力模型,我們的神經網路可以自動調整各個時間點上的權重,然後將各個時間點上的輸出進行加權平均(加權池化)。加權平均的結果是乙個能夠表徵這一整串串行的表達。由於注意力模型的存在,這一表達的提取可以包含有效資訊,規避無用資訊(比如輸入序列中中的一些長時間的靜音部分)。這就比簡單的計算一整個序列的統計數值要更好(比如有opensmile提取的一些底端特徵)。 為了更好地訓練模型,我們在情感識別任務之外還新增了兩個輔助任務,說話人識別和性別識別。我們在這個模型當中使用了a-lstm來提公升系統效能。

實驗

在實驗階段,我們使用iemocap資料集中的四類資料(高興,憤怒,悲傷和普通)。這其中一共有4490句語音檔案。我們隨機選取1位男性和1位女性說話人的資料作為測試資料。其餘的資料用來訓練(其中的10%的資料用來做驗證資料)。我們採用三個衡量指標,分別為無權重平均f-score(maf),無權重平均精密度(map),以及準確率(accuracy)。

我們提取了mecc,訊號過零率(zero crossing rate),能量,能量熵,頻譜矩心(spectral centroid),頻譜流量(spectral flux),頻譜滾邊(spectral rolloff),12維彩度向量(chroma vector),色度偏差(chroma deviation),諧波比(harmonic ratior) 以及語音基頻,一共36維特徵。對這些序列特徵進行整句話層級上的歸一化後,將其送入系統進行訓練或測試。

在這個實驗中,我們的系統有兩層神經元層,第一層位全連線層(fully connected layer),共有256個精餾線性神經元組成(rectified linear unit)。第二層位雙向長短期記憶網路(bidirectionallstm (blst))。兩個方向一共有256個神經元。之後即為基於注意力模型的加權池化層。最上方為三個柔性最大值傳輸函式層,分別對應三個任務。我們給三個任務分配了不同的權重,其中情感識別權重為1,說話人識別權重為0.3,性別識別為0.6。如果是應用a-lstm,我們就將第二層的blstm替換成雙向的a-lstm,其他的所有引數都不變。這裡的a-lstm選取三個時間點的狀態作線性組合,分別為5個時間點前(t-5),3個時間點前(t-3),以及1個時間點前(t-1)。實驗結果如下:

其中的meanlstm 與a-lstm比較類似,唯一區別是,當我們為選取的幾個時間點的狀態作線性組合的時候,不是採用注意力模型,而是簡單的做算術平均。

結論

與應用傳統lstm 的系統相比,應用了a-lstm的系統顯示出了更好的識別率。由於加權池化過程是將所有時間點上的輸出進行加權平均,因此系統效能的提公升只可能是**於a-lstm更加靈活的時間依賴性模型,而非其他因素,例如高層看到更多時間點等等。並且,這一提公升的代價只會增加了數百個引數。

更精確的思維

寫乙個移位演算法,要求時間複雜度和空間複雜度盡可能節省 如下 include using namespace std const int maxn 10000 5 char a maxn void reverse int r,int left,int right void leftshift int...

個人站長更精確的推廣之路

大家都知道,現在上線乙個 基本是沒什麼技術含量的,乙個空間乙個網域名稱乙個免費程式。一百多塊錢幾個小時就弄好了,那麼到底難在 呢,其實主要是 的設計與推廣這才是站長必須要學會的技術,以下是我個人的一點心得希望大家賜教。第一 須有乙個穩定的家 乙個 的成敗與網域名稱空間有莫大的關係,試想乙個 www....

java 獲取更精確的時間執行記錄

納秒 ns nanosecond 納秒,時間單位。一秒的10億分之一,即等於10的負9次方秒。常用作 記憶體讀寫速度的單位。1納秒 0.000001 毫秒 1納秒 0.00000 0001秒 public class zs1057 long end system.nanotime long time...