(57)【特許請求の範囲】
【請求項１】
コンピューター実行可能命令が具体化されている１つ以上のコンピューター読み取り可能記憶媒体であって、プロセッサーとメモリーとを有するコンピューティング・システムによって前記コンピューター実行可能命令が実行されると、前記コンピューティング・システムに、コンピューティング・デバイス上におけるデプロイメントのためにＤＮＮクラシファイアを生成する方法を実行させ、前記方法が、
第１ＤＮＮモデルを教師ＤＮＮモデルとして決定するステップと、
第２ＤＮＮモデルを生徒ＤＮＮモデルとして初期化するステップと、
１組のラベルなし訓練データーを受け取るステップと、
ある回数の繰り返しにおいて、
（ａ）前記１組の訓練データーの内の部分集合を使用して、前記教師ＤＮＮモデルの教師出力分布と、前記生徒ＤＮＮモデルの生徒出力分布とを判定するステップと、
（ｂ）前記生徒出力分布対前記教師出力分布の評価を判定するステップであって、前記評価が差を含む、ステップと、
（ｃ）前記評価に基づいて、前記差を最小化するように前記生徒ＤＮＮモデルを更新するステップと、
前記生徒ＤＮＮモデルを訓練済みＤＮＮクラシファイアとして供給するステップであって、前記ある回数の繰り返しが、判定された前記評価に基づく、ステップと、
を含む、１つ以上のコンピューター読み取り可能記憶媒体。
【請求項２】
請求項１に記載の１つ以上のコンピューター読み取り可能記憶媒体において、前記生徒出力分布対前記教師出力分布の評価を判定するステップが、前記生徒出力分布と前記教師出力分布との間の収束を判定するステップを含み、前記ある回数の繰り返しが、前記収束が判定するまでにステップ（ａ）から（ｃ）までを実行した回数である、１つ以上のコンピューター読み取り可能記憶媒体。
【請求項３】
請求項１に記載の１つ以上のコンピューター読み取り可能記憶媒体において、前記生徒出力分布対前記教師出力分布の評価を判定するために、カルバック・ライブラー発散を使用し、前記判定された評価が誤差信号を含み、前記生徒ＤＮＮモデルが、前記誤差信号に基づいて、逆伝搬を使用して更新され、前記教師出力分布および前記生徒出力分布が、前記部分集合のデーターを使用して、順方向伝搬によって判定される、１つ以上のコンピューター読み取り可能記憶媒体。
【請求項４】
請求項１に記載の１つ以上のコンピューター読み取り可能記憶媒体において、前記第１ＤＮＮモデルが集合ＤＮＮモデルを含み、前記第２ＤＮＮモデルが、前記第１ＤＮＮモデルに基づいて初期化されるか、またはランダムな重み値によって初期化され、前記第２ＤＮＮモデルがＣＤ−ＤＮＮ−ＨＭＭフレームワークの一部である、１つ以上のコンピューター読み取り可能記憶媒体。
【請求項５】
請求項１に記載の１つ以上のコンピューター読み取り可能記憶媒体において、前記１組の訓練データーの内の前記部分集合が、ミニバッチを含み、前記１組の訓練データーの全てが使用され終えるまで、前記ある回数の繰り返しの各繰り返しに、データーの異なるミニバッチが使用される、１つ以上のコンピューター読み取り可能記憶媒体。
【請求項６】
クライアント・デバイス上にデプロイされ、請求項１に記載のコンピューター実行可能命令を前記コンピューティング・システムによって実行することによって生成される、ＤＮＮクラシファイア。
【請求項７】
コンピューター・システム上におけるクラシファイアとしてのデプロイメントのために訓練済みＤＮＮモデルを生成するためのコンピューター実装方法であって、
集合ＤＮＮモデルにおけるサブＤＮＮとして含ませる複数のＤＮＮモデルを決定するステップと、
前記サブＤＮＮを使用して前記集合ＤＮＮモデルを組み立てることによって、複数のサブＤＮＮの各々を集合メンバーとするステップと、
前記集合ＤＮＮモデルを訓練するステップと、
生徒ＤＮＮモデルを初期化するステップと、
前記訓練済み集合ＤＮＮモデルを教師ＤＮＮとして使用して、前記生徒ＤＮＮモデルを訓練するステップと、
前記生徒ＤＮＮモデルをＤＮＮクラシファイアとして供給するステップと、
を含む、コンピューター実装方法。
【請求項８】
請求項７に記載のコンピューター実装方法において、集合ＤＮＮモデルにおけるサブＤＮＮとして含ませる前記複数のＤＮＮモデルが、前記コンピューター・システム上にデプロイされる前記ＤＮＮクラシファイアに意図される用途に基づいて決定され、前記サブＤＮＮが、（ａ）異なる非線形ユニットを有するＤＮＮモデル、（ｂ）異なる構造タイプを有するＤＮＮモデル、（ｃ）異なる訓練計画にしたがって訓練されたＤＮＮモデル、（ｄ）異なるトポロジーを有するＤＮＮモデル、または（ｅ）異なるデーターによって訓練されたＤＮＮモデルを含む、コンピューター実装方法。
【請求項９】
請求項７に記載のコンピューター実装方法において、前記集合ＤＮＮモデルを訓練するステップが、交差エントロピー基準、シーケンシャル基準、最少二乗誤差基準、または非負制約がある最少二乗誤差基準を使用して、学習済みの係数の組み合わせによって前記集合メンバーの出力分布を組み合わせるステップを含む、コンピューター実装方法。
【請求項１０】
請求項７に記載のコンピューター実装方法において、前記生徒ＤＮＮモデルを訓練するステップが、
（ａ）ラベルなし訓練データーのミニバッチを受け取るステップと、
（ｂ）ミニバッチを使用して、前記生徒ＤＮＮモデルおよび前記教師ＤＮＮモデルにおける前記ミニバッチの順方向伝搬によって、前記教師ＤＮＮモデルの教師出力分布と、前記生徒ＤＮＮモデルの生徒出力分布とを判定するステップと、
（ｃ）前記生徒出力分布対前記教師出力分布の評価を判定するステップであて、前記評価が誤差信号を含む、ステップと、
（ｄ）前記評価に基づいて、前記生徒出力分布および前記教師出力分布が収束を達成したか否か判定するステップであって、
（ｉ）前記生徒出力分布および前記教師出力分布が収束したと判定された場合、前記生徒ＤＮＮモデルをクライアント・デバイス上におけるデプロイメントのために供給するステップと、
（ｉｉ）前記生徒出力分布および前記教師出力分布が収束していないと判定された場合、判定された前記評価に基づいて、前記生徒ＤＮＮモデルを更新し、ステップ（ａ）から（ｄ）までを繰り返すステップと、
を含む、コンピューター実装方法。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  ディープ・ニューラル・ネットワーク（ＤＮＮ）は、音声認識および画像処理を含む複雑な信号処理の用途に対して著しい精度の向上を約束する。ＤＮＮのパワーは、大多数のパラメーターを有する、その深く広いネットワーク構造から来る。例えば、文脈依存ディープ・ニューラル・ネットワーク隠れマルコフ・モデル（ＣＤ−ＤＮＮ−ＨＭＭ）は、多くの自動音声認識（ＡＳＲ）タスクにおいて、従来のガウス混合モデル（ＣＤ−ＧＭＭ−ＨＭＭ）を凌駕することが示されている。しかしながら、ＣＤ−ＤＮＮ−ＨＭＭの卓越した性能には、ランタイム・コストの大幅な増大が伴う。何故なら、ＤＮＮは従前のシステムよりも遙かに多いパラメーターを使用するからである。つまり、ＣＤ−ＤＮＮ−ＨＭＭは、サーバー、または広大な計算および記憶リソースを有する他のコンピューター・システム上においては高い精度でデプロイされて(deploy)いるが、スマートフォン、ウェアラブル・デバイス、または娯楽システムのような、計算および記憶リソースが限られているデバイス上にＤＮＮをデプロイすることが課題になる。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
[0002]  しかし、このようなデバイスの普及(prevalence)、そしてＤＮＮがＡＳＲおよび画像処理のような用途に対してもたらす潜在的な恩恵を想定すると、業界はＤＮＮをこれらのデバイス上に有することに強い関心を有する。この問題に対する一般的な手法は、例えば、隠れレイヤーにおけるノードの数を減らし、更に出力レイヤーにおけるセノン・ターゲット(senone target)の数を減らすことによって、ＤＮＮの次元を減らすことである。しかし、この手法はＤＮＮモデルのサイズを縮小するが、精度低下（例えば、単語誤り率）が著しく増大し、性能品質が悪化する。
【課題を解決するための手段】
【０００３】
[0003]  この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を判断するときに補助として使用されることを意図するのでもない。
【０００４】
[0004]  本発明の実施形態は、デプロイされるＤＮＮを、それよりも容量が大きい（隠れノードの数が多い）ＤＮＮから「学習させる」ことによって、デバイス上のデプロイメント(deployment)のために、小型化して精度を高めたＤＮＮモデルを供給するシステムおよび方法を対象とする。隠れノード数が少ないＤＮＮを学習させるために、それよりも大きなサイズの（精度が高い）「教師」ＤＮＮを使用して、小さい方の「生徒」ＤＮＮを訓練する。具体的には、更に説明するように、本発明の一実施形態は、書き起こしなしデーター(un-transcribed data)のようなラベルなしデーター(unlabeled data)を使用して、小さいサイズの生徒ＤＮＮとそれよりも大きなサイズの教師ＤＮＮとの出力分布間の発散(divergence)を最小化することによって、ＤＮＮ出力分布のプロパティを利用する。生徒ＤＮＮは、ラベルなし訓練データーを教師ＤＮＮに通して訓練ターゲットを生成することによって、ラベルなし（または書き起こしなし）データーから訓練することができる。ラベル付き（または書き起こし）訓練データーを必要とせずに、遙かに多くのデーターが訓練のために利用可能となり、これによって生徒ＤＮＮの精度を更に高め、大きなサイズの教師ＤＮＮからの複雑な関数の近似改善が得られる。生徒ＤＮＮは、その出力が教師ＤＮＮの出力と共に収束するまで、繰り返し最適化することができる。このように、生徒ＤＮＮは教師の行動に近づく(approach)ので、教師が間違っているかもしれない場合でも、生徒は、教師の出力がどんなものであっても、これに接近する(approximate)。このため、本発明の実施形態は、スマートフォン、娯楽システム、または同様の消費者用電子デバイスにおいて高精度な信号処理の応用（例えば、ＡＳＲまたは画像処理）を行うのに特に適している。
【０００５】
[0005]  本発明のある実施形態では、更に大きな「巨人」教師ＤＮＮからＤＮＮモデルを学習させることによって、更に精度が高いＤＮＮモデル（例えば、小型または標準サイズ）を供給することも含む。例えば、サーバー上のデプロイメントのための標準サイズのＤＮＮモデルは、本明細書において説明する教師−生徒学習手順を使用して生成することができ、生徒ＤＮＮは標準サイズのＤＮＮモデルであり、教師ＤＮＮは巨人サイズのＤＮＮであり、巨人サイズのＤＮＮは、異なるエラー・パターンを持つ複数のＤＮＮの訓練済み集合体(trained ensemble)として実装することもできる。実施形態では、この集合体は、例えば、交差エントロピー基準、シーケンシャル基準(sequential criterion)、最小二乗誤差基準、非負制約がある最小二乗誤差基準、または同様の基準を使用して、集合体メンバーの出力を、自動的に学習された結合係数と組み合わせることによって訓練される。
【図面の簡単な説明】
【０００６】
[0006]  添付図面において、一例としてそして限定ではなく、本発明を図示する。添付図面では、同様の参照番号は同様のエレメントを示す。
【図１】図１は、本発明の実施形態を採用することができるシステム・アーキテクチャ例のブロック図である。
【図２】図２は、本発明の実施形態による、ＤＮＮモデルの例示的な表現の態様を示す。
【図３】図３は、本発明の実施形態にしたがって、ラベルなしデーターを使用して、フットプリントが大きい教師ＤＮＮから、フットプリントが小さい生徒ＤＮＮを学習させることの例示的な表現の態様を示す。
【図４】図４は、本発明の実施形態による、集合教師ＤＮＮモデル(ensemble teacher DNN model)の例示的な表現の態様を示す。
【図５】図５は、本発明の実施形態にしたがって、より大きなＤＮＮモデルから学習することによって、縮小サイズのＤＮＮクラシファイアを生成する方法の流れ図を示す。
【図６】図６は、本発明の実施形態にしたがって、集合教師ＤＮＮモデルから訓練済みＤＮＮモデルを生成する方法の流れ図を示す。
【図７】図７は、本発明の実施形態を実現するときの使用に適した実証的なコンピューティング環境のブロック図である。
【発明を実施するための形態】
【０００７】
[0014]  本明細書では、本発明の主題について、法的要件を満たすために具体性を持って説明する。しかしながら、説明自体は、本特許の範囲を限定することは意図していない。むしろ、本発明者は、特許請求する主題は、本文書において記載するステップとは異なるステップまたは同様のステップの組み合わせを含むように、他の現在の技術または今後の技術と関連付けて、別の方法で具体化してもよいことを想定している。更に、「ステップ」および／または「ブロック」という用語は、本明細書においては、採用される方法の異なるエレメントを言外に意味するために用いることもできるが、個々のステップの順序が明示的に記載されているのではなければ、そして記載されている場合を除いて(unless and except)、この用語は、本明細書において開示される種々のステップ間において、いかなる特定の順序をも暗示するように解釈してはならない。
【０００８】
[0015]  一般的に、本明細書において説明する技術の種々の態様は、とりわけ、容量が大きな（隠れノードの数が多い）第２ＤＮＮから第１ＤＮＮを「学習させる」ことによって、デバイス上におけるデプロイメントのために縮小サイズの第１ＤＮＮモデルを供給するためのシステム、方法、およびコンピューター読み取り可能媒体を対象とする。隠れノードの数が少ないＤＮＮを学習させるために、それよりも大きなサイズの（更に精度が高い）「教師」ＤＮＮが、この小さい方の「生徒」ＤＮＮを訓練するために使用される。具体的には、本発明の一実施形態は、書き起こしなしデーター(un-transcribed data)のようなラベルなしデーター(unlabeled data)を使用して、小さいサイズの生徒ＤＮＮと標準的な（またはそれよりも大きなサイズの）教師ＤＮＮとの出力分布間の発散(divergence)を最小化することによって、ＤＮＮ出力分布のプロパティを利用する。生徒ＤＮＮは、ラベルなし（または書き起こしなし）データーから訓練することができる。何故なら、その訓練ターゲットは、ラベルなし訓練データーを教師ＤＮＮに通すことによって得られるからである。ラベル付き（または書き起こし）訓練データーを必要とせずに、遙かに多くのデーターが訓練のために利用可能となり、これによって生徒ＤＮＮの精度を更に高め、大きなサイズの教師ＤＮＮからの複雑な関数の近似改善が得られる。
【０００９】
[0016]  更に説明するように、一実施形態では、生徒ＤＮＮは、その出力が教師ＤＮＮの出力に収束するまで、繰り返し最適化される。このように、生徒ＤＮＮは教師の行動に近づくので、教師が間違っているかもしれない場合でも、生徒は、教師の出力がどんなものであっても、これに接近する。このため、本発明の実施形態は、スマートフォン、娯楽システム、または同様の消費者用電子デバイスにおいて高精度な信号処理の応用（例えば、ＡＳＲまたは画像処理）を行うのに特に適している。更に、本発明のこれらの実施形態の内いくつかを他の技術と組み合わせて、出力レイヤーまたは全てのレイヤーにおいて使用される行列の階数減少によるパラメーター数およびＣＰＵコストの低減というようなＣＤ−ＤＮＮ−ＨＭＭのランタイム性能、ＳＳＥ（ストリーミングＳＩＭＤ拡張）評価に対する８ビット量子化、および／またはコマ飛ばし(frame skipping)または予測技術を更に改良することもできる。
【００１０】
[0017]  本発明のある実施形態では、デプロイ可能なＤＮＮモデル（例えば、小型または標準サイズのモデル）は、更に大きな「巨人」教師ＤＮＮからこのデプロイ可能なＤＮＮモデルを学習させることによって決定される。例えば、サーバー上におけるデプロイメントのための標準サイズのＤＮＮモデル（または移動体デバイス上におけるデプロイメントのためのもっと小さなサイズのＤＮＮ）は、本明細書において説明する教師−生徒学習手順を使用して生成することができ、生徒ＤＮＮは標準サイズのＤＮＮモデル（またはもっと小さなサイズのＤＮＮモデル）であり、教師ＤＮＮは巨人サイズのＤＮＮである。巨人サイズのＤＮＮは、実施形態では、エラー・パターンが異なる複数のＤＮＮの訓練済み集合体として実装することができる。この集合体は、例えば、交差エントロピー基準、シーケンシャル基準(sequential criterion)、最小二乗誤差基準、非負制約がある最少二乗誤差基準、または同様の基準を使用して、集合体メンバーの出力を、自動的に学習された結合係数と組み合わせることによって、訓練することができる。
【００１１】
[0018]  前述のように、本明細書において説明するいくつかの実施形態の利点は、ラベルなし（または書き起こしなし）データーを使用して、生徒ＤＮＮモデルを訓練できることである。何故なら、その訓練ターゲット（ＰＬ（ｓ｜ｘ）、更に説明する）は、ラベルなし訓練データーを教師ＤＮＮモデルに通すことによって得られるからである。訓練のためにデーターにレベル付けする（または書き起こしする）には時間や費用がかかるので、ラベルなしデーターと比較すると、はるかに少ない量のラベル付き（または書き起こし）データーしか入手可能にならない。（ラベル付き（または書き起こし）データーは、教師ＤＮＮを訓練するために使用することができる。）書き起こし（またはラベル付き）訓練データーの必要性がないので、教師ＤＮＮの行動に接近するように生徒ＤＮＮを訓練するために遙かに多くのデーターが利用可能となる。特定の特徴空間を覆うために増々多くの訓練データーが利用可能になるに連れて、デプロイされた（生徒）ＤＮＮモデルの精度も更に一層向上する。この利点は、デプロイメント・フィードバック・ループのために大量のラベルなしデーターが利用可能な産業シナリオには、特に有用である（デプロイされるモデルはそれらの使用データーをアプリケーション開発者に供給し、アプリケーション開発者はこのデーターを使用して、アプリケーションの今後のバージョンを更に特別な目的に合わせて変更する(tailor)）。例えば、多くの検索エンジンがこのようなデプロイメント・フィードバック・ループを使用する。
【００１２】
[0019]  これより図１に移ると、本発明の実施形態を実現するのに適したシステム・アーキテクチャの一例の態様を示すブロック図があり、このシステム・アーキテクチャを全体的にシステム１００と呼ぶ。尚、本明細書において説明するこの構成および他の構成は、例として明示されるに過ぎないことは理解されてしかるべきである。つまり、システム１００は、適したコンピューティング・システム・アーキテクチャの一例を表すに過ぎない。他の構成およびエレメント（例えば、ユーザー・デバイス、データー・ストア等）も、示すものに加えてまたは代わりに使用することができ、一部のエレメントは、明確化のために、まとめて省略されることもある。更に、本明細書において説明するエレメントの多くは、機能的エンティティであり、ディスクリート・コンポーネントまたは分散型コンポーネントとして、あるいは他のコンポーネントと併せて、更には任意の適した組み合わせおよび場所において実現することができる。本明細書において説明される種々の機能は、１つ以上のエンティティによって実行される場合、ハードウェア、ファームウェア、および／またはソフトウェアによって実行されてもよい。例えば、種々の機能またはサービスは、メモリー内に格納された命令を実行するプロセッサーによって実行されるのでもよい。
【００１３】
[0020]  図示しないコンポーネントの中でもとりわけ、システム１００は、１つ以上のデーター・ソース１０８、ストレージ１０６、クライアント・デバイス１０２および１０４、ならびにＤＮＮモデル・ジェネレーター１２０に通信可能に結合されたネットワーク１１０を含む。図１に示すコンポーネントは、図７に関連付けて説明するコンピューティング・デバイス７００のような、１つ以上のコンピューティング・デバイス上に実装することができ、または１つ以上のコンピューティング・デバイスを使用して実現することができる。ネットワーク１１０は、限定ではなく、１つ以上のローカル・エリア・ネットワーク（ＬＡＮ）および／またはワイド・エリア・ネットワーク（ＷＡＮ）を含むことができる。このようなネットワーキング環境は、事務所、企業規模のコンピューター・ネットワーク、イントラネット、およびインターネットでは極普通である。尚、本発明の範囲内で、システム１００内部には任意の数のデーター・ソース、ストレージ・コンポーネントまたはデーター・ストア、クライアント・デバイス、およびＤＮＮモデル・ジェネレーター(DNN model generator)が採用されてもよいことは理解されてしかるべきである。各々は１つのデバイス、または分散型環境において協働する複数のデバイスを含むのでもよい。例えば、ＤＮＮモデル・ジェネレーター１２０は、分散型環境において構成され、本明細書において説明する機能を集合的に提供する複数のコンピューティング・デバイスまたはコンポーネントによって設けられてもよい。加えて、図示しない他のコンポーネントもネットワーク環境内に含まれてもよい。
【００１４】
[0021]  システム例１００は１つ以上のデーター・ソース１０８を含む。データー・ソース（１つまたは複数）１０８は、本明細書において説明するＤＮＮモデルを訓練するためのデーター・リソースを構成する(comprise)。データー・ソース（１つまたは複数）１０８によって供給されるデーターは、書き起こしデーターおよび書き起こしなしデーターのような、ラベル付きデーターおよびラベルなしデーターを含むことができる。例えば、実施形態では、データーは１つ以上の単音の集合(phone set)（音）を含み、更に教師ＤＮＮモデルを初期化するために使用することができる、対応する書き起こし情報またはセノン・ラベルも含むことができる。実施形態では、データー・ソース（１つまたは複数）１０８におけるラベルなしデーターは、前述のように、１つ以上のデプロイメント・フィードバック・ループによって供給される。例えば、検索クエリーが発声され(spoken)検索エンジンにおいて実行されたときの使用状況データー(usage data)が、書き起こしなしデーターとして供給されてもよい。データー・ソースの他の例には、一例としてそして限定ではなく、種々の話し言葉のオーディオ・ソースまたは画像ソースを含むことができ、これらには、ストリーミング・サウンドまたはビデオ、ウェブ・クエリー、移動体デバイス・カメラまたはオーディオ情報、ウェブ・カム・フィード、スマート・グラスおよびスマート・ウオッチ・フィード、顧客ケア・システム、セキュリティ・カメラ・フィード、ウェブ文書、カタログ、ユーザー・フィード、ＳＭＳログ、インスタント・メッセージング・ログ、話し言葉の書き起こし(spoken-word transripts)、音声コマンドまたは取り込んだ画像（例えば、深度カメラ画像）のようなゲーミング・システムのユーザー対話処理、ツイート、チャットまたはビデオ電話のレコード、またはソーシャル・ネットワーキング・メディアを含むことができる。使用される具体的なデーター・ソース（１つまたは複数）１０８は、用途に基づいて決定することができ、データーがドメイン特定データー（例えば、娯楽システムだけに関係するデーター）か、または性質上一般的な（ドメイン特定ではない）データーかに基づくことを含む。
【００１５】
[0022]  システム例１００は、クライアント・デバイス１０２および１０４を含む。これらは、デバイス上にＤＮＮシステムを有することが望ましい任意のタイプのコンピューティング・デバイスを含むことができ、具体的には、もっと強力なサーバーやコンピューティング・システムと比較すると、デバイスの計算および／または格納リソースが限られているコンピューティング・デバイスを含むことができる。例えば、一実施形態では、クライアント・デバイス１０２および１０４は、本明細書の図７に関係付けて説明する１つのタイプのコンピューティング・デバイスであってもよい。一例としてそして限定ではなく、ユーザー・デバイスは、パーソナル・データー・アシスタント（ＰＤＡ）、移動体デバイス、スマートフォン、スマート・ウオッチ、スマート・グラス（または他のウェアラブル・スマート・デバイス）、ラップトップ、タブレット、リモコン、娯楽システム、車両コンピューター・システム、埋め込み型システム・コントローラー、アプライアンス、家庭用コンピューター・システム、セキュリティ・システム、消費者用電子デバイス、または他の同様の電子デバイスとして具体化することができる。一実施形態では、クライアント・デバイスは、本明細書において説明するＤＮＮシステムによって使用可能なオーディオおよび画像情報のような入力データーを受け取ることができ、ＤＮＮシステムはデバイス内で動作する。例えば、クライアント・デバイスは、オーディオ情報を受け取るためにマイクロフォンまたはライン入力(line-in)を有し、ビデオまたは画像情報を受け取るためにカメラを有し、あるいはインターネットまたはデーター・ソース１０８のような他のソースからこのような情報を受信するために通信コンポーネント（例えば、Ｗｉ−Ｆｉ機能）を有することもできる。
【００１６】
[0023]  本明細書において説明する生徒ＤＮＮモデルの実施形態を使用して、クライアント・デバイス１０２または１０４および生徒ＤＮＮモデルは、入力されたデーターを処理してコンピューター使用可能情報を判定する。例えば、クライアント・デバイス上で動作する生徒ＤＮＮの一実施形態を使用して、ユーザーによって発話されたクエリーを処理して、ユーザーの意図（即ち、ユーザーは何を求めているか）を判定することができる。同様に、カメラから得られた情報を処理して、画像またはビデオ内にある形状、特徴的構造(feature)、物体、またはその他のエレメントを判定することもできる。
【００１７】
[0024]  クライアント・デバイス例１０２および１０４は、本発明の実施形態によって作成された生徒（または小さいサイズの）ＤＮＮモデルをデプロイすることができる環境例を提供するために、システム１００に含まれている。本明細書において説明するＤＮＮモデルの態様は１つ以上のクライアント・デバイス例１０２および１０４上で動作可能であると考えられるが、本発明のある実施形態はクライアント・デバイスを含まないことも考えられる。例えば、標準サイズまたはもっと大きいサイズの生徒ＤＮＮが、サーバー上またはクラウドにおいて具体化されてもよい。更に、図１は２つのクライアント・デバイス例１０２および１０４を示すが、これよりも多いまたは少ないデバイスを使用してもよい。
【００１８】
[0025]  ストレージ１０６は、一般に、データー、コンピューター命令（例えば、ソフトウェア・プログラム命令、ルーチン、またはサービス）、および／または本明細書において説明する本発明の実施形態において使用されるモデルを含む情報を格納する。実施形態では、ストレージ１０６は、１つ以上のデーター・ソース１０８からのデーター、１つ以上のＤＮＮモデル（またはＤＮＮクラシファイア）、ＤＮＮモデルを生成し訓練するための情報、および１つ以上のＤＮＮモデルによって出力されるコンピューター使用可能情報を格納する。図１に示すように、ストレージ１０６はＤＮＮモデル１０７および１０９を含む。ＤＮＮモデル１０７は教師ＤＮＮモデルを表し、ＤＮＮモデル１０９は、教師ＤＮＮモデル１０７よりも小さいサイズを有する生徒ＤＮＮモデルを表す。ＤＮＮモデルの更なる詳細および例については、図２〜図４に関係付けて説明する。明確さのために１つのデーター・ストア・コンポーネントとして図示したが、ストレージ１０６は、クライアント・デバイス１０２または１０４、ＤＮＮモデル・ジェネレーター１２０、あるいはクラウド内におけるメモリーを含む、１つ以上の情報ストアとして具体化されてもよい。
【００１９】
[0026]  ＮＤＤモデル・ジェネレーター１２０は、アクセス・コンポーネント１２２、初期化コンポーネント１２４、訓練コンポーネント１２６、および評価コンポーネント１２８を含む。ＤＮＮモデル・ジェネレーター１２０は、一般に、本明細書において説明するＣＤ−ＤＮＮ−ＨＭＭクラシファイアのような、ＤＮＮモデルを生成する役割を担い、データー・ストア（１つまたは複数）１０８からのデーターに基づいて、「生徒」ＤＮＮモデルを初期化し、訓練された教師ＤＮＮモデルから訓練することによって、新たなＤＮＮモデルを作成する（または既存のＤＮＮモデルを適応化させる）ことを含む。ＤＮＮモデル・ジェネレーター１２０によって生成されたＤＮＮモデルは、デバイス１０４または１０２のようなクライアント・デバイス、サーバー、または他のコンピューター・システム上にデプロイすることができる。一実施形態では、ＤＮＮモデル・ジェネレーター１２０は、初期化された「生徒」ＤＮＮモデルを、この生徒よりも大きなモデル・サイズ（例えば、パラメーター数）を有する訓練済み教師ＤＮＮモデルに接近するように訓練することによって、計算または記憶リソースが限られているかもしれないクライアント・デバイス上におけるデプロイメントのために、縮小サイズのＣＤ−ＤＮＮ−ＨＭＭクラシファイアを作成する。他の実施形態では、ＤＮＮモデル・ジェネレーター１２０は、初期化された「生徒」ＤＮＮモデルを、生徒よりも大きなモデル・サイズ（例えば、パラメーター数）を有する訓練済み巨人サイズの教師ＤＮＮモデルに接近するように訓練することによって、クライアント・デバイス、サーバー、または他のコンピューター・システム上におけるデプロイメントのためにＤＮＮクラシファイアを作成する。巨人サイズの教師ＤＮＮモデルは、他のＤＮＮモデルの集合体を構成する。
【００２０】
[0027]  ＤＮＮモデル・ジェネレーター１２０ならびにそのコンポーネント１２２、１２４、１２６、および１２８は、例えば、図７に関係付けて説明するコンピューティング・デバイス７００のような１つ以上のコンピューター・システム上で実行される、１組のコンパイルされたコンピューター命令または機能、プログラム・モジュール、コンピューター・ソフトウェア・サービス、あるいは一揃いの(an arrangement of)プロセスのとして具体化することができる。ＤＮＮモデル・ジェネレーター１２０、コンポーネント１２２、１２４、１２６、および１２８、これらのコンポーネントによって実行される機能、またはこれらのコンポーネントによって実行されるサービスは、オペレーティング・システム・レイヤー、アプリケーション・レイヤー、ハードウェア・レイヤー等のようなコンピューティング・システム（１つまたは複数）の該当する抽象レイヤー（１つまたは複数）において実装することができる。あるいは、または加えて、これらのコンポーネント、ＤＮＮモデル・ジェネレーター１２０、および／または本明細書において説明する発明の実施形態の機能は、少なくとも部分的に、１つ以上のハードウェア・ロジック・コンポーネントによって実行することができる。例えば、そして限定ではなく、使用することができるハードウェア・ロジック・コンポーネントの例示的なタイプには、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、特定用途集積回路（ＡＳＩＣ）、特定用途標準製品（ＡＳＳＰ）、システム・オン・チップ・システム（ＳＯＣ）、複合プログラマブル・ロジック・デバイス（ＣＰＬＤ）等が含まれる。
【００２１】
[0028]  図１を続けると、アクセス・コンポーネント１２２は、一般に、１つ以上のデーター・ソース１０８、ならびにＤＮＮモデル１０７および１０８のようなＤＮＮモデルからの訓練データーにアクセスし、ＤＮＮモデル・ジェネレーター１２０に供給する役割を担う。ある実施形態では、アクセス・コンポーネント１２２は、クライアント・デバイス上において利用可能な計算および／または記憶リソースに関する情報のような、特定のクライアント・デバイス１０２または１０４についての情報にアクセスすることができる。ある実施形態では、この情報は、特定のクライアント・デバイス上におけるデプロイメントのために、ＤＮＮモデル・ジェネレーター１２０によって生成されたＤＮＮモデルの最適なサイズを決定するために使用することもできる。
【００２２】
[0029]  初期化コンポーネント１２４は、一般に、未訓練の「生徒」ＤＮＮモデルを初期化する役割を担い、更にある実施形態では、生徒を訓練するための教師ＤＮＮモデルを初期化する役割を担う。ある実施形態では、初期化コンポーネント１２４は、訓練された生徒ＤＮＮモデルがデプロイされるクライアント・デバイスの制限に基づいて、特定のサイズの生徒ＤＮＮモデル（または特定のサイズよりも小さいモデル）を初期化し、教師ＤＮＮモデル（もっと大きいＤＮＮモデル）に基づいて、生徒ＤＮＮを初期化することができる。例えば、実施形態では、初期化コンポーネント１２４は、アクセス・コンポーネント１２２から、当業者には周知の技法にしたがって既に訓練されているサイズＮＴの完全に訓練された教師ＤＮＮを受け取り、更に訓練された生徒ＤＮＮがデプロイされることになるクライアント・デバイスの制限についての情報を受け取る。教師ＤＮＮは、ドメイン特定アプリケーション（例えば、娯楽システム用の顔認識または発話クエリーのような）のため、または一般的な目的のために初期化および／または訓練されるのでもよい。受け取った情報に基づいて、初期化コンポーネント１２４は、適したモデル・サイズの初期、未訓練生徒ＤＮＮモデルを（クライアント・デバイスの制限に基づいて）作成する。一実施形態では、生徒ＤＮＮモデルは、教師ＤＮＮモデルをコピーし、もっと小さいモデル（ノード数が少ない）に分割することによって作成することもできる。教師ＤＮＮモデルと同様、未訓練生徒ＤＮＮモデルは、教師のレイヤー数に等しくてもよい数の隠れレイヤーを含み、または生徒ＤＮＮは教師ＤＮＮモデルとは異なる数の隠れレイヤーを含んでもよい。一実施形態では、生徒ＤＮＮモデルのサイズは、レイヤー毎のノードまたはパラメーターの数も含んで、教師のサイズであるＮＴ未満である。生徒ＤＮＮとしての使用に適したＤＮＮモデルの例について、図２と関係付けて説明する。その例では、ＣＤ−ＤＮＮ−ＨＭＭモデルは、そのモデル構造を、既存のものでもよい従来のＣＤ−ＧＭＭ−ＨＭＭシステムから直接継承する。モデル構造には、単音の集合、ＨＭＭトポロジー、および文脈依存状態の結束(tying)が含まれる。
【００２３】
[0030]  一実施形態では、初期化コンポーネント１２４は、モデルにおけるノードの重みに乱数を割り当てることによって（即ち、行列Ｗの重み）、未訓練の生徒ＤＮＮモデルを作成し初期化する。他の実施形態では、初期化コンポーネント１２４は、アクセス・コンポーネント１２２から、生徒ＤＮＮモデルのために初期ノード重みを決める(establish)ために使用される書き起こしなしデーターのような、生徒ＤＮＮモデルを予め訓練するためのデーターを受け取る。
【００２４】
[0031]  ある実施形態では、初期化コンポーネント１２４は教師ＤＮＮモデルも初期化または作成する。具体的には、アクセス・コンポーネント１２２によって供給されるデーター・ソース（１つまたは複数）１０８からのラベル付きまたは書き起こしデーターを使用して、初期化コンポーネント１２４は教師ＤＮＮモデル（予め訓練されていてもよい）を作成し、初期化されているが未訓練の教師ＤＮＮモデルを、訓練のために、訓練コンポーネント１２６に供給することができる。同様に、初期化コンポーネント１２４は、集合体のメンバーとして含められる複数のサブＤＮＮモデルを決定することによって、集合教師ＤＮＮモデルを作成することもできる（例えば、作成し訓練のために訓練コンポーネント１２６に引き渡す、または既に存在するＤＮＮモデル（１つまたは複数）を識別する）。これらの実施形態では、初期化コンポーネント１２４は、集合体の出力レイヤーとメンバーのサブＤＮＮモデルの出力レイヤーとの間の関係も決定することができ（例えば、メンバー・モデル出力の未補正の平均(raw average)を取ることによって）、または初期化されたが未訓練の集合教師ＤＮＮを、訓練のために、訓練コンポーネント１２６に供給することもできる。
【００２５】
[0032]  訓練コンポーネント１２６は、一般に、教師に基づいて、生徒ＤＮＮを訓練する役割を担う。具体的には、訓練コンポーネント１２６は初期化コンポーネント１２４および／またはアクセス・コンポーネント１２２から、生徒となる未訓練（または予め訓練された）ＤＮＮモデルと、教師として役割を果たすことになる訓練済みＤＮＮモデルとを受け取る。（また、生徒ＤＮＮモデルは訓練済みであってもよいが、本明細書において説明する実施形態にしたがって更に訓練すればよいことも考えられる。）また、訓練コンポーネント１２６は、生徒ＤＮＮを訓練するために、アクセス・コンポーネント１２２からラベルなしデーターも受け取る。
【００２６】
[0033]  訓練コンポーネント１２６は、評価コンポーネント１２８による繰り返しプロセスを経て、生徒ＤＮＮの学習を促進する。評価コンポーネント１２８は、同じラベルなしデーターを教師および生徒ＤＮＮモデルに供給し、ＤＮＮモデルの出力分布を評価して、生徒ＤＮＮの出力分布の教師のそれからの誤差を判定し、この誤差に基づいて生徒ＤＮＮモデルに対して逆伝搬(back propagation)を実行して生徒ＤＮＮモデルを更新し、出力分布が収束するまで（またそうでなければ十分に近くなるまで）このサイクルを繰り返す。ある実施形態では、訓練コンポーネント１２６は、図５および図６に関係付けてそれぞれ説明する方法５００および６００にしたがって、生徒ＤＮＮを訓練する。
【００２７】
[0034]  ある実施形態では、訓練コンポーネント１２６は教師ＤＮＮモデルも訓練する。例えば、一実施形態では、当業者には周知の技法にしたがって、ラベル付き（または書き起こし）データーを使用して、教師ＤＮＮを訓練する。ある実施形態では、集合教師ＤＮＮを使用して、訓練コンポーネント１２６が集合教師ＤＮＮを訓練する。一例としてそして限定ではなく、訓練コンポーネント１２６は、例えば、交差エントロピー基準、シーケンシャル基準(sequential criterion)、最小二乗誤差基準、非負制約がある最小二乗誤差基準、または同様の基準を使用して、集合メンバーの出力を、自動的に学習される結合係数と組み合わせることによって、集合体を訓練することができる。
【００２８】
[0035]  評価コンポーネント１２８は、一般に、生徒ＤＮＮモデルを評価して、それが教師に接近するように十分に訓練されているか否か判定する役割を担う。具体的には、実施形態では、評価コンポーネント１２８は、生徒および教師ＤＮＮの出力分布を評価し、これらの出力間の差（誤差信号として判定されてもよい）を判定し、更に生徒が改善し続けているか、または生徒はもはや改善していないか（即ち、生徒出力分布が、教師出力との収束に向かう傾向をもう示さない）判定する。一実施形態では、評価コンポーネント１２８は、出力分布間におけるカルバック・ライブラー（ＫＬ）発散を計算し、訓練コンポーネント１２６と共に、訓練コンポーネント１２６に関係して説明した繰り返しプロセスを経て、この発散を最小化しようとする。評価コンポーネント(evaluator)１２８のある実施形態は、回帰、平均二乗誤差（ＭＳＥ）、または教師および生徒ＤＮＮの出力間における発散を最小化する他の同様の手法を使用することもできる。
【００２９】
[0036]  誤差信号を判定することに加えて、評価コンポーネント１２８のある実施形態は、他の繰り返しも完了すべきか否か判定する（例えば、他の繰り返しは、誤差に基づいて生徒ＤＮＮを更新し、ラベルなしデーターを生徒および教師ＤＮＮに通させ、それらの出力分布を評価することを含む）。具体的には、評価コンポーネント１２８のある実施形態は、教師ＤＮＮおよび生徒ＤＮＮの出力分布の収束を判定するために閾値を適用する。この閾値が満たされない場合、繰り返しを続けることによって、教師に接近させるために、生徒を更に訓練する。閾値が満たされる場合、収束が判定され（生徒出力分布が教師ＤＮＮの出力分布に十分に近いことを示す）、生徒ＤＮＮは訓練されたと考えることができ、更にクライアント・デバイスまたはコンピューター・システム上にデプロイすることができる。あるいは、ある実施形態では、評価コンポーネント１２８は、生徒が改善を示し続けているか否かに基づいて、繰り返しを続けるか否か決定する（即ち、複数の連続的な繰り返しにわたって、生徒の出力分布が、教師の出力分布との収束に向かって移動しており、生徒ＤＮＮが後続の繰り返しによって改善し続けていることを示すか否か）。このような実施形態では、生徒が改善している限り、繰り返し訓練は継続する。しかし、一実施形態では、生徒の学習が止まった（即ち、生徒ＤＮＮの出力分布が、数回の繰り返しの間、教師ＤＮＮの出力分布に全く近づいていない）場合、「授業は終了し」、生徒ＤＮＮモデルは訓練されたと考えることができる。一実施形態では、収束を判定することができるのは、生徒ＤＮＮの出力分布が、数回の繰り返しの間、教師ＤＮＮの出力分布に全く近づいていない場合である。ある実施形態では、評価コンポーネント１２８は、図５および図６に関係付けてそれぞれ説明する方法５００および６００にしたがって、生徒ＤＮＮを評価する。
【００３０】
[0037]  これより図２に移り、ＤＮＮクラシファイア例の例示的表現の態様を示し、全体的にＤＮＮクラシファイア２００と呼ぶ。このＤＮＮクラシファイア例２００はＤＮＮモデル２０１を含む。（また、図２はデーター２０２も示すが、これは理解の目的で示すだけであり、ＤＮＮクラシファイア２００の一部とは見なされない。）一実施形態では、ＤＮＮモデル２０１はＣＤ−ＤＮＮ−ＨＭＭモデルを含み、図２に例示的に示すような、１組のしかるべき出力に対してマッピングされた入力の確率的関係の具体的な構造として具体化することができる。確率的関係（各レイヤーのノード２０５間を結ぶ線として示す）は、訓練によって決定することができる。つまり、本発明のある実施形態では、ＤＮＮモデル２０１はその訓練にしたがって定められる。（したがって、未訓練ＤＮＮモデルは、訓練された同じＤＮＮモデルとは異なる内部構造を有すると考えればよい。）ディープ・ニューラル・ネットワーク（ＤＮＮ）は、多くの隠れレイヤーを有する（つまり、ディープな）従来のマルチレイヤー・パーセプトロン（ＭＬＰ：multi-layer perceptron）と見なすことができる。本発明のある実施形態では、ＣＤ−ＤＮＮ−ＨＭＭの優れた性能に寄与する３つの態様(aspects)は、数千ものセノンがあるとしても直接的にセノンをモデリングすること、シャローＭＬＰの代わりにＤＮＮを使用すること、そしてフレームの長いコンテキスト・ウィンドウを入力として使用することを含む。
【００３１】
[0038]  図２を参照すると、ＤＮＮモデル２０１の入力および出力は、それぞれ、ｘおよびｏ（図２の２１０および２５０）で示されている。尚、レイヤーＩ（図２の２２０）における入力ベクトルをｖｌで示し（ｖｏ＝ｘ）、重み行列をＷｌで示し、バイアス・ベクトルをａｌで示す。次いで、Ｌ個の隠れレイヤー（図２の２４０）を有するＤＮＮについて、ｌ番目の隠れレイヤーの出力は、次のようになる。
【００３２】
【数１】
0006612855.tif 000002
【００３３】
ここで、
【００３４】
【数２】
0006612855.tif 000003
【００３５】
は、エレメント毎に適用されるシグモイド関数である。事後確率（即ち、ＤＮＮの出力）は、
【００３６】
【数３】
0006612855.tif 000004
【００３７】
であり、ここで、ｓは１組のセノンに属する（連結トライフォン状態(tied triphone state)としても知られている）。
[0039]  これから、ＨＭＭの状態放出確率密度関数ｐ（ｘ｜ｏ＝ｓ）は、状態事後確率Ｐ（ｏ＝ｓ｜ｘ）を
【００３８】
【数４】
0006612855.tif 000005
【００３９】
に収束させることによって計算することができる。
ここで、Ｐ（ｏ＝ｓ）は、状態ｓの事前確率であり、ｐ（ｘ）は状態に独立であり、評価の間に脱落させることができる。
【００４０】
[0040]  本発明のある実施形態では、ＣＤ−ＤＮＮ−ＨＭＭ（ＤＮＮモデル２０１）は、単音の集合、ＨＭＭトポロジー、およびＣＤ−ＧＭＭ−ＨＭＭシステムからの直接的な文脈依存状態の結束を含むモデル構造を継承する。これらは、予め決められていてもよい。更に、実施形態では、ＤＮＮを訓練するために使用されるセノン・ラベルは、ＣＤ−ＧＭＭ−ＨＭＭを使用して生成される強制アラインメント(forced alignment)から抽出することができる。ある実施形態では、訓練基準（教師ＤＮＮを訓練するのに適している）を使用して公差エントロピーを最小化する。公差エントロピーを減少させると、負の対数尤度が最小化される。何故なら、各フレームは１つのターゲット・ラベルｓｔのみを有するからである。
【００４１】
【数５】
0006612855.tif 000006
【００４２】
ＤＮＮモデル・パラメーターは、確率的勾配降下法、または当業者には周知である同様の技法を使用して、逆伝搬法によって最適化することができる。
[0041]  これより図３に移り、大きい方の教師ＤＮＮから小さい方の生徒ＤＮＮを学習させるシステム３００の態様について、本発明の実施形態にしたがって例示的に示す。システム例３００は、教師ＤＮＮ３０２と、それよりも小さい生徒ＤＮＮ３０１とを含む。生徒ＤＮＮ３０１は、そのレイヤー３４１の各々の上に教師ＤＮＮ３０２よりも少ないノードを有することが図示されている。既に説明したように、本発明の一実施形態では、教師ＤＮＮ３０２は、訓練済みＤＮＮモデルを含み、この訓練済みＤＮＮモデルは、当業者には周知である標準的な技法（図２に関係付けて説明した技法のような）にしたがって訓練されればよい。他の実施形態では、教師ＤＮＮは、図１の訓練コンポーネント１２６に関係付けて説明したように訓練されてもよい。いずれの場合でも、正しい教師（即ち、訓練済み教師ＤＮＮ）があり、この教師から生徒ＤＮＮを学習させると仮定する。更に、生徒ＤＮＮ３０１および教師ＤＮＮ３０２は、それぞれ、ある数の隠れレイヤー３４１および３４２を有するＣＤ−ＤＭＭ−ＨＭＭとして具体化することができる。図３に示す実施形態では、生徒ＤＮＮ３０１は出力分布３５１を有し、教師ＤＮＮ３０２は、同じサイズの出力分布３５２を有するが、生徒ＤＮＮ３０１自体は教師ＤＮＮ３０２よりも小さい。
【００４３】
[0042]  初期状態では、生徒ＤＮＮ３０１は訓練されておらず、または予め訓練されていてもよいが、未だ教師ＤＮＮによって訓練されていない。（また、生徒ＤＮＮ３０１が訓練されていてもよいが、生徒ＤＮＮ３０１の精度は、教師ＤＮＮから訓練することによって、更に向上させることができることも考えられる。）実施形態では、システム３００は、生徒ＤＮＮ３０１の出力分布３５１が教師ＤＮＮ３０２の出力分布３５２に収束する（またそうでなければ近づく）まで、繰り返しプロセスを使用して、教師ＤＮＮ３０２から生徒ＤＮＮ３０１を学習させるために使用することができる。具体的には、繰り返し毎に、ラベルなし（または書き起こしなし）データー３１０の小さな一片を生徒ＤＮＮ３０１および教師ＤＮＮ３０２の双方に供給する。順方向伝搬を使用して、事後分布（出力分布３５１および３５２）を決定する。次いで、分布３５１および３５２から誤差信号３６０を決定する。誤差信号は、分布３５１および３５２間のＫＬ発散を判定することによって、あるいは回帰、ＭＳＥ、または他の適した技法を使用することによって計算することができ、図１の評価コンポーネント１２８を使用して決定することができる。（「誤差信号」におけるような、信号という用語は当技術分野の用語であり、誤差信号が伝搬通信信号のような一時的な信号を含むことを意味するのではない。逆に、ある実施形態では、誤差信号はベクトルを含む。）ＫＬ発散を決定する実施形態は、回帰またはＭＳＥのような他の代替方法に対して利点が得られる。何故なら、ＫＬ発散を最小化することは、図５の方法５００において更に説明するように、分布の交差エントロピーを最小化することと同等であるからである。生徒ＤＮＮ３０１の出力分布３５１が教師ＤＮＮ３０２の出力分布３５２に収束した場合、生徒ＤＮＮ３０１は訓練されたと見なされる。しかしながら、出力が収束しない場合、そしてある実施形態では、出力が未だ収束しつつあるように思われる場合、誤差に基づいて生徒ＤＮＮ３０１を訓練する。例えば、３７０において示すように、逆伝搬法を使用し、更に誤差信号を使用して生徒ＤＮＮ３０１の重みを更新する。
【００４４】
[0043]  既に説明したように、ある実施形態では、閾値を使用して収束を判定することができる。この場合、誤差が指定された閾値よりも小さい場合、生徒ＤＮＮ３０１の分布３５１は、教師ＤＮＮ３０２の分布３５２に収束したと判定される。指定された閾値は、予め決められていてもよく、更にＤＮＮの具体的な用途（またはＤＮＮによって使用されるデーター３１０のタイプ）、または生徒ＤＮＮのサイズに基づくのでもよい。例えば、教師ＤＮＮのパラメーターに近い数ないし同じ数のパラメーターを有する生徒ＤＮＮは、教師ＤＮＮよりも遙かに小さい生徒ＤＮＮよりも正しい(better)収束に達することが期待される（誤差信号が小さい、つまり精度が高い）。また、システム３００は、誤差信号が後続の繰り返しにおいてもはや小さくならないと判定した場合、収束を判定するか、またそうでなければ繰り返しを停止することもできる。言い換えると、生徒は、利用可能なデーターについて教師から学習できる全てを学習し終えたことになる。
【００４５】
[0044]  図４に移り、教師ＤＮＮ４０２の一実施形態例の態様を示す。教師ＤＮＮ４０２は、集合教師ＤＮＮモデルを構成する(comprise)。集合ＤＮＮモデルは、サブＤＮＮ−１  ４２１からサブＤＮＮ−Ｋ  ４２３までとして示す複数のサブＤＮＮを含む（明確さのために、サブＤＮＮを２つだけ示す。しかしながら、集合教師ＤＮＮモデルの実施形態は、２つ以上のサブＤＮＮを含めばよいことが考えられる。例えば、一実施形態では、数ダース（以上）のサブＤＮＮを含むこともある）。集合教師ＤＮＮの利点は、訓練された集合の出力が更に一層精度が高くなることである。何故なら、集合メンバー（サブＤＮＮ）の全ての音声(voice)を含むからである。一実施形態では、集合教師ＤＮＮ４０２は、巨大な集合ＤＮＮを構成し、それよりも小さい生徒ＤＮＮを訓練する目的以外では実用上デプロイできない程に大き過ぎてもよく、サーバー、クライアント・デバイス、または他のコンピューティング・デバイス上にデプロイすることができる。
【００４６】
[0045]  ある実施形態では、ＤＮＮ−１  ４２１およびＤＮＮ−Ｋ４２３のような集合サブＤＮＮは、異なる非線形ユニット（例えば、シグモイド、Ｒｅｃｔｉｆｅｒ、Ｍａｘｏｕｔ、またはその他のユニット）、異なる構造（標準的なフィードフォワードＤＮＮ、畳み込みニューラル・ネットワーク（ＣＮＮ）、リカレント・ニューラル・ネットワーク（ＲＮＮ）、長期短期記憶ＲＮＮ、またはその他の構造）、異なる訓練計画（例えば、標準的な訓練、異なる要素による脱落(dropout with different factors)、または他の計画）、異なるトポロジー（例えば、レイヤー数およびノード数が異なる）、および／または異なるデーターで訓練されたＤＮＮであってもよい。このような多様性(variations)によって、異なる誤差パターンが得られ、したがって更に優れた教師ＤＮＮが供給される。図４に示すように、集合ネットワーク（教師ＤＮＮ４０２）の出力４５０は未だ事後ベクトルであり、サブＤＮＮ−１  ４２１の出力４５１、およびサブＤＮＮ−Ｋ４２３の出力４５３のような、そのサブＤＮＮの各々の出力と同じ次元を有する。ある実施形態では、集合のメンバーである特定のサブＤＮＮモデルは、その集合のためにサブＤＮＮとして機能するＤＮＮモデルの利用可能性に基づいて決定されてもよく、あるいは集合ＤＮＮの用途、アプリケーション環境、またはランタイム環境、あるいは集合ＤＮＮによって訓練される生徒ＤＮＮのそれに基づいて決定されてもよく、あるいは利用可能な訓練データーに基づいて決定されてもよく、あるいは、例えば、集合ＤＮＮによって訓練される生徒ＤＮＮに入力されることが期待されるデーターに基づいて決定されてもよい。これらの実施形態では、図１の初期化コンポーネント１２４（または同様のサービス）が、集合に含ませる特定のサブＤＮＮを決定することもできる。
【００４７】
[0046]  サブＤＮＮの出力は、未補正の平均によって、重み付け投票によって（例えば、一定のサブＤＮＮが、娯楽のような一定のアプリケーションまたはドメインに対しては性能が向上し、これらのサブＤＮＮに割り当てる重みが高くなることが分かっている場合）、または集合を訓練する目的関数によって、出力４５０に組み合わせることができる。具体的には、各サブＤＮＮ出力と最終出力レイヤー４５０との間の接続は、１つ以上の基準を使用して訓練することができる。例えば、各サブＤＮＮからの出力事後ベクトル(output posterior vector)を、自動的に学習された結合係数と組み合わせることによって、一例としてそして限定ではなく、交差エントロピー基準、シーケンシャル基準(sequential criterion)、最小二乗誤差基準、非負制約がある最小二乗誤差基準、または同様の基準を使用して、訓練することができる。一実施形態では、集合教師ＤＮＮ４０２は、図１の訓練コンポーネント１２６によって訓練される。
【００４８】
[0047]  これより図５に移り、小さい方のＤＮＮモデルを大きい方のＤＮＮモデルによって学習させることによって、コンピューター・システム上におけるデプロイメントのために、縮小サイズのＤＮＮクラシファイアを生成する１つの実証的な方法５００を表す流れ図を示す。方法５００では、小さい方のＤＮＮモデルは生徒ＤＮＮの役割を担い、大きい方のＤＮＮは、小さい方のＤＮＮが近づくように訓練される、「教師」として役割を果たす。方法５００の実施形態は、図１〜図４において説明したコンポーネント（ＤＮＮモデルを含む）を使用して実行することができる。
【００４９】
[0048]  高いレベルにおいて、方法５００の一実施形態は、生徒ＤＮＮの出力と教師出力との間の差に基づいて、生徒ＤＮＮが教師ＤＮＮに収束するまで、生徒ＤＮＮを繰り返し最適化する。このように、生徒ＤＮＮは教師の行動に近づく(approach)ので、教師が間違っているかもしれない場合でも、生徒は、教師の出力がどんなものであっても、これに接近する(approximate)。一旦訓練されたなら、スマートフォン、娯楽システム、あるいは、教師ＤＮＮモデルをサポートするコンピューター・システムと比較すると計算または記憶リソースが限られている同様の消費者用電子デバイスのような、コンピューター・システム上において生徒ＤＮＮモデルをクラシファイアとしてデプロイすることができる。
【００５０】
[0049]  ステップ５１０において、第１ＤＮＮモデルを決定する。第１ＤＮＮモデルは、方法５００の後のステップにおいて「生徒」ＤＮＮを訓練する教師ＤＮＮとしての役割を果たす。第１ＤＮＮモデル、即ち、「教師ＤＮＮ」は、コンピューティング・デバイス上にクラシファイアとしてデプロイされるときに、生徒ＤＮＮに意図される用途に基づいて決定することができる。例えば、訓練される生徒ＤＮＮが、例えば、移動体デバイス上においてＡＳＲシステムの一部としてデプロイされることが意図される場合、教師ＤＮＮをＡＳＲに特化する(specialize)ことができる。一実施形態では、決定された教師ＤＮＮは既に訓練されており、図１のアクセス・コンポーネント１２２のようなアクセス・コンポーネントによってストレージからアクセスすることもできる。他の実施形態では、決定された教師ＤＮＮを初期化し（図１の初期化コンポーネント１２４を使用して実行することができる）、訓練する（図１の訓練コンポーネント１２６を使用して実行することができる）。ステップ５１０において教師ＤＮＮを訓練する一実施形態では、勾配に基づく最適化、または教師なし貪欲レイヤー毎訓練手順(unsupervised greedy layer-wise training procedure)を使用するというように、ＤＮＮモデル訓練の技術分野では周知の技法にしたがって、ラベル付きデーターまたは書き起こしデーターを使用することができる。一実施形態では、教師ＤＮＮモデルは、ラベル付きデーターの順方向伝搬を適用し、出力分布をラベル情報と比較して誤差を判定し、ＤＮＮのパラメーターを更新し、誤差が最小化するまで繰り返す繰り返しプロセスによって訓練される。
【００５１】
[0050]  一実施形態では、教師ＤＮＮはＣＤ−ＤＮＮ−ＨＭＭを含む。あるいは、教師ＤＮＮは、例えば、非線形ユニット（例えば、シグモイド、Ｒｅｃｔｉｆｅｒ、Ｍａｘｏｕｔ、またはその他のユニット）を使用することもでき、標準フィードフォワードＤＮＮ、畳み込みニューラル・ネットワーク（ＣＮＮ）、リカレント・ニューラル・ネットワーク（ＲＮＮ）、長期短期記憶ＲＮＮ、またはその他の構造を有することもでき、および／または種々の訓練計画（例えば、標準的な訓練、異なる要素による脱落、またはその他の計画）に基づいて訓練することもできる。ステップ５１０の一実施形態では、教師ＤＮＮモデルは、複数のサブＤＮＮモデルを含む集合ＤＮＮモデルを構成する(comprise)。このような実施形態では、集合ＤＮＮモデルは、図４および方法６００（図６）のステップ６１０〜６３０に関係付けて説明したように決定することができる。
【００５２】
[0051]  ステップ５２０において、第２ＤＮＮモデルを初期化する。第２ＤＮＮモデルは、ステップ５１０において決定された教師ＤＮＮから学習させる「生徒ＤＮＮ」として役割を果たす。ある実施形態では、第２ＤＮＮ、即ち、「生徒ＤＮＮ」は、図１の初期化コンポーネント１２４に関係付けて説明したように、初期化コンポーネントによって作成および／または初期化される。例えば、ステップ５２０において、教師ＤＮＮよりも小さいサイズ（例えば、レイヤー当たり少ない数のパラメーターまたはノード）を有する、および教師ＤＮＮとは異なる数の隠れレイヤーも有してもよいとして、生徒ＤＮＮを作成することができ（またそうでなくて、既存の生徒ＤＮＮモデルを使用する場合は、決定する）。ある実施形態では、生徒ＤＮＮのサイズは、訓練された生徒ＤＮＮがクラシファイアとしてデプロイされるクライアント・デバイスに基づいて、例えば、クライアント・デバイスの計算および記憶制限に基づいて決定される。また、生徒ＤＮＮは、クラシファイアとしてデプロイされるときに、訓練された生徒ＤＮＮに意図された用途（例えば、ＡＳＲ、画像処理等）に基づいて決定されてもよい。
【００５３】
[0052]  一実施形態では、ステップ５２０において、ステップ５１０において決定された教師ＤＮＮをコピーし分割して縮小寸法の生徒ＤＮＮを作成することによって、生徒ＤＮＮを作成する。実施形態では、訓練データーを受け取り、生徒ＤＮＮモデルの監視されない予備訓練(unsupervised pre-training)を行うことによって、生徒ＤＮＮを初期化することができる。例えば、書き起こしなしデーターを受け取り、生徒ＤＮＮモデルのために初期ノード重みを決めるために使用することができる（即ち、図２に関係付けて説明したような、行列Ｗの重み）。他の実施形態では、ステップ５２０は、乱数をモデルにおけるノードの重みに割り当てることによって、訓練されていない生徒ＤＮＮモデルを初期化する動作を含む。一実施形態では、生徒ＤＮＮモデルは、予め存在していてもよい従来のＣＤ−ＧＭＭ−ＨＭＭシステムから、単音の集合、ＨＭＭ技術、および文脈依存状態の結束を含むモデル構造を継承するように、作成および初期化される。
【００５４】
[0053]  ステップ５３０において、ステップ５２０において初期化された生徒ＤＮＮを訓練するために、１組のラベルなしデーターを受け取る。ラベルなしデーターは、図１のアクセス・コンポーネント１２２に関係付けて説明したように、アクセス・コンポーネントによって受け取ることができる。例えば、ラベルなしデーターは、ストレージから受け取られてもよく、および／またはデプロイメント・フィードバック・ループから受け取られてもよい（または最終的に導き出される）。ラベルなしデーターは、一実施形態では、書き起こしなしデーターを含んでもよい。
【００５５】
[0054]  大量のラベルなし訓練データーが利用可能な場合もある（例えば、１つ以上のデプロイメント・フィードバック・ループから得られるデーター）ので、ステップ５３０の一実施形態は、方法５００の後続のステップにおいて生徒ＤＮＮを訓練するときに使用するために、大量のラベルなしデーターを受け取る動作を含む。ステップ５３０は方法５００における１つのステップとして示されているが、訓練のためのラベルなしデーターは、必要に応じて、方法５００の複数のステップの間に受け取るのでもよいことが考えられる。例えば、一実施形態では、ステップ５４０から５６０までの繰り返し毎に、ラベルなしデーターの新たな部分（または部分集合）を受け取り、出力分布を判定するために使用してもよい。
【００５６】
[0055]  ステップ５４０から５６０において、生徒ＤＮＮの出力分布を最適化して教師ＤＮＮの出力分布に接近するように、繰り返しプロセスを使用して生徒ＤＮＮを訓練する。例えば、一実施形態では、生徒出力分布が教師の出力分布に十分収束するまで（またそうでなければ近づくまで）、ステップ５４０〜５６０を繰り返す。各繰り返しにより、生徒ＤＮＮの出力分布の教師ＤＮＮの出力分布からの差または誤差に基づいて、十分な収束が達成されるまで生徒ＤＮＮを更新する。ある実施形態では、訓練データーの１回以上の全域掃引(full sweeping)を連続する繰り返しにわたって使用して、多様な入力を教師および生徒ＤＮＮに供給する。
【００５７】
[0056]  ステップ５４０において、ステップ５３０において受け取ったラベルなし訓練データーの部分集合を使用して、教師ＤＮＮの出力分布および生徒ＤＮＮの出力分布を判定する。教師ＤＮＮおよび生徒ＤＮＮの出力分布は、図１の訓練コンポーネント１２６に関係付けて説明したように、訓練コンポーネントによって判定することができる。一実施形態では、訓練データーの部分集合はミニバッチ(mini-batch)を含み、これを教師ＤＮＮおよび生徒ＤＮＮに入力する（同じミニバッチが双方のＤＮＮモデルに供給される）。これから、教師ＤＮＮおよび生徒ＤＮＮについて出力分布を決定する。一実施形態では、ミニバッチは書き起こしなし訓練データーの内２５６サンプルまたは「フレーム」を含む。
【００５８】
[0057]  例えば、一実施形態では、ミニバッチ毎に、順方向伝搬を教師および生徒ＤＮＮに対して行い、出力分布を判定する（事後分布）。具体的には、教師ＤＮＮおよび生徒ＤＮＮに入力訓練データーｘを与えたときのセノンｓに対する事後分布は、教師即ち大きい方のＤＮＮについてはＰＬ（ｓ｜ｘ）で示すことができ（ここで「Ｌ」は大きい方を暗示する）、生徒ＤＮＮについてはＰＳ（ｓ｜ｘ）で示すことができる。したがって、ステップ５４０の実施形態では、教師ＤＮＮおよび生徒ＤＮＮについてＰＬ（ｓ｜ｘ）およびＰＳ（ｓ｜ｘ）をそれぞれ計算するために、順方向伝搬を適用する。
【００５９】
[0058]  ステップ５５０において、生徒ＤＮＮ出力分布を、教師ＤＮＮ出力分布と対照して評価する。ステップ５５０の評価プロセスは、図１の評価コンポーネント１２８に関係付けて説明したように、評価コンポーネントによって実行することができる。ステップ５５０の一実施形態では、ステップ５４０において判定された出力分布（ステップ５４０において使用された訓練データーのミニバッチまたは部分集合から判定された）から、生徒ＤＮＮの出力分布と教師ＤＮＮの出力分布との間の差を最初に判定する。（差は、生徒出力と教師出力との間の「誤差」または「誤差信号」として表すことができる。）次いで、この差に基づいて、生徒ＤＮＮ出力分布および教師ＤＮＮ出力分布が収束したか否か判定する。例えば、それらの差（または誤差）が十分に小さい場合、または数回の繰り返しにわたって差がもはや小さくなっていない場合（生徒ＤＮＮの出力分布がもはや教師ＤＮＮ出力分布との収束に向かっていないので、生徒ＤＮＮの学習が停止したことを暗示する）に、出力は収束したと判定することができる。
【００６０】
[0059]  例えば、誤差信号が十分小さく（例えば、閾値未満）、生徒の性能が教師の性能に接近しつつあることを示すか否かに基づいて、収束を判定するために閾値（収束または差閾値と呼んでもよい）を適用することができる。言い換えると、生徒は未だ訓練されているが、もはや繰り返しを継続する必要はない。一実施形態では、閾値は予め決められており、および／または生徒ＤＮＮのサイズに基づいて、またはコンピューティング・デバイス上にクラシファイアとしてデプロイされたときに生徒ＤＮＮに意図される用途に基づいてもよい。あるいは、ステップ５５０において判定される評価は、ステップ５４０の最新の繰り返しにわたって判定された誤差信号または差を比較して、誤差信号が小さくなりつつあるか（生徒ＤＮＮが訓練から改良し続けていることを暗示する）、または全く小さくなっていないか（生徒ＤＮＮ、または更に具体的にはその事後分布が、事実上、教師ＤＮＮの事後分布との収束を達成したことを暗示する）判定することもできる。
【００６１】
[0060]  ステップ５５０に進み、回帰を使用して、または教師および生徒ＤＮＮの出力間の発散を最小化するための同様の技法によって、事後分布間のカルバック・ライブラー（ＫＬ）発散を判定することによって、出力分布間の差を判定することができる。例えば、一実施形態では、所与の１組の訓練データーｘｔ、ｔ＝１からＴ、に対して、教師ＤＮＮおよび生徒ＤＮＮの事後分布が、それぞれ、ＰＬ（ｓ｜ｘ）およびＰＳ（ｓ｜ｘ）として決定される場合、これら２つの分布の間におけるＫＬ発散は、
【００６２】
【数６】
0006612855.tif 000007
【００６３】
となる。ここで、Ｎはセノンの総数である。
[0061]  方法５００の実施形態は、訓練された教師ＤＮＮに接近するように、生徒ＤＮＮを学習させるので、生徒ＤＮＮのパラメーターのみが最適化される。したがって、以上のＫＬ発散を最小化することは、交差エントロピーを最小化することと同等となる。
【００６４】
【数７】
0006612855.tif 000008
【００６５】
何故なら、ＰＬ（ｓｉ｜ｘｔ）ｌｏｇＰＬ（ｓｉ｜ｘｔ）は、生徒ＤＮＮパラメーターの最適化には影響を及ぼさないからである。以上の式（３）の訓練基準は、図２に関係付けて説明した式（１）における標準的なＤＮＮ訓練基準の一般的な形態であり、各フレームに対して、ＰＬ（ｓ｜ｘ）の１つの次元だけが１に等しく、他の次元は０に等しい。対照的に、式（３）では、ＰＬ（ｓ｜ｘ）のあらゆる次元が非ゼロ（しかし非常に小さくてもよい）値を有することができる。（これは、本明細書において説明する方法によって生成されるＤＮＮモデルが、同じサイズであるが標準的な訓練基準にしたがって訓練されたＤＮＮモデルと異なる理由、即ち、それよりも精度が高い理由を示す。）ＫＬ発散を使用して教師および生徒出力分布間の誤差信号を判定することによって、回帰またはＭＳＥのような他の代替方法と比較して、利点が得られる。何故なら、ＫＬ発散を最小化することは、分布の交差エントロピーを最小化することと同等であるからである。
【００６６】
[0062]  ステップ５５５において、ステップ５５０において判定した評価に基づいて、方法５００はステップ５６０からステップ５７０に進む。具体的には、ステップ５５０において、生徒ＤＮＮ対教師ＤＮＮの出力分布間の収束が達成されていない場合（例えば、収束または差閾値が満たされていない、または生徒ＤＮＮの出力が改良し続けている）、方法５００はステップ５６０に進み、ステップ５５０において判定した誤差信号（または差）に基づいて、生徒ＤＮＮを更新する。しかしながら、ステップ５５０において、収束に達した、または誤差信号がもはや小さくなっていない（生徒ＤＮＮがもはや訓練から改良していないことを暗示する）と判定した場合、方法５００はステップ５７０に進む。（言い換えると、生徒ＤＮＮにとって「授業は終わった」。）
[0063]  一実施形態では、ステップ５５５は、訓練データーの全域掃引が既に行われたか否かも判定する。行われており（訓練データーの全てが少なくとも１回は使用された場合）、そして収束に達した（または、誤差信号がもはや小さくなっていない）場合、方法５００は５７０に進む。しかし、データーの全てが未だ適用されていない場合、方法５００はステップ５６０に進み、この実施形態では、繰り返す。
【００６７】
[0064]  ステップ５６０において、ステップ５５０において判定した評価に基づいて、生徒ＤＮＮを更新する。図１の訓練コンポーネント１２６に関係付けて説明したように、生徒ＤＮＮは訓練コンポーネントによって更新することができる。一実施形態では、ステップ５５０において判定した生徒ＤＮＮおよび教師ＤＮＮの出力分布間の差を使用して、生徒ＤＮＮのパラメーターまたはノード重みを更新する。これは、逆伝搬を使用して実行することができる。このように生徒ＤＮＮを更新することによって、生徒ＤＮＮの出力分布が教師ＤＮＮの出力分布に一層緊密に接近するように訓練し易くなる。
【００６８】
[0065]  実施形態では、式（３）の出力が、逆伝搬によって生徒ＤＮＮを更新するために使用される。繰り返し毎に、式（３）の出力を使用し、逆伝搬を適用して生徒ＤＮＮを更新し、これによって更に教師に接近するように生徒ＤＮＮを訓練することができる。ステップ５６０に続いて、方法５００はステップ５４０に戻り、訓練データーの部分集合（またはミニバッチ）を使用して、教師ＤＮＮおよび更新されたばかりの生徒ＤＮＮについて出力分布を判定する。一実施形態では、１組のラベルなし訓練データーにおけるデーターの全て（ステップ５３０において受け取った）が使用されるまで、繰り返し毎に、新たな部分集合またはミニバッチをステップ５４０において使用する。訓練データーが再循環される前に、訓練データーの全域掃引が適用されるとよい。
【００６９】
[0066]  ステップ５７０において、訓練された生徒ＤＮＮを供給する。ステップ５５０の判定に基づいて、訓練された生徒ＤＮＮの出力分布は、教師ＤＮＮのそれに十分に収束しているか、または生徒ＤＮＮがもはや改良の兆候を示していない。一実施形態では、訓練された生徒ＤＮＮは、図１のクライアント・デバイス１０２または１０４のような、コンピューティング・システムまたはコンピューティング・デバイス上に、ＤＮＮクラシファイアとしてデプロイされる。例えば、訓練された生徒ＤＮＮは、スマートフォンまたはスマート・グラス上にデプロイされてもよい。教師ＤＮＮモデルおよび訓練データーに基づいて、訓練された生徒ＤＮＮは、特定の用途のために（例えば、画像処理またはＡＳＲ）特化することができ、または一般化することもできる。
【００７０】
[0067]  既に説明したように、方法５００のいくつかの実施形態の利点は、生徒ＤＮＮがラベルなし（または書き起こしなし）データーを使用して訓練されることである。何故なら、その訓練ターゲット（教師ＤＮＮの出力分布であるＰＬ（ｓ｜ｘ））は、ラベルなし訓練データーを教師ＤＮＮモデルに通すことによって得られるからである。ラベル付きまたは書き起こし訓練データーの必要なく、訓練のために遙かに多いデーターが利用可能になる。更に、特定の特徴空間を覆うために入手可能な訓練データーが増えるに連れて、デプロイされる（生徒）ＤＮＮモデルの精度は更に一層向上する。
【００７１】
[0068]  これより図６に移り、ＤＮＮモデルを集合ＤＮＮモデルから学習させることによって、コンピューター・システム上においてクラシファイアとしてデプロイするために、訓練済みＤＮＮモデルを生成する一実証的方法６００を表す流れ図を示す。方法６００において、集合ＤＮＮモデルは「教師」の役割を担い、一方訓練されるＤＮＮモデルは「生徒」の役割を担う。方法６００の生徒ＤＮＮモデルは、方法５００（図５）において説明したのと同様にして、集合教師ＤＮＮモデルに接近するように、訓練することができる。集合教師ＤＮＮの利点の１つは、訓練された集合の出力が集合メンバー（サブＤＮＮ）の全ての音声を含むので、更に一層精度が高いことである。方法６００の実施形態は、図１〜図４において説明したコンポーネント（ＤＮＮモデルを含む）を使用して実行することができる。具体的には、図４は、方法６００のいくつかの実施形態における使用に適した集合教師モデルの実施形態を説明する。
【００７２】
[0069]  ステップ６１０において、集合ＤＮＮモデルにサブＤＮＮとして含ませる複数のＤＮＮモデルを決定する。この複数のＤＮＮモデルは、図１の初期化コンポーネント１２４およびアクセス・コンポーネント１２２に関係付けて説明したように、初期化コンポーネントおよび／またはアクセス・コンポーネント、ならびに図４に関係付けて説明した教師ＤＮＮ４０２によって決定することができる。ある実施形態では、集合教師ＤＮＮに含ませることが決定されたサブＤＮＮは、異なる非線形ユニット（例えば、シグモイド、Ｒｅｃｔｉｆｅｒ、Ｍａｘｏｕｔ、または他のユニット）、異なる構造タイプ（例えば、標準フィードフォワードＤＮＮ、畳み込みニューラル・ネットワーク（ＣＮＮ）、リカレント・ニューラル・ネットワーク（ＲＮＮ）、長期短期記憶ＲＮＮ、または他の構造）を有するＤＮＮまたは同様の構造を含んでもよく、異なる訓練計画（例えば、標準的な訓練、異なる要素による脱落、または他の計画）にしたがって訓練されてもよく、異なるトポロジー（例えば、レイヤーおよびノードの数が異なる）を有してもよく、および／または異なるデーターによって訓練されてもよい。このような多様性(variations)によって、異なるエラー・パターンを生じ、一層優れた教師ＤＮＮを供給することができる。
【００７３】
[0070]  ある実施形態では、例えば、集合のサブＤＮＮとして機能するＤＮＮモデルの可用性に基づいて、集合ＤＮＮの用途、用途環境、またはランタイム環境、あるいは集合ＤＮＮによって訓練される生徒ＤＮＮのそれに基づいて、利用可能な訓練データーに基づいて、あるいは集合ＤＮＮによって訓練される生徒ＤＮＮに入力されることが予期される訓練データーに基づいて、集合のメンバーである特定のサブＤＮＮモデルが決定されてもよい。これらの実施形態では、図１の初期化コンポーネント１２４（または同様のサービス）が、集合に含まれる特定のサブＤＮＮを決定してもよい。
【００７４】
[0071]  ステップ６２０において、ステップ６１０において決定した複数のサブＤＮＮを使用して、集合教師ＤＮＮモデルを生成する。集合教師ＤＮＮモデルは、図１の初期化コンポーネント１２４に関係付けて説明したような、初期化コンポーネントによって生成することができ、一実施形態では、図４に関係付けて説明した集合教師ＤＮＮモデル例４０２と同様であってもよい。ステップ６２０において、集合ネットワークの出力が、集合教師ＤＮＮモデルの出力分布（または事後分布）表す事後ベクトルを構成する(comprise)。一実施形態では、事後ベクトルはサブＤＮＮの各々の出力と同じ次元を有する。一実施形態では、集合教師ＤＮＮ４０２は、巨大な集合ＤＮＮを含み、それよりも小さい生徒ＤＮＮの訓練の目的以外では実用上デプロイできない程大きくてもよく、サーバー、クライアント・デバイス、または他のコンピューティング・デバイス上にデプロイすることができる。
【００７５】
[0072]  ステップ６３０において、集合教師ＤＮＮを訓練する。集合教師ＤＮＮモデルは、図１の訓練コンポーネント１２６に関係付けて説明したような、または図４に関係付けて説明したような、訓練コンポーネントによって訓練することができる。一実施形態では、サブＤＮＮは既に訓練されている。あるいは、集合教師ＤＮＮを訓練する前に、サブＤＮＮを訓練してもよい（方法５００のステップ５１０に関係付けて説明したように）。一実施形態では、ステップ６３０は、サブＤＮＮの出力の未補正の平均を使用することによって、重み付け投票によって（例えば、一定のサブＤＮＮが、娯楽のような一定のアプリケーションまたはドメインに対しては性能が向上し、これらのサブＤＮＮに割り当てる重みが高くなることが分かっている場合）、または目的関数によって、サブＤＮＮの出力を、集合の事後出力分布を表すベクトルに組み合わせる動作を含む。具体的には、各サブＤＮＮからの出力事後ベクトルを、交差エントロピー基準、連続基準、最少二乗誤差基準、非負制約がある最少二乗誤差基準、または同様の基準を使用して自動的に学習された結合係数と組み合わせることによってというようにして、各サブＤＮＮ出力分布と、集合の出力分布を表すベクトルとの間の接続を訓練することができる。
【００７６】
[0073]  ステップ６４０において、方法６００の直前のステップにおいて生成および訓練した集合教師ＤＮＮを使用して、生徒ＤＮＮを訓練する。この訓練は、図１の訓練コンポーネント１２６に関係付けて説明したような訓練コンポーネントによって実行することができる。ステップ６４０の実施形態は、方法５００のステップ５２０から５６０までにおいて説明したように実行することができ、集合教師ＤＮＮが方法５００の教師ＤＮＮとして機能する。ステップ６４０のある実施形態では、方法５００のステップ５２０にしたがって生徒ＤＮＮを初期化される。
【００７７】
[0074]  ステップ６４０を完了すると、ステップ６５０において、訓練された生徒ＤＮＮをコンピューティング・システム上にデプロイすることができる。一実施形態では、訓練された生徒ＤＮＮは、方法５００のステップ５７０において説明したようにデプロイされる。ある実施形態では、方法６００の生徒ＤＮＮは、クライアント・デバイスではなく、サーバーのようなコンピューター・システム上にデプロイすることができる標準サイズのＤＮＮを含む。
【００７８】
[0075]  以上のように、デプロイされるＤＮＮを、もっと大きな容量（隠れノードの数）を有する教師ＤＮＮから「学習させる」ことによって、コンピューティング・デバイス上におけるデプロイメントのための、縮小サイズで更に精度を高めたＤＮＮクラシファイアを供給するためのシステムおよび方法を目的とする技術の種々の態様について説明した。本発明のある実施形態にしたがって訓練されたＤＮＮクラシファイアは、より強力なサーバーおよびコンピューティング・システムと比較すると計算および記憶リソースが限られている、スマートフォン、娯楽システム、または同様の消費者用電子デバイス上において、高精度な信号処理（例えば、ＡＳＲまたは画像処理）に応用するのに特に適している。また、教師用に集合ＤＮＮモデルを使用して、本明細書において説明した教師−生徒訓練プロセスを応用し、生徒ＤＮＮを訓練する前に集合教師ＤＮＮを訓練することができる実施形態についても説明した。
【００７９】
[0076]  尚、本明細書において説明した実施形態の種々の特徴、サブコンビネーション、および変更は、有用であり、他の特徴やサブコンビネーションを参照せずに、他の実施形態において採用してもよいことは理解されよう。更に、方法例５００および６００において示したステップの順序およびシーケンスは、本発明の範囲を限定することは全く意図しておらず、実際、ステップは実施形態の範囲内で種々の異なるシーケンスで現れてもよい。このような変形および組み合わせも、本発明の実施形態の範囲内に入ると考えられる。
【００８０】
[0077]  以上、本発明の種々の実施形態について説明したので、これより、本発明の実施形態を実現するのに適した実証的なコンピューティング環境について説明する。図７を参照すると、実証的なコンピューティング・デバイスが示されており、全体的にコンピューティング・デバイス７００と呼ぶ。コンピューティング・デバイス７００は、適したコンピューティング環境の一例に過ぎず、本発明の使用範囲や機能に関して限定を示唆することは全く意図していない。また、コンピューティング・デバイス７００が、図示するコンポーネントのいずれの１つに、またはその組み合わせに関しても、何らかの依存性や要件を有するように解釈してはならない。
【００８１】
[0078]  本発明の実施形態は、コンピューター・コードまたは機械使用可能命令という一般的なコンテキストで説明することができ、コンピューター・コードまたは機械使用可能命令には、パーソナル・データー・アシスタント、スマートフォン、タブレットＰＣ、または他のハンドヘルド・デバイスのようなコンピューターまたは他の機械によって実行可能な、プログラム・モジュールのような、コンピューター使用可能またはコンピューター実行可能命令を含む。一般に、プログラム・モジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データー構造等を含み、特定のタスクを実行するコード、または特定の抽象データー型を実装するコードを指す。本発明の実施形態は、ハンドヘルド・デバイス、消費者用電子機器、汎用コンピューター、更に特殊化したコンピューティング・デバイスなどを含む、種々のシステム構成において実施することができる。また、本発明の実施形態は、分散型コンピューティング環境において実施することもでき、その場合、タスクは、通信ネットワークを通じてリンクされたリモート処理デバイスによって実行される。分散型コンピューティング環境では、プログラム・モジュールは、メモリー記憶デバイスを含むローカルおよびリモート双方のコンピューター記憶媒体に配置されてもよい。
【００８２】
[0079]  図７を参照すると、コンピューティング・デバイス７００は、以下のデバイスを直接または間接的に結合するバス７１０を含む。メモリー７１２、１つ以上のプロセッサー７１４、１つ以上のプレゼンテーション・コンポーネント７１６、１つ以上の入力／出力（Ｉ／Ｏ）ポート７１８、１つ以上のＩ／Ｏコンポーネント７２０、および例示的な電源７２２。バス７１０は、１つ以上のバス（アドレス・バス、データー・バス、またはそれらの組み合わせ等）であってもよいものを表す。図７の種々のブロックは、明確化のために線分で示すが、実際には、これらのブロックは論理的なコンポーネントを表し、必ずしも実際のコンポーネントではない。例えば、ディスプレイ・デバイスのようなプレゼンテーション・コンポーネントを、Ｉ／Ｏコンポーネントであると考える者もいるであろう。また、プロセッサーはメモリーを有する。本発明者は、このようなことは技術の本質であると認識しており、図７の線図は本発明の１つ以上の実施形態と共に使用することができるコンピューティング・デバイスの一例を例示するに過ぎないことを繰り返しておく。「ワークステーション」、「サーバー」、「ラップトップ」、「ハンドヘルド・デバイス」等というようなカテゴリー間では区別を行わない。何故なら、これら全ては図７の範囲に該当すると考えられ、「コンピューティング・デバイス」を指す(reference to)からである。
【００８３】
[0080]  
通例、コンピューティング・デバイス７００は、種々のコンピューター読み取り可能媒体を含む。コンピューター読み取り可能媒体は、コンピューティング・デバイス７００によってアクセスすることができるあらゆる入手可能な媒体とすることができ、揮発性および不揮発性双方の媒体、リムーバブルおよび非リムーバブル媒体を含む。一例として、そして限定ではなく、コンピューター読み取り可能媒体は、コンピューター記憶媒体を含むことができる。コンピューター記憶媒体は、揮発性および不揮発性の双方、リムーバブルおよび非リムーバブル媒体を含み、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、または他のデーターというような情報の格納のための任意の方法または技術で実現される。コンピューター記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリーまたは他のメモリー技術、ＣＤ−ＲＯＭ、ディジタル・バーサタイル・ディスク（ＤＶＤ）または他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたは他の磁気記憶デバイス、あるいは所望の情報を格納するために使用することができ更にコンピューティング・デバイス７００によってアクセスすることができる任意の他の媒体を含むが、これらに限定されるのではない。コンピューター記憶媒体は、信号自体を含まない。通信媒体は、通例、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、または他のデーターを、搬送波または他の移送メカニズムのような変調データー信号内に具体化し、任意の情報配信媒体を含む。「変調データー信号」という用語は、当該信号内に情報を符合化するような形で、その特性の１つ以上が設定または変更された信号を意味する。一例として、そして限定ではなく、通信媒体は、有線ネットワークまたは直接有線接続のような有線媒体と、音響、ＲＦ、赤外線、および他のワイヤレス媒体のようなワイヤレス媒体とを含む。
【００８４】
[0081]  メモリー７１２は、揮発性および／または不揮発性メモリーの形態としたコンピューター記憶媒体を含む。このメモリーは、リムーバブル、非リムーバブル、またはその組み合わせであってもよい。ハードウェア・デバイスの例には、ソリッド・ステート・メモリー、ハード・ドライブ、光ディスク・ドライブ等が含まれる。計算デバイス７００は、１つ以上のプロセッサー７１４を含み、プロセッサー７１４は、メモリー７１２またはＩ／Ｏコンポーネント７２０のような種々のエンティティからデーターを読み取る。プレゼンテーション・コンポーネント（１つまたは複数）７１６は、ユーザーまたは他のデバイスにデーター指示を提示する。例証的なプレゼンテーション・コンポーネントには、ディスプレイ・デバイス、スピーカー、印刷コンポーネント、振動コンポーネント等が含まれる。
【００８５】
[0082]  Ｉ／Ｏポート７１８は、コンピューティング・デバイス７００を論理的にＩ／Ｏコンポーネント７２０を含む他のデバイスに結合することを可能とし、Ｉ／Ｏコンポーネント７２０の一部が内蔵されてもよい。例示的なコンポーネントには、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナー、プリンター、ワイヤレス通信デバイス等が含まれる。Ｉ／Ｏコンポーネント７２０は、自然ユーザー・インターフェース（ＮＵＩ）を設けることもできる。ＮＵＩは、エア・ジェスチャ、音声、またはユーザーによって生成されるその他の生理的入力を処理する。ある場合には、更なる処理のために、しかるべきネットワーク・エレメントに入力を送信することもできる。ＮＵＩは、音声認識、タッチおよびスタイラス認識、顔認識、生物計量認識、画面上および画面付近双方におけるジェスチャ認識、エア・ジェスチャ、頭部および眼球追跡、ならびにコンピューティング・デバイス７００上における表示に関連するタッチ認識の任意の組み合わせを実現することができる。コンピューティング・デバイス７００には、立体視カメラ・システム、赤外線カメラ・システム、ＲＧＢカメラ・システム、およびこれらの組み合わせのような深度カメラを、ジェスチャ検出および認識のために装備することもできる。加えて、コンピューティング・デバイス７００には、動きの検出を可能にする加速度計またはジャイロスコープを装備することもできる。加速度計またはジャイロスコープの出力は、没入型拡張現実または仮想現実をレンダリングするために、コンピューティング・デバイス７００のディスプレイに供給することができる。
【００８６】
[0083]  図示した種々のコンポーネントおよび図示しないコンポーネントの多くの異なる構成も、以下の請求項の範囲から逸脱することなく、可能である。以上、限定的ではなく例示的であるという意図で、本発明の実施形態について説明した。本開示の読み手には、これを読んだ後には、そしてこれを読んだことにより、代替実施形態も明らかになるであろう。以上のことを実現する代替手段も、以下の請求項の範囲から逸脱することなく、完成することができる。ある種の特徴およびサブコンビネーションは有用であり、他の特徴やサブコンビネーションを参照することなく採用することができ、請求項の範囲内に入ると考えられる。
【００８７】
[0084]  以上、構造的特徴および／またはアクトに特定的な文言で本主題について説明したが、添付した特許請求の範囲において定められる主題は、必ずしも、以上で説明した具体的な特徴やアクトには限定されないことは理解されよう。逆に、以上で説明した具体的な特徴およびアクトは、特許請求の範囲を実現する例として開示されたまでであり、他の等価な特徴およびアクトも、特許請求の範囲内に入ることを意図している。
【００８８】
[0085]  したがって、第１の態様では、本発明の実施形態は、コンピューター実行可能命令が具体化されている１つ以上のコンピューター読み取り可能媒体を対象とし、プロセッサーとメモリーとを有するコンピューティング・システムによってコンピューター実行可能命令が実行されると、コンピューティング・システムに、コンピューティング・デバイス上におけるデプロイメントのためにＤＮＮクラシファイアを生成する方法を実行さる。この方法は、第１ＤＮＮモデルを教師ＤＮＮモデルとして決定するステップと、第２ＤＮＮモデルを生徒ＤＮＮモデルとして初期化するステップと、１組のラベルなし訓練データーを受け取るステップとを含む。また、この方法は、ある回数の繰り返しにおいて、（ａ）１組の訓練データーの内の部分集合を使用して、教師ＤＮＮモデルの教師出力分布と、生徒ＤＮＮモデルの生徒出力分布とを判定するステップと、（ｂ）生徒出力分布対教師出力分布の評価を判定するステップであって、評価が差を含む、ステップと、（ｃ）評価に基づいて、差を最小化するように生徒ＤＮＮモデルを更新するステップとを含む。更に、この方法は、生徒ＤＮＮモデルを訓練済みＤＮＮクラシファイアとして供給するステップであって、ある回数の繰り返しが、判定された評価に基づく、ステップとを含む。
【００８９】
[0086]  第１の態様のある実施形態では、生徒出力分布対教師出力分布の評価を判定するステップが、生徒出力分布と教師出力分布との間の収束を判定するステップを含み、ある回数の繰り返しが、収束が判定するまでにステップ（ａ）から（ｃ）までを実行した回数である。第１の態様のある実施形態では、生徒出力分布対教師出力分布の評価を判定するために、カルバック・ライブラー発散を使用し、判定された評価が誤差信号を含み、更に他のある実施形態では、生徒ＤＮＮモデルが、誤差信号に基づいて、逆伝搬を使用して更新される。
【００９０】
[0087]  第１の態様のある実施形態では、教師出力分布および生徒出力分布が、データーの部分集合を使用して、順方向伝搬によって判定される。第１の態様のある実施形態では、第１ＤＮＮモデルが、既に訓練されているＤＮＮモデルから判定される。第１の態様のある実施形態では、第１ＤＮＮモデルは集合ＤＮＮモデルを含む。第１の態様のある実施形態では、第２ＤＮＮモデルは、第１ＤＮＮモデルに基づいて初期化されるか、またはランダムな重み値によって初期化され、第２ＤＮＮモデルは予め訓練されている。第１の態様のある実施形態では、第２ＤＮＮモデルはＣＤ−ＤＮＮ−ＨＭＭフレームワークの一部である。第１の態様のある実施形態では、１組の訓練データーの内の部分集合はミニバッチを含み、１組の訓練データーの全てが使用され終えるまで、ある回数の繰り返しの各繰り返しに、データーの異なるミニバッチが使用される。本発明の一実施形態は、クライアント・デバイス上にデプロイされ、第１の態様のコンピューター実行可能命令をコンピューティング・システムによって実行することによって生成される、ＤＮＮクラシファイアを含む。
【００９１】
[0088]  第２の態様において、コンピューター・システム上におけるクラシファイアとしてのデプロイメントのために、訓練済みＤＮＮモデルを生成するためのコンピューター実装方法を提供する。この方法は、集合ＤＮＮモデルにおけるサブＤＮＮとして含ませる複数のＤＮＮモデルを決定するステップと、これらのサブＤＮＮを使用して集合ＤＮＮモデルを組み立てることによって、複数のサブＤＮＮの各々を集合メンバーとするステップとを含む。また、この方法は、集合ＤＮＮモデルを訓練するステップも含む。また、この方法は、生徒ＤＮＮモデルを初期化するステップと、訓練済み集合ＤＮＮモデルを教師ＤＮＮとして使用して、生徒ＤＮＮモデルを訓練するステップとを含む。更に、この方法は、生徒ＤＮＮモデルをＤＮＮクラシファイアとして供給するステップも含む。
【００９２】
[0089]  第２の態様のある実施形態では、集合ＤＮＮモデルにおけるサブＤＮＮとして含ませる複数のＤＮＮモデルが、コンピューター・システム上にデプロイされるＤＮＮクラシファイアに意図される用途に基づいて決定される。第２の態様のある実施形態では、サブＤＮＮが、（ａ）異なる非線形ユニットを有する、（ｂ）異なる構造タイプを有する、（ｃ）異なる訓練計画にしたがって訓練された、（ｄ）異なるトポロジーを有する、または（ｅ）異なるデーターによって訓練されたＤＮＮモデルを含む。第２の態様のある実施形態では、集合ＤＮＮモデルを訓練するステップが、交差エントロピー基準、シーケンシャル基準、最少二乗誤差基準、または非負制約がある最少二乗誤差基準を使用して、学習済みの係数の組み合わせによって集合メンバーの出力分布を組み合わせるステップを含む。
【００９３】
[0090]  第２の態様のある実施形態では、生徒ＤＮＮモデルを訓練するステップが、（ａ）ラベルなし訓練データーのミニバッチを受け取るステップと、（ｂ）ミニバッチを使用して、生徒ＤＮＮモデルおよび教師ＤＮＮモデルにおけるミニ-バッチの順方向伝搬によって、教師ＤＮＮモデルの教師出力分布と、生徒ＤＮＮモデルの生徒出力分布とを判定するステップと、（ｃ）生徒出力分布対教師出力分布の評価を判定するステップであって、評価が誤差信号を含む、ステップと、（ｄ）評価に基づいて、生徒出力分布および教師出力分布が収束を達成したか否か判定するステップであって、（ｉ）生徒出力分布および教師出力分布が収束したと判定された場合、生徒ＤＮＮモデルをクライアント・デバイス上におけるデプロイメントのために供給するステップと、（ｉｉ）生徒出力分布および教師出力分布が収束していないと判定された場合、判定された評価に基づいて、生徒ＤＮＮモデルを更新し、ステップ（ａ）から（ｄ）までを繰り返すステップとを含む。更に、ある実施形態では、生徒ＤＮＮモデルがＣＤ−ＤＮＮ−ＨＭＭフレームワークの一部であり、ステップ（ａ）において受け取られるミニバッチが、ステップ（ｂ）において未だ使用されていない訓練データーの部分集合を含む。
【００９４】
[0091]  第３の態様において、クライアント・デバイス上にデプロイされ、プロセスにしたがって作成されたＤＮＮベースのクラシファイアを提供する。このプロセスは、（ａ）第１ＤＮＮモデルを教師ＤＮＮモデルとして決定するステップと、（ｂ）第２ＤＮＮモデルを生徒ＤＮＮモデルとして初期化するステップとを含む。また、このプロセスは、（ｃ）１組のラベルなし訓練データーを受け取るステップと、（ｄ）この１組の訓練データーからの部分集合を使用して、教師ＤＮＮモデルの教師出力分布と、生徒ＤＮＮモデルの生徒出力分布とを判定するステップも含む。また、このプロセスは、（ｅ）生徒出力分布対教師出力分布の評価を判定するステップも含む。更に、このプロセスは、（ｆ）評価に基づいて、生徒出力分布および教師出力分布が収束を達成したか否か判定し、生徒出力分布および教師出力分布が収束したと判定された場合、生徒ＤＮＮモデルをクライアント・デバイス上におけるデプロイメントのために供給するステップと、生徒出力分布および教師出力分布が収束していないと判定された場合、判定された評価に基づいて、生徒ＤＮＮモデルを更新し、ステップ（ｄ）から（ｆ）までを繰り返すステップとを含む。
【００９５】
[0092]  第３の態様の一実施形態では、生徒ＤＮＮモデルはＣＤ−ＤＮＮ−ＨＭＭフレームワークの一部であり、生徒出力分布対教師出力分布の評価を判定するために、カルバック・ライブラー発散を使用し、判定された評価が誤差信号を含み、生徒ＤＮＮモデルが、誤差信号に基づいて、逆伝搬を使用して更新され、ＤＮＮクラシファイアは、自動音声認識システムの一部として、クライアント・デバイス上にデプロイされる。
【図１】
0006612855.tif 000009
【図２】
0006612855.tif 000010
【図３】
0006612855.tif 000011
【図４】
0006612855.tif 000012
【図５】
0006612855.tif 000013
【図６】
0006612855.tif 000014
【図７】
0006612855.tif 000015