音声の機械学習+音素の言語モデルに関する単語帳と覚書

ワークフロー

  1. Audioファイルの蓄積
  2. 特徴抽出
  3. 音響モデルの構築
  4. 言語モデルの構築
  5. 出力

sEnd-to-End Modeling

通常必要とされる途中過程(GMMとかHMMとか)をすっとばして、特徴ベクトルから直に音素+言語モデルを構築すること。DeepLearningの中間状態のもつ表現力を利用することによる。

データ処理

preprocess for mixture of Gaussians and Hidden Markov Model

そもそも、音声データ自体をそのままシーケンスとしてニューラルネットワークに入れるのは良くない。なぜなら、long term contextを拾うというタスク自体が難しいから。

できるだけ前処理をして、シーケンスの長さを短くしたほうがよい。1980年代には、あまりに短いシーケンスにする方法が研究され、混合分布やHMMでも扱えるほどだった。(精度は悪かったが)

以下、そのような方法を列挙する。

Dynamic time warping

スピードに対する正規化。同じパターンだが、1秒で終わる音声、2秒で終わる音声を同一視することができる。

cMllr / fMllr変換

Constrained Maximum Likelihood Linear Regressionはfeature space Mllrとも呼ばれる。線形モデル。

http://kaldi-asr.org/doc/transform.html#transform_cmllr_global

TIMIT Acoustic-Phonetic Continuous Speech Corpus

無料の音素コーパス

Melfrequency cepstral coefficients(MFCC)

フーリエ変換のlogを取り、高音域と低音域を分離したもの。logをとるので、周波数の表現に必要なビット数が減る。

25ミリ秒ぐらいのwindowで十分に計算可能。これらの係数の時間微分も特徴量になる。

 

短期記憶の実装

RNNの場合:Recurrentな隠れ層における、反響状態をメモリーとして利用する。つまり、固定アトラクタでない離散力学系である。

LSTMの場合:memory cell内にConstant Error Cellを仕込み、メモリーとして利用する。これも離散力学系である。反響の振動を防ぐため、CECには恒等関数が使われる。(Sepp, 1992)

 

機械学習タスク

ASR Task

人の会話に応答するというタスク。

Acoustic Model (ASR)

録音データから、音素データを切り出すタスク。

Language Model (ASR)

音素データが織り成す文法がどうなっているかを再現するタスク。

Long Word Context

文法モデルで、n-gramモデルの場合、n+1離れた単語間の相関は定義より0になる。DeepLearningとくにRNNの中間状態が、定数nより長い相関を拾っていることを期待する。

Reber Grammar

ベンチマークで使われる。教師データとなり、Reber Grammerを再現することがタスクになる。short time lag問題であり、long word contextは拾えないので、long界のHello World的なもの。LSTMはこの簡単なタスクでもRNN+BPTTを上回る精度

https://www.willamette.edu/~gorr/classes/cs449/reber.html

Discriminative Language Model

識別モデルのことで、条件付き確率 p(単語|データ)を教師データに従って最大化するタスク。次に来るべき音素の条件付き確率もこの応用。

Framewise phoneme classification

短い音素の分類タスク。

学習方法

※RNNのトレーニング方法には複数あるものの、明確に優れた方法は存在しない。

Backpropagation Through Time(BPTT)

Williams & Zipser 1992で提案、時間のウィンドウτを考慮する場合、w(t)〜w(t-τ)を一気に更新することになる。計算量が大変なことになる。よって、τを小さい値に固定することになり、τより長い時間続くトレンドは捉えづらい。

この方法のもう1つの問題は、アクティベーションファンクションの微分の絶対値が最大になるものをf’とすると、勾配の主要項がτ>>1では|f’|^τと指数的に増大し、wが振動し、安定学習ができないのである。(Hochreiter, 1991)

離散時間力学系として解析したときには、bifurcation(アトラクタの分岐現象)が起きてしまうことも知られている。bifurcationが起こると、パラメーターにより2つの全く違うモデルが再現されてしまう。たとえば、τ=10とτ=11では全く違うアトラクタが学習される。

truncted Backpropagation Through Time(BPTT)

τを小さい値に固定したもののこと。

RealTime Recurrent Learning(RTRL)

exactな方法。O((N+L)^4) (Williams & Zipser, 1989)

Extended Kalman Filtering(EKF)

局所的に線形システムで近似する方法。(Singhal & Wu, 1989)

Second-order Gradient Descent

収束を速くするために損失関数の曲率を使うのだが、計算オーダーがO(TE^2)になってしまう。(EはRecurrent層のエッジ数)

http://minds.jacobs-university.de/sites/default/files/uploads/papers/ESNTutorialRev.pdf

 

アドバンストモデル

Forget gates

ONにすると、CECの状態が0に戻る(Gers et al., 2000)

Peephole weights

(Gers, 2002)

bidirectional LSTM

未来から過去へのフィードバックがあるタイプ(Graves, 2005)

GravesLSTM

特徴は2つ。

  • 多次元入力可能
  • output layerが特殊

http://www.cs.toronto.edu/~graves/phd.pdf