icml読み会 deep speech2
TRANSCRIPT
![Page 1: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/1.jpg)
Deep Speech 2:End-to-End Speech Recognition
in English and Mandarin
Amodei, et al.
ICML2016 読み会 2016/07/21 @ ドワンゴセミナールーム
株式会社プリファードインフラストラクチャー
西鳥羽 二郎
![Page 2: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/2.jpg)
自己紹介
西鳥羽二郎 株式会社 Preferred Infrastructure
- 製品事業部
- 研究開発 音声認識 自然言語処理 その他諸々
Twitter ID: jnishi
2
![Page 3: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/3.jpg)
3
Deep Speech 2: End-to-End の音声認識
異なる言語 (English, Mandarin), 雑音あるなしに関わら
ず変更をほとんど必要としないモデル 従来の音声認識よりも少ないコンポーネントで構成 一般の人の書き起こしよりも精度が良い音声認識 特徴
- 巨大なニューラルネットワークのモデル
- 巨大なデータ
- Deep Learning 上の各種最適化
![Page 4: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/4.jpg)
4
パターン認識としての音声認識
ニイタカヤマノボレ
音声信号データ
![Page 5: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/5.jpg)
5
一般的な音声認識の構成
音声データ
特徴ベクトル列
音素生起確率
テキスト
スペクトル分析ケプストラム分析
(Deep) Neural Network
言語モデル文脈自由文法
状態系列 (HMM)
最尤状態系列探索
![Page 6: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/6.jpg)
6
音声認識は大変
コンポーネント数が多く、かつそれぞれチューニング
を必要とする
チューニングを必要とする条件も多い- 環境の変化 (≒ データセットの変化 )
- 言語の変化 中国語 ( 日本語 )
![Page 7: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/7.jpg)
7
Mandarin
公用中国語- 中国の中で最もポピュラーな言語
話者数 (Wikipedia 調べ )- 第一言語 : 885,000,000 人
- 総話者 : 1,365,053,177 人
![Page 8: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/8.jpg)
8
英語と中国語の違い
English Mandarin
文字数 ( 記号除く ) 26 6000
文字体系 表音文字 表意文字
語彙の区切り 空白 句読点 (?)
![Page 9: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/9.jpg)
9
Deep Speech 2 の構成
音声データ
特徴ベクトル列
文字生起確率
テキスト
Spectrograms of power normalized audio clip
Recurrent Neural Network
N-gram 言語モデルBeam Search
![Page 10: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/10.jpg)
特徴抽出
Spectrograms of power normalized audio clip1. 音声データをフレーム ( 通常 20ms 〜 40ms) に分割する
2. 各フレーム毎のデータに離散フーリエ変換を行う
3. Mel filterbank を適用する Mel 数 ( 人の聴覚特性を反映した数字 ) を考慮したフィルタ
4. 対数を取る
5. 離散コサイン変換を行う
6. 低い次元から 12 個抽出する
10
![Page 11: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/11.jpg)
一般的に使われる特徴抽出
Log Filterbank1. 音声データをフレーム ( 通常 20ms 〜 40ms) に分割する
2. 各フレーム毎のデータに離散フーリエ変換を行う
3. Mel filterbank を適用する Mel 数 ( 人の聴覚特性を反映した数字 ) を考慮したフィルタ
4. 対数を取る
5. 離散コサイン変換を行う
6. 低い次元から 12 個抽出する
11
![Page 12: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/12.jpg)
一般的に使われる特徴抽出
MFCC(Mel Frequency Cepstral Coefficient)1. 音声データをフレーム ( 通常 20ms 〜 40ms) に分割する
2. 各フレーム毎のデータに離散フーリエ変換を行う
3. Mel filterbank を適用する Mel 数 ( 人の聴覚特性を反映した数字 ) を考慮したフィルタ
4. 対数を取る
5. 離散コサイン変換を行う
6. 低い次元から 12 個抽出する
12
![Page 13: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/13.jpg)
13
ニューラルネットワークの構成
![Page 14: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/14.jpg)
14
ニューラルネットワークの構成
Convolution 層
![Page 15: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/15.jpg)
15
Convolution 層
1-D: 前後の時間と組み合わせて Convolution 2-D: 前後の時間及び周波数の組み合わせでの
Convolution
![Page 16: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/16.jpg)
16
Convolution 層
1-D: 前後の時間と組み合わせて Convolution 2-D: 前後の時間及び周波数の組み合わせでの
Convolution
2-D で 3 層の Convolution 層を用いるのが通常のデータ
においても雑音環境下のデータにおいても精度が良い
![Page 17: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/17.jpg)
17
ニューラルネットワークの構成
Unidirectional GRU
![Page 18: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/18.jpg)
18
Simple RNN と GRU の比較
どの構成においても Simple RNN よりも GRU の方が精
度が良いので GRU を採用
![Page 19: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/19.jpg)
19
ニューラルネットワークの構成
Lookahead Convolution 層
![Page 20: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/20.jpg)
20
Lookahead Convolution
Bidirectional GRU は精度面では良いが、 online, 低レイ
テンシでの実行ができない
t1 t2 tn
どの段階の値を計算するにも t1
から tn のすべての入力が必要
![Page 21: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/21.jpg)
21
Lookahead Convolution
指定したパラメータ (τ) 分だけ先の時刻の出力を用いる
![Page 22: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/22.jpg)
22
ニューラルネットワークの構成
全結合層
![Page 23: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/23.jpg)
23
ニューラルネットワークの構成
CTC損失関数
![Page 24: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/24.jpg)
24
Connectionist Temporal Classification(CTC)損失関数 入力と出力の系列長が違う時に用いられる損失関数 任意の RNNや LSTM等の出力に適用できる
blank( 空白文字 ) を導入し、正解文字列を順番に生成す
る確率を求める- CAT
_C_A_T_ ____CCCCA___TT
- aab a_ab_ _aa__abb
![Page 25: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/25.jpg)
25
デコーダー
複数のスコアを組み合わせて最終出力を構成する- ニューラルネットワークの出力 ( 文字列の生起確率 )
- 言語モデルによるスコア
- word count 単語数 (English) 文字数 (Mandarin)
ビームサーチを行って上記スコアが最大になるような
文章を探索する
![Page 26: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/26.jpg)
26
デコーダーのスコアリング
トランスクリプション
文字列のスコア
ニューラルネットワークが出力する文字列の生起確率
言語モデルによるスコア
word count
α, β は学習データに応じて変更する
![Page 27: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/27.jpg)
27
ニューラルネットワーク学習上の工夫 :Batch Normalization Batch Normalization SortaGrad
![Page 28: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/28.jpg)
28
(Sequence-wise) Batch Normalization
正則化に (Sequence-wise) Batch Normalization を用い
る
下位層からの入力にのみ Batch Normalization を適用する
水平方向の入力には Batch Normalization を適用しない
![Page 29: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/29.jpg)
29
SortaGrad
Curriculum learning- CTC の学習初期は blank 文字列を出力しがちで損失がとても大
きくなりやすい
- 学習データを系列の長さでソートし、短い音声データから学習
を行う
SortaGrad を用いない場合精度が下がっている
![Page 30: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/30.jpg)
30
最適化 : 並列最適化
Synchronous SGD
- 各 GPU がローカルにデータのコピーを持つ
- ミニバッチの勾配を計算する
- 勾配を共有する
![Page 31: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/31.jpg)
31
最適化 : 並列最適化
Synchronous SGD
- 各 GPU がローカルにデータのコピーを持つ
- ミニバッチの勾配を計算する
- 勾配を共有する
勾配の共有に時間がかかるせいで Asynchronous SGD よりも遅いかも知れないが、扱いや
すいので採用
![Page 32: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/32.jpg)
32
最適化 : 並列最適化
Synchronous SGD
- 各 GPU がローカルにデータのコピーを持つ
- ミニバッチの勾配を計算する
- 勾配を共有する
勾配の共有に時間がかかるせいで Asynchronous SGD よりも遅いかも知れないが、扱いや
すいので採用
All-Reduce の高速化 (4x-21x)により対応
![Page 33: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/33.jpg)
33
学習データセット
English- 11,940 時間
- 800万個の音源データ
Mandarin- 9,400 時間
- 1,100万個の音源データ
![Page 34: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/34.jpg)
34
学習データセット
12000 時間までの範囲では学習データが多ければ多いほど精度
が向上する
![Page 35: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/35.jpg)
35
実験結果 : 評価方法
各種データに対して以下の方法で比較- Deep Speech 2 の出力
- 人手による聞き取り Amazon Mechanical Turk によるクラウドソーシングでの書き起こし
![Page 36: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/36.jpg)
36
実験結果 (English)
![Page 37: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/37.jpg)
37
実験結果 (Mandarin)
![Page 38: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/38.jpg)
38
Deep Speech 2
End-to-End の高精度な音声認識- 大規模なデータに対応したニューラルネットワークモデル
- 異なる言語、雑音のあるなしにも対応可能
特徴- Batch Normalization
- SortaGrad
- GRU
- Frequency Convolution
- Lookahead Convolution and Unidirectional Models
- Synchronous SGD
- Connectionist Temporal Classification
![Page 39: Icml読み会 deep speech2](https://reader035.vdocuments.mx/reader035/viewer/2022062400/587151cf1a28ab8e5b8b45a7/html5/thumbnails/39.jpg)
39
補足 : Arxiv版
https://arxiv.org/abs/1512.02595 に掲載されていて
ICML版に掲載されていないこと- Striding (in convolution)
- Language Modeling
- Scalability and Data parallelism
- Memory allocation
- Node and cluster architecture
- GPU Implementation of CTC Loss Function
- Batch Dispatch
- Data Augmentation
- Beam Search