40
Deep Speech 2: End-to-End Speech Recognition in English and Mandarin Amodei, et al. ICML2016 読読読 2016/07/21 @ 読読読読読読読読読読読 読読読読読読読読読読読読読読読読読読読読読 読読 読読 西

Icml読み会 deep speech2

Embed Size (px)

Citation preview

Page 1: Icml読み会 deep speech2

Deep Speech 2:End-to-End Speech Recognition

in English and Mandarin

Amodei, et al.

ICML2016 読み会 2016/07/21 @ ドワンゴセミナールーム

株式会社プリファードインフラストラクチャー

西鳥羽 二郎

Page 2: Icml読み会 deep speech2

自己紹介

西鳥羽二郎 株式会社 Preferred Infrastructure

- 製品事業部

- 研究開発 音声認識 自然言語処理 その他諸々

Twitter ID: jnishi

2

Page 3: Icml読み会 deep speech2

3

Deep Speech 2: End-to-End の音声認識

異なる言語 (English, Mandarin), 雑音あるなしに関わら

ず変更をほとんど必要としないモデル 従来の音声認識よりも少ないコンポーネントで構成 一般の人の書き起こしよりも精度が良い音声認識 特徴

- 巨大なニューラルネットワークのモデル

- 巨大なデータ

- Deep Learning 上の各種最適化

Page 4: Icml読み会 deep speech2

4

パターン認識としての音声認識

ニイタカヤマノボレ

音声信号データ

Page 5: Icml読み会 deep speech2

5

一般的な音声認識の構成

音声データ

特徴ベクトル列

音素生起確率

テキスト

スペクトル分析ケプストラム分析

(Deep) Neural Network

言語モデル文脈自由文法

状態系列 (HMM)

最尤状態系列探索

Page 6: Icml読み会 deep speech2

6

音声認識は大変

コンポーネント数が多く、かつそれぞれチューニング

を必要とする

チューニングを必要とする条件も多い- 環境の変化 (≒ データセットの変化 )

- 言語の変化 中国語 ( 日本語 )

Page 7: Icml読み会 deep speech2

7

Mandarin

公用中国語- 中国の中で最もポピュラーな言語

話者数 (Wikipedia 調べ )- 第一言語 : 885,000,000 人

- 総話者 : 1,365,053,177 人

Page 8: Icml読み会 deep speech2

8

英語と中国語の違い

English Mandarin

文字数 ( 記号除く ) 26 6000

文字体系 表音文字 表意文字

語彙の区切り 空白 句読点 (?)

Page 9: Icml読み会 deep speech2

9

Deep Speech 2 の構成

音声データ

特徴ベクトル列

文字生起確率

テキスト

Spectrograms of power normalized audio clip

Recurrent Neural Network

N-gram 言語モデルBeam Search

Page 10: Icml読み会 deep speech2

特徴抽出

Spectrograms of power normalized audio clip1. 音声データをフレーム ( 通常 20ms 〜 40ms) に分割する

2. 各フレーム毎のデータに離散フーリエ変換を行う

3. Mel filterbank を適用する Mel 数 ( 人の聴覚特性を反映した数字 ) を考慮したフィルタ

4. 対数を取る

5. 離散コサイン変換を行う

6. 低い次元から 12 個抽出する

10

Page 11: Icml読み会 deep speech2

一般的に使われる特徴抽出

Log Filterbank1. 音声データをフレーム ( 通常 20ms 〜 40ms) に分割する

2. 各フレーム毎のデータに離散フーリエ変換を行う

3. Mel filterbank を適用する Mel 数 ( 人の聴覚特性を反映した数字 ) を考慮したフィルタ

4. 対数を取る

5. 離散コサイン変換を行う

6. 低い次元から 12 個抽出する

11

Page 12: Icml読み会 deep speech2

一般的に使われる特徴抽出

MFCC(Mel Frequency Cepstral Coefficient)1. 音声データをフレーム ( 通常 20ms 〜 40ms) に分割する

2. 各フレーム毎のデータに離散フーリエ変換を行う

3. Mel filterbank を適用する Mel 数 ( 人の聴覚特性を反映した数字 ) を考慮したフィルタ

4. 対数を取る

5. 離散コサイン変換を行う

6. 低い次元から 12 個抽出する

12

Page 13: Icml読み会 deep speech2

13

ニューラルネットワークの構成

Page 14: Icml読み会 deep speech2

14

ニューラルネットワークの構成

Convolution 層

Page 15: Icml読み会 deep speech2

15

Convolution 層

1-D: 前後の時間と組み合わせて Convolution 2-D: 前後の時間及び周波数の組み合わせでの

Convolution

Page 16: Icml読み会 deep speech2

16

Convolution 層

1-D: 前後の時間と組み合わせて Convolution 2-D: 前後の時間及び周波数の組み合わせでの

Convolution

2-D で 3 層の Convolution 層を用いるのが通常のデータ

においても雑音環境下のデータにおいても精度が良い

Page 17: Icml読み会 deep speech2

17

ニューラルネットワークの構成

Unidirectional GRU

Page 18: Icml読み会 deep speech2

18

Simple RNN と GRU の比較

どの構成においても Simple RNN よりも GRU の方が精

度が良いので GRU を採用

Page 19: Icml読み会 deep speech2

19

ニューラルネットワークの構成

Lookahead Convolution 層

Page 20: Icml読み会 deep speech2

20

Lookahead Convolution

Bidirectional GRU は精度面では良いが、 online, 低レイ

テンシでの実行ができない

t1 t2 tn

どの段階の値を計算するにも t1

から tn のすべての入力が必要

Page 21: Icml読み会 deep speech2

21

Lookahead Convolution

指定したパラメータ (τ) 分だけ先の時刻の出力を用いる

Page 22: Icml読み会 deep speech2

22

ニューラルネットワークの構成

全結合層

Page 23: Icml読み会 deep speech2

23

ニューラルネットワークの構成

CTC損失関数

Page 24: Icml読み会 deep speech2

24

Connectionist Temporal Classification(CTC)損失関数 入力と出力の系列長が違う時に用いられる損失関数 任意の RNNや LSTM等の出力に適用できる

blank( 空白文字 ) を導入し、正解文字列を順番に生成す

る確率を求める- CAT

_C_A_T_ ____CCCCA___TT

- aab a_ab_ _aa__abb

Page 25: Icml読み会 deep speech2

25

デコーダー

複数のスコアを組み合わせて最終出力を構成する- ニューラルネットワークの出力 ( 文字列の生起確率 )

- 言語モデルによるスコア

- word count 単語数 (English) 文字数 (Mandarin)

ビームサーチを行って上記スコアが最大になるような

文章を探索する

Page 26: Icml読み会 deep speech2

26

デコーダーのスコアリング

トランスクリプション

文字列のスコア

ニューラルネットワークが出力する文字列の生起確率

言語モデルによるスコア

word count

α, β は学習データに応じて変更する

Page 27: Icml読み会 deep speech2

27

ニューラルネットワーク学習上の工夫 :Batch Normalization Batch Normalization SortaGrad

Page 28: Icml読み会 deep speech2

28

(Sequence-wise) Batch Normalization

正則化に (Sequence-wise) Batch Normalization を用い

下位層からの入力にのみ Batch Normalization を適用する

水平方向の入力には Batch Normalization を適用しない

Page 29: Icml読み会 deep speech2

29

SortaGrad

Curriculum learning- CTC の学習初期は blank 文字列を出力しがちで損失がとても大

きくなりやすい

- 学習データを系列の長さでソートし、短い音声データから学習

を行う

SortaGrad を用いない場合精度が下がっている

Page 30: Icml読み会 deep speech2

30

最適化 : 並列最適化

Synchronous SGD

- 各 GPU がローカルにデータのコピーを持つ

- ミニバッチの勾配を計算する

- 勾配を共有する

Page 31: Icml読み会 deep speech2

31

最適化 : 並列最適化

Synchronous SGD

- 各 GPU がローカルにデータのコピーを持つ

- ミニバッチの勾配を計算する

- 勾配を共有する

勾配の共有に時間がかかるせいで Asynchronous SGD よりも遅いかも知れないが、扱いや

すいので採用

Page 32: Icml読み会 deep speech2

32

最適化 : 並列最適化

Synchronous SGD

- 各 GPU がローカルにデータのコピーを持つ

- ミニバッチの勾配を計算する

- 勾配を共有する

勾配の共有に時間がかかるせいで Asynchronous SGD よりも遅いかも知れないが、扱いや

すいので採用

All-Reduce の高速化 (4x-21x)により対応

Page 33: Icml読み会 deep speech2

33

学習データセット

English- 11,940 時間

- 800万個の音源データ

Mandarin- 9,400 時間

- 1,100万個の音源データ

Page 34: Icml読み会 deep speech2

34

学習データセット

12000 時間までの範囲では学習データが多ければ多いほど精度

が向上する

Page 35: Icml読み会 deep speech2

35

実験結果 : 評価方法

各種データに対して以下の方法で比較- Deep Speech 2 の出力

- 人手による聞き取り Amazon Mechanical Turk によるクラウドソーシングでの書き起こし

Page 36: Icml読み会 deep speech2

36

実験結果 (English)

Page 37: Icml読み会 deep speech2

37

実験結果 (Mandarin)

Page 38: Icml読み会 deep speech2

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

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

Page 40: Icml読み会 deep speech2

Copyright © 2006-2016Preferred Infrastructure All Right Reserved.