《SEGAN: Speech Enhancement Generative Adversarial Network》閱讀筆記
來自專欄 AI一絲一毫
本論文是2017年的一篇使用GAN網路做單聲道語音增強的論文[1],在github上有作者的開源代碼[2],語音增強的效果有官方示例[3]。
論文原文:SEGAN: Speech Enhancement Generative Adversarial Network
1. Introduction
經典的語音增強(speech enhancement)方法有譜減法(spectral subtraction)、維納濾波(Wiener filtering)、統計模型(statistical model-based methods)和子空間演算法(subspace algorithms)。
其中統計模型有最大似然、貝葉斯、MMSE及Log-MMSE。
論文給予GAN網路(Generative Adversarial Networks)提出了segan(speech enhancement
GAN),segan主要優勢有三點:
- 它提供了一個快速語音增強過程。 沒有因果關係是必需的,因此沒有像RNN那樣的遞歸操作。
- 它基於原始音頻做處理。 因此,沒有提取手工特徵,因此沒有對原始數據做出明確的假設。
- 從不同的說話人和雜訊類型中學習,並將它們合併到相同的共享參數中。這使得系統在這些維度上變得簡單和一般化。
2. Generative Adversarial Networks
這節是GAN網路的介紹。如果有GAN網路基礎,可以跳過此節。
GAN網路能是一種對抗性模型,可以將樣本服從Z分布的樣本z映射到服從X分布的x。 來理解這句話。在我們這裡,可以理解為Z為含雜訊的語音的分布,z為其中的一個樣本。X為純凈語音的分布,x為其中的一個樣本。
GAN中,有兩個單元,一個負責映射,叫做生成器G,另一個負責判別,叫做判別器D。G負責映射,G的映射負責從Z分布映射到X分布,不同於傳統的輸入輸出映射。判別器D是一個二分類器,輸出值是0-1之間的數字。
G將樣本z映射為x^x^,而真實樣本為xx,G的目的是儘可能的使x^x^與xx相似,以迷惑判別器D。而D的功能是區分真實樣本xx和G生成的樣本x^x^,真實樣本儘可能的判為1,G生成的儘可能的判為0。所以G的目的在於迷惑D,而D的目的是不被G迷惑。所以叫生成對抗網路。
於是就有了對抗網路的基本公式:
公式1
其中pdata(x)表示真實樣本,pz(z)表示經過G之前的樣本。 意義就很明顯了,對於D優化的目標就是希望真實樣本輸出越大,生成的樣本儘可能輸出小,使得結果最大。對於G,希望生成的時候,儘可能的騙過D,使得目標函數最小。
下面的公式2是帶額外信息的GAN。
公式2
一些論文致力於提升GAN網路生成的質量。比如,在原始的訓練中,由於使用sigmoid交叉熵損失,會出現梯度消失的問題。這時,可以將損失替換為最小平方(least square)的Least Square GAN(LSGAN)方法。結果如下:
公式3
公式4
關於gan的更多解釋:
有人說GAN強大之處在於可以自動的學習原始真實樣本集的數據分布,不管這個分布多麼的複雜,只要訓練的足夠好就可以學出來。針對這一點,感覺有必要好好理解一下為什麼別人會這麼說。
我們知道,傳統的機器學習方法,我們一般都會定義一個什麼模型讓數據去學習。比如說假設我們知道原始數據屬於高斯分布呀,只是不知道高斯分布的參數,這個時候我們定義高斯分布,然後利用數據去學習高斯分布的參數得到我們最終的模型。再比如說我們定義一個分類器,比如SVM,然後強行讓數據進行東變西變,進行各種高維映射,最後可以變成一個簡單的分布,SVM可以很輕易的進行二分類分開,其實SVM已經放鬆了這種映射關係了,但是也是給了一個模型,這個模型就是核映射(什麼徑向基函數等等),說白了其實也好像是你事先知道讓數據該怎麼映射一樣,只是核映射的參數可以學習罷了。
所有的這些方法都在直接或者間接的告訴數據你該怎麼映射一樣,只是不同的映射方法能力不一樣。那麼我們再來看看GAN,生成模型最後可以通過雜訊生成一個完整的真實數據(比如人臉),說明生成模型已經掌握了從隨機雜訊到人臉數據的分布規律了,有了這個規律,想生成人臉還不容易。然而這個規律我們開始知道嗎?顯然不知道,如果讓你說從隨機雜訊到人臉應該服從什麼分布,你不可能知道。這是一層層映射之後組合起來的非常複雜的分布映射規律。然而GAN的機制可以學習到,也就是說GAN學習到了真實樣本集的數據分布。
再拿原論文中的一張圖來解釋:
圖1
這張圖表明的是GAN的生成網路如何一步步從均勻分布學習到正太分布的。原始數據x服從正太分布,這個過程你也沒告訴生成網路說你得用正太分布來學習,但是生成網路學習到了。假設你改一下x的分布,不管什麼分布,生成網路可能也能學到。這就是GAN可以自動學習真實數據的分布的強大之處。
還有人說GAN強大之處在於可以自動的定義潛在損失函數。 什麼意思呢,這應該說的是判別網路可以自動學習到一個好的判別方法,其實就是等效的理解為可以學習到好的損失函數,來比較好或者不好的判別出來結果。雖然大的loss函數還是我們人為定義的,基本上對於多數GAN也都這麼定義就可以了,但是判別網路潛在學習到的損失函數隱藏在網路之中,不同的問題這個函數就不一樣,所以說可以自動學習這個潛在的損失函數。
3. Speech Enhancement GAN && Experimental Setup
這部分是本文的而核心SEGAN。
整個網路全部是由CNN組成。 下圖是生成器G,它是一個encoder-decoder。D的結構是encoder,上面接了一個降維層。將8* 1024個參數降為8個。
encoder由步長為2的1維卷積層構成。16384×1, 8192×16, 4096×32, 2048×32, 1024×64, 512×64, 256×128, 128×128, 64×256,
32×256, 16×512, and 8×1024。圖2:生成器G,encoder-decoder
至於SEGAN的訓練,其實跟普通的GAN很類似。如下圖所示,先訓練一個判別器D。D的輸入為純凈信號和經過生成器增強後的信號。然後再固定判別器D,改變生成器G的參數。
圖3
其中,有一點,在初步實驗中,我們發現在G的損失中增加一個次要成分是很方便的,以便將它的世代與乾淨的例子之間的距離減至最小。 為了測量這種距離,我們選擇了L1範數,因為它已被證明在圖像處理領域有效。
所以最終G的損失函數如公式6:
公式5
4. Results
分為客觀和主觀評價兩部分。
4.1 Objective Evaluation
客觀評價,有以下幾個指標,都是越大越好:
- PESQ: Perceptual evaluation of speech quality, using the wide-band version recommended in ITU-T P.862.2 (from –0.5 to 4.5).主觀語音質量評估,雖然叫主觀,實際還是個客觀的值。
- CSIG: Mean opinion score (MOS) prediction of the signal distortion attending only to the speech signal(from 1to 5).
- CBAK: MOS prediction of the intrusiveness of background noise (from 1 to 5).
- COVL: MOS prediction of the overall effect(from 1 to 5).
- SSNR: Segmental SNR (from 0 to ∞).
結果如下圖:
圖4
可以看到,segan在PESQ指標上表現稍微差一點。在所有其他指標上,這些指標更與語音失真有關係,segan都比wiener更好。segan產生更少的語音失真(CSIG)和移除雜訊更有效(CBAK和SSNR)。所以,segan能在二者之間取得更好的權衡。
4.2 Subjective Evaluation
主觀描述,就是一段音頻,給出它原始音頻、wiener處理的音頻、segan處理後的音頻,不顯示具體哪個對應哪個,讓被測試者打分,1-5之間,分數越高代表越好。 16個測試者,20個句子。效果如下圖。
圖5
5. Conclusions
在這項工作中,端對端語音增強方法已經在生成對抗框架內實施。該模型使用編碼器-解碼器完全卷積結構,使得它能夠快速操作來對波形塊進行去噪。 結果表明,不僅該方法是可行的,而且它也可以作當前方法的有效替代。
疑惑:
- 對稱的解卷積是如何做的?
參考資料:
- https://arxiv.org/abs/1703.09452
- https://github.com/santi-pdp/segan
- http://veu.talp.cat/segan/
- https://mp.weixin.qq.com/s?__biz=MjM5ODU3OTIyOA==&mid=2650668193&idx=3&sn=19157c2124a9731094e23e67fd846abd&scene=19#wechat_redirect
- https://v.qq.com/x/page/m05070a168l.html
- https://mp.weixin.qq.com/s?__biz=MzAwNDI4ODcxNA==&mid=2652247409&idx=2&sn=0373c6984e722dd6542e2bc8fd983936&chksm=80cc8cd4b7bb05c22cb61616307525fbb7ce5846707c5289999359704ec219aff2a9968b12d6&scene=0#rd
- 《SEGAN: Speech Enhancement Generative Adversarial Network》閱讀筆記
推薦閱讀:
※【願景學城】24小時AI熱點新聞的匯總(2018/04/2)
※MWC2018:阿里雲發布8款雲計算AI產品,中國科技已領先世界一步
※《數據科學家訪談錄》讀書筆記
※智能機器人的動作和外形會越來越像人類嗎?
※未來會是什麼樣?人工智慧電視走向猜想
TAG:人工智慧 |