(57)【特許請求の範囲】
【請求項１】
音声オーディオ転写用のコンピュータ実装方法であって、
複数の発話を含む入力オーディオをユーザから受信するステップと、
前記複数の発話のそれぞれに対して１組のスペクトログラムフレームを生成するステップと、
前記１組のスペクトログラムフレームをリカレントニューラルネットワーク（ＲＮＮ）モデルに入力し、前記リカレントニューラルネットワーク（ＲＮＮ）モデルは、１つ又は複数の畳み込み層及び１つ又は複数のリカレント層を含み、且つトレーニングデータセットからサンプリングされる複数のミニバッチのトレーニング発話シーケンスで事前にトレーニングされており、ここで、複数のミニバッチがトレーニング期間にバッチ正規化されて、前記１つ又は複数のリカレント層のうちの少なくとも１つにおける予備活性化を正規化するステップと、
前記ＲＮＮモデルから１つ又は複数の予測文字の確率出力を取得するステップと、
言語モデルにより拘束された前記確率出力によって探索を実行し、各発話の最も確からしい転写を検索し、前記言語モデルは前記予測文字の確率出力に基づいて決定された文字列を１つの単語又は複数の単語として解釈するステップと、を含み、
前記ＲＮＮモデルは前記１つ又は複数のリカレント層の上に位置する行畳み込み層をさらに含むことを特徴とする音声オーディオ転写用のコンピュータ実装方法。
【請求項２】
前記バッチ正規化は、前記１つ又は複数の畳み込み層と前記１つ又は複数のリカレント層における各隠れユニットに対して、各ミニバッチにおける各トレーニング発話シーケンスの長さにわたって前記予備活性化の平均値と分散を計算するステップを含むことを特徴とする請求項１に記載のコンピュータ実装方法。
【請求項３】
前記行畳み込み層は順方向のみの単方向層であることを特徴とする請求項１に記載のコンピュータ実装方法。
【請求項４】
前記行畳み込み層の活性化は、現在の時間ステップ及び少なくとも１つの将来の時間ステップにおいて前記リカレント層からの情報を使用して取得され、前記行畳み込み層の活性化は前記現在の時間ステップに対応する文字予測に用いられることを特徴とする請求項３に記載のコンピュータ実装方法。
【請求項５】
前記予測文字は英語アルファベット又は漢字であることを特徴とする請求項１に記載のコンピュータ実装方法。
【請求項６】
前記入力オーディオは正規化されて、前記入力オーディオの総パワーを、前記ＲＮＮモデルを事前にトレーニングするための１組のトレーニングサンプルと一致させることを特徴とする請求項１に記載のコンピュータ実装方法。
【請求項７】
前記言語モデルにおいてビーム探索を実行し、累積確率が少なくとも閾値である文字のみを考慮することを特徴とする請求項１に記載のコンピュータ実装方法。
【請求項８】
前記１組のスペクトログラムフレームを取得する手順で、所定数のタイムスライスのステップをストライドとして前記発話の二次サンプリングを実現し、それにより前記１組のスペクトログラムフレームを生成することを特徴とする請求項１に記載のコンピュータ実装方法。
【請求項９】
転写モデルからの前記予測文字は単語全体、音節及び単語レベルの非重複ｎグラムから選択される代替ラベルを含むことを特徴とする請求項８に記載のコンピュータ実装方法。
【請求項１０】
１つ又は複数の命令シーケンスを含む非一時的コンピュータ可読媒体又はメディアであって、
１つ又は複数のマイクロプロセッサにより実行される時に、前記命令シーケンスは、
複数の発話を含む入力オーディオをユーザから受信するステップと、
前記複数の発話のそれぞれに対して１組のスペクトログラムフレームを取得するステップと、
前記１組のスペクトログラムフレームをニューラルネットワークに入力し、前記ニューラルネットワークは、１つ又は複数の畳み込み層及び１つ又は複数のリカレント層を含み、且つトレーニングデータセットからサンプリングされる複数のミニバッチのトレーニング発話シーケンスで事前にトレーニングされており、ここで、複数のミニバッチがトレーニング期間に正規化されて、前記１つ又は複数のリカレント層のうちの少なくとも１つにおける予備活性化を正規化するステップと、
事前にトレーニングされたニューラルネットワークから１つ又は複数の予測文字の確率出力を取得するステップと、
言語モデルにより拘束された前記確率出力を利用によってビーム探索を実行し、各発話の最も確からしい転写を検索し、前記言語モデルは前記予測文字の確率出力に基づいて決定された文字列を１つの単語又は複数の単語として解釈するステップと、を実行し、
前記ニューラルネットワークは、前記１つ又は複数のリカレント層の上に位置する行畳み込み層をさらに含む、ことを特徴とする非一時的コンピュータ可読媒体又はメディア。
【請求項１１】
前記１組のスペクトログラムフレームを取得する手順で、所定数のタイムスライスのステップをストライドとして前記発話の二次サンプリングを実現するステップをさらに含むことを特徴とする請求項１０に記載の非一時的コンピュータ可読媒体又はメディア。
【請求項１２】
前記１つ又は複数の予測文字は、英語アルファベットから豊富化された非重複バイグラムを含むことを特徴とする請求項１０に記載の非一時的コンピュータ可読媒体又はメディア。
【請求項１３】
前記トレーニングデータセットからの統計情報を使用して前記入力オーディオを正規化するステップをさらに含むことを特徴とする請求項１０に記載の非一時的コンピュータ可読媒体又はメディア。
【請求項１４】
事前にトレーニングされたニューラルネットワークは、トレーニングセットを使用して、コネクショニスト時間的分類アルゴリズム（ＣＴＣ）損失関数によりトレーニングされることを特徴とする請求項１０に記載の非一時的コンピュータ可読媒体又はメディア。
【請求項１５】
発話に対応する１組のスペクトログラムフレームを受信し、前記発話が前記１組のスペクトログラムフレームを取得する手順で所定数のタイムスライスのステップをストライドとして二次サンプリングされるステップと、
１つ又は複数のリカレント層を使用して、前記１組のスペクトログラムフレームに対応する特徴行列を取得し、前記特徴行列が現在の時間ステップでの隠れ状態及びＮ（Ｎは１を超える）倍の時間ステップでの将来の隠れ状態を含むステップと、
前記１つ又は複数のリカレント層の上に位置する行畳み込み層を使用し、取得した特徴行列に基づいて、前記現在の時間ステップに対応する１つ又は複数の予測文字を取得し、ここで、前記行畳み込み層が順方向のみの単方向層であり、前記予測文字が英語アルファベットから豊富化された非重複バイグラムを含むステップと、含むことを特徴とする音声転写用のコンピュータ実装方法。
【請求項１６】
前記１つ又は複数のリカレント層は順方向のみの層であることを特徴とする請求項１５に記載のコンピュータ実装方法。
【請求項１７】
前記１つ又は複数のリカレント層は、トレーニングデータセットからサンプリングされる複数のミニバッチのトレーニング発話シーケンスによって事前にトレーニングされ、複数のミニバッチは、トレーニング期間に正規化されて、前記１つ又は複数のリカレント層のうちの少なくとも１つにおける予備活性化を正規化することを特徴とする請求項１５に記載のコンピュータ実装方法。
【請求項１８】
前記文字予測は、取得した特徴行列とパラメータ行列との間で畳み込み演算によって行われることを特徴とする請求項１５に記載のコンピュータ実装方法。
【請求項１９】
前記文字予測は、言語モデルにおいて前記予測文字に基づいて最も確からしい転写にビーム探索を行うステップをさらに含むことを特徴とする請求項１５に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は２０１５年１１月２５日に提出した、名称が「第２世代ディープ音声（deep speech）：英語と標準中国語のエンドツーエンド音声認識」の共同所有の米国仮特許出願第６２／２６０，２０６号（整理番号２８８８８−１９９０Ｐ）の優先権を主張し、発明者として、Ｂｒｙａｎ  Ｃａｔａｎｚａｒｏ、Ｊｉｎｇｄｏｎｇ  Ｃｈｅｎ、Ｍｉｃｈａｅｌ  Ｃｈｒｚａｎｏｗｓｋｉ、Ｅｒｉｃｈ  Ｅｌｓｅｎ、Ｊｅｓｓｅ  Ｅｎｇｅｌ、Ｃｈｒｉｓｔｏｐｈｅｒ  Ｆｏｕｇｎｅｒ、Ｘｕ  Ｈａｎ、Ａｗｎｉ  Ｈａｎｎｕｎ、Ｒｙａｎ  Ｐｒｅｎｇｅｒ、Ｓａｎｊｅｅｖ  Ｓａｔｈｅｅｓｈ、Ｓｈｕｂｈａｂｒａｔａ  Ｓｅｎｇｕｐｔａ、Ｄａｎｉ  Ｙｏｇａｔａｍａ、Ｃｈｏｎｇ  Ｗａｎｇ、Ｊｕｎ  Ｚｈａｎ、Ｚｈｅｎｙａｏ  Ｚｈｕ及びＤａｒｉｏ  Ａｍｏｄｅｉがリストされている。上記特許文献の全文を引用により本願に組み込む。
【０００２】
本願はさらに、２０１６年１１月２１日に提出した、名称が「配置されたエンドツーエンド音声認識」の美国特許出願第１５／３５８，０８３号（整理番号２８８８８−２０７８（ＢＮ１５１２０３ＵＳＮ１−１））と名称が「エンドツーエンド音声認識」の美国特許出願第１５／３５８，１０２号（整理番号２８８８８−１９９０（ＢＮ１５１２０３ＵＳＮ１）の優先権を主張し、発明者として、Ｂｒｙａｎ  Ｃａｔａｎｚａｒｏ、Ｊｉｎｇｄｏｎｇ  Ｃｈｅｎ、Ｍｉｃｈａｅｌ  Ｃｈｒｚａｎｏｗｓｋｉ、Ｅｒｉｃｈ  Ｅｌｓｅｎ、Ｊｅｓｓｅ  Ｅｎｇｅｌ、  Ｃｈｒｉｓｔｏｐｈｅｒ  Ｆｏｕｇｎｅｒ、Ｘｕ  Ｈａｎ、Ａｗｎｉ  Ｈａｎｎｕｎ、Ｒｙａｎ  Ｐｒｅｎｇｅｒ、Ｓａｎｊｅｅｖ  Ｓａｔｈｅｅｓｈ、Ｓｈｕｂｈａｂｒａｔａ  Ｓｅｎｇｕｐｔａ、Ｄａｎｉ  Ｙｏｇａｔａｍａ、Ｃｈｏｎｇ  Ｗａｎｇ、Ｊｕｎ  Ｚｈａｎ、Ｚｈｅｎｙａｏ  Ｚｈｕ及びＤａｒｉｏ  Ａｍｏｄｅｉがリストされている。各上記特許文献の全文を引用により本願に組み込む。
【０００３】
本開示は音声認識に関する。より具体的には、本開示はエンドツーエンド音声認識用のシステム及び方法に関し、全く異なる言語に適用することができる。
【背景技術】
【０００４】
自動音声認識（ＡＳＲ）は計算言語学の学際的なサブ分野に属し、言語学、コンピュータサイエンス及び電気工学の分野の知識と研究を組み合わせて、コンピュータとコンピュータ化された装置によって発話言語を認識してテキストに翻訳できる方法及び技術を開発する（例えば、スマート技術及びロボットに分類される方法や技術）。
【０００５】
１９８０年代後半、ニューラルネットワークはＡＳＲでは注目度が高い音響モデリング方法となっていた。それ以降、ニューラルネットワークは、音素分類、孤立単語認識や話者適応のような音声認識の多くの側面に使用されている。音声認識の多くの側面は長期短期記憶（ＬＳＴＭ）及びリカレントニューラルネットワーク（ＲＮＮ）に関するディープ学習（Deep Learning）方法により解決された。
【０００６】
音声認識における課題の一つは音声と音響学の幅広い変動性である。特に言語が全く異なる（例えば、英語と標準中国語）場合、許容可能な精度で多言語アプリケーションを適応的にサポートするように音声認識装置を構築して調整することは困難である。
【０００７】
従って、改善されたエンドツーエンド音声認識用のシステム及び方法が望まされている。
【図面の簡単な説明】
【０００８】
本発明の実施形態を参照し、その例が図面に示される。これらの図面は説明するためのものであって限定するものではない。これらの実施形態を参照して本発明を説明するが、本発明の範囲はこれら特定の実施形態に限定するものではないと理解すべきである。
【０００９】
【図１】本開示の実施形態に係るエンドツーエンドディープ学習モデルのアーキテクチャを示す。
【図２】本開示の実施形態に係るディープ学習モデルをトレーニングする方法を示す。
【図３】本開示の実施形態に係るシーケンスごとのバッチ正規化の方法を示す。
【図４】本開示の実施形態に係るバッチ正規化ありとバッチ正規化なしでトレーニングされた２つのモデルのトレーニング曲線をグラフで示す。
【図５】本開示の実施形態に係るカリキュラム学習戦略でＲＮＮモデルをトレーニングする方法を示す。
【図６】本開示の実施形態に係る転写出力用の２書記素分割（bi-graphemes segmentation）でＲＮＮモデルをトレーニングする方法を示す。
【図７】本開示の実施形態に係る将来のコンテキストサイズが２の行畳み込みアーキテクチャを示す。
【図８】本開示の実施形態に係る単方向ＲＮＮモデルを有するオーディオ転写の方法を示す。
【図９】本開示の実施形態に係る多言語に適応する音声転写モデルをトレーニングする方法を示す。
【図１０】本開示の実施形態に係る２つのネットワークのスケーリング比較を示す。
【図１１】本開示の実施形態に係るコネクショニスト時間的分類アルゴリズム（Ｃｏｎｎｅｃｔｉｏｎｉｓｔ  Ｔｅｍｐｏｒａｌ  Ｃｌａｓｓｉｆｉｃａｔｉｏｎ、ＣＴＣ）用のＧＰＵ実装による順方向パス及び逆方向パスを示す。
【図１２】本開示の実施形態に係るＣＴＣ損失関数に用いられるＧＰＵ実装方法を示す。
【図１３】本開示の実施形態に係る音声転写トレーニングに用いられるデータ収集方法を示す。
【図１４】本開示の実施形態に係る所定サイズのバッチで要求を処理する確率を示す。
【図１５】本開示の実施形態に係るサーバ負荷の関数である中央値及び９８パーセンタイルのレイテンシを示す。
【図１６】本開示の実施形態に係るカーネルの比較を示す。
【図１７】本開示の実施形態に係るトレーニングノードの概略図を示し、ＰＬＸはＰＣＩスイッチを示し、点線ボックスは同じＰＣＩルート複合体によって接続されるすべての装置を示す。
【図１８】本開示の実施形態に係るコンピューティングシステムの概略ブロック図を示す。
【発明の概要】
【課題を解決するための手段】
【００１０】
以下、説明の目的のために、本発明を理解するように、詳細を説明する。なお、明らかなように、当業者はそれらの詳細がなくても本発明を実施することができる。また、当業者であれば、後述する本発明の実施形態は例えばプロセス、装置、システム、機器又は方法等の様々な方式で有形のコンピュータ可読媒体で実現できると理解すべきである。
【００１１】
図示する構成要素又はモジュールは本発明の例示的な実施形態についての説明であり、本発明を明瞭にするためのものである。なお、この議論の全体にわたって、構成要素はサブユニットを含む単独な機能ユニットとして記述されてもよいが、当業者であれば、種々の構成要素又はその一部は単独な構成要素に区画されてもよく、例えば単一システム又は構成要素の内部に集積されてもよいと認識すべきである。な本文に議論された機能又は操作が構成要素として実現されることができることを理解すべきである。構成要素はソフトウェア、ハードウェア、又はそれらの組み合わせにおいて実施されてもよい。
【００１２】
また、図中の構成要素又はシステム間の接続は直接接続に限定されない。その反面、これら構成要素間のデータは中間構成要素により変更されたり、再フォーマットされたりほかの方式で変更されたりしてもよい。また、加的接続又はより少ない接続を利用してもよい。また、用語「連結」、「接続」又は「通信連結」が直接接続、１つ又は複数の中間設備で実現される非直接接続及び無線接続を含むことを理解すべきである。
【００１３】
本明細書では、「一実施形態」、「好ましい実施形態」、「実施形態」又は「各実施形態」の引用について、当該実施形態を参照して説明する特定の特徴、構造、特性又は機能が本発明の少なくとも一実施形態に含まれてもよく、１つ以上の実施形態に含まれてもよいことを意味する。また、明細書の各箇所に出現する上記用語は必ずしも同じ１つ又は複数の実施形態を参照するとは言えない。また、明細書の各箇所におけるこれら用語の使用は例示のためであり、限定するものではない。本明細書に使用されるすべての見出しは構成上の目的のためであり、明細書又は特許請求の範囲を限定するものではない。
【００１４】
なお、（１）一部のステップが選択的に実施されてもよい、（２）ステップは本明細書で説明される特定順番に制限されなくてもよい、（３）一部のステップは異なる順番で実行されてもよい、及び（４）一部のステップは同時に実行されてもよいことを、当業者が理解すべきである。
【００１５】
なお、本明細書により提供されるすべての実験と結果は説明の方式によって提供され、特定の条件で具体的な実施形態を用いて行う。従って、これら実験及びその結果は本特許文献の開示範囲を限定するものではない。
【００１６】
１．  序論
【００１７】
数十年以来、ハンドエンジニアード分野（ｈａｎｄ−ｅｎｇｉｎｅｅｒｅｄ  ｄｏｍａｉｎ）の知識は現在最先端の自動音声認識パイプライン（ＡＳＲ）に導入されている。簡単であるが効果的な代替案として、このようなＡＳＲモデルをエンドツーエンドでトレーニングし、ディープ学習を使用し、単一モデルで大部分のモジュールを代替する。本特許文献では、エンドツーエンド学習の主要な利点を例示する音声システムの実施形態が提案されている。これらシステム（通常、第２世代ディープ音声、第２世代ディープ音声ＡＳＲ、第２世代ディープ音声ＡＳＲパイプライン又はＤＳ２と呼称されてもよい）の実施形態はいくつかのベンチマークではアマゾンメカニカルターク（Ａｍａｚｏｎ  Ｍｅｃｈａｎｉｃａｌ  Ｔｕｒｋ）作業者の正確率に近く又はそれを超え、非常に少ない変更だけで多国語で作業し生産設定（ｐｒｏｄｕｃｔｉｏｎ  ｓｅｔｔｉｎｇ）に配置可能である。これら実施形態は単一ＡＳＲシステムに向けて発展する重要な一歩を示し、単一ＡＳＲシステムは人間によって処理される音声認識コンテキストの全範囲を解決する。これらの実施形態はエンドツーエンドディープ学習（ｅｎｄ−ｔｏ−ｅｎｄ  ｄｅｅｐ  ｌｅａｒｎｉｎｇ）に基づいて構築されるため、一連のディープ学習技術を採用することができる。これらディープ学習技術は、大規模トレーニングセットの取得、高性能コンピューティングによる大規模モデルのトレーニング及びニューラルネットワークアーキテクチャの空間の系統的探索を含む。これらの技術によって、従来のエンドツーエンドシステムのエラー率が４３％低下するだけでなく、高精度で標準中国語音声を認識することができることを示す。
【００１８】
音声認識の課題の１つは、音声と音響の幅広い変動性である。その結果、現代のＡＳＲパイプラインは、複雑な特徴抽出、音響学モデル、言語及び発音モデル、話者適応アルゴリズム等の多くの要素から構成される。特に新たな言語の場合、これら個々の要素を構築してデバッグすることで新たな音声認識モジュール（ｓｐｅｅｃｈ  ｒｅｃｏｇｎｉｚｅｒ）を開発することは非常に困難である。実際、多くの部分は異なる環境又は言語で良好な結果を生じることができず、許容可能な正確性を図るには、通常、複数の特定のアプリケーションシステムをサポートする必要がある。これは、一般的なスキルを使用して言語を学び、幼児期にあらゆる言語を学ぶ先天的な能力を持つという人間の音声認識とは異なる。読みと書きを学んだ後に、大部分の人間は音声を転写（ｔｒａｎｓｃｒｉｂｅ）し、外部環境、話者の発話やノイズの変動性に抵抗することができ、転写（ｔｒａｎｓｃｒｉｐｔｉｏｎ）タスクを別途トレーニングする必要がない。音声認識ユーザの期待に応えるために、単一エンジンは類似する能力を有するように学習しなければならない。わずかな変更だけで大部分のアプリケーションを処理することができ、且つ劇的な変更がない限り新たな言語を最初から学習することができる。本明細書に記述されたエンドツーエンドシステムの実施形態は目標に近く、２つの異なる言語（標準中国語と英語）のいくつかのテストでは人間作業者のパフォーマンスに近い又は人間作業者のパフォーマンスを超える。
【００１９】
第２世代ディープ音声（ＤＳ２）システムの実施形態はエンドツーエンドディープ学習システムであるため、モデルアーキテクチャ、大規模のラベル付きトレーニングセット、計算規模という３つの重要な部分に焦点を当てて性能向上を図ることができる。この方法はほかの応用分野（例えば、コンピュータビジョンや自然言語）にも大幅な進歩をもたらした。本特許文献では、これら３つの分野に対する音声認識の貢献を詳述しており、モデルアーキテクチャの広範な調査、データの影響及び認識性能に関するモデルサイズ（ｍｏｄｅｌ  ｓｉｚｅ）を含む。特に、ニューラルネットワークによる多くの実験を説明し、これらニューラルネットワークはＣＴＣ（Ｃｏｎｎｅｃｔｉｏｎｉｓｔ  Ｔｅｍｐｏｒａｌ  Ｃｌａｓｓｉｆｉｃａｔｉｏｎ、コネクショニスト時間的分類アルゴリズム）損失関数によってトレーニングしてオーディオにおける音声転写を予測する。ネットワークは、反復接続（ｒｅｃｕｒｒｅｎｔ  ｃｏｎｎｅｃｔｉｏｎｓ）、畳み込みフィルタ（ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｆｉｌｔｅｒｓ）、非線形層（ｎｏｎｌｉｎｅａｒｉｔｉｅｓ）の多くの層を含むが、さらにバッチ正規化（通常、ＢａｔｃｈＮｏｒｍと呼称される）の具体例の影響を含む。これらネットワークの実施形態で生じる予測結果は従来の作業より優れるだけでなく、現在モデルの実施形態は生産設定に配置されることができるとともに正確率が大幅に低下しないことが分かる。
【００２０】
優れたモデルアーキテクチャの探索以外にも、ディープ学習システムは大量のトレーニングデータに大きく恵まれる。本明細書では、データキャプチャパイプライン（ｄａｔａ  ｃａｐｔｕｒｉｎｇ  ｐｉｐｅｌｉｎｅ）の実施形態を説明し、従来音声認識システムをトレーニングするためのデータセットより大きいデータセットを構築することができる。実施形態では、英語音声認識システムは１１，９４０時間の音声でトレーニングされ、標準中国語の場合、９，４００時間の音声でトレーニングされる。実施形態では、データ合成を使用してさらにトレーニングにおいてデータを強化する。
【００２１】
大量のデータでトレーニングするには、通常、より大規模なモデルが必要である。実際、従来のシステムに比べて、本明細書に係る実施形態はより多いパラメータを有する。このような規模で単一モデルをトレーニングするには、数十個のｅｘａＦＬＯＰが必要であり、ここで１個のｅｘａＦＬＯＰ＝１０１８個の浮動小数点演算であり、シングルグラフィックスプロセシングユニット（ＧＰＵ）で実行する場合、３〜６週間かかる。モデル探索は非常に時間がかかるプロセスになるため、高度に最適化された、８又は１６個のＧＰＵを用いたトレーニングシステムを構築して１つのモデルをトレーニングする。従来のパラメータサーバと非同期更新を用いた大規模トレーニング方法に比べて、本発明は、同期確率的勾配降下法（ｓｔｏｃｈａｓｔｉｃ  ｇｒａｄｉｅｎｔ  ｄｅｓｃｅｎｔ、ＳＧＤ）を採用し、新たなアイディアをテストする時にデバッグしやすくなり、同程度のデータ並列処理時により高速に収束することができる。システム全体をより効率的にするために、本明細書では、シングルＧＰＵの最適化及びマルチＧＰＵのスケーラビリティについての改善（実施形態にも使用されている）を説明する。実施形態では、高性能コンピューティング（ＨＰＣ）で一般的に見出されてスケーラビリティを向上させるための最適化技術を採用している。これらの最適化はＧＰＵ及びカスタムメモリアロケータにおいてＣＴＣ損失関数の高速実装を含む。さらに、慎重に統合された計算ノード（ｃａｒｅｆｕｌｌｙ  ｉｎｔｅｇｒａｔｅｄ  ｃｏｍｐｕｔｅ  ｎｏｄｅｓ）とオールリデュースのカスタム実装（ａ  ｃｕｓｔｏｍ  ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  ｏｆ  ａｌｌ−ｒｅｄｕｃｅ）を採用してＧＰＵ間の通信を加速する。１６ＧＰＵでトレーニングされる時に、システム全体は約５０テラフロップ／秒（ｔｅｒａＦＬＯＰ／ｓｅｃｏｎｄ）を維持する。それは、１ＧＰＵあたり３テラフロップ／秒に相当し、理論性能ピークの約５０％である。このようなスケーラビリティと効率によってトレーニング時間を３〜５日に短縮させて、モデルとデータセットでの反復の高速化を実現することができる。
【００２２】
いくつかの公開の利用可能なテストデータセットに基づいて、当該システムの実施形態にベンチマークを行い、結果を従来のエンドツーエンドシステムと比較する。目標は特定のベンチマーク（これらベンチマークはそのデータセットに対するデバッグによって改善されることができる）だけでなく、一連の異なるシーンを反映するベンチマークの範囲で、最終的に人間レベルのパフォーマンスに到達することである。そのために、各ベンチマークについて、人間作業者のパフォーマンスを測定して比較を行う。第２世代ディープ音声システムの実施形態はいくつかの通常研究するベンチマークで人間より優れ、より難しいケースでは格差を大幅に縮める。公開のベンチマークに加えて、システムの標準中国語実施形態の、実際の製品シーンを反映する内部データセットにおけるパフォーマンスが示されている。
【００２３】
ディープ学習システムは規模配置でおいて挑戦的である。大規模ニューラルネットワークは各ユーザの発話を評価することが計算的に高価であり、且ついくつかのネットワークアーキテクチャがほかより配置されやすい。モデル探索によって、高精度の配置可能なネットワークアーキテクチャの実施形態を実現することは、本明細書では説明されている。実施形態では、さらにＧＰＵハードウェアに適するバッチ処理手法（通常、バッチディスパッチ（Ｂａｔｃｈ  Ｄｉｓｐａｔｃｈ）とも呼称される）を開発して採用し、生産サーバで標準中国語エンジンの実施形態を効率的かつリアルタイムに実現するようにリードする。実施される実施形態は６７ミリ秒の第９８パーセンタイル計算遅延を実現し、サーバに１０個の同時オーディオストリームがロードされている。
【００２４】
本特許文献の当該セクションの残り内容は以下の通りである。第２セクションにおけるディープ学習、エンドツーエンド音声認識及びスケーラビリティに関するいくつかの基本的な背景情報から開始する。第３セクションはモデルの実施形態のアーキテクチャ改善及びアルゴリズム改善の実施形態を説明し、第４セクションは如何に効率的に計算するかの例を解釈する。本明細書の第５セクションでは、トレーニングデータとトレーニングセットのさらなる強化に必要なステップを検討する。第６セクションはＤＳ２システムの実施形態の英語と標準中国語での分析結果を示す。第７セクションは実際のユーザにＤＳ２の実施形態を配置する時に必要なステップを説明する。
【００２５】
２．  背景
【００２６】
フィードフォワードニューラルネットワークの音響学モデルについての探索は２０年以上の前から始めた。リカレントニューラルネットワークと畳み込みネットワークも同時期に音声認識に用いられる。最近、ディープニューラルネットワーク（ＤＮＮ）はＡＳＲパイプラインにおける固定装置となり、殆どすべての最先端の音声作業が特定の形態のディープニューラルネットワークを含む。畳み込みネットワークも音響学モデルに有利することが発見された。リカレントニューラルネットワーク（典型的に、ＬＳＴＭ）は最先端の認識装置に導入されたばかりであり、畳み込み層とともに特徴抽出に用いられる。双方向リカレントと単方向リカレントを有するモデルに対しても探索を行った。
【００２７】
エンドツーエンド音声認識は有効な研究分野であり、ディープニューラルネットワーク（ＤＮＮ）−隠れマルコフモデル（ＨＭＭ）（ＤＮＮ−ＨＭＭ）及びその単独モデルの出力を再スコアすることに用いられる場合、説得力のある結果を示している。現在、可変長オーディオシーケンスを可変長転写に直接マッピングするには、通常２つの方法が使用されている。ＲＮＮエンコーダ−デコーダパラダイムはエンコーダＲＮＮを使用して入力を固定長ベクトルにマッピングし、且つデコーダネットワークを使用して固定長ベクトルを出力予測シーケンスに拡張する。デコーダに注意メカニズムを追加することで、システムの性能を大幅に向上させ、特に長い入力又は出力のシステムの場合である。音声では、注意力を持つＲＮＮエンコーダ−デコーダは音素又は書体の予測においてうまく機能する。
【００２８】
可変長オーディオ入力を可変長出力にマッピングするための別の常用技術は、ＲＮＮと結合して時間情報をモデリングするＣＴＣ損失関数である。ＣＴＣ−ＲＮＮモデルは書記素出力を有するエンドツーエンド音声認識ではうまく機能する。ＣＴＣ−ＲＮＮモデルも音素予測面ではうまく機能することが証明されて、辞書が必要であるけれども。また、ガウス混合モデル（ＧＭＭ）−隠れマルコフモデル（ＨＭＭ）（ＧＭＭ−ＨＭＭ）システムからフレームごとにアライメントしたＤＮＮクロスエントロピーネットワークを用いてＣＴＣ−ＲＮＮネットワークをプリトレーニングする必要がある。それに対して、本明細書で検討されるＣＴＣ−ＲＮＮネットワークの実施形態は最初からトレーニングされ、プリトレーニング用のフレームごとのアライメントが不要である。
【００２９】
現在、ディープ学習のエクスプロイト規模が当該分野の成功に非常に重要である。単一ＧＰＵでのトレーニングを行った結果、実質的に性能が向上し、続いて２つ以上のＧＰＵに線形拡張する。低レベルのディープ学習プリミティブに対する単一ＧＰＵの効率を向上するために努力することは有利である。過去の作業に基づいて、モデル並列性、データ並列性又は両方の組合せを使用する時に、音声認識ではディープＲＮＮをトレーニングするための高速で高度に拡張可能なシステムの実施形態を作成する。
【００３０】
データもエンドツーエンド音声認識を成功させるキーであり、従来方法では、７０００時間より多い時間のラベル付き音声が使用されている。データ増加はコンピュータビジョンディープ学習のパフォーマンス向上では非常に有効である。音声システムを改善できることも証明された。音声のデータ増加用の技術的範囲は簡単なノイズ追加から、話者のチャネル長と発話速度の変化をシミュレートするような複雑な摂動（perturbation）までを含む。
【００３１】
実施形態では、従来の音声システムは、新たなデータ収集をブートストラップすることに用いられる。一方法では、１つの音声エンジンを使用して１０００時間の朗読音声をアライメントしてフィルタリングする。別の方法では、大型オフライン音声認識装置によって数万時間の音声の転写を生成する。続いて、フィルタを通過させて認識装置の再トレーニングに用い、それにより性能を大幅に向上させる。より大規模なデータセットとデータ増加のブートストラップの面では、これらの方法からインスピレーションを受け、当該システム用のラベル付き音声の有効数量を増加させる。
【００３２】
３．  モデルアーキテクチャの実施形態
【００３３】
単一リカレント層を有する簡単な多層モデルは数千時間のラベル付き音声をエクスプロイトすることができない。データセットからこの大規模なデータを学習するために、深さによってモデル容量を増加させる。実施形態では、多くの双方向リカレント層及び畳み込み層を含む１１層のアーキテクチャを探索した。各データの例に対して、これらモデルの計算量は従来方法のモデルの計算量のほぼ８倍であり、高速最適化と計算に非常に重要である。
【００３４】
実施形態では、これらモデルの最適化を成功させるために、ＳｏｒｔａＧｒａｄと呼ばれるＲＮＮのバッチ正規化と新規最適化カリキュラムを使用している。実施形態では、ＲＮＮ入力間の長ストライドもエクスプロイトされ、それにより各例の計算を３倍減少させる。ＣＴＣとともに良好に動作するように多少の変更が必要であるにもかかわらず、トレーニングにも評価にも寄与している。最後に、多くの研究結果は双方向リカレント層を使用した実施形態に基づいたものであるが、単方向リカレント層のみを使用した優れたモデルが存在すると判明し、それはこれらのモデルを容易に配置できる特徴である。これらの特徴を合わせることが、ディープＲＮＮの最適化を容易にし、いくつかの実施形態は小さいベースラインモデルにおいて英語エラー率と標準中国語エラー率の両方の性能が４０％以上向上する。
【００３５】
３．１  概要
【００３６】
図１は本開示の実施形態に係るエンドツーエンドディープ学習システムの例示的なアーキテクチャを示す。図示された実施形態では、アーキテクチャ１００はトレーニングされて音声スペクトログラム１０５を取得しテキスト転写を生成するリカレントニューラルネットワーク（ＲＮＮ）モデルを含む。実施形態では、モデル１００は、１つ以上の畳み込み層１１０、１つ以上のリカレント層（ゲートリカレントユニット（ＧＲＵ）層であってもよい）１１５、１つ以上の完全接続層１２０を順に含むいくつかの層を含む。畳み込み層は不変畳み込み層であってもよい。例えば、畳み込み層は時間領域及び周波数領域の両方（２Ｄ不変性）にあってもよく、時間領域（又は周波数領域）のみ（１Ｄ不変性）にあってもよい。
【００３７】
実施形態では、図１に示されるＤＳ２システムのアーキテクチャを使用して英語音声と標準中国語音声の両方をトレーニングする。実施形態では、当該アーキテクチャの変形を使用してもよい。例えば、実施形態では、畳み込み層の数量は１から３まで、リカレント又はＧＲＵ層の数量は１から７まで変化する。
【００３８】
実施形態では、１つ以上のコネクショニスト時間的分類アルゴリズム（Ｃｏｎｎｅｃｔｉｏｎｉｓｔ  Ｔｅｍｐｏｒａｌ  Ｃｌａｓｓｉｆｉｃａｔｉｏｎ、ＣＴＣ）層１２５を使用してＲＮＮモデルをトレーニングしてもよい。ＣＴＣ層はｓｏｆｔｍａｘ層を含んでもよい。実施形態では、バッチ正規化（ＢａｔｃｈＮｏｒｍ）は畳み込み層１１０、リカレント層１１５及び／又は完全接続層１２０における１つ以上のミニバッチ発話に用いられ、それによりこのようなネットワークのトレーニングを加速し、それは最適化問題がしばしば発生するからである。ミニバッチは１つ以上の基準に従ってグループ化され発話セットであり、グループ又はバッチとして処理される。実施形態では、総パワーを１つ以上のミニバッチ間で一致させるように、入力オーディオは正規化され、それによりモデル又はモデルのセットのトレーニングを加速する。第３．２節では、バッチ正規化を詳細に説明する。
【００３９】
図２は本開示の実施形態に係るＲＮＮモデルをトレーニングする方法を示す。トレーニングセットＸ＝｛（ｘ（１），ｙ（１）），（ｘ（２），ｙ（２）），…｝から単一発話ｘ（ｉ）とペアをなしたグラウンドトゥルース（ground truth）ラベルｙ（ｉ）をサンプルとしてサンプリングする。各発話ｘ（ｉ）は長さがＴ（ｉ）の時系列であり、各タイムスライスはオーディオ特徴ベクトルであり、ｘ（ｉ），ｔ＝０，…，Ｔ（ｉ）−１である。パワー正規化されたオーディオクリップのスペクトログラムはシステムの特徴として用いられるため、ｘ（ｉ）ｔ，ｐはオーディオフレームにおける時点ｔでの第ｐ個の周波数ビンのパワーを示す。ＲＮＮの目標は入力シーケンスｘ（ｉ）を最終転写ｙ（ｉ）に変換することである。記録の便宜上、上付き文字が除去され、ｘは選択した発話を示しｙは対応するラベルである。
【００４０】
実施形態では、スペクトログラムフレームの時系列ｘ（ｔ）を含む発話ｘはリカレントニューラルネットワーク（ＲＮＮ）モデルに入力（２０５）され、トレーニングセットから発話ｘ及び関連するラベルｙをサンプリングする。
【００４１】
ＲＮＮモデルは様々な言語の書記素を出力する。実施形態では、各出力時間ステップｔにおいて、ＲＮＮは文字ｐ（ｌｔ｜ｘ）を予測する（２１０）（ｌｔはアルファベットにおける文字又は空白記号である）。英語では、ｌ∈｛ａ，ｂ，ｃ，．．．，ｚ，スペース，アポストロフィ，空白｝である、アポストロフィ及びスペース記号を追加して単語境界を示す。標準中国語システムの場合、ネットワークは中国語の簡体字を出力する。これについて、第３．９節ではより詳細に説明される。
【００４２】
ｌ層の隠れ表現はｈｌによって与えられ、規定に従って、ｈ０は入力ｘを示す。実施形態では、当該ネットワークの底部は入力の時間次元における１つ以上の畳み込みである。実施形態では、サイズｃのコンテキストウィンドウについて、畳み込み層の時間ステップｔの第ｉ個の活性化は下式によって与えられる。
【００４３】
（式１） 
0006661654.tif 000002
ここで、ｏは第ｉ個のフィルタとの以前の層の活性化のコンテキストウィンドウとの要素ごとの積を示し、ｆは単項非線形関数を示す。実施形態では、クリップされた正規化線形（ＲｅＬＵ）関数σ（ｘ）＝ｍｉｎ｛ｍａｘ｛ｘ，０｝，２０｝を非線形として使用する。実施形態では、いくつかの層では、通常、第１層は、ｓフレーム間の畳み込みによって二次サンプリングを行う。上記リカレント層の時間ステップの数量を減少させることを目的とする。
【００４４】
実施形態では、畳み込み層１１０に次いで、１つ以上の双方向リカレント層１１５であり、方向性リカレント層又はゲートリカレントユニット（ＧＴＵ）であってもよい。順方向時間
0006661654.tif 000003
と逆方向時間
0006661654.tif 000004
のリカレント層の活性化の計算は以下の通りである。
【００４５】
（式２）
0006661654.tif 000005
【００４６】
２組の活性化を加算して層
0006661654.tif 000006
の出力活性化を形成する。実施形態では、関数
0006661654.tif 000007
は標準的な再帰演算（recurrent operation）
（式３）
0006661654.tif 000008
であってもよい。
【００４７】
ここで、
0006661654.tif 000009
は入力隠れ重み行列、
0006661654.tif 000010
はリカレント重み行列、
0006661654.tif 000011
はバイアス項、
0006661654.tif 000012
は予備活性化（pre-activation）を示す。実施形態では、リカレントの２つの方向について入力隠れ重みを共有する。実施形態では、関数
0006661654.tif 000013
はより複雑な再帰演算、例えば長期短期記憶（ＬＳＴＭ）ユニットやゲートリカレントユニット（ＧＲＵ）を示してもよい。
【００４８】
実施形態では、双方向リカレント層に次いで、下式によって１つ以上の完全接続層（１２０）を応用する。
（式４）
0006661654.tif 000014
【００４９】
実施形態では、出力層Ｌはソフトマックス（softmax）層であり、
（式５）
0006661654.tif 000015
によって文字の確率分布を計算する（２１５）。
【００５０】
ここで、ｋはアルファベット（空白記号を含む）における１つの文字を示す。
【００５１】
実施形態では、ＣＴＣ損失関数（１２５）を使用して当該モデルをトレーニングする。入力出力ペア（ｘ，ｙ）及びネットワークθの現在のパラメータを付与し、当該ネットワークのパラメータに関する損失関数
0006661654.tif 000016
（ｘ，ｙ；θ）
及びその導関数
0006661654.tif 000017
を計算する（２２０）。続いて、当該導関数を利用して時間アルゴリズムを介して、逆伝播によって当該ネットワークパラメータを更新する（２３０）。
【００５２】
以下のサブセクションでは、アーキテクチャ及びアルゴリズムの改善を説明する。特に断らない限り、これらの改善は言語とは無関係である。報告の結果は、２０４８個の主要な朗読音声を含むデータセットである開発セットを提案する英語の話者に関わる。モデルの実施形態に対して、第５セクションに記載のデータセットのトレーニングを行う。英語システムのワードエラー率（Ｗｏｒｄ  Ｅｒｒｏｒ  Ｒａｔｅ、ＷＥＲ）と標準中国語システムの文字エラー率（Ｃｈａｒａｃｔｅｒ  Ｅｒｒｏｒ  Ｒａｔｅ、ＣＥＲ）が報告される。この２種類の場合、言語モデルは３．８節に記載のビーム探索復号ステップに集積される。
【００５３】
３．２  ディープＲＮＮ用のバッチ正規化
【００５４】
トレーニングセットがスケールされる時に、モデルの実施形態を効果的にスケーリングするために、各層の長さを増加するのではなく、より多くの隠れ層を追加することでネットワークの深さを増加させる。これまでの研究では、連続した双方向リカレント層の数量を増加させることでその挙動を検査する。実施形態では、バッチ正規化（通常、ＢａｔｃｈＮｏｒｍと呼称されてもよい）をこのようなネットワークのトレーニングを加速する技術として探索し、それは最適化問題がしばしば発生するからである。
【００５５】
最近の研究から分かるように、ＢａｔｃｈＮｏｒｍはリカレントネットワークの収束速度を高めるが、汎化特性につていの改善が一切示されていない。それに対して、本明細書のモデルの実施形態は、大規模データセットに簡単なＲＮＮの非常に深いネットワークを応用する時に、バッチ正規化によって最終汎化誤差を大幅に改善するとともに、トレーニングを大幅に加速することが証明された。
【００５６】
実施形態では、非線形ｆ（・）前のアフィン変換を含む典型的なフィードフォワード層では、ｆ（Ｗｈ＋ｂ）ではなくｆ（Ｂ（Ｗｈ））を使用してＢａｔｃｈＮｏｒｍ変換を挿入し、
（式６）
0006661654.tif 000018
ここで、ｘは予備活性化を示し、用語ＥとＶａｒは１つのミニバッチにおける経験的平均と分散である。その影響が平均除去法によって解消されるため、当該層のバイアスｂが除去される。学習可能なパラメータγとβは当該層が必要に応じて各隠れユニットをスケーリングしたり移動したりすることを可能にする。定数
0006661654.tif 000019
は小さい正の値であり、数値安定性を確保するために含まれている。
【００５７】
実施形態では、畳み込み層では、ミニバッチ上の所定の畳み込みフィルタについて、すべての時間出力単位にわたって平均と分散を推定する。ＢａｔｃｈＮｏｒｍ変換は所定層を層の入力の平均及び分散の潜在的に興味のない変更と隔離することで、内部共変量シフト（ｉｎｔｅｒｎａｌ  ｃｏｖａｒｉａｔｅ  ｓｈｉｆｔ）を減少させる。
【００５８】
ＢａｔｃｈＮｏｒｍを双方向ＲＮＮに拡張する２種類の方法を探索した。第１種の方法では、各非線形の直前にＢａｔｃｈＮｏｒｍ変換を挿入する。この場合、式３は、
（式７）
0006661654.tif 000020
となり、この場合、平均と分散統計量はミニバッチの単一時間ステップで累積する。時間ステップ間の順序依存性によって、すべての時間ステップでの平均を阻止する。実施形態では、当該技術は最適化についての改善をもたらさないことが分かった。
【００５９】
第２種の方法では、連続した時間ステップでの平均値を累積するため、すべての現在と以前の時間ステップで以降の時間ステップを正規化する。無効で非常に複雑な逆伝播であることが証明された。
【００６０】
図３は本発明の実施形態に係るシーケンスごとのバッチ正規化の方法を示し、上記探索の方法の上記問題を克服する。実施形態では、リカレント計算は下式によって与えられて、即ち、
（式８）
0006661654.tif 000021
【００６１】
各隠れユニット（畳み込み層とリカレント層に用いられてもよい）に対して、発話シーケンスの長さにわたって（over the length of）ミニバッチにおける予備活性化の平均と分散統計を計算する（３０５）。実施形態では、バッチ正規化は、ＲＮＮにおいてバッチ正規化しようとする層セットにおける各層が予備活性化を正規化することを含む。
【００６２】
図４は本開示の実施形態に係る、ディープネットワークがシーケンスごとの正規化によってより高速に収束することを示す。表１に示すように、シーケンスごとの正規化の性能向上はネットワーク深さの増加につれて増加し、最も深いネットワークの場合、性能の差が１２％となる。深さを比較する時に、モデルサイズを抑えるために、パラメータの総数を維持するが、強力な性能向上が依然として示されている。各層の活性化回数を維持し且つ層を追加すると、深さのさらなる改善が期待できる。さらに、ＢａｔｃｈＮｏｒｍは最も浅いネットワークに対して汎化誤差を招き、浅いネットワークの収束が遅いようである。
【００６３】
【表１】
0006661654.tif 000022
表１：ＢａｔｃｈＮｏｒｍありとＢａｔｃｈＮｏｒｍなしでのＲＮＮのさまざまな深さのトレーニングセットと開発セットのＷＥＲの比較
深さの増加につれて、パラメータの数量を維持するため、各層の隠れユニットの数量が減少する。すべてのネットワークは３８００万個のパラメータを有する。アーキテクチャ「Ｍ  ＲＮＮ、Ｎ  ｔｏｔａｌ」とは、入力側の一次元畳み込みの１つの層、Ｍ個の連続した双方向ＲＮＮ層で、残りが完全接続層で、ネットワークに計Ｎ個の層を有することを意味する。
【００６４】
ＢａｔｃｈＮｏｒｍ方法の実施形態はトレーニングにおいてうまく機能するが、配置されたＡＳＲ（自動音声認識）システムに対して実施し難い可能性があり、それは通常、バッチではなく、配置中の単一発話を評価する必要があるからである。当該シーケンスのみで各ニューロンをその平均と分散に正規化することによって、性能が低下する可能性がある。従って、実施形態では、トレーニング期間に収集したニューロンの平均と分散の移動平均（３１０）を格納し、配置過程で評価に用いる（３１５）。このような技術によれば、単一発話を一括評価でき、大規模バッチの評価より優れた結果を生成できる。
【００６５】
３．３  ＳｏｒｔａＧｒａｄ
【００６６】
様々な長さの例のトレーニングはいくつかのアルゴリズム上の課題を形成する。可能な解決案の１つとして、時間を通じて逆伝播を切断することで、すべての例がトレーニング期間に同一のシーケンス長さを有する。しかしながら、より長い語順依存関係を学習する能力を阻害する可能性がある。ある方法から分かるように、難易度順に例を表示することでオンライン学習を加速することができる。機械翻訳及び音声認識を含む多くのシーケンス学習問題の共通テーマは、例が長いほど挑戦的傾向があることである。
【００６７】
使用するＣＴＣコスト関数は発話の長さに暗黙的に依存し、
（式９）
0006661654.tif 000023
ここで、Ａｌｉｇｎ（ｘ，ｙ）はＣＴＣ演算子の下で転写ｙの文字と入力ｘのフレームのすべての可能なアライメントのセットである。式９では、内項は当該シーケンスの時間ステップの積であり、
0006661654.tif 000024
であるため、シーケンスの長さにつれて小さくなる。カリキュラム学習戦略（ここで「ＳｏｒｔａＧｒａｄ」と呼称される）の実施形態の示唆を与える。ＳｏｒｔａＧｒａｄは発話の長さを難易度の探索として使用され、それは長い発話が短い発話より高いコストを有するからである。
【００６８】
図５は本発明の実施形態に係るカリキュラム学習戦略でＲＮＮモデルをトレーニングする方法を示す。複数のミニバッチ（複数の発話を含む）を含むトレーニングセットに対して、（５０５）によって、トレーニングセットは第１トレーニングエポックにおいて各ミニバッチにおける最も長い発話の長さの昇順に反復される。第１トレーニングエポックの後に、トレーニングは（５１０）ミニバッチのランダム順序（例えば、１つ又は複数の後続エポックに対して確率的トレーニングを使用する）に戻る。
【００６９】
実施形態では、上記カリキュラム学習戦略は音声認識用の１つ又は複数のほかの戦略と組み合わせることで実現する。
【００７０】
【表２】
0006661654.tif 000025
表２：ＳｏｒｔａＧｒａｄありとＳｏｒｔａＧｒａｄなし及びバッチ正規化ありとバッチ正規化なしでのトレーニングと開発セットのＷＥＲの比較
【００７１】
表２は７個の反復層を有する９層モデルにおけるＳｏｒｔａＧｒａｄありとＳｏｒｔａＧｒａｄなしでのトレーニングコストの比較を示す。ＢａｔｃｈＮｏｒｍなしのネットワークの実施形態の場合、このような効果は非常に顕著であり、それは数値上で安定しないからである。ある意味では、ＳｏｒｔａＧｒａｄとＢａｔｃｈＮｏｒｍを同時に応用する時にゲインを求めるが、これら２種類の技術を依然として互いに置換することができる。ＢａｔｃｈＮｏｒｍを使用しても、このカリキュラムはトレーニング過程における数値の安定性と微小な変化に対する感度を向上することが分かる。特にＣＴＣコストを計算する際に、数値の不安定性はＣＰＵ及びＧＰＵにおける異なる超越関数の実装に起因する可能性がある。ＳｏｒｔａＧｒａｄカリキュラムの実施形態は２種類の実装の比較可能な結果を与える。
【００７２】
主として発話が長いほど勾配が長くなる傾向があるが、実施形態では発話長さとは無関係の固定学習速度を使用するため、これらのメリットをもたらす可能性がある。また、より長い発話によって、ＲＮＮの内部状態にトレーニングの初期段階で爆発させる可能性がある。
【００７３】
３．４  簡単なＲＮＮとＧＲＵの比較
【００７４】
現在示されているモデルは簡単なＲＮＮであり、双方向リカレント層を有し、式３でモデリングされた順方向時間と逆方向時間方向での再帰を有する。現在の言語及び言語処理につれての研究から分かるように、より複雑な再帰によって、ネットワークがより多くの時間ステップで状態を記憶できるとともに、トレーニング時の計算コストを増加する。ほかの多くの変形が存在するにもかかわらず、一般に使用される２つのリカレントアーキテクチャは長期短期記憶（ＬＳＴＭ）ユニット及びゲートリカレントユニット（ＧＲＵ）である。最近、ＬＳＴＭ及びＧＲＵアーキテクチャの数千種の変形を総合的に研究したところ、ＧＲＵは適宜初期化された忘却ゲートバイアスを有するＬＳＴＭに相当し、且つそれらの最適な変形が相互に競争していることが分かる。小規模なデータセットによる実験から分かるように、ＧＲＵとＬＳＴＭが同数のパラメータに対して類似の正確性に達するが、ＧＲＵのトレーニング速度が高く発散の可能性が低いため、ＧＲＵを検査した。
【００７５】
実施形態では、使用されたＧＲＵは、下式により計算される。
（式１０） 
0006661654.tif 000026
0006661654.tif 000027
0006661654.tif 000028
0006661654.tif 000029
【００７６】
ここで、σ（・）はシグモイド関数であり、ｚとｒはそれぞれ更新ゲートとリセットゲートを示し、簡単にするために、層の上付き文字が除去される。当該ＧＲＵの実施形態は、リセットゲートによってスケーリングを行う前、隠れ状態ｈｔ−１とＵｈを乗算するという点で、標準ＧＲＵと異なる。これは、単一行列乗算ではｈｔ−１に関するすべての操作を計算することを可能にする。出力非線形ｆ（・）は通常、双曲線正接関数ｔａｎｈである。しかし、実施形態では、ｔａｎｈとクリップされたＲｅＬＵ非線形に対して類似性能が発見された。実施形態では、ネットワークの残りの部分を利用してクリップされたＲｅＬＵを選択することで、簡単性と均一性を実現する。
【００７７】
表３は、様々な深さでの簡単なＲＮＮ又はＧＲＵを使用したネットワークの開発セットＷＥＲの比較を示す。すべてのモデルはバッチ正規化、一次元不変畳み込みの１個の層及び約３８００万個のパラメータを有する。
【００７８】
【表３】
0006661654.tif 000030
表３：簡単なＲＮＮ又はＧＲＵを使用したネットワークの開発セットＷＥＲの比較
【００７９】
ＧＲＵと簡単なＲＮＮアーキテクチャはいずれもバッチ正規化に恵まれ、ディープネットワークによって強力な結果を示している。しかし、表３に示すように、固定数のパラメータに対して、ＧＲＵアーキテクチャはすべてのネットワークの深さでよりよいＷＥＲを達成する。個々の単語内及び単語間に存在する音声認識タスク固有の長期依存性が証明されたことが明らかになる。３．８節で記載したように、簡単なＲＮＮの実施形態でも、大量のトレーニングデータによって言語モデルを暗黙的学習することができる。興味深く、５個以上のリカレント層のＧＲＵネットワークの実施形態は性能を大幅に改善できない。それは、パラメータの総数を維持するように、１つのリカレント層の場合の１層あたり１７２８個の隠れユニットから７個のリカレント層の場合の１層あたり７６８個の隠れユニットに減少するからである。
【００８０】
表３では、ＧＲＵネットワークの実施形態は簡単なＲＮＮの実施形態より優れる。しかし、後続結果（第６セクション）では、モデルサイズの増大につれて、固定の計算予算に対して、簡単なＲＮＮネットワークのパフォーマンスがややよくなる。従って、残りの実験は殆ど、ＧＲＵ層の実施形態ではなく、簡単なＲＮＮ層の実施形態を使用する。
【００８１】
３．５  周波数畳み込み
【００８２】
時間的な畳み込みは、通常、可変長発話用の時間翻訳不変性（temporal translation invariance）をモデリングするために音声認識に使用されている。このような畳み込みは最初、２５年以上の前に音声ニューラルネットワークに使用すると提案された。多くのニューラルネットワーク音声モデルは特定のコンテキストウィンドウを有する入力フレームを処理する第１層を有する。それはストライドが１の時間的な畳み込みと見なしてもよい。
【００８３】
また、二次サンプリングは、高サンプリングレートのオーディオを有するリカレントニューラルネットワークを計算面で処理しやすくすることの役に立つ。全文が本明細書中に引用により本願に組み込まれる、２０１５年６月９日に提出した名称が「音声転写システム及び方法」の第１４／７３５，００２号（整理番号２８８８８−１９１０）美国特許出願に記載されているように、従来のディープ音声システムは、時間ステップの数を減少するように、第１層（当該第１層がストライドパラメータを有する）において音声スペクトログラムを入力及び時間的畳み込みとすることにより実現する。上記特許文献の実施形態は本明細書では第１世代ディープ音声（Ｄｅｅｐ  Ｓｐｅｅｃｈ  １）又はＤＳ１と呼ばれてもよい。
【００８４】
ほかのいかなる処理を行う前にスペクトル入力特徴に適用される場合、周波数領域と時間領域における畳み込みによって、ＡＳＲ性能をやや向上させることができる。スピーカの変動性が完全に接続された大規模なネットワークにおいてより簡潔になる可能性があるため、周波数領域における畳み込みはスペクトル分散をモデル化することを試みる。実施形態では、特徴のスペクトル並び替えが完全に接続されたリカレント層により除去されるため、周波数畳み込みはネットワークの第１層としてよりうまく機能する。
【００８５】
１層の畳み込みと３層の畳み込みの間の実施形態を研究した。これらの畳み込み層は時間と周波数領域（２Ｄ（二次元）不変性）にあってもよく、時間領域（１Ｄ（一次元）不変性）のみにあってもよい。すべての場合、同一の畳み込みを使用し、周波数と時間における入力特徴の数を残しておく。いくつかの実施形態では、出力のサイズを減少させるように、いずれかの次元を跨ぐストライドが指定される。実施形態では、畳み込み層がごく一部のパラメータをネットワークに追加するため、パラメータの数が明示的に抑えられていない。表４に示されるすべてのネットワークは約３５００万個のパラメータを有する。
【００８６】
【表４】
0006661654.tif 000031
表４：畳み込み層の様々な配置のためのＷＥＲの比較
すべての場合、畳み込みに７個のリカレント層と１個の完全接続層が続く。２Ｄ不変畳み込みの場合、第１次元は周波数であり、第２次元は時間である。すべてのモデルはＢａｔｃｈＮｏｒｍ、ＳｏｒｔａＧｒａｄ及び３５００万個のパラメータを有する。
【００８７】
２つのデータセット、即ち２０４８個の発話の開発データセット（「正規開発」）及びＣＨｉＭＥ  ２０１５開発データセットからランダムにサンプリングした２０４８個の発話（「ノイズ開発」）のノイズの多いデータセットについて、様々な実施形態の結果を報告した。複数の層の１Ｄ不変畳み込みの利点が非常に小さいことが分かった。２Ｄ不変畳み込みを有する実施形態はノイズデータ面の結果を大幅に改善するとともに、清潔なデータ面では利点が小さい。１層の１Ｄ不変畳み込みから３層の２Ｄ不変畳み込みへの変更によって、ノイズ開発セットのＷＥＲを２３．９％向上する。
【００８８】
３．６  ストライディング
【００８９】
実施形態では、畳み込み層において、所定の発話をモデリングするには少ない時間ステップが必要であるため、より長いストライドとより広いコンテキストでトレーニングを加速する。入力音声をダウンサンプリング（高速フーリエ変換及び畳み込みストライディングを通じる）することにより、後続の層に必要とされる時間ステップと計算を減少させる反面、性能が低下してしまう。
【００９０】
図６は本発明の実施形態に係るデータストライディング用の方法を示す。図６に示すように、ステップ６０５では、元の入力でｑ個のタイムスライスのステップ（例えば、ステップ２）をストライディングすることにより、反復層の処理時間を短縮させ、展開したＲＮＮが少ないステップを有するようにする。
【００９１】
標準中国語モデルの実施形態では、ストレートフォワードの方式でストライディングを行う。それに対して、英語モデルの実施形態では、ネットワークの出力について各出力文字が少なくとも１つの時間ステップであると、を求め、且つ各時間ステップの英語音声の文字数が極めて高くてストライディング時に問題を引き起こすため、ストライディングが簡単に正確性を低下させることができる。なお、漢字が英語文字より英語の音節に符合する。これはトレーニングデータに反映され、英語の場合、平均として１４．１個の文字、標準中国語の場合、３．３個の文字である。一方、トレーニングセットにおける発生から計算したところ、小規模な文字セットのため、標準中国語の文字シャノンエントロピーが１２．６ビット／文字ことに比べて、英語の文字シャノンエントロピーが低く、４．９ビット／文字である。口語の標準中国語の時間的エントロピー密度が〜５８ビット／秒より低く、〜４１ビット／秒であるため、文字情報を損失せずにより容易に時間的圧縮されることができる。これを克服するために、ステップ６１０では、代替ラベルを示す文字（例えば、全文字、音節又は非重複ｎグラム（ｎ−ｇｒａｍ））で英語アルファベットを豊かにする。実施形態では、非重複の二書記素又はバイグラム（bigram）を使用するのは、簡単で構築しやすく（音節と異なる）、且つ代替体（例えば全単語）に比べて、ごく少ないいくつかのみがあるからである。実施形態では、簡単な同型（isomorphism）によって、ユニグラム（unigram）ラベルがバイグラムラベルに変換される。
【００９２】
非重複バイグラムは出力転写の長さを短縮させることにより、展開したＲＮＮの長さを減少させる。実施形態では、同型について、例えば、非重複バイグラムを有するセンテンス「ｔｈｅ  ｃａｔ  ｓａｔ」を［ｔｈ、ｅ、スペース、ｃａ、ｔ、スペース、ｓａ、ｔ］に分割する。なお、実施形態では、奇数個の文字を有する単語について、最後の文字がユニグラムになり、且つスペースもユニグラムとしてみなされる。この同型性によって、同じ単語がいつも同じバイグラム及びユニグラムトークンから構成されることを確保する。バイグラムの出力セットはトレーニングセットに出現するすべてのバイグラムから構成される。
【００９３】
表５は言語モデルありと言語モデルなしの場合、様々なストライディングレベルに用いられるバイグラムシステムとユニグラムシステムの実施形態の結果を示す。観察したところ、バイグラムは単語のエラー率を犠牲することなく、より大きなストライドを可能にする。それにより、実施形態では、展開したＲＮＮの時間ステップの数が減少し、さらに計算とメモリ使用に役に立つ。
【００９４】
【表５】
0006661654.tif 000032
表５：１Ｄ不変畳み込みの１個の層、７個のリカレント層及び１個の完全接続層を有するモデルでは、ユニグラム出力とバイグラム出力について、異なる数量のストライディングの単語エラー率（ＷＥＲ）の比較
すべてのモデルはＢａｔｃｈＮｏｒｍ、ＳｏｒｔａＧｒａｄ及び３５００万個のパラメータを有する。５グラム言語モデルあり開発セットと５グラム言語モデルなし開発セットではモデルを比較する。
【００９５】
３．７  行畳み込み及び単方向モデル周波数
【００９６】
双方向ＲＮＮモデルは、サンプル全体で動作する構築されているため、ユーザからの発話ストリームとして転写過程を実行できないことによって、オンラインの低遅延設定環境に配置されることが困難である。ここで、双方向モデルを同様に実行する単方向アーキテクチャの実施形態を示す。配置システムの実施形態では単方向、順方向専用のＲＮＮ層を使用することを可能にする。
【００９７】
これを実現するために、実施形態では、特殊層（行畳み込み）を採用し、図７に示すように、本開示の実施形態に係る将来のコンテキストサイズが２の行畳み込みアーキテクチャを示す。図７に示すように、行畳み込み層７１０はすべてのリカレント層（例えば、７２０）の上に位置する。当該層についての直感的な解釈として、ごく一部の将来の情報だけで現在の時間ステップで正確に予測することができる。時間ステップｔで、τステップの将来のコンテキストを使用すると仮定する。サイズｄ×（τ＋１）の特徴行列ｈｔ：ｔ＋τ＝［ｈｔ，ｈｔ＋１，．．．，ｈｔ＋τ］を生成する。ｈｔ：ｔ＋τと同じサイズを有するパラメータ行列Ｗを定義する。時間ステップｔでの新層に対する活性化ｒｔは、
（式１１）
0006661654.tif 000033
の場合に適用。
ここで、ｉは現在層におけるニューロンのインデックス、ｄは現在層におけるニューロンの数を示す。式（１１）における畳み込み状演算がＷとｈｔ：ｔ＋τの行指向であるため、この層は行畳み込みと呼ばれる。
【００９８】
図８は本発明の実施形態に係る単方向ＲＮＮモデルを使用したオーディオ転写の方法を示す。ステップ８０５では、行畳み込み層をＲＮＮモデルのすべてのリカレント層の上に配置する。当該ステップは以下の２つの利点を有する。第１、非常に少ない将来のコンテキストが必要であると考慮し、より細かい粒度で行畳み込み層の下のすべての計算をストリーミングすることを可能にする。第２、標準中国語の最適双方向モードに比べて、より良い文字エラー率をもたらす。ステップ８１０では、現在の時間ステップ及び少なくとも１つの将来の時間ステップのリカレント層の情報を使用して行畳み込み層の活性化を取得する。リカレント層は良好な特徴表現を学習したように見えるため、行畳み込み層はステップ８１５では適切な情報を簡単に収集して分類器に送信する。行畳み込みを有する単方向標準中国語音声システムの実施形態及び双方向モデルとの比較結果は第７セクションの配置についての説明では記載される。
【００９９】
３．８  言語モデル
【０１００】
ＲＮＮモデルの実施形態は、数百万の独特な発話にわたってトレーニングされることで、ネットワークは強力な暗黙的言語モデルを学習することができる。いくつかの最適なモデルは、何の外部の言語制約もなく、スペルが非常に優れる。また、開発データセットでは、実施形態は同音異義語の曖昧さを暗黙的に解消することができ、例えば、「ｈｅ  ｅｘｐｅｃｔｓ  ｔｈｅ  Ｊａｐａｎｅｓｅ  ａｇｅｎｔ  ｔｏ  ｓｅｌｌ  ｉｔ  ｆｏｒ  ｔｗｏ  ｈｕｎｄｒｅｄ  ｓｅｖｅｎｔｙ−ｆｉｖｅ  ｔｈｏｕｓａｎｄ  ｄｏｌｌａｒｓ」が挙げられる。しかし、利用可能なラベルなしテキストコーパスのサイズに比べて、ラベル付きトレーニングデータが小さい。従って、外部テキストでトレーニングされた言語モデルを使用してシステムの実施形態を補充する場合、ＷＥＲが改善される。
【０１０１】
図９は本発明の実施形態に係る言語モデルを使用してモデル出力を制約する方法を示す。
【０１０２】
ステップ９０５では、ＲＮＮモデルから発話ｘ用の予測文字出力を取得する。
【０１０３】
ステップ９１０では、１つ又は複数のＲＮＮモデルの出力を付与し、ＲＮＮ出力及びその転写を単語として解釈する言語モデルに従って、探索を実行して可能性が最も高い転写ｙを見つける。
【０１０４】
実施形態では、当該言語モデルは外部言語モデルである。当該外部言語モデルは、大量のラベルなしテキストに良好に拡張できるため、ｎグラム言語モデルであってもよい。英語の場合、実施形態では、言語モデルはプルーニングされたＫｎｅｓｅｒ−Ｎｅｙ平滑化した５グラムモデルであり、ＫｅｎＬＭツールキットを使用して共通クロールリポジトリ（Common Crawl Repository）からのクリーンテキストをトレーニングする。語彙テーブルは２．５億行のテキストから最も頻繁に使用される４０万個の単語を含み、約８．５億個のｎグラムの言語モデルが作成される。標準中国語の場合、言語モデルはプルーニングされたＫｎｅｓｅｒ−Ｎｅｙ平滑化した文字５グラムモデルであり、８０億行のテキストの内部テキストコーパスでトレーニングされる。約２０億個のｎグラムの言語モデルが作成される。中国語の場合、文字が通常、テキストで区切りされることがないため、文字レベルの言語モデルが必要であり、詳しくは第３．９節を参照する。
【０１０５】
実施形態では、転写ｙの探索は式１２に示されるＱ（ｙ）を単語挿入項とともに最大化することであり、ここで、Ｑ（ｙ）はＣＴＣトレーニングネットワークと言語モデルからの対数確率の線形組合せである。 
（式１２）
0006661654.tif 000034
【０１０６】
重みαは言語モデルとＣＴＣネットワークの相対貢献を制御する。重みβは転写中のより多くの単語をサポートする。これらのパラメータは開発セットで調整される。実施形態では、ビーム探索により最適な転写を見つける。
【０１０７】
表６は外部言語モデルが英語音声システムと標準中国語音声システムに寄与することを示す。１個のリカレント層を有する５層のモデルから７個のリカレント層を有する９層のモデルへ、言語モデルの相対向上は英語では４８％から３６％に低下し、標準中国語では２７％から２３％に低下する。ネットワークはより多くの反復層を有し、且つより強力な暗黙的言語モデルを構築すると仮定する。
【０１０８】
【表６】
0006661654.tif 000035
表６：言語モデルありと言語モデルなしでの英語ＷＥＲと標準中国語ＣＥＲの比較
これらモデルは１つの１Ｄ不変畳み込み層のみを有する簡単なＲＮＮモデルである。
【０１０９】
言語モデルによる相対性能向上については、標準中国語より英語のほうが高い。それは、１つの漢字が英語文字より大きい情報ブロックを示すからである。例えば、英語の音節又は単語を直接出力すると、当該モデルのスペルミスを少なく発生し、且つ当該言語モデルは無用である可能性がある。
【０１１０】
３．９  標準中国語への適応
【０１１１】
本明細書で説明される技術は、漢字を直接出力するエンドツーエンド標準中国語音声認識システムを構築することに用いられることができる。通常音声システムをほかの言語に応用する非常に複雑な構成要素である発音モデルを構築する必要性を排除する。文字を直接出力することで、言語の特定の発音特徴を明示的にモデリングする必要性も排除する。例えば、標準中国語のトーンをモデリングするシステムが必ずあるため、標準中国語のトーンを明示的にモデリングする必要がない。
【０１１２】
実施形態では、ネットワークに施される唯一のアーキテクチャ変更は、漢字文字セットの特徴によるものである。実施形態では、ハイブリッド中国語−英語転写が一般的であるため、ネットワークの出力層はローマ字を含む約６０００個の文字を出力する。実施形態では、ある文字が当該セットに含まれていない場合、システムは評価時に語彙外エラーを指示する。語彙外文字がテストセットの０．７４％のみを占めるため、大きな問題にならない。実施形態では、語彙外エラーを生じた文字を語彙テーブルに追加し、当該モデルを再トレーニングすることができる。
【０１１３】
実施形態では、テキストでは通常文字を分割しないため、標準中国語に文字レベルの言語モデルを使用する。式１２の単語挿入項は文字挿入項になる。また、復号期間、ビーム探索の性能は小さなビームサイズで安定する傾向があることが分かる。従って、実施形態では、使用するビームサイズ２００では、無視できるＣＥＲ劣化が生じる。第６．２節から分かるように、アーキテクチャ変化に対して、標準中国語音声モデルの実施形態の改善と英語音声モデルの実施形態の改善がほぼ同様である。
【０１１４】
４．  システムの最適化
【０１１５】
ネットワークの実施形態は数千万個のパラメータを有し、トレーニングアルゴリズムの実施形態は収束するために、数十個の単精度エクサフロップスによる演算が必要である。データ及びモデルに関する仮定を評価する能力はモデルを高速にトレーニングする能力に依存するため、高度に最適化したトレーニングシステムが構築された。当該システムの実施形態は、ディープ学習ライブラリ（Ｃ＋＋で書かれる）、及び高性能線形代数ライブラリ（ＣＵＤＡ及びＣ＋＋で書かれる）の２つの主要な要素を有する。各ノードが８個のＴｉｔａｎ  Ｘ  ＧＰＵを有する高密度計算ノード上で実行される最適化ソフトウェアを使用することで、１つのノード上で単一モデルをトレーニングする時に、２４単精度テラフロップ／秒を維持することができる。これは、各ノードの理論ピーク計算スループットの４５％でる。次のサブセクションで説明するように、複数のノードはスケーリングも可能である。
【０１１６】
４．１  スケーラビリティ及びデータ並列性
【０１１７】
データ並列性の標準技術を使用し、同期確率的勾配降下（ＳＧＤ）で複数のＧＰＵをトレーニングする。一般的な構成では、８ＧＰＵで５１２個のミニバッチが使用されている。ここで使用されるトレーニングパイプラインの実施形態は１つのプロセスを各ＧＰＵにバインディングする。続いて、これらプロセスが逆伝播期間にａｌｌ−ｒｅｄｕｃｅを使用して勾配行列を交換し、ａｌｌ−ｒｅｄｕｃｅが複数のプロセス間で行列を交換して結果の和を求め、最終的に各プロセスはすべてのプロセスからのすべての行列の和のコピーを有する。
【０１１８】
同期ＳＧＤは、その再現性と確定性を有するため、有用であることが判明された。システムの非確定性の出現は通常、重大なバグを示すことが多いため、再現性を目標とすることでデバッグを大幅に促進することがわかった。それに対して、非同期方法（例えば、特定のパラメータサーバを有する非同期ＳＧＤ）は通常、再現性がないため、デバッグがより難しい。同期ＳＧＤは理解と実装が容易である。トレーニング過程で複数のノードを追加する時にスケーリングが可能である。
【０１１９】
図１０は各層に２５６０個の隠れユニットを含む３個のリカレント層を有する５層モデル（１００５）と、各層に１７６０個の隠れユニットを含む７個のリカレント層を含む９層モデル（１０１０）との２つのネットワークのスケーリング比較を示す。示される時間は１エポックをトレーニングするために用いられる。当該５層モデルは、大きな行列を使用し且つ計算効率が高いためトレーニングが速く。
【０１２０】
図１０に示すように、トレーニング中のＧＰＵの数が２倍になるため、１エポックのトレーニングにかかる時間が半分に減少し、それにより準線形弱スケーリングを実現する。この実験期間に、各ＧＰＵのミニバッチが６４に維持されるため、ＧＰＵの数が倍増する場合、当該ミニバッチを効果的に倍増させる。大規模なミニバッチにスケーリングする能力があるが、通常、５１２又は１０２４のミニバッチでのトレーニング期間、最適な結果に収束するように、８ＧＰＵ又は１６ＧＰＵを使用する。
【０１２１】
実施形態では、ａｌｌ−ｒｅｄｕｃｅがトレーニングのスケーラビリティに重要なものであるため、リングアルゴリズムが実装されて、より高い性能及びより良い安定性を図る。当該実装によって、ＣＰＵとＧＰＵ間の無関係のコピーを回避し、スケーラビリティの基本となる。実施形態では、ＯｐｅｎＭＰＩは、ＧＰＵＤｉｒｅｃｔを使用して２つの異なるＧＰＵのメモリに存在するバッファを送受信できるｓｍｃｕｄａ伝送が設定されている。２つのＧＰＵが同一ＰＣＩルートコンプレックスにある場合、不要なＣＰＵメモリコピーを回避することができる。隣接する装置間で当該リングを同時に実行する複数のセグメントによって、ツリー構造の相互接続を利用する。実施形態では、ＭＰＩ送受信、及び要素ごとの（element-wise）操作用のＣＵＤＡカーネルによって当該実装を構築する。
【０１２２】
表７はａｌｌ−ｒｅｄｕｃｅ実装の性能とＯｐｅｎＭＰＩ  １．８．５バージョンの性能を比較した。すべての層に２５６０個の隠れユニットを含む５層、３個のリカレント層を有するアーキテクチャを使用し英語データセットでは１エポックに実行するフル・トレーニング・ランのためにａｌｌ−ｒｅｄｕｃｅにかかる時間が報告された。この表では、各ＧＰＵが６４のミニバッチを使用し、より多くのＧＰＵにスケーリングする時に、アルゴリズムミニバッチが拡張される。ノード内（８ＧＰＵ以下）内で通信する場合、当該実装はＯｐｅｎＭＰＩより遥かに高速である。ＧＰＵの数及びノード間の通信量の増加につれて、格差が小さくなるが、当該実装の速度は２〜４倍の高速である。
【０１２３】
【表７】
0006661654.tif 000036
表７：２種の異なるａｌｌ−ｒｅｄｕｃｅ実装の比較
すべての時間は数秒内である。性能ゲインはＯｐｅｎＭＰＩ  ａｌｌ−ｒｅｄｕｃｅ時間とａｌｌ−ｒｅｄｕｃｅ時間との比率である。
【０１２４】
すべてのトレーニング実行では、８ＧＰＵ又は１６ＧＰＵが使用されており、この解決案では、ＯｐｅｎＭＰＩを直接使用することに比べて、ａｌｌ−ｒｅｄｕｃｅ実装の実施形態は、フル・トレーニング・ランのトレーニング速度を２．５倍まで向上させる。従って、ａｌｌ−ｒｅｄｕｃｅの最適化によって、実験に重要な生産性の利点をもたらし、簡単な同期ＳＧＤ方法の実施形態にスケーラビリティを付与する。
【０１２５】
４．２  ＣＴＣ損失関数のＧＰＵ実装
【０１２６】
ＣＴＣ損失関数の計算は、ＲＮＮアーキテクチャでの順方向及び逆伝播の実行より複雑である。最初、ＧＰＵからの活性化がＣＰＵに伝送され、ＣＴＣのＯｐｅｎＭＰ並列実装によって損失関数を計算する。しかし、このような実装はスケーラビリティを大幅に制限しており、その理由は２つある。第１、ＲＮＮ自体の効率及びスケーラビリティが改善されるため、計算上において明らかになる。第２、ＣＰＵとＧＰＵの間で大きな活性化行列を伝送するには、データ並列化によってより多くのプロセッサにスケーリングするように、勾配行列を伝送するのではなく、ＣＴＣの相互接続帯域幅がかかる。
【０１２７】
これを克服するために、ＣＴＣ損失関数のＧＰＵ実装を作成する。並列実装は軽微なリファクタリングによってＣＴＣ計算の依存性を簡素化し、Ｍｏｄｅｒｎ  ＧＰＵからの最適化された並列ソート実装の使用を簡素化する。以下、この並列化を詳しく説明する。
【０１２８】
モデルトレーニング用のＣＴＣ損失関数は、順方向及び逆方向の２つのパスを有し、勾配計算はそれぞれ順方向パスと逆方向パス期間に生じる２つの行列αとβの要素ごとの加算に関わる。最後に、発話ラベル中の文字をキーとして勾配の和を求め、各文字に１つの勾配を生成する。続いて、これら勾配はネットワークを介して逆伝播（back propagation）される。ＣＴＣ損失関数の入力はｓｏｆｔｍａｘ関数により計算された確率であり、当該確率は非常に小さい可能性があるため、より高い数値安定性を図るように対数確率空間で計算する。
【０１２９】
ＣＴＣアルゴリズムの順方向パスはＳ行及びＴ列（Ｓ＝２（Ｌ＋１））を有するα行列を計算する。変数Ｌはラベル中の文字数であり、Ｔは発話中の時間ステップの数である。ＣＴＣアルゴリズムのＣＰＵに基づく実装はミニバッチの各発話ラベルに１つのスレッドを割り当て、発話へのＣＴＣ計算を並列実行する。各スレッドは当該行列の関連エントリーを順に計算する。その効率が非常に低い理由として、２つある。
【０１３０】
第１、ＧＰＵでネットワークの残数が計算されたので、実施形態では、ｓｏｆｔｍａｘ関数の出力をＣＰＵにコピーしてＣＴＣ計算を行う。続いて、実施形態では、ＣＴＣ関数からの勾配行列はＧＰＵにコピーされて逆伝播に用いられる。大規模な文字セットを有する言語、例えば標準中国語については、これら行列が数億のエントリーを有するため、コピーのコストが高い。また、勾配更新とデータ並列を同期させるには、できるだけ多くの相互接続帯域幅が必要であるため、当該コピーは膨大な機会コストを招いてしまう。
【０１３１】
第２、α行列の各列のエントリーを並列に計算することができるが、各列の計算しようとするエントリーの数が列及び発話ラベル中の重複文字の数の両方に依存する。この複雑さによって、ＣＰＵ実装はＳＩＭＤ並列性を最適に使用不能であり、計算効率の低下を招いてしまう。
【０１３２】
一方、この２つの問題を克服するために、ＧＰＵベースＣＴＣ実装を行うことができる。図１１はＣＴＣのＧＰＵ実装の順方向パス及び逆方向パスを示す。灰色の円１１０５は有効値を含み、Ｉを有する円１１１０は−∞を含み、Ｇを有する円１１１５は有限のごみ値を含む。ＢはＣＴＣアルゴリズムが入力発話ラベルに追加する空白文字を示す。最上部の列ラベルは１〜Ｔの異なる時間ステップを示す。
【０１３３】
実装の後ろにある重要な示唆は、α行列の各列の有効エントリーだけでなく、すべての要素を計算することである。ｌｏｇ空間に入力−∞を破棄する確率を追加する特殊の加算関数を使用する場合、図１１では、無効な要素は有限のごみ値（Ｇ）又は−∞（Ｉ）を含む。当該加算は、図１１に示すように、円に入射する矢印は入力であり、結果は円内に格納される。しかし、αとβに要素ごとの加算を行うことで最終勾配を計算する場合、すべての有限のごみ値と別の行列からの対応する−∞値を加算し、その結果、−∞では、ごみ値を効果的に無視して正確な結果を計算する。重要な発見として、αとβの当該要素ごとの加算は簡単な加算であり、加算関数を使用しない。
【０１３４】
図１２は本発明の実施形態に係るＲＮＮモデルトレーニング用のＣＴＣ損失関数のＧＰＵ実装の方法を示す。
【０１３５】
ステップ１２０５では、ＲＮＮモデルは入力発話に対応する予測文字の確率分布をコネクショニスト時間的分類アルゴリズム（ＣＴＣ）層に出力する。
【０１３６】
ステップ１２１０では、グラフィックスプロセシングユニット（ＧＰＵ）に基づくＣＴＣ損失関数アルゴリズムを実装する。ＣＴＣ損失関数は順方向及び逆方向パスを含む。勾配計算はそれぞれ順方向及び逆方向パス期間に生じる２つの行列α（順方向行列）とβ（逆方向行列）の要素ごとの加算に関わる。当該アルゴリズムは２つの行列の処理への並列計算を含む。
【０１３７】
実施形態では、並列計算は以下の方法のうちの１つ以上を含む。
【０１３８】
（ａ）ＭｏｄｅｒｎＧＰＵライブラリを使用してαとβ行列の要素ごとの加算によって生成された行列の各列を取り（１２１５）、当該文字をキーとしてキー−値削減を行って、勾配を計算する。つまり、同一の文字に対応する列の要素がそれらの値を加算する。図１１に示す例では、空白文字Ｂは唯一の重複文字であり、いくつかの列では、例えばｔ＝１又はｔ＝２の場合、有効要素（灰色）と−∞がいずれもそれに対応する。ｌｏｇ空間における加算関数は−∞要素を効果的に無視するため、当該削減過程で有効要素のみを合併する。
【０１３９】
実施形態では、ミニバッチの各発話を計算スレッドブロック（例えばＣＵＤＡスレッドブロック）にマッピングする。列の要素間に依存関係がないため、すべての要素はスレッドブロックにおけるスレッドによって並列計算できる。列間に依存関係があるため、時間ステップｔに対応する列の前に時間ステップｔ＋１に対応する列を計算することができない。β行列を計算する場合、時間ステップｔ＋１に対応する列の前に時間ステップｔに対応する列を計算できず、逆も同様である。従って、この２種の場合、列はスレッドブロックによって順に処理される。
【０１４０】
（ｂ）順方向及び逆方向パスを対応する計算カーネルにマッピングする（１２２０）。実施形態では、計算カーネルはＧＰＵにより実行される計算カーネル、例えばＣＵＤＡカーネルである。これは、列の要素間にデータ依存関係がないため、ストレートフォワードである。逆方向パスを実行するカーネルはさらに当該勾配を計算する。しかし、勾配はラベル値に基づいて和を求めて、各文字をキーとするため、発話ラベル中の重複文字によってデータ依存関係を処理する必要がある。英語等の小さい文字セットを有する言語の場合、発生する確率が極めて高い。重複文字がないとしても、ＣＴＣアルゴリズムはＬ＋１個の空白文字を発話ラベルに追加する。
【０１４１】
実施形態では、当該タスクを実行する時に、高速共有メモリ及びレジスタによって高性能を実現する。順方向及び逆方向カーネルは当該α行列を共有メモリに記憶する。共有メモリは有限のリソースであるため、β行列全体を記憶することができない。しかし、時間の経過につれて、勾配を計算するとともにβ行列の１列を保持し、β行列の列とα行列の対応する列に要素ごとの加算を行うようにすればよい。オンチップメモリの空間の制約があるため、ｓｏｆｔｍａｘ関数の出力がオフチップグローバルメモリから直接読み取られる。
【０１４２】
（ｃ）キー−値ソート（key-value sort）（１２２５）を実行し、ここで、キーは発話ラベル中の文字であり、当該値は発話中の各文字のインデックスである。ソートの後に、連続したセグメントにおいて所定の文字のすべての出現を配列する。各発話を１回ソートすればよい。続いて当該ソートによって生成されるインデックスを使用して各文字の勾配を順に加算する。列ごとに１回加算し、当該発話中のすべての文字に対して並列して当該加算を行う。Ｔ列にキー−値ソートのコストを分担させることは勾配の高速計算を実現するための重要な示唆である。
【０１４３】
浮動小数点演算の不正確性によって、特に超越関数において、ＧＰＵ実装とＣＰＵ実装はビットごとに同一ではない。３．３節で述べた長さに応じて発話ソートを行う技術と組み合わせる場合、両方の実装はモデルを同様にトレーニングするため、実際に妨げにならない。
【０１４４】
表８は２つのＣＴＣ実装の性能を比較する。ＧＰＵ実装は英語ではエポックごとに９５分、標準中国語では２５分を節約する。それによって、トレーニングの全時間を１０〜２０％短縮させ、これは実験の重要な生産性の利点である。
【０１４５】
【表８】
0006661654.tif 000037
表８：２つの異なる実装では１エポックのＣＴＣ損失関数と勾配を計算することにかかる秒単位の時間の比較
加速比はＣＰＵ  ＣＴＣ時間とＧＰＵ  ＣＴＣ時間との比率である。
【０１４６】
４．３  メモリ割り当て
【０１４７】
当該システムの実施形態は、主に可変長発話及び中間結果用の活性化データを記憶するために、ＧＰＵとＣＰＵメモリに対して動的メモリ割り当てを頻繁に行う。個別の割り当ては非常に大きくなる可能性があり、例えば最長の発話の割り当てが１ＧＢ超える。これら非常に大きな割り当てについては、ＣＵＤＡのメモリアロケータさらにｓｔｄ：：ｍａｌｌｏｃはある場合に重大なオーバーヘッドをアプリケーションに導入してｓｔｄ：：ｍａｌｌｏｃを使用する場合に比べて速度が２倍低下すると判明した。それは、ｃｕｄａＭａｌｌｏｃとｓｔｄ：：ｍａｌｌｏｃの両方がオペレーティングシステム又はＧＰＵドライバに非常に大きな割り当てを転送してシステムページテーブルを更新するからである。それは複数のアプリケーション、すべての共有メモリリソースを実行するシステムへの良好な最適化であるが、ページテーブルの編集はあるシステムの実施形態の純粋なオーバーヘッドであり、ノードは単一モデルの実行について専用である。この制限を回避するために、ＣＰＵとＧＰＵの割り当てに特定のメモリアロケータが作成された。当該実装はｊｅｍａｌｌｏｃにおける最下層の共有アロケータの方法を採用し、つまりバディアルゴリズム（buddy algorithm）で連続したメモリブロックからすべての割り当てを切り出す。断片化を回避するために、トレーニング開始時に、予めすべてのＧＰＵメモリを割り当て、当該ブロックから個々の割り当てを細分化する。同様に、ｍｍａｐに転送されたＣＰＵメモリブロックのサイズはｓｔｄ：：ｍａｌｌｏｃより大きくように設置され、１２ＧＢとする。
【０１４８】
ディープリカレントネットワークのトレーニングに必要な大部分のメモリは、ネットワークのパラメータを記憶することではなく、各層により活性化を記憶して逆伝播の使用に供することに用いられる。例えば、９層を有する７０Ｍパラメータネットワークの重みを記憶するには約２８０ＭＢのメモリが必要であるが、６４ビット、７秒の発話のバッチ用の活性化を記憶するには、１．５ＧＢのメモリが必要である。ＴｉｔａｎＸ  ＧＰＵは１２ＧＢのＧＤＤＲ５  ＲＡＭを含み、非常に深いネットワークが長い発話を処理する時にＧＰＵメモリの容量を超える可能性がある。特に発話長さの分布が異常値である時に、この現象は予測不能であり、これが発生する時に致命的な障害を避けることが望ましい。要求されるメモリ割り当てが可用ＧＰＵメモリを超える場合、代わりにｃｕｄａＭａｌｌｏｃＨｏｓｔを使用して、ページによりロックされたＧＰＵメモリがマッピングしたＣＰＵメモリを割り当てる。減少した帯域幅においてＰＣＩｅ上で個々のメモリ処理を転送することで、当該メモリがＧＰＵ直接アクセス可能であり、異常値に遭遇してもモデルが処理を続行することができる。
【０１４９】
高速メモリ割り当てと特殊の場合に可用ＧＰＵメモリをややオーバフローすることを許容するフォールバックメカニズムの組合せによって、システムの実施形態が大幅に簡単、ロバスト、効率的になる。
【０１５０】
５．  トレーニングデータ
【０１５１】
大規模なディープ学習システムは、豊富なラベル付きトレーニングデータを必要とする。公知の可用データセットによってトレーニングを増加する以外、英語音声モデルと標準中国語音声モデル用の広範なトレーニングデータセットを収集する。英語では、表９にまとめられた８００万個の発話を含む１１，９４０時間のラベル付き音声データを使用する。標準中国語システムでは、１１００万個の発話を含む９，４００時間のラベルオーディオを使用する。標準中国語音声データは、標準標準中国語となまりのある標準中国語の朗読音声及び自発的音声のミックスを示す内部百度コーパスを含む。
【０１５２】
【表９】
0006661654.tif 000038
表９：英語でＤＳ２の実施形態をトレーニングするためのデータセットのまとめ
「ウォールストリートジャーナル」（ＷＳＪ）、Ｓｗｉｔｃｈｂｏａｒｄ及びＦｉｓｈｅｒコーパスはいずれも言語データコンソーシアムによって発行される。ＬｉｂｒｉＳｐｅｅｃｈデータセットは無料でオンラインで入手することができる。ほかのデータセットはいずれも内部百度コーパスである。
【０１５３】
５．１  データセットの構造
【０１５４】
いくつかの内部英語（３６００時間）と標準中国語（１，４００時間）データセットは、ノイズ転写を有する長いオーディオクリップとしてキャプチャされた生データから作成される。これらのクリップの長さは数分から数時間であるため、トレーニング期間にＲＮＮにおいてそれをタイムリーに展開することが実際的でない。この問題を解決するために、アライメント、分割及びフィルタリングパイプラインを開発して、短い発話及び少ないエラー転写を含むトレーニングセットを生成する。図１３は本開示の実施形態に係る音声転写トレーニング用のデータ収集の方法を示す。
【０１５５】
パイプラインにおける第１ステップ１３０５では、ＣＴＣでトレーニングされた従来の双方向ＲＮＮモデルを使用して転写をオーディオフレームにアライメントする。所定のオーディオ−転写ペア（ｘ，ｙ）に対して、
（式１３）
0006661654.tif 000039
によってアライメントを最大化する。
【０１５６】
これは、本質的に、ＣＴＣでトレーニングされたＲＮＮモデルを使用して発見されるビタビアライメント（Viterbi alignment）である。式９はアライメント面で整合されたため、ＣＴＣ損失関数が正確なアラインメントを生成することを明示的に求められていない。原則的に、ＣＴＣは一定の遅延後に転写のすべての文字を送信することを選択してもよく、単方向ＲＮＮによって実現可能である。しかし、双方向ＲＮＮでトレーニングする時に、ＣＴＣが正確なアライメントを生成することが発見された。
【０１５７】
実施形態では、アライメントに続いて、分割ステップ１３１０であり、長い一連の連続した空白ラベルに遭遇する場合、通常、無音状態を示すため、オーディオと対応するアライメントされた転写を接合する。連続した空白の数を調整することで、生成した発話の長さを調整することができる。実施形態では、英語音声データの場合、単語境界上で分割するように、スペース記号が空白セグメント内にあることを必要とされる。分割を調整して平均長さが７秒の発話を生成する。
【０１５８】
実施形態では、パイプライン中の次のステップ１３１５では、アライメント失敗によるエラー例を削除してトレーニングデータを取得する。実施形態では、数千個の例のグラウンドトゥルース転写は人間の集団からのものである。実施形態では、グラウンドトゥルースとアライメントされた転写との間の単語レベル編集距離を使用して「良好」又は「不良」ラベルを生成する。実施形態では、開発セットの良好部分の得られたＷＥＲが５％未満になるように、単語レベル編集距離用の閾値を選択する。実施形態では、音声認識装置から生成される所定の入力特徴の「不良」例を正確に予測するように、線形分類器をトレーニングする。
【０１５９】
実施形態では、元のＣＴＣコスト、シーケンス長さで正規化されたＣＴＣコスト、転写物長さで正規化されたＣＴＣコスト、シーケンス長さと転写物長さとの比率、転写中の単語数及び転写中の文字数という特徴は有用であることが判明された。英語データセットについて、フィルタリングパイプラインがＷＥＲを１７％から５％に低下するとともに、５０％以上の例を残しておく。
【０１６０】
５．２  データ増加
【０１６１】
実施形態では、ノイズを追加することでトレーニングデータを増加して、トレーニングデータの有効サイズを増加してノイズあり音声に対するロバスト性を改善する。トレーニングデータはいくつかの固有ノイズを含むが、データ増加によってノイズの数と種類を増加することができる。ノイズの増加が多すぎる場合、最適化が難しくなり、より悪い結果を招き、ノイズの増加が少なすぎる場合、低信号対雑音比の音声に対するシステムのロバスト性が低下してしまう。
【０１６２】
実施形態では、ノイズをランダムに選択した発話の４０％に追加することが良好なバランスとなることが分かる。ノイズ源は、数百時間のノイズを生成するように組み合わせられた数千時間のランダムに選択されたオーディオクリップを含む。
【０１６３】
５．３  スケーリングデータ
【０１６４】
本明細書に使用される英語と標準中国語コーパスは殆ど音声認識文献で一般的に報告されているものよりもかなり大きい。表１０はラベル付きトレーニングデータ量の増加によるＷＥＲへの影響を示す。これは、トレーニング前、全データセットをランダムにサンプリングすることで実現される。各データセットに対して、通常、保持された開発セットのエラーによって早期に停止するが、当該モデルは最大２０エポックまでトレーニングする。なお、ＷＥＲは正規開発（regular development）セットとノイズあり開発セットの両方のべき乗則に従って低下する。トレーニングセットのサイズはそれぞれ１０倍増加し、ＷＥＲは〜４０％低下する。正規データセットとノイズありデータセット間で一定のＷＥＲ（相対〜６０％）差が示され、つまりより多くのデータがこれら２種類の場合に同様に有利である。
【０１６５】
音声システムはより多くのラベル付きトレーニングデータで改善し続けることを意味する。元の時間数の増加と同様に重要なのは実施形態のデータセットでキャプチャされた音声コンテキストの数を増加することであると仮定する。コンテキストは音声を独特させる任意の属性、例えば異なる話者、背景ノイズ、環境及びマイクロフォンハードウェアであってもよい。この要求を検証することに必要なラベルが利用不能であるが、データセット中の話者の関数であるＷＥＲを測定することは、単純無作為抽出（simple random sampling）の場合より大きい相対ゲインを引き起こすことができる。
【０１６６】
【表１０】
0006661654.tif 000040
表１０：トレーニングデータのサイズを増加する場合における正規開発セットとノイズあり開発セットの英語ＷＥＲの比較
当該アーキテクチャは９層のモデルであり、２個の２Ｄ不変畳み込み層及び７個のリカレント層を含み、６８Ｍのパラメータを有する。
【０１６７】
６．  結果
【０１６８】
音声システムの実施形態の実用性をより良好に評価するために、様々なテストセットに対して評価を行った。いくつかの公知の可用基準及び内部で収集されたいくつかのテストセットを使用する。これらのテストセットは、一緒に低信号対雑音比（ノイズありと遠距離）音声、なまりのある音声、朗読音声、自発的音声及び会話音声を含む広範囲の挑戦的な音声環境を表す。
【０１６９】
テストしたすべてのモデルは表９に記載の全英語データセット又は第５部分に記載の全標準中国語データセットにおいて２０エポックトレーニングする。確率的勾配降下とＮｅｓｔｅｒｏｖモーメンタムは、５１２個の発話のミニバッチとともに使用される。勾配のノルム（ｎｏｒｍ）が閾値４００を超える場合、４００に再スケーリングする。トレーニング期間に保持された開発セットにおいてパフォーマンスが最適なモデルを選択して評価する。最も早く収束するように、学習率は［１×１０−４，６×１０−４］から選択され、各エポックの後に、１．２の定数因子によって強固（anneal）される。すべてのテストモデルはいずれも０．９９のモーメンタムを使用する。
【０１７０】
使用する言語モデルは第３．８節に記載の言語モデルである。式１２の復号パラメータは保持された開発セットにおいて調整される。実施形態では、英語デコーダでは、５００のビームサイズを使用し、標準中国語デコーダでは、２００のビームサイズを使用する。
【０１７１】
６．１  英語
【０１７２】
最適なＤＳ２モデル実施形態の一つとして、３個の２Ｄ畳み込み層、７個の双方向リカレント層、１個の完全に接続された出力層及びバッチ正規化を含む１１層を有する。第１層は時間ストライド３でバイグラムに出力する。比較したところ、前のディープ音声モデルの実施形態は、単一双方向リカレント層を含む５層を有し、第１層において時間ステップ２でユニグラムに出力する。ＤＳ２モデルとＤＳ１の両方に対して、いくつかのテストセットに基づいて結果を報告する。２つのモデルは、調整されたり変更されたりしてテストセットにおける任意の音声条件に適応することがない。言語モデルの復号パラメータは保持された開発セットにおいて１回設定される。
【０１７３】
システムの性能をコンテキストに導入するために、音声認識が人間に得意なオーディオ知覚及び言語理解課題であるため、殆どの結果は人間の作業者に対してベンチマークされる。Ａｍａｚｏｎ  Ｍｅｃｈａｎｉｃａｌ  Ｔｕｒｋの従業員を雇ってすべてのテストセットを手動で転写させることで、人間レベルのパフォーマンスの尺度を取得することができる。２つの作業者は通常時間が約５秒の同一オーディオクリップを転写し、２つの転写のうちのより良好な一方が最終的なＷＥＲ計算に用いられる。好きなだけ何度も音楽クリップを自由に聞くことができる。これらの作業者は主に美国からの者であり、転写するごとに平均して２７秒がかかる。手動転写の結果と従来のグラウンドトゥルースを比較してＷＥＲを生成する。従来のグラウンドトゥルース転写は確かに何らかのラベルエラーがあるが、殆ど１％未満である。グラウンドトゥルース転写物と人間転写物との相違は人間レベルのパフォーマンスに対して優れた示唆を与えることを意味する。
【０１７４】
６．１．１  モデルサイズ
【０１７５】
英語音声トレーニングセットのサイズは一般的に使用される音声データセットより遥かに大きい。また、ノイズ合成によってデータを増加させる。最適な汎化誤差を図るために、データのモードを十分にエクスプロイトするようにモデルサイズを増加しなければならないことが予想される。第３．２節では、パラメータの数を決定するとともに、モデルの深さの影響を探索する。その一方、異なるサイズのモデルによる言語システムのパフォーマンスへの影響を示す。各層のサイズのみを変更し、負荷さやほかのアーキテクチャのパラメータを維持する。第３．５節に使用される同じ規則及びノイズあり開発セットをもとにこれらモデルを評価する。
【０１７６】
表１１のモデルは、ストライドが３に増加しバイグラムを出力するという点で表３のモデルと異なる。モデルのサイズが１億個のパラメータまで増加ずるため、ストライドの増加が高速計算とメモリ制約に必要であることが分かる。しかし、このような体制では、ＧＲＵネットワークの性能上の利点は簡単なＲＮＮに比べて減少するように見える。実際、１億個のパラメータを有するネットワークでは、簡単なＲＮＮはＧＲＵネットワークのパフォーマンスより優れ、２個の余分な畳み込み層にも関わらずトレーニングが高速である。
【０１７７】
【表１１】
0006661654.tif 000041
表１１：正規開発セットとノイズあり開発セットの両方でモデルのサイズによる英語音声システムのＷＥＲへの影響の比較
畳み込み層を除き、すべての層における隠れユニットの数量が変化する。ＧＲＵモデルは、１個の２Ｄ不変畳み込み層を含む３層の双方向ＧＲＵを有する。ＲＮＮモデルは、３個の２Ｄ不変畳み込み層を含む７層の双方向単純再帰を有する。これら２種類のモードはいずれも時間ストライド３でバイグラムを出力する。すべてのモデルは約３５００万個のパラメータを含み、ＢａｔｃｈＮｏｒｍとＳｏｒｔａＧｒａｄを使用してトレーニングを行う。
【０１７８】
表１１はシステムの性能が１億個のパラメータまで向上することを示す。すべての英語ＤＳ２のさらなる結果は、汎化誤差が最も低くなるため、同じ１億個のパラメータを有するＲＮＮモデルを報告した。
【０１７９】
【表１２】
0006661654.tif 000042
表１２：３３００個の例を含む内部テストセット上でＤＳ１とＤＳ２のＷＥＲの比較 
テストセットは様々ななまりのある音声、低信号対雑音比の音声、自発的音声及び会話音声を含む。
【０１８０】
表１２から分かるように、様々な音声（挑戦的なアクセント、遠距離由来又は背景ノイズの低信号対雑音比、自発的音声及び会話音声を含む）を含む３３００個の発音の内部百度データセットに基づいて、１個のリカレント層（ＤＳ１）を有する５層のモデルに比べて、１億個のパラメータを有するＲＮＮモデル（ＤＳ２）が４３．４％向上した。
【０１８１】
６．１．２  朗読音声
【０１８２】
高信号対雑音比の朗読音声は、連続音声認識タスク用の最も簡単な大規模語彙とみなすことができる。当該システムは朗読類ニュース「ウォールストリートジャーナル」（ＷＳＪ）からの２つのテストセットである。これらはＬＤＣカタログにおいてＬＤＣ９４Ｓ１３ＢとＬＤＣ９３Ｓ６Ｂの形式で提供されることができる。さらに最近開発したＬｉｂｒｉＶｏｘプロジェクトのオーディオブックで構築されたＬｉｂｒｉＳｐｅｅｃｈコーパスを使用する。
【０１８３】
表１３から分かるように、４つのテストセットのうちの３つでは、ＤＳ２システムは人間より優れ、残りの１つのテストセットでも競争力がある。このような結果に基づいて、領域適応をせずに、一般的な音声システムによってクリーンな朗読音声の面で改善する余地が殆どないと考えられる。
【０１８４】
【表１３】
0006661654.tif 000043
表１３：２つの音声システムと人間レベルのパフォーマンスの朗読音声面でのＷＥＲ比較
【０１８５】
【表１４】
0006661654.tif 000044
表１４：ＤＳ１システムとＤＳ２システムのなまりのある音声面でのＷＥＲ比較
【０１８６】
【表１５】
0006661654.tif 000045
表１５：ＤＳ１とＤＳ２システムのノイズあり音声面での比較
「ＣＨｉＭＥ  ｅｖａｌ  ｃｌｅａｎ」はノイズなしベースラインである。「ＣＨｉＭＥ  ｅｖａｌ  ｒｅａｌ」データセットは実際のノイズの多い環境で収集され、「ＣＨｉＭＥ  ｅｖａｌ  ｓｉｍ」データセットはクリーンな音声に合成された類似するノイズを有する。なお、６個のチャネルのうちの１つだけは各発話のテストに用いられる。
【０１８７】
６．１．３  なまりのある音声
【０１８８】
なまりのある音声源は公知の可用ＶｏｘＦｏｒｇｅデータセットであり、多くの異なるなまりのある話者から読み取られるクリーンな音声を有する。これらのなまり４種類に分けられる。アメリカ−カナダ人とインド人は自明である。英連邦のなまりのある群体は英国、アイルランド、南アフリカ、オーストラリア及びニュージーランドアクセントのなまりのある人である。ヨーロピアンは英語を第１言語として用いていないヨーロッパ諸国からのなまりのある人を含む。１なまりグループあたり１０２４個例、計４０９６個の例を有するＶｏｘＦｏｒｇｅデータがテストセットを構成する。
【０１８９】
これらテストセットに基づくパフォーマンスは、ある程度、トレーニングデータの幅と品質の尺度である。表１４から分かるように、より多くのなまりのあるトレーニングデータを含み且つ当該データを効果的にトレーニングできるアーキテクチャを使用する時に、すべてのなまりの性能が改善される。しかし、インドなまりの場合以外、人間レベルのパフォーマンスはＤＳ２認識システムより高い。
【０１９０】
６．１．４  ノイズあり音声
【０１９１】
最近完成した第三回のＣＨｉＭＥチャレンジ由来の公知の可用テストセットを使用してノイズあり音声についての性能をテストする。当該データセットはＷＳＪテストセット由来の様々なノイズの多い環境（バス、カフェ、通りや歩行領域を含む）で読み取られた１３２０個の発話を含む。ＣｈｉＭＥセットはさらに１３２０個の同一環境でのシミュレートノイズを含み、同一話者がノイズなし環境で生成する同一発話の制御セット（control set）を含む。制御セットとノイズセットの結果の違いはネットワークが様々な実際と合成ノイズ条件を処理する能力を計測することに用いられる。ＣＨｉＭＥオーディオは６個のチャネルを有し、すべてのこれらチャネルによって性能を大幅に向上させることができる。マルチチャネルオーディオが殆どの装置に普及されていないため、すべての結果は単一チャネルを使用する。表１５から分かるように、ＤＳ２はＤＳ１対して程度がかなり改善されたが、ＤＳ２はノイズデータ面では人間レベルのパフォーマンスより悪い。合成によりノイズをクリーンな音声に追加するのではなく、データが実際のノイズの多い環境由来である場合、ＤＳ２と人間レベルパフォーマンスとの相対的な差がより大きくなる。
【０１９２】
６．２  標準中国語
【０１９３】
表１６は、標準中国語音声で、２０００個の発話を含む開発セット及び１８８２個のノイズあり音声の例を含むテストセットをトレーニングするいくつかのアーキテクチャを比較する。当該開発セットは復号パラメータを調整することにも用いられる。表１６から分かるように、２Ｄ不変畳み込み及びＢａｔｃｈＮｏｒｍを有する最も深いモデルは浅いＲＮＮより４８％向上するため、見られる英語システム（複数の双方向リカレント層）で性能を向上させる傾向が続いている。
【０１９４】
最適な標準中国語音声システムは典型的な標準中国語を話す者に比べて、短い音声クエリ（例えば、発話）をより良好に転写することが分かる。人間にベンチマークを行うために、１００個のランダムに選択された発話を使用してテストを行い、１グループにおける５人をすべてラベル付けする。エラー率が３．７％の音声システムに比べて、このグループの人のエラー率が４．０％である。さらに２５０個のランダムに選択された発話を使用して単一人間転写者と音声システムを比較する。この場合、音声システムのパフォーマンスがより優れ、人間のエラー率が９．７％であり、音声モデルのエラー率が５．７％である。
【０１９５】
【表１６】
0006661654.tif 000046
表１６：Ｄｅｅｐ  Ｓｐｅｅｃｈの改善とアーキテクチャの改善の比較
開発セットとテストセットが百度内部コーパスである。表中のすべてのモデルがそれぞれ約８０００万個のパラメータを有する。
【０１９６】
７．  配置
【０１９７】
現実世界のアプリケーションでは通常、音声システムがリアルタイムに又は低い遅延で転写する必要がある。第６．１節で使用されるシステムはこのタスクのためによく設定されていない理由として、いくつかがある。第１、ＲＮＮは複数の双方向層を有するため、発話の第１部分を転写するには、完全な発話をＲＮＮに提供する必要がある。第２、言語モデルを使用して復号する時に、広いビームを使用するため、特に次の可能な文字の数が非常に大きい（約６０００）標準中国語では、ビーム探索のコストが高い可能性がある。第３、第３部分に記載するように、発話全体のパワーが正規化されるため、再び発話全体が事前に利用可能であることを必要とされる。
【０１９８】
トレーニングセットからのいくつかの統計量を使用してパワー正規化問題を解決して、オンライン転写期間に音声入力の適応正規化を実行する。ほかの問題はネットワークと復号手順を変更することで解決でき、それにより、ほぼ同時に大幅に減少した遅延で実行するモデルを生成する。標準中国語システムは、特定の側面での配置がより挑戦的であるために（例えば、大規模な文字セット）、注目が集まっているが、同様な技術は英語にも適用されてもよい。
【０１９９】
当該部分では、遅延とは、発話終了から転写生成前まで測定した音声システムの計算遅延である。この遅延は、インターネットによるデータ伝送を含まず、発話開始から１回目の転写生成前までの遅延を測定しない。音声終了から転写までの遅延は、音声認識を使用するアプリケーションに対して非常に重要であるため、注目が集まっている。
【０２００】
７．１  バッチディスパッチ
【０２０１】
相対的に大規模なディープニューラルネットワークを低遅延で配置するために、配置期間の効率に特別の注意が払われている。殆どのインターネットアプリケーションはデータセンタに到達する時に、要求を個別に処理する。それはストレートフォワード実装に寄与し、そのうち、各要求は１つのスレッドによって管理されることができる。しかし、主に２つの理由から、要求を個別に処理することが計算効率の低下につながる。第１、要求を個別に処理する時に、プロセッサは各要求にネットワークのすべての重みをロードする必要がある。その結果、負荷の算術強度が低下し、計算メモリ帯域幅が制限され、それは、要求を個別に提供する時にオンチップキャッシュを効果的に使用することが難しいからである。第２、１つの要求を分類できる並列処理の数が有限であるため、ＳＩＭＤ又はマルチコア並列処理を活用することが難しい。サンプルごとにＲＮＮを評価することは帯域幅が制限され且つ並列処理が難しい連続行列ベクトル乗算に依存するため、ＲＮＮの配置は特に挑戦的なことである。
【０２０２】
これらの問題を克服するために、バッチディスパッチと呼ばれるバッチスケジューラを作成し、まず、ユーザ要求からのデータストリームをバッチとして組み立て、続いてこれらのバッチを順方向に伝播する。この場合、増加したバッチサイズ間にトレードオフが存在して、効率を向上させ、遅延を増加する。大規模なバッチを組み立てるためにバッファされたユーザの要求が多いほど、ユーザがその結果を待つ時間が長い。その結果、実行可能なバッチ処理の量が制限される。
【０２０３】
当時用意している負荷量にかかわらず、前のバッチが完了すると、直ちに各バッチを処理するという望ましいバッチ処理手法が使用される。実際の計算効率が低いにも関わらず、バッチサイズの最大化を図らないため、当該スケジューリングアルゴリズムは端末ユーザの遅延を低減する面では最適であることが証明された。
【０２０４】
図１４は、単一ＮＶＩＤＩＡ  Ｑｕａｄｒｏ  Ｋ１２００  ＧＰＵで実行される生産システムが、１０〜３０個の同時に起こるユーザ要求を有し、所定サイズのバッチで要求を処理する確率を示す。予想通り、サーバの負荷が高過ぎる場合、バッチ処理の効果が最適であり、負荷の増加につれて、より大きなバッチの処理要求をサポートするように、割り当てがシフトする。しかし、軽負荷は１０個の同時に起こるユーザ要求のみを有する場合でも、システムは少なくとも２つのサンプルでバッチごとに半分以上の負荷を実行する。
【０２０５】
図１５は本開示の実施形態に係るサーバ負荷関数としての中央値及び９８パーセンタイル遅延を示す。図１５から分かるように、１０個の同時ストリーム（concurrent stream）がロードされる場合、システムは４４  ｍｓの中央値遅延を実現し、９８パーセンタイル遅延が７０  ｍｓである。サーバの負荷の増加につれて、バッチスケジューラはより高効率のバッチにシフトして低遅延を維持する。バッチ処理スケジューリングによって高スループットと低遅延でこれらの大規模モデルを配置することを可能にすることが分かる。
【０２０６】
以下、一般的なケース及び挑戦的なケースに用いられる例示的な実装を示し、固定長又は可変長のデータパケットの順序付けられたシーケンスを含むストリーミング入力を分類するとともに遅延制約を満たすことに関する。実施形態では、非ストリーミング入力は同様に各データパケットを（微小）ストリームの最後のデータパケットとして指定して処理する。
【０２０７】
本明細書に使用される用語「要求」、「ユーザ要求」、「データ処理要求」、「ストリーム」、「ストリーミング入力」及び「データストリーム」は交換可能に使用される。各ストリームが単一ユーザに関連付けられているため、用語「ユーザ」が「ストリーム」に関連付けられている。用語「ブロック」とは、ニューラルネットワークの入力サイズに関連付けられるデータのサイズである。用語「データパケット」はネットワークを介して伝送される１組のデータとして理解すべきである。用語「データパケット」は、本発明の実施形態をイーサネット（登録商標）又は第３層のネットワークに限定するものではない。用語「データパケット」、「フレーム」、「データ」、「データグラム」、「セル」又は「データトラフィック」は交換可能に使用されてもよく、且つ１組のデータを示すほかの用語で置換されてもよい。
【０２０８】
ニューラルネットワークモデルを使用してデータを処理すると仮定したが、当業者は、ほかの技術、モデルやネットワークによって本開示の実施形態に係るデータを処理してもよいと理解できる。
【０２０９】
「データ」とは、様々なタイプの入力データのうちのいずれかである。例えば、音声環境で発話を転写する時に、各データパケットは数ミリ秒（例えば、８０ｍｓ）のオーディオを示す。ビデオコンテキストでは、各データパケットは現在の画像と前の画像との違いを示す。画像認識では、各データパケットは完全な画像の１つのタイルを示すことができる。
【０２１０】
実施形態では、遅延制約は、ストリームにおける最後のデータパケットの到達後の一定時間内に処理する１つの完全のストリームを指示する。これは、
Ｔ全ストリーム処理＜Ｔ最後のデータパケットの到達＋Δ許容遅延
のように表してもよい。
【０２１１】
ここで、Ｔ全ストリーム処理はストリーム全体の処理を完了すべき時刻、Ｔ最後のデータパケットの到達は最後のデータパケットの到達時刻、Δ許容遅延はアプリケーションに依存する許容遅延。オンライン設定では、遅延は通常、非常に重要であり、Δ許容遅延は１秒未満になる可能性がある。
【０２１２】
実施形態では、１つの目標は、遅延制約（例えば、高スループットを維持する）を満たすとともに、できるだけ多くのストリームを同時に処理することである。これと比較して、従来方法は、低遅延を確保しながら柔軟性を維持するように、各ストリームを個別に単独で処理する。
【０２１３】
本開示の実施形態では、複数の要求がパイプラインを介してニューラルネットワークを実現する計算エンジンに同時に伝送されるモデル／アーキテクチャが採用されている。実施形態では、ニューラルネットワークが単一ユーザ用のデータへの処理と類似する方式で複数の同時ユーザのデータを処理できるように、バッチ処理方法が使用される。実施形態では、バッチプロデューサーが複数のユーザに関連付けられたデータパケットを含むデータ処理要求を（例えば、非同期方式で）受信する時に、バッチ処理方法を開始する。データパケットはユーザに関連付けられたストリーム中に到達することができる。データパケットは、例えば、複数のユーザからのデータストリームを負荷分散するロードバランサを介して到達することができる。実施形態では、データパケットの到達時間は未知であり、且つアプリケーションレベル（例えば遅延制約、計算エンジンの性能特徴等）により制限される可能性がある。
【０２１４】
実施形態では、バッチプロデューサーは要求からのデータを、アプリケーションレベル制約内で、１つ以上の要求（例えば、状態要求）からのデータを含むバッチに動的に組み立てる。
【０２１５】
実施形態では、メモリに１回ロードし及び／又はメモリから１回ロードして計算遅延要求を減少させて、データストリームのスループットを増加する普通のニューラルネットワーク（例えば、オーディオストリームにおいて分類を実行するようにする）を使用して、バッチを処理する。
【０２１６】
実施形態では、例えば分類結果等の結果を出力する。従って、メモリ帯域幅を節約し、計算効率を向上させる。
【０２１７】
実施形態では、バッチプロデューサーは単一スレッドで実行され、以下のように動作する。
ａ）当該データを前処理する。
ｂ）前処理したデータを多くのユーザに共有されるバッチ行列にパッキングする。
ｃ）当該バッチ行列を計算エンジンに転送する。
【０２１８】
実施形態では、バッチプロデューサーは３種類のデータ構造を保持する。  １）各ユーザの入力バッファ；
２）各ユーザの前処理バッファ；
３）バッチのリンクリスト（即ち、ニューラルネットワークへの行列入力）、バッチリストとして表されてもよい。例えば音声又はビデオ処理のアプリケーションでは、ニューラルネットワークは、計算エンジンが正確な出力を生成することを確保するように、所定の順序でバッチを処理する。実施形態では、バッチは２つ以上のユーザ間に共有される。実施形態では、前処理を実行しなくてもよい。
【０２１９】
以下、本開示の実施形態に係る前処理を使用した例示的なバッチ処理方法を説明する。実施形態では、特定のユーザのデータパケットがバッチプロデューサーに到達すると、バッチ処理方法を開始する。実施形態では、データは当該ユーザの入力バッファにコピーされ、続いて、当該データパケットを破棄してもよい。実施形態では、当該入力バッファが前処理される。前処理の例として、オーディオ信号からスペクトログラムへの変換及びほかの処理が挙げられる。実施形態では、前処理を実行しなくてもよい。
【０２２０】
実施形態では、前処理が完了すると、結果が当該ユーザの前処理バッファに格納される。いくつかのアプリケーションでは、前処理はデータブロックにおいて行われる可能性がある。例えば、音声システムは常に、固定サイズの音声入力ウィンドウのスペクトログラムを使用する。その結果、実施形態では、ユーザのデータパケットは将来のデータパケットからのデータなしで前処理されることを確保できないことがある。
【０２２１】
実施形態では、前処理したバッファが少なくともニューラルネットワークに必要な入力と同じサイズである場合、１つのブロック（そのサイズがニューラルネットワークの入力サイズにより決定される）を、前処理したバッファからバッチリストにおける次の合格バッチに伝送する。実施形態では、合格とされる（to be eligible）バッチについては、現在ユーザが処理しているデータを含むべきではない。実施形態では、バッチのサイズを制限して全バッチも不合格とされる。画像又はビデオ認識アプリケーションでは、ブロックは完全な画像を示すことができ、音声認識アプリケーションでは、ブロックは固定長の入力スペクトログラムを示すことができ。
【０２２２】
実施形態では、バッチプロデューサーは、すべてのアクティブユーザをループしてバッチを充填する。
【０２２３】
実施形態では、続いて、バッチプロデューサーは１つ以上のバッチを計算エンジンに送信するか否かを決定する。実施形態では、いくつかの方式によって決定し、即ち、  １）簡単な方法の１つとして、計算エンジンがビジーでない場合のみ、１つのバッチを送信する。
２）別のより構造化された方法として、
ａ）当該バッチはユーザのデータを含み、当該ユーザの最後のデータパケットが既に到達し、計算エンジンの処理時間とバッチプロデューサーによる追加反復に必要な時間との和が遅延制約を超える、
ｂ）バッチバッチリストが十分に完全であり、任意のアクティブユーザの最後のデータパケットが現在到達した場合、遅延制約を満たすことができない
という条件のいずれかを満たす場合、１つのバッチを送信する。
【０２２４】
実施形態では、後者の方法を実施するために、システムの異なる部分の処理時間に合理的かつ正確な閾値を設定する必要がある。効率をより高めるために、実施形態では、バッチプロデューサーは、遅延制約を満たすように高い優先度及び低い計算効率で実行する遅延感度の高いバッチと、大部分の計算作業を処理する、より大きいがより効率的なスループット指向のバッチとを組み立てる。実施形態では、バッチプロデューサーはプロセスが終了するまでループを続ける。
【０２２５】
バッチディスパッチを使用するバッチ処理のさらなる検討は、２０１６年７月１３日に提出する名称が「効率的なニューラルネットワークを配置するためのシステム及び方法」の共通譲渡された米国特許出願第１５／２０９，４９９号を参照し、当該願では、発明者として、Ｃｈｒｉｓｔｏｐｈｅｒ  Ｆｏｕｇｎｅｒ及びＢｒｙａｎ  Ｃａｔａｎｚａｒｏが記載されている。上記特許文献の全内容は引用によって本明細書に組み込まれている。
【０２２６】
７．２  配置を最適化した行列乗算カーネル
【０２２７】
半精度（１６ビット）浮動小数点演算を使用してモデルを配置することは、認識精度を測定可能に変更することができないことが分かる。配置は、ネットワークの重みをあらためて更新する必要がないため、数値精度への感度がトレーニングより遥かに低い。半精度演算を使用することで、メモリ空間と帯域幅を節約し、配置に非常に有利である。ＲＮＮ評価は加重行列をキャッシング及びストリーミングするコストに依存するからである。
【０２２８】
第７．１節に示すように、配置期間のバッチサイズはトレーニング中のバッチサイズより遥かに小さい。標準ＢＬＡＳライブラリはこのバッチサイズでは非効率的であることが分かる。この問題を克服するために、半精度行列−行列乗算カーネルを作成する。１０個の同期ストリームについて、９０％超えのバッチがＮ≦４の場合に適用することができ、行列乗算が帯域幅により制限される。可能な限り最も広いベクトル負荷を使用して帯域幅を最大化するとともに、ロード後の転置を回避するように、行列Ａが記憶されて転置される。各ｗａｒｐはすべてのＮ個の出力の列に対して４行の出力を計算する。なお、Ｎ≦４の場合、行列ＢはＬ１バッファに完全に適する。当該案によって、Ｎ≦４のピーク帯域幅の９０％を実現したが、Ｌ１バッファへの行列Ｂのフィッティングが停止する場合、大きなＮに対して効がなくなり始める。それにもかかわらず、Ｎ＝１０になるまで従来のライブラリより高い性能を継続的に提供する。
【０２２９】
図１４に示すように、配置に使用されるバッチサイズの全範囲にわたって、配置カーネルがＫ１２００  ＧＰＵ上のＮｅｒｖａｎａシステムより高い計算スループットを維持することを示す。カーネルはＡｘ＝ｂ（Ａはサイズが２５６０×２５６０の行列、ｘはサイズが２５６０×バッチサイズの行列であり、バッチサイズ∈［１，１０］である）の計算に用いられる。すべての行列は半精度形式である。カーネルとＮｅｒｖａｎａカーネルはＮＶＩＤＩＡ  ＣＵＢＬＡＳ  ７．０バージョンより大幅に高速であり、本明細書では詳細に説明する。
【０２３０】
７．３  ビーム探索
【０２３１】
ビーム探索の実行は、ｎグラム言語モデルにおける重複ルックアップに関し、その大部分はメモリからのキャッシュされていない読み取りに変換されることができる。ビーム探索の直接的な実装は、各ビームの各時間ステップに１つのルックアップテーブルを割り当てることを意味する。標準中国語では、ストライド４０ｍｓあたりの音声データが１Ｍのルックアップテーブルを超えることになり、配置にとって遅すぎる。この問題を解決するために、ヒューリスティックを使用してビーム探索をさらにプルーニングする。すべての文字をビームの可能な追加とみなすのではなく、累積確率が少なくともｐの文字の最小数のみを考慮する。実際には、ｐ＝０．９９の効果が良好であることが分かる。また、当該数は４０個の文字以下に制限される。標準中国語モデルのルックアップ時間を１５０倍短縮し、ＣＥＲへの影響が殆どない（相対的に０．１〜０．３％）。
【０２３２】
７．４  結果
【０２３３】
当該システムは、大幅な精度を犠牲することなく、低遅延と高スループットで配置可能である。２０００個の発話の保持セット（held-out set）では、研究システムの文字誤り率は５．８１であるが、配置されたシステムの文字誤り率は６．１０である。配置されたシステムの相対劣化はわずかな５％である。これを実現するために、配置遅延の低いニューラルネットワークアーキテクチャを採用し、ネットワークの精度を１６ビットに低減させ、バッチスケジューラを構築してＲＮＮを効率的に評価し、また、簡単なヒューリスティックによってビーム探索のコストを低減させることが分かる。当該モデルは２５６０個の隠れユニットを有する５個の順方向のみの（forward-only）リカレント層、１個のτ＝１９の行畳み込み層（第３．７節参照）、及び２５６０個の隠れユニットを有する１個の完全接続層を含む。これらの技術によって、低コストでＤｅｅｐ  Ｓｐｅｅｃｈを対話式アプリケーションに配置することを可能にする。
【０２３４】
８．  スケーラビリティの改善
【０２３５】
８．１  ノード及びクラスタのアーキテクチャ
【０２３６】
ソフトウェアスタックは２個のＩｎｔｅｌ  ＣＰＵ及び８個のＮＶＩＤＩＡ  Ｔｉｔａｎ  Ｘ  ＧＰＵから構築された計算高密度ノードにおいて実行され、５３  ｔｅｒａＦＬＯＰ／秒の単精度計算スループットを有する。各ノードはさらに３８４ＧＢのＣＰＵメモリ、及びＲＡＩＤ−０配置における２つの４ＴＢハードディスクから構築される８ＴＢ記憶容量を有する。ＣＰＵメモリは、回転ディスクの低帯域幅と高遅延に直接晒されないように、入力データをバッファする。英語と標準中国語データセットは各ノードのローカルハードディスクでコピーされる。ネットワークによる重み更新を可能にするとともに、集中型ファイルサーバに依存せざるをえないことを回避することができる。
【０２３７】
図１７はノードのうちの１つの概略図を示し、同一ＰＣＩルート複合体により接続されるすべての装置が点線ボックスに包まれる。ＧＰＵＤｉｒｅｃｔは、ＧＰＵ間の通信を加速するように、ルート複合体におけるＧＰＵの数の最大化を試みた。それにより、効率的な通信メカニズムを使用して、ＧＰＵ間で勾配行列を伝送することを可能にする。
【０２３８】
クラスタ中のすべてのノードはＦＤＲ（Ｆｏｕｒｔｅｅｎ  Ｄａｔａ  Ｒａｔｅ、１４データレート）Ｉｎｆｉｎｉｂａｎｄによって接続され、主に逆伝播中の勾配伝送に用いられる。
【０２３９】
８．２  ＣＴＣ損失関数のＧＰＵ実装
【０２４０】
実施形態では、スケーラビリティの向上の一つは、ＣＴＣ損失関数のＧＰＵ実装の実施形態を含む。これらの実施形態は上記の第４．２節で説明された。
【０２４１】
９．  結論
【０２４２】
エンドツーエンドディープ学習はデータ及び計算の増加につれて音声認識システムを継続的に改善するための興奮させるアイディアを提案する。実際、結果として、第２世代ディープ音声の実施形態はより多くのデータ及びより大規模なモデルを利用することで、人間の作業者との転写性能の差を著しく縮小したことが分かる。また、当該方法は汎用性が非常に高いため、新たな言語に迅速に応用できると表明された。２種類の異なる言語（英語と標準中国語）に高性能認識装置を構築し、関連言語の専門知識が殆ど要らない。最後に、実施形態では、ＧＰＵサーバ上でユーザ要求をバッチ処理することで当該方法を効率的に配置して、さらにユーザにエンドツーエンドのディープ学習技術を提供することが分かる。
【０２４３】
実施形態では、これらの結果を実現するために、様々なネットワークアーキテクチャを検討し、いくつかの有効な技術を開発し、例による方式は、ＳｏｒｔａＧｒａｄとＢａｔｃｈ正規化によって数値最適化を強化し、英語に対してより大きなストライドでバイグラム出力を使用してＲＮＮを評価し、双方向モデルと単方向モデルの両方で探索を行うことを含む。この探索は、最適化された高性能コンピューティングインスピレーショントレーニングシステムによってサポートされ、当該システムは、数日間に大規模なデータセットで新たなフルスケールモデルをトレーニングすることを可能にする。
【０２４４】
全体として、結果が音声認識用のエンドツーエンドディープ学習方法のいくつかの設定での価値を確認して例示した。主にアプリケーションと無関係なディープ学習技術であるため、システムは人間に匹敵していない場合、その差が迅速に低下した。これらの技術はスケーリングが継続するため、殆どの場面で単一音声システムのパフォーマンスが人間を超えることが間もなく実現される。
【０２４５】
図１８は本発明の実施形態に係るコンピューティングシステム１８００のブロック図を示す。なお、コンピューティングシステムは異なって構成され異なる構成要素を備えると理解するが、システム１８００に示される機能はコンピューティングシステムの様々な実施形態をサポートするように動作してもよい。図１８に示すように、システム１８００はコンピューティングリソースを提供しコンピュータを制御する１つ又は複数の中央処理装置（ＣＰＵ）１８０１を備える。ＣＰＵ１８０１はマイクロプロセッサ等によって実施されてもよく、数学的計算用の１つ以上のグラフィックスプロセシングユニット（ＧＰＵ）１８１７及び／又は浮動小数点コプロセッサをさらに備えてもよい。システム１８００は、システムメモリ１８０２をさらに備えてもよく、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）又はそれらの組合せであってもよい。
【０２４６】
図１８に示すように、複数のコントローラ及び周辺装置をさらに提供する。入力コントローラ１８０３は、例えばキーボード、マウス又はスタイラスの様々な入力装置１８０４に接続可能なインターフェースを表す。スキャナ１８０６と通信するスキャナコントローラ１８０５をさらに備えてもよい。システム１８００は１つ以上の記憶装置１８０８にインターフェース接続される記憶コントローラ１８０７をさらに備えてもよく、各記憶装置は、例えば磁気テープや磁気ディスクの記憶媒体、又はシステム、ユーティリティ及びアプリケーションを実行するための命令のプログラムを記録するための光媒体を含み、システム、ユーティリティ及びアプリケーションを実行するための命令のプログラムは本発明の各態様を実現するプログラムの実施形態を含んでもよい。記憶装置１８０８はさらに本発明において既に処理されたデータ及び処理しようとするデータを記憶してもよい。システム１８００は、陰極線管（ＣＲＴ）、薄膜トランジスタ（ＴＦＴ）ディスプレイ又はほかのタイプのディスプレイのような表示装置１８１１に接続されるインターフェースを提供する表示コントローラ１８０９をさらに備えてもよい。コンピューティングシステム１８００は、プリンタ１８１３と通信するプリンタコントローラ１８１２をさらに備えてもよい。通信コントローラ１８１４は１つ以上の通信装置１８１５とインターフェース接続可能であり、それにより、システム１８００がインターネット、イーサネット（登録商標）クラウド、ファイバーチャネル・オーバー・イーサネット（登録商標）（ＦＣｏＥ）／データセンタブリッジ（ＤＣＢ）クラウド、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、ストレージエリアネットワーク（ＳＡＮ）等の様々なネットワークのうちのいずれか又は赤外線信号を含む任意の適切な電磁波キャリア信号によって遠隔装置に接続することを可能にする。
【０２４７】
図示するシステムでは、すべての主なシステム構成要素は、バス１８１６に接続されてもよく、バス１８１６は１つ以上の物理バスを表してもよい。しかし、様々なシステム構成要素は互いに物理的に近接してもよく物理的に近接していなくてもよい。例えば、入力データ及び／又は出力データは１つの物理的位置から別の物理的位置に遠隔送信される。また、ネットワークによって、遠隔位置（例えば、サーバ）から本発明の各態様を実現するプログラムにアクセスするようにしてもよい。このようなデータ及び／又はプログラムは様々な機械可読媒体のうちのいずれかによって伝送されてもよく、機械可読媒体は、ハードディスク、フロッピーや磁気テープのような磁気媒体、ＣＤ−ＲＯＭやホログラフィック装置のような光媒体、光磁気媒体、及び特別にプログラムコードを記憶又は記憶して実行するように構成されるハードウェア装置（例えば特定用途向け集積回路（ＡＳＩＣ）、プログラマブルロジックデバイス（ＰＬＤ）、フラッシュメモリデバイス及びＲＯＭやＲＡＭデバイス）を含むが、それらに限定されない。
【０２４８】
本発明の実施形態は、１つ以上のプロセッサ又は処理ユニットにステップを実行させるように指示するための命令を含む１つ以上の非一時的コンピュータ可読媒体で符号化してもよい。なお、１つ以上の非一時的コンピュータ可読媒体は揮発性及び非揮発性メモリを含むべきである。なお、ハードウェア実装又はソフトウェア／ハードウェア実装を含む代替の実装が可能である。ハードウェア実装の機能はＡＳＩＣ、プログラマブルアレイ、デジタル信号処理回路等によって実現されてもよい。従って、請求項のいずれかに記載の用語「手段（ｍｅａｎｓ）」は、ソフトウェア及びハードウェア実装を含むことを意味する。同様に、本明細書に使用される用語「コンピュータ可読媒体」は、その上に具現化された命令のプログラムを有するソフトウェア及び／又はハードウェア又はそれらの組合せを含む。これらの代替的な実施形態を考慮すると、図面及び添付の明細書は、当業者がプログラムコード（即ち、ソフトウェア）を作成し及び／又は回路（即ち、ハードウェア）を製造して所要の処理を実行することに必要な機能情報を提供すると理解すべきである。
【０２４９】
なお、本発明の実施形態は、様々なコンピュータ実装の操作を実行するためのコンピュータコードを有する非一時的な有形コンピュータ可読媒体を有するコンピュータ製品にさらに関してもよい。当該媒体とコンピュータコードは本発明の目的のために特別に設計され構築されるものであってもよく、当業者の公知のものや利用可能なものであってもよい。有形コンピュータ可読媒体の例は、ハードディスク、フロッピーや磁気テープのような磁気媒体、ＣＤ−ＲＯＭやホログラフィック装置のような光媒体、光磁気媒体、及び特別にプログラムコードを記憶又は記憶して実行するように構成される（特定用途向け集積回路（ＡＳＩＣ）、プログラマブルロジックデバイス（ＰＬＤ）、フラッシュメモリデバイス及びＲＯＭやＲＡＭデバイス）ハードウェア装置を含むが、それらに限定されない。コンピュータコードの例は、コンパイラによって生成される機械コード、及びコンピュータがインタープリタで実行したより高水準コードを有するファイルを含む。本発明の実施形態は全体的又は部分的に機械実行可能命令として実現されてもよく、当該命令が処理装置により実行されるプログラムモジュール内にあってもよい。プログラムモジュールの例は、ライブラリ、プログラム、ルーチン、オブジェクト、要素及びデータ構造を含む。分散型コンピューティング環境では、プログラムモジュールはローカル、遠隔地又は両方の設定環境に物理的に配置されてもよい。
【０２５０】
当業者であれば、コンピューティングシステム又はプログラミング言語は本発明の実施に極めて重要ではないと理解すべきである。また、上記複数の要素は物理的及び／又は機能的にサブモジュールに区画されてもよく一体に組み合わせられてもよいと理解すべきである。
【０２５１】
当業者であれば、上記の例と実施形態は例示的であり、本発明の範囲を限定するものではないと理解すべきである。本明細書及び図面に基づいて当業者に明らかなすべての置換、強化、同等物、組合せや改良は本発明の趣旨及び範囲内に属する。
【０２５２】
なお、ついている請求項の要素は、複数の依存関係、構成及び組合せを有するように、異なって配置されてもよい。例えば、実施形態では、各請求項の主題がほかの請求項と組み合わせられてもよい。
【図１】
0006661654.tif 000047
【図２】
0006661654.tif 000048
【図３】
0006661654.tif 000049
【図４】
0006661654.tif 000050
【図５】
0006661654.tif 000051
【図６】
0006661654.tif 000052
【図７】
0006661654.tif 000053
【図８】
0006661654.tif 000054
【図９】
0006661654.tif 000055
【図１０】
0006661654.tif 000056
【図１１】
0006661654.tif 000057
【図１２】
0006661654.tif 000058
【図１３】
0006661654.tif 000059
【図１４】
0006661654.tif 000060
【図１５】
0006661654.tif 000061
【図１６】
0006661654.tif 000062
【図１７】
0006661654.tif 000063
【図１８】
0006661654.tif 000064