(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-18
(54)【発明の名称】ナレッジディスティレーションフレームワークの為のミックスアップデータオーギュメンテーション
(51)【国際特許分類】
G06N 3/09 20230101AFI20231211BHJP
G06N 3/045 20230101ALI20231211BHJP
【FI】
G06N3/09
G06N3/045
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023534230
(86)(22)【出願日】2021-10-19
(85)【翻訳文提出日】2023-06-05
(86)【国際出願番号】 CN2021124782
(87)【国際公開番号】W WO2022121515
(87)【国際公開日】2022-06-16
(32)【優先日】2020-12-11
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】100118599
【氏名又は名称】村上 博司
(74)【復代理人】
【識別番号】100160738
【氏名又は名称】加藤 由加里
(72)【発明者】
【氏名】福田 隆
(57)【要約】
生徒役のニューラルネットワークを訓練する方法が提供される。該方法は、複数の入力ベクトルを含むデータセットを教師役のニューラルネットワーク内に供給して、複数の出力値を生成すること、及び2つの対応する入力ベクトルについての該教師役のニューラルネットワークからの該複数の出力値のうちの2つを2つの対応するソフトラベルに変換することを含む。該方法は、該2つの対応する入力ベクトルを組み合わせて、合成された1つのデータベクトルを形成すること、及びマスクされた1つのソフトラベルベクトルを該2つの対応するソフトラベルから形成することを更に含む。該方法は、該合成された1つのデータベクトルを該生徒役のニューラルネットワーク内に供給すること、該マスクされた1つのソフトラベルベクトルを使用して、該生徒役のニューラルネットワークの重みを変更する為の誤りを決定すること、及び該生徒役のニューラルネットワークの該重みを変更することを更に含む。
【選択図】
図5
【特許請求の範囲】
【請求項1】
生徒役のニューラルネットワークを訓練する為の、コンピュータに実装された方法であって、
複数の入力ベクトルを含むデータセットを教師役のニューラルネットワーク内に供給して、複数の出力値を生成すること;
2つの対応する入力ベクトルについての前記教師役のニューラルネットワークからの前記複数の出力値のうちの2つを2つの対応するソフトラベルに変換すること;
前記2つの対応する入力ベクトルを組み合わせて、合成された1つのデータベクトルを形成すること;
マスクされた1つのソフトラベルベクトルを前記2つの対応するソフトラベルから形成すること;
前記合成された1つのデータベクトルを前記生徒役のニューラルネットワーク内に供給すること;
前記マスクされた1つのソフトラベルベクトルを使用して、前記生徒役のニューラルネットワークの重みを変更する為の誤りを決定すること;及び、
前記生徒役のニューラルネットワークの前記重みを変更すること
を含む、前記方法。
【請求項2】
前記教師役のニューラルネットワークがリカレントニューラルネットワークであり、及び前記生徒役のニューラルネットワークが多層パーセプトロン(MLP)である、請求項1に記載の方法。
【請求項3】
前記複数の入力ベクトルの各々が、音素のシーケンスを表す、請求項1に記載の方法。
【請求項4】
前記2つの入力ベクトルのうちの第1の入力ベクトルの前記教師役のニューラルネットワークからの前記複数の出力値を、前記2つの入力ベクトルのうちの第2の入力ベクトルの前記教師役のニューラルネットワークからの前記対応する複数の出力値と比較することによって、前記マスクされた1つのソフトラベルベクトルを形成することを更に含む、請求項1に記載の方法。
【請求項5】
前記複数の出力値が、ソフトマックス関数を用いて、前記教師役のニューラルネットワークから複数のソフトラベルに変換される、請求項4に記載の方法。
【請求項6】
前記入力ベクトルが、補間重みλを備えている下記の式 x=(1-λ)x
i+λx
j を用いて組み合わされ、ここで、0<λ<0.5である、請求項5に記載の方法。
【請求項7】
前記2つの入力ベクトルに対応する前記複数のソフトラベルに補間重みを適用して、重み付けされたソフトラベルを作成することを更に含み、ここで、前記2つの入力ベクトルに対応する前記複数のソフトラベルは、前記補間重みλを用いて重み付けされる、請求項6に記載の方法。
【請求項8】
生徒役のニューラルネットワークを訓練する為の処理システムであって、
1以上のプロセッサデバイス;
前記1以上のプロセッサデバイスのうちの少なくとも1つと通信するメモリ;及び、
表示画面
を備えており、
前記メモリが、
複数の入力ベクトルを含むデータセットを受信するように且つ複数の出力値を生成するように構成された教師役のニューラルネットワーク;
2つの対応する入力ベクトルについての前記教師役のニューラルネットワークからの前記複数の出力値のうちの2つを2つの対応するソフトラベルに変換するように構成されたソフトマックス関数;
前記2つの対応する入力ベクトルを組み合わせて、合成された1つのデータベクトルを形成するように構成されたミックスアップジェネレータ;
マスクされたソフトラベルベクトルを前記2つの対応するソフトラベルから形成するように構成されたマスカー;並びに、
前記合成されたデータベクトル及び前記マスクされたソフトラベルを受け取るように且つ前記マスクされたソフトラベルから計算された誤りに基づいて前記生徒役のニューラルネットワークを訓練するように構成された前記生徒役のニューラルネットワーク
を備えている、前記処理システム。
【請求項9】
前記教師役のニューラルネットワークがリカレントニューラルネットワークであり、及び前記生徒役のニューラルネットワークが多層パーセプトロン(MLP)である、請求項8に記載の処理システム。
【請求項10】
前記複数の入力ベクトルの各々が、音素のシーケンスを表す、請求項8に記載の処理システム。
【請求項11】
前記マスカーが、前記2つの入力ベクトルのうちの第1の入力ベクトルの前記教師役のニューラルネットワークからの前記複数の出力値を、前記2つの入力ベクトルのうちの第2の入力ベクトルの前記教師役のニューラルネットワークからの前記対応する複数の出力値と比較することによって、前記マスクされた1つのソフトラベルベクトルを形成するように構成された、請求項8に記載の処理システム。
【請求項12】
前記入力ベクトルが、補間重みλを備えている下記の式 x=(1-λ)x
i+λx
j を用いて組み合わされ、ここで、0<λ<0.5である、請求項11に記載の処理システム。
【請求項13】
前記ミックスアップジェネレータが、前記2つの入力ベクトルに対応する前記複数のソフトラベルに補間重みを適用して、重み付けされたソフトラベルを作成するように更に構成されており、ここで、前記2つの入力ベクトルに対応する前記複数のソフトラベルは、前記補間重みλを用いて重み付けされる、請求項12に記載の処理システム。
【請求項14】
生徒役のニューラルネットワークを訓練する為のコンピュータ可読プログラムであって、コンピュータ上で実行されることにより、
複数の入力ベクトルを含むデータセットを教師役のニューラルネットワーク内に供給して、複数の出力値を生成すること;
2つの対応する入力ベクトルについての前記教師役のニューラルネットワークからの前記複数の出力値のうちの2つを2つの対応するソフトラベルに変換すること;
前記2つの対応する入力ベクトルを組み合わせて、合成された1つのデータベクトルを形成すること;
マスクされた1つのソフトラベルベクトルを前記2つの対応するソフトラベルから形成すること;
前記合成された1つのデータベクトルを前記生徒役のニューラルネットワーク内に供給すること;
前記マスクされた1つのソフトラベルベクトルを使用して、前記生徒役のニューラルネットワークの重みを変更する為の誤りを決定すること;及び、
前記生徒役のニューラルネットワークの前記重みを変更すること
を実行することを前記コンピュータにさせる、前記コンピュータ可読プログラム。
【請求項15】
前記教師役のニューラルネットワークがリカレントニューラルネットワークであり、及び前記生徒役のニューラルネットワークが多層パーセプトロン(MLP)である、請求項14に記載のコンピュータ可読プログラム。
【請求項16】
前記複数の入力ベクトルの各々が、音素のシーケンスを表す、請求項14に記載のコンピュータ可読プログラム。
【請求項17】
前記2つの入力ベクトルのうちの入力ベクトルの前記教師役のニューラルネットワークからの前記複数の出力値を、前記2つの入力ベクトルのうちの第2の入力ベクトルの前記教師役のニューラルネットワークからの前記対応する複数の出力値と比較することによって、前記マスクされた1つのソフトラベルベクトルを形成することを更に含む、請求項14に記載のコンピュータ可読プログラム。
【請求項18】
前記複数の出力値が、ソフトマックス関数を用いて、前記教師役のニューラルネットワークから複数のソフトラベルに変換される、請求項17に記載のコンピュータ可読プログラム。
【請求項19】
前記入力ベクトルが、補間重みλを備えている下記の式 x=(1-λ)x
i+λx
j を用いて組み合わされ、ここで、0<λ<0.5である、請求項18に記載のコンピュータ可読プログラム。
【請求項20】
前記2つの入力ベクトルに対応する前記複数のソフトラベルに補間重みを適用して、重み付けされたソフトラベルを作成することを更に含み、ここで、前記2つの入力ベクトルに対応する前記複数のソフトラベルは、前記補間重みλを用いて重み付けされる、請求項19に記載のコンピュータ可読プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的に、ニューラルネットワークを訓練することに関し、より特には、音声認識の為のナレッジディスティレーション(knowledge distillation)を伴うニューラルネットワークを訓練する際にミックスアップ・オーギュメンテーション(mix-up augmentation)を使用することに関する。
【背景技術】
【0002】
人工ニューラルネットワーク(ANN:artificial neural networks)において、該ニューラルネットワークにおける各ニューロンのデータ入力に適用される重みを変更することを通じて「学習」が行われる。人工ニューラルネットワークは、該ニューラルネットワークのアーキテクチャに依存して、ニューロンの1以上の層を有することができる。該ニューラルネットワークの訓練は、訓練ペア、例えば、入力データと、期待される出力/結果(expected output/result)(すなわち、ハードラベル(hard labels))とを含む該訓練ペア、を使用して実施されることができる。次に、該ニューラルネットワークを訓練することが、該訓練ペアを該ニューラルネットワークに供給し、そして、出力に関する予測(prediction)(すなわち、ソフトラベル(soft labels))を作成することを含む。結果として生じる出力又は予測された出力(resulting or predicted output)は、該訓練ペアの各々について該期待される出力と比較されて、予測の正誤を判断することができる。該期待される出力と比較した予測の正誤からのフィードバック(例えば、誤り)は、データ入力に適用される重みを調整して、後続の予測をより正確にする為に使用することができる。該重みは、複数の訓練ペア若しくは訓練の複数の反復(例えば、エポック(epochs))又はそれらの組み合わせを使用して、連続的に調整されることができる。
【0003】
時系列とは、時間を通じて順次行われる観測の集まりであり、ここで、各データセグメントはそれ独自のタイムスタンプを有しうる。時間的な問題は、時系列の過去の値を観察することによって将来の1以上の値を予想することによって解決されることができる。幾つかのニューラルネットワークは、入力された時間的情報を処理する為にメモリを利用することができる。リカレントニューラルネットワーク(RNN:recurrent neural networks)は、そのような記憶を提供することができるフィードバック接続及び内部状態を有する。音声認識において、該ニューラルネットワークは、音素(phoneme)を含む音声ファイルを翻訳するように訓練されることができ、ここで、該音素(phoneme)は、文脈上の意味を有することができる文字及び単語に翻訳することができる。音素は、特定の言語において1つの単語を別の単語から区別することができる音の単位であり、一方、音(phone)は、任意の明確な音声音(speech sound)である。
【0004】
自動音声認識(ASR:Automatic Speech Recognition)システムは、様々な音響設定(acoustic settings)からのユーザ入力を処理することができる。そのようなシステムで処理される音声シーケンス(speech sequence)は、レストラン又は展示会場のような定常ノイズ(stationary noise)及び非定常ノイズ(nonstationary noise)のある環境からの入力、非常に反響する設定における会議録音、感情的な音声、及び機器の故障又は伝送ネットワーク状態による時間-周波数帯域幅損失を有する歪んだ信号を包含することが出来る。
【0005】
しかしながら、音声認識は、エッジデバイス、例えば、スマートフォン又はその他の組み込み機器、において実行する為には、計算負荷が高すぎる場合がある。ニューラルモデルは数百万から数十億のパラメータを有する場合があり、エッジデバイス(例えば、スマートフォン、タブレット等)上にデプロイする為には大きすぎる場合がある。ナレッジディスティレーション(knowledge distillation)は、より大きな、訓練されたニューラルネットワークを使用して、より小さなニューラルネットワークに何をすべきかを教えることによって、モデル圧縮に関連する。生徒役のネットワーク(student network)は、1以上の最終値だけでなく、各レベル/レイヤでの出力を再現しようとすることによって、教師役のネットワーク(teacher network)の挙動を学習するように訓練されることができる。
【発明の概要】
【課題を解決するための手段】
【0006】
本発明の1つの実施態様に従うと、生徒役のニューラルネットワークを訓練する方法が提供される。該方法は、複数の入力ベクトルを含むデータセットを教師役のニューラルネットワークに供給して、複数の出力値を生成すること、2つの対応する入力ベクトルについての該教師役のニューラルネットワークからの該複数の出力値のうちの2つを2つの対応するソフトラベルに変換することを含む。該方法は、該2つの対応する入力ベクトルを組み合わせて、合成された1つのデータベクトルを形成すること、マスクされた1つのソフトラベルベクトルを該2つの対応するソフトラベルから形成することを更に含む。該方法は、該合成された1つのデータベクトルを該生徒役のニューラルネットワーク内に供給すること、該マスクされた1つのソフトラベルベクトルを使用して、該生徒役のニューラルネットワークの重みを変更する為の誤りを決定すること、及び、該生徒役のニューラルネットワークの該重みを変更することを更に含む。
【0007】
本発明の別の実施態様に従うと、生徒役のニューラルネットワークを訓練する為の処理システムが提供される。該処理システムは、1以上のプロセッサデバイス、該1以上のプロセッサデバイスのうちの少なくとも1つと通信するメモリ、及び表示画面を備えており、ここで、該メモリは、複数の入力ベクトルを含むデータセットを受信するように且つ複数の出力値を生成するように構成された教師役のニューラルネットワーク;2つの対応する入力ベクトルについての該教師役のニューラルネットワークからの該複数の出力値のうちの2つを2つの対応するソフトラベルに変換するように構成されたソフトマックス関数;該2つの対応する入力ベクトルを組み合わせて、合成された1つのデータベクトルを形成するように構成されたミックスアップジェネレータ;マスクされたソフトラベルベクトルを該2つの対応するソフトラベルから形成するように構成されたマスカー;及び、該合成されたデータベクトル及び該マスクされたソフトラベルを受け取るように且つ該マスクされたソフトラベルから計算された誤りに基づいて該生徒役のニューラルネットワークを訓練するように構成された該生徒役のニューラルネットワークを備えている。
【0008】
本発明の更に別の実施態様に従うと、生徒役のニューラルネットワークを訓練する為のコンピュータ可読プログラムを含む非一時的なコンピュータ可読記憶媒体が提供される。該コンピュータ可読プログラムは、複数の入力ベクトルを含むデータセットを教師役のニューラルネットワーク内に供給して、複数の出力値を生成すること、及び2つの対応する入力ベクトルについての該教師役のニューラルネットワークからの該複数の出力値のうちの2つを2つの対応するソフトラベルに変換する為の命令を含む。該コンピュータ可読プログラムは、該2つの対応する入力ベクトルを組み合わせて、合成された1つのデータベクトルを形成すること、及び、マスクされた1つのソフトラベルベクトルを該2つの対応するソフトラベルから形成する為の命令を更に含む。該コンピュータ可読プログラムは、該合成された1つのデータベクトルを該生徒役のニューラルネットワーク内に供給すること、該マスクされた1つのソフトラベルベクトルを使用して、該生徒役のニューラルネットワークの重みを変更する為の誤りを決定すること、及び、該生徒役のニューラルネットワークの該重みを変更する為の命令を更に含みうる。
【0009】
これらの目的及び他の特徴及び利点は、その例示的な実施態様の下記の発明の詳細な説明から明らかになるであろう。そして、該発明の詳細な説明は、添付の図面に関連して読まれるべきである。
【0010】
以下の説明により、好ましい実施態様の詳細が添付の図面を参照しながら提供されるであろう。
【図面の簡単な説明】
【0011】
【
図1】
図1は、本発明の1つの実施態様に従う、ハードターゲット(ワン-ホットベクトル(one-hot vector))においてでなく、教師役のネットワークによって作成されたソフトターゲット(ラベル)を利用したナレッジディスティレーションを用いて、生徒役のニューラルネットワークを訓練する為のシステム/方法を示すブロック図/フロー図である。
【
図2】
図2は、本発明の1つの実施態様に従う、教師役のネットワークによって作成されたソフトターゲットを利用したナレッジディスティレーションを用いて、生徒役のニューラルネットワークを訓練する為のシステム/方法を示すブロック図/フロー図である。
【
図3】
図3は、本発明の1つの実施態様に従う、教師役のニューラルネットワークによって生成されうる複数の出力値にソフトマックス関数を適用し、次にワン-ホットベクトルと比較されることができる確率を生成することを示す図である。
【
図4】
図4は、本発明の1つの実施態様に従う、教師役のニューラルネットワークによって作成された複数のソフトラベルにマスキングを適用することを示す図である。
【
図5】
図5は、本発明の1つの実施態様に従う、ミックスアップ・オーギュメンテーション及びマスキングの為の方法を示すブロック図/フロー図である。
【
図6】
図6は、本発明の1つの実施態様に従う、本方法及びシステムが適用されうる例示的な処理システムである。
【
図7】
図7は、本発明の1つの実施態様に従う、道路レイアウトをモデル化する為の1以上のニューラルネットワークを実装するように構成された例示的な処理システムである。
【
図8】
図8は、本発明の別の実施態様に従う、例示的なニューラルネットワーク800を例示的に図示するブロック図である。
【
図9】
図9は、1つの実施態様に従って、クラウドコンシューマによって使用されるローカルコンピューティングデバイスが通信するところの1以上のクラウドコンピューティングノードを有する例示的なクラウドコンピューティング環境を示すブロック図である。
【
図10】
図10は、1つの実施態様に従う、クラウドコンピューティング環境によって提供される機能抽象化レイヤの1組を示すブロック図である。
【発明を実施するための形態】
【0012】
本発明の複数の実施態様は、教師役のネットワークと生徒役のネットワークの両方に同じ訓練データが入力される場合に、ハードターゲット(ワン-ホットベクトル)においてでなく、該教師役のネットワークによって作成されたソフトターゲットを使用することによって、該生徒役のネットワークを訓練する為のナレッジディスティレーション訓練を提供する方法及びシステムに関する。提供される該方法及びシステムは、該生徒役のネットワークからの予測された出力(predicted output)と該教師役のネットワークからの出力との間の差をソフトターゲットとして使用し、そして、該生徒役のネットワークを訓練する間にその差を最小化することができる。該教師役のネットワークは、ナレッジディスティレーション処理に先立ち、ハードターゲットを用いて訓練されることができる。該生徒役のネットワークが、既に大きな解空間(solution space)を利用している該教師役のネットワークの挙動を複製するように設定されている場合、該生徒役のネットワークは、該生徒役のネットワークの収束空間がオリジナルの教師役のネットワークの収束空間と重なることを期待されることができる。
【0013】
様々な実施態様において、複雑な深層ニューラルネットワーク(すなわち、該教師役のネットワーク)は、ハードターゲット/ラベルを有する完全なデータセットを使用して訓練されることができ、ここで、これはオフラインで実施されることができる。該深層ニューラルネットワークは、多層パーセプトロン(multilayer perceptron)であることができる。該教師役のネットワークの中間出力と該生徒役のネットワークの中間出力との間に対応関係が確立されることができる。該教師役のネットワークの出力は、計算された誤り値(error values)を該生徒役のネットワークを通じてバックプロパゲートする為に使用され、従って、該生徒役のネットワークは、該ハードターゲット/ラベルで直接的に学習するのでなく、該教師役のネットワークの挙動を複製するように学習することができる。それによって、該教師役のネットワークは、そのナレッジをより小さなサイズの生徒役のネットワークに効果的に伝達することができる。
【0014】
様々な実施態様において、該アプローチは、入力特徴及び出力ラベルの両方を線形に組み合わせることによって、仮想訓練例を構築する。様々な実施態様において、本方法は、複数の訓練サンプルの任意に選択された組と、それらに関連付けられたソフトラベルとを組み合わせて、新しい訓練データを、下記の式に従って作成することができる。
【0015】
【0016】
ここで、xi及びxjは生の入力ベクトルであり、yi及びyjは夫々、該生の入力ベクトルxi及びxjに関連付けられたワン-ホットラベルベクトル(one-hot label vectors)である。ミックスアップは、ドメイン固有のナレッジを使用すること無しに、入力特徴及びターゲットラベルの両方について単純な重み付けされた補間によって実現されることができる。様々な実施態様において、このミックスアップ・オーギュメンテーションは、音声認識の為のナレッジディスティレーション(教師役-生徒役の訓練)フレームワークに適用されることができる。
【0017】
ナレッジディスティレーションは、テスト時間デプロイメントの為に、複雑化された教師役のニューラルネットワークを簡単な生徒役のモデルで模倣することができる。しかしながら、教師役のネットワークの出力と生徒役のネットワークの出力とを直接的に類似させるだけでなく、多くの既存の方法は、他のネットワーク層における教師役の情報を生徒役のネットワークに直接転送することができない。一般化されたナレッジディスティレーション法は、訓練の間のみに利用可能でありうる特権的な情報を用いて、不足している情報を補ったり、又は音響特徴の質の低さを補ったりすることができる。
【0018】
ナレッジディスティレーションは、複雑化された教師役のニューラルネットワークを簡単な生徒役のニュートラルネットワークで模倣する為の技術であり、ここで、訓練は2つの別々の工程で実行されることができる。最初の工程において、複雑な教師役のニューラルネットワーク、例えば、双方向LSTMモデル、VGGモデル又はResNetモデル、が、ハードターゲット(すなわち、1以上のワン-ホットベクトル)を使用して最初に訓練されることができる。分類は、各カテゴリをワン-ホットコード化されたベクトルで記述することによって実施されることができ、ここで、その値は真のクラス(その値は1である)を示すものを除いて、全ての値がゼロにされ、ここで、このベクトルのサイズは出力層におけるノードの数に対応する。例えば、分類されるべき音素の数が40である場合、このワン-ホットベクトルのサイズがまた40×1であり、音素を識別する1つの値を1つ含む。
【0019】
ASRシステムにおいて、ニューラルネットワークの出力は、単一の音素(モノフォン(mono-phone))でなく、複数の連続した音素(continuous phonemes)の組み合わせ(例えば、トリフォン(tri-phone)、クインフォン(quin-phone)等)である。1の値は、該ニューラルネットワークへの入力音素に対応するワン-ホットベクトル内の位置に設定される。ハードターゲットとは対照的に、ソフトターゲット(ソフトラベル、又はソフト出力)は、ワン-ホットベクトルでなく、代わりにソフトターゲットベクトルにおける全ての要素がゼロ以外の値を有することができる。ハードターゲットベクトルの大きさは該ソフトターゲットベクトルのそれと同じである。該ソフトターゲットは、教師役のネットワークによって自動的に作成されることができる。
【0020】
次に、生徒役のニューラルネットワークの為のコンパクトな音響モデルは、該生徒役の出力分布と該教師役の出力分布との差を最小化する訓練基準を用いて、教師役のネットワークの複数のソフトラベル/複数のターゲット出力で訓練されることができる。高速処理(例えば、小回り(small turnaround)、リアルタイム要素、及び最小限の待ち時間)は、ASR処理の為に有益である。しかしながら、あまり複雑でない生徒役のニューラルネットワークは、より複雑化された教師用ネットワークよりも精度が低く、且つASRの性能が劣る場合がある。教師役-生徒役の学習(ナレッジディスティレーション)により、ソフトラベル/ターゲットを利用して該教師役のネットワークの挙動を模倣することによって、高速な処理速度を維持しながら、簡単なアーキテクチャ(生徒役のニューラルネットワーク)でよりロバストなニューラルネットワークを作成することができる。
【0021】
様々な実施態様において、該生徒役のニューラルネットワークは、該教師役のニューラルネットワークよりも少ないパラメータを有する深層ニューラルネットワーク(DNN)であることができる。該生徒役のニューラルネットワークのサイズは、該生徒役のニューラルネットワークが機能することを意図しているデバイス(例えば、スマートフォン、タブレット等)のパワー及び洗練さに基づくことができ、一方、該教師役のニューラルネットワークは、正確なモデルを提供する為に十分に複雑であることができる。
【0022】
計算量の多い大規模なモデルが一旦訓練されると、大規模なモデルから、デプロイメントの為により適した小規模なモデルへナレッジを伝達する為にディスティレーションが使用されることができる。該小規模なモデルに付与されるナレッジは、学習済みの該大規模なモデルの学習されたパラメータ値でなく、入力ベクトルから出力ベクトルへの学習されたマッピングである。該大規模なモデルによって生成するクラス確率は、該小規模なモデルを訓練する為の「ソフトターゲット」として利用されることができる。
【0023】
様々な実施態様において、ナレッジディスティレーションは、生徒役のネットワークを訓練する為に使用される複数のソフトラベルを強化する為に特権的なナレッジを用いて、能率的な、生徒役のネットワークを訓練する為に使用されることができる。「ソフト」ラベルは、有効な確率分布であることに制限される場合がある。「ソフトラベル」は、各隠れ層の後に、より大きな、教師役のネットワークによって生成される出力特徴マップを云う。
【0024】
本発明を適用されることができる例示的なアプリケーション/用途は、コールセンターの監視、カーナビゲーションシステム、会議の議事録作成、ロボットの音声制御、音声コマンドによるWebブラウジング等を包含することができるが、これらに限定されるものでない。
【0025】
本発明の観点は、所定の例示的なアーキテクチャの観点から説明される。しかしながら、他のアーキテクチャ、構造、コンポーネント、並びにプロセスの特徴及び工程は、本発明の観点の範囲内で変化させることができることが理解されよう。
【0026】
ここで、同様の数字が同一又は類似の要素を表す図面を参照し、最初に
図1を参照すると、本発明の1つの実施態様に従う、ハードターゲット(ワン-ホットベクトル)においてでなく、教師役のネットワークによって作成されたソフトターゲット(ラベル)を利用したナレッジディスティレーションを用いて、生徒役のニューラルネットワークを訓練する為のシステム/方法が示されている。
【0027】
1以上の実施態様において、訓練データ110は、教師役のニューラルネットワーク120及び生徒役のニューラルネットワーク150を備えているシステム100に供給されることができ、ここで、入力データは、下記の1組とすることができる:
【0028】
【0029】
ここで、nは訓練サンプルにわたるインデックスであり、各xnは特徴ベクトルであることができ、及び各出力ynは、特徴ベクトルxnに対応する理想的な出力(ideal output)yn(すなわち、ワン-ホットベクトル)である。様々な実施態様において、ベクトルxi及びxjは、教師役のネットワーク120に供給されることができ、及びxi及びxjはXの2つの異なる要素である生の入力ベクトルであることができ、並びに、i及びjはインデックスである。様々な実施態様において、教師役のモデルを訓練する為に使用される1対{xn , yn }が使用され、一方、生徒役のモデルは、xnと、xnに対応する教師役のモデルによって生成された実際の出力との1組で訓練される。ミックスアップ・オーギュメンテーションにおいて、xiとxjとの間の重み付けされた補間(weighted interpolation)によって新しい訓練サンプルxmが作成される。
【0030】
様々な実施態様において、教師役のニューラルネットワーク120は、リカレントニューラルネットワーク(RNN:recurrent neural network)、例えば、長短期記憶(LSTM:long short term memory)、双方向長短期記憶(BLSTM:bidirectional long short term memory)及びリカレント多層パーセプトロン(RMLP:recurrent multilayer perceptron)を包含するがこれらに限定されない該リカレントニューラルネットワーク(RNN)、であることができ、又は非リカレントニューラルネットワーク、例えば、VVGNET(Convolutional Neural Network architecture:畳み込みニューラルネットワークアーキテクチャ)、フィードフォワードニューラルネットワーク(FFNN:feed-forward neural network)、及び時間遅延ニューラルネットワーク(TDNN:time-delayed neural network)を包含するがこれらに限定されない該非リカレントニューラルネットワーク、を包含することができる。教師役のニューラルネットワーク120は、出力層130に供給する1以上の隠れ層を有することができる。教師役のネットワーク120は、上記に列挙されたネットワークに加えて、完全に接続された層(fully connected layers)を更に有することができる。
【0031】
1以上の実施態様において、教師役のネットワーク120の出力層130のノード135は、生の出力値を生成することができ、ここで、該生の出力値は、音素についての識別されたクラスの各々内に入る訓練データの尤度に関連する入力xn(例えば、xi及びxj)から生成された実数であることができる。様々な実施態様において、ノード135によって出力される生の値は、音素のシーケンス、例えば、k-a-s+a+t、k-a-s+u+t、k-a-s+e+t、p-a-t+a+b、であることができ、中心音素(center phoneme)は“s”又は“t”であり、一方、先行音素(preceding phoneme)は“k”、“p”及び“a”であり、並びに、後行音素(following phoneme)は“a”、“e”、“u”、“i”、“t”及び“b”であり、ここで、"-"は先行音素であり、"+"は後行音素を表す。言い換えれば、入力訓練サンプルxnに対応する音素は“s”であることができ、隣接する音素に依存して異なるクラスに分類されることができる。ノード135は、分類される音素と同じ数だけ存在することができる。
【0032】
生の出力値は、入力xnが1以上のクラスに属する確率に変換するソフトマックス関数(Softmax function)140に供給されることができ、及びソフトラベルq={q1,q2,…,qk}として言及され、ここで、kは出力層におけるノード135のインデックスである。ソフトマックス関数によって生成される確率は、設計上、合計が1である。従って、ソフトマックス関数を使用する場合に、或るクラスの確率が増える為には、他のクラスのうちの少なくとも1つの確率が同量だけ減る。この出力層130とソフトマックス関数140のargmax値は、ワン-ホット入力ベクトルxnに関連付けられた、入力の推定クラスynに対応することができる。
【0033】
様々な実施態様において、教師役のネットワーク120は、クロスエントロピー損失(cross entropy loss)で訓練されることができる。
【0034】
1以上の実施態様において、同じ訓練データ110が生徒役のニューラルネットワーク150内に供給されることができ、ここで、入力データは1つの訓練セットX={xn,yn}とすることができ、ここで、nは訓練サンプルにわたるインデックスであり、各xnは特徴ベクトルであることができ、及び各出力ynは、特徴ベクトルxnに対応する理想的な出力yn(すなわち、ワン-ホットベクトル)である。様々な実施態様において、ベクトルxi及びxjは教師役のネットワーク120内に供給されることができ、ここで、xi及びxjは生の入力ベクトルであることができ、並びに、i及びjはインデックスである。様々な実施態様において、該入力データは音素のシーケンスであることができ、ここで、ワン-ホットベクトルは音素のクラスを識別する。
【0035】
1以上の実施態様において、生徒役のニューラルネットワーク150は、深層ニューラルネットワーク(DNN)、例えば、多層パーセプトロン(MLP)及び畳み込みニューラルネットワーク(CNN)を包含するがこれらに限定されない該深層ニューラルネットワーク(DNN)、であることができる。生徒役のニューラルネットワーク150は、出力層160に供給する1以上の隠れ層を有することができる。生徒役のニューラルネットワーク150は、例えば、より少ない隠れ層、若しくはノード間のより少ない接続、若しくはより少ない自由パラメータ/重み、又はそれらの2以上の組み合わせを有することによって、教師役のニューラルネットワーク120よりも複雑でないことができる。
【0036】
1以上の実施態様において、生徒役のネットワーク150の出力層160のノード165は、生の出力値を生成することができ、ここで、生の出力値は、該識別されたクラスの各々内に入る訓練データの尤度に関連する入力xnから生成される実数であることができる。該生の出力値は、該生の出力値を1以上のクラスに属する入力xnの確率に変換するところのソフトマックス関数170に供給されることができる。ソフトマックス関数によって生成される確率は、設計上、合計が1である。従って、ソフトマックス関数を使用する場合、或るクラスの確率が増える為には、他のクラスの少なくとも1つの確率が同等の量だけ減る。この出力層160とソフトマックス関数170のargmax値は、ワン-ホット入力ベクトルxnに関連付けられた、入力の推定クラスynに対応することができる。
【0037】
1以上の実施態様において、より大きく、より複雑な教師役のニューラルネットワーク120が、訓練セットX={xn,yn}、及びソフトマックス関数140によって作成された複数のソフトラベルにおいて一旦訓練されると、該複数のソフトラベルq={q1,q2,...,qk}は、生徒役のニューラルネットワーク150を訓練する為の下記の損失関数に適用される(180)ことができる。
【0038】
【0039】
ここで、q={q1,q2,...,qk}は、教師役のネットワーク120からの1以上のソフトラベルであり、それはまた、疑似ラベルとして機能し、及び、ここで、p={p1,p2,...,pk}は、生徒役のネットワーク150によって生成されるクラスの出力確率であり、“k”はニューラルネットワークの1以上の出力層内の1以上のノードについてのインデックスである。教師役のネットワーク120からの1以上のソフトラベルと生徒役のネットワーク150のソフトマックス値(Softmax values)との間の差は、生徒役のネットワーク150についての重みを訓練する為に生徒役のネットワーク内にフィードバックされることができる。このことにより、該生徒役のネットワークのアーキテクチャ及び複雑さを簡単にしながら、該教師役のネットワークのナレッジ(ロジット(logits))を模倣するように生徒役のネットワークを訓練することができる。ロジット関数又はログオッズ(log-odds)は、オッズp/1-pの対数であり、ここで、pは確率である。
【0040】
fkは、生徒役のネットワークgkにおける入力特徴xnについてのノードkの事後確率を生成する関数とみなすことができる。gkは、教師役のネットワーク120における入力特徴xnについてのノードkの事後確率を生成する関数とみなすことができ、ここで、fkは、上述された生徒役のネットワークからの予測された出力を得る為に使用される処理と同じ処理を云い、及びgkは、上述された該教師役のネットワークの為の同じ処理を云う。pk=fk(xn);qk=gk(xn)、ここで、pkは生徒役のネットワークからのクラスの出力確率であり、及びqkは教師役のネットワークからのソフトラベルであり、それはまた擬似ラベルpとして機能する。
【0041】
図2は、本発明の1つの実施態様に従う、教師役のネットワークによって作成されたソフトターゲットを利用したナレッジディスティレーションを用いて、生徒役のニューラルネットワークを訓練する為のシステム/方法を示すブロック図/フロー図である。
【0042】
訓練方法200のブロック210では、訓練データが教師役のニューラルネットワーク内に入力され、ここで、該訓練データは、入出力ペアの1組(xn,yn)であることができ、ここで、期待される出力(expected output)ynは、グランドトゥルース(ground truth)(例えば、ワン-ホットラベル)である。訓練セットX={xn,yn}は、離散時系列データ又はデジタル化された時系列データであり、ここで、該時系列は例えば、音素であることができる。該訓練セットは、教師役のニューラルネットワークの1以上のノード内に供給されることができ、ここで、該教師役のニューラルネットワークは、1以上の隠れ層及び1つの出力層を有するリカレントニューラルネットワークであることができる。該教師役のニューラルネットワークは、複数の入力ベクトルxnのクラスを識別する為に、該訓練セットX={xn,yn}において学習されることができる。
【0043】
ブロック220では、該教師役のネットワークは、ソフトラベルを該入力データから作成することができ、ここで、該訓練された教師役のネットワークは、該教師役のニューラルネットワークの出力ノードで複数の出力値を生成する。
【0044】
ブロック230では、出力ノードでの複数の出力値が、該出力ノードからの生の出力値を、1以上の事前定義されたクラスに属する入力xnの確率に変換するところのソフトマックス関数によって操作されることができ、ここで、該確率はソフトラベルq={q1,q2,...,qk}として言及されることができる。該ソフトマックス関数は、K個の実数値のベクトルを、合計が1になるK個の実数値のベクトルに変換する関数である。入力値は、正、負、ゼロ、又は1よりも大きく、ここで、該ソフトマックス関数は、確率として解釈できるように、0~1の値に変換することができる。
【0045】
ブロック240では、ミックスアップ・オーギュメンテーションが入力特徴/ベクトル、xi及びxj並びに教師役のソフトマックスラベルに適用されて、ミックスアップ訓練ペア(Mixup training pairs)を作成することができる。該作成されたミックスアップ訓練ペアは、該生徒役のニューラルネットワーク内に供給されることができる。
【0046】
【0047】
様々な実施態様において、ナレッジディスティレーション訓練アプローチは、損失関数を下記の式で定義することができる。
【0048】
【0049】
ここで、q={q1,q2,...,qk}は、該教師役のネットワークからのソフトラベルであり、それは疑似ラベルとして機能し、p={p1,p2,…,pk}は、該生徒役のネットワークからのクラスの出力確率であり、並びに“k”は該ニューラルネットワークの1以上の出力層内の1以上のノードについてのインデックスである。pkは、生徒役のネットワークによって生成されるクラスの出力確率である。pk=fk(xn);qk=gk(xn)。fkは、生徒役のネットワークの入力特徴xnについてのノードkの事後確率を生成する為の関数である。gkは、該教師役のネットワークにおける入力特徴xnについてのノードkの事後確率を生成する為の関数であり、ここで、xnはgkとfkの両方の為に使用される。
【0050】
様々な実施態様において、グランドトゥルースラベルを使用する代わりに、ナレッジディスティレーション訓練アプローチは、コンテキスト依存の音(phone)kのインデックスを有する損失関数を下記の式で定義することができる。
【0051】
【0052】
様々な実施態様において、1以上の特徴量xi及びxjを夫々、該教師役のネットワーク内に入力することによって、ミックスアップ・オーギュメンテーションが、音声認識におけるナレッジディスティレーションフレームワークに適用されることができる。次に、ソフトラベルqxi及びqxjがxi及びxjから作成することができ、そして、補間係数(すなわち、重み)λを使用してミックスされる(mixed)。該生徒役のネットワークは、合成された1つの対であるx及びqで学習され、ここで、
【0053】
【0054】
該値λは、xi及びxj(並びに、qi及びqj)がミックスされる場合の補間重み(スカラー値)である。λは、0~1で、ここで、λが1に近い場合、新しいxがxjに類似する。最適な補間重みλは、開発セットで実験を行うことによって見つけられることができる。
【0055】
様々な実施態様において、1以上の訓練サンプルxi及びxjは、補間重み0<λ<0.5でミックスされ、従って、ベースサンプルxiの特性は、該ミックスされた訓練サンプルにおいて支配的であることができる。ソフトラベルは、各音素についての尤度(確率)の分布を表すことができる。それ故に、qiの成分がqjの成分よりも小さい場合に、該ミックスされた訓練サンプルは主に、ベース訓練サンプルxiの特徴を有するので、qiにおける該成分は信頼されることができない場合がある。
【0056】
ブロック250では、該合成された訓練ペアであるx及びqの1組が、該生徒役のネットワークを訓練する為に使用されることができ、ここで、qは、合成されたミックスアップベクトルxに対応する合成されたソフトラベルである。該合成された1以上の入力ベクトルxの各々は、該生徒役のネットワーク内に供給されることができる。該生徒役のニューラルネットワークは、入力された各合成された入力ベクトルxmについての出力値を生成することができる。
【0057】
ブロック260では、ソフトマックス関数が、該生徒役のネットワークの出力層によって出力された値に適用されて、ソフトラベルを作成することができる。様々な実施態様において、該生徒役のネットワークは、該合成された入力ベクトルxからソフトラベルを作成することができ、該合成された入力ベクトルxは、該入力ベクトルxに対応する該合成されたソフトラベルqと比較されることができる。
【0058】
ブロック270では、該複数のソフトラベルは、該合成された訓練ペアs、x及びqの該組み合わされたソフトラベルqと比較されて、該生徒役のネットワークの為に誤り値(error value)を決定することができる。該計算された誤りは、該生徒役のニューラルネットワークにフィードバックされて、該生徒役のネットワークの重みを調整する為に使用されることができる。様々な実施態様において、該教師役のネットワークによって作成された複数のソフトラベルは、該生徒役のネットワークにおける重みを更新する為に使用される。
【0059】
図3は、本発明の1つの実施態様に従う、教師役のニューラルネットワークによって生成されうる複数の出力値にソフトマックス関数を適用し、次にワン-ホット(one-hot)ベクトルと比較されることができる確率を生成することを示す図である。
【0060】
1以上の実施態様において、該教師役のニューラルネットワーク又は該生徒役のニューラルネットワークのいずれかによって生成された出力値の1組は、負の値だけでなく、1超(すなわち、>1)である実数であることが出来る。M×1次元である出力ベクトル310は、最も可能性の高いクラスについての支配的な値315、及び可能性の低い分類についてのM-1個のより少ない値312を含むことができる。ソフトマックス関数320が出力ベクトル310に適用されて、同じくM×1次元であるソフトラベルベクトル330を作成することができる。ソフトラベルベクトル330はまた、最も可能性の高い(最も確率の高い)クラスについての支配的な値335、及び可能性の低い(より確率の低い)分類についてのM-1個のより少ない値332を有するであろう。ソフトラベルベクトル330の値はまた0~1であろう。ソフトラベルベクトル330がワン-ホットベクトル350と比較340されて、訓練を通じてソフトラベルベクトル330をワン-ホットベクトル350の1(イチ)に近づけ、より小さい値332を0(ゼロ)に近づける(352)ことができる。ソフトマックス関数320は、該教師役のニューラルネットワークからの複数の出力値を確率に変換する為に使用されることができ、ここで、ソフトラベルベクトル330は、該ソフトマックス関数によって出力ベクトル310における値で作成されることができる。
【0061】
様々な実施態様において、ワン-ホットベクトル350(すなわち、ハードターゲット)は、1以上の該ニューラルネットワークの為の理想的な出力として比較の為に使用される。該教師役のニューラルネットワークは、ソフトラベルベクトル330とハードターゲット350との間の差を最小化するように訓練されることができ、ここで、ハードターゲット350は、訓練コーパスで手動によって提供されることができる。訓練コーパスから与えられるハードターゲット350を使用する代わりに、該教師役のニューラルネットワークによって作成されたソフトラベルは、ナレッジディスティレーションの概念を通じて該生徒役のネットワークを訓練する為の理想的な出力として使用されることができる。ニューラルネットワークがハードターゲットで訓練される場合に、訓練によってネットワークにおける重みを更新することで、ニューラルネットワークからの予測された出力が1以上のワン-ホットベクトルに徐々に近づいていく。
【0062】
図4は、本発明の1つの実施態様に従う、教師役のニューラルネットワークによって作成された複数のソフトラベルにマスキングを適用することを示す図である。
【0063】
様々な実施態様において、ソフトラベルの一対(qi及びqj)は、マスクされた1つのソフトラベルqmを作成する為に使用されることができる。xi及びqiがベース訓練サンプルの一対であるとする。xi及びとxjは、通常異なる音素で結ばれているフレームである為に、より大きい補間重みを有するソフトラベル(すなわち、qi)が生徒役のネットワークを訓練する為に使用されうる。より大きいスペクトルパワーを有する音声信号が、自動音声認識(ASR)の為の主なターゲット信号である。ベースqiのソフトラベルコンポーネントにおいて、qjの成分よりも小さい値を有するコンポーネントは信頼性が低い。なぜならば、補間重み0<λ<0.5である場合に、該ミックスされた訓練サンプルが主に、ベース訓練サンプルxiの特徴を有するからである。それ故に、該1以上のソフトラベルが、下記の式でマスクされて、信頼できる部分のみを保持する。
【0064】
【0065】
ここで、Mm={r1,r2,…,rk}であり、“k”は、1以上のニューラルネットワークの1以上の出力層における1以上のノードのインデックスであり、εは、一定値0≦ε<1であり、それは、0に近い値であってもよく、又は0に設定されてもよい。
【0066】
様々な実施態様において、該補間重みは、0<λ<0.5に設定されることができ、ベース訓練サンプルxiを支配的な訓練サンプルとして保持する。qikはベース訓練サンプル(フレーム)xiが該教師役のネットワークに入力される場合にソフトラベルであり、一方、qjkは、xjが該教師役のネットワークに入力される場合にソフトラベルである。qiにおけるソフトラベル成分qikは、他のソフトラベルqjにおける成分値qjkよりも大きい場合(qik>qjk)に保持され、さもなければ、それらのコンポーネントはゼロに設定される。
【0067】
非限定的な例示的実施態様において、マスキングプロセス400は、マスクされた1つのベクトル430を作成することができ、ここで、ソフト値qiベクトル410は、変化する値の複数の値411、412、413及び414を含むことができ、ここで、414>413>412>411である。ソフト値qjベクトル420は、変化する値の複数の値421、422、423及び424を含むことができ、ここで、424>423>422>421である。ソフト値qiベクトル410及びソフト値qjベクトル420は、該教師役のネットワークによって生成されることができる。濃い灰色の斜線が引かれたボックスはベクトル内の大きな値を表し、一方、薄い灰色の斜線が引かれたボックスは教師役のニューラルネットワークからの出力として小さな値を表す。ソフト値qiベクトル410の複数の値が、ソフト値qiベクトル410の各値をソフト値qjベクトルの対応する値420と比較すること;そして、εをゼロ(0)に設定することによる該マスクされたベクトル430の各位置において、ゼロ値(0)439を置くことによって該マスクされたベクトル430を作成すること、ここで、ソフト値qjベクトル420の対応する値は、該対応するソフト値qiベクトル410の値よりも大きい;そして、ソフト値qiベクトル410の値431、432、433及び434を該マスクされたベクトル430の各位置に配置すること、ここで、ソフト値qjベクトル420の対応する値は、該対応するソフト値qiベクトル410の値よりも小さい、によってマスクされることができる。
【0068】
【0069】
値413に等しい433の対応する値は、該マスクされたベクトル430の対応する位置に配置される。値414に等しい434の対応する値は、該マスクされたベクトル430の対応する位置に配置される。値412に等しい432の対応する値は、該マスクされたベクトル430の対応する位置に配置される。値411に等しい431の対応する値は、該マスクされたベクトル430の対応する位置に配置される。パラメータεは、該ソフトラベルの信頼できない要素のマスクを作成する為に、0~1であることができる小さな定数値である。ゼロ(0)を使用することによりデフォルト値であることができる。
【0070】
様々な実施態様において、該ニューラルネットワークの出力層の複数のノードは、音素の種類に対応することができる。しかし、通常、単一の音素でなく、連続した音素(幾つかの音素の前後)が考慮される。例えば、音素数が40である場合、ASRシステムは、該出力層についての3つの連続音素に基づいて構築されることができ、従って、ノードの総数は40x40x40=64000である。しかしながら、これらの64000個のノードはまた、意味的に非意味的な音素の組み合わせを表し、従って、代わりに、意味のある音(phone)の組み合わせは、例えば9300個だけ考慮されることができる。様々な実施態様において、前後の2つの音素を有するクインホン(quinphone)が該ニューラルネットワークの該出力層において考慮されることができる。
【0071】
ミックスアップ・オーギュメンテーションは、音声フレームのみ(無音フレームは使用しない)で実行されることができる。ミックスアップはまた無音フレームに適用されることができるが、スピーチフレームにのみ焦点を当てる方がより効果的であることができる。
【0072】
図5は、本発明の1つの実施態様に従う、ミックスアップ・オーギュメンテーション及びマスキングの為の方法を示すブロック図/フロー図である。
【0073】
1以上の実施態様において、ミックスアップ作成手段500は、接続された訓練ベクトルと、マスクされたソフトラベルベクトルとを有するミックスアップ訓練データを作成することができる。
【0074】
ブロック510では、第1の訓練ベクトル及び第2の訓練ベクトルが、教師役のニューラルネットワーク内に供給されることができる。
【0075】
ブロック520では、該教師役のネットワークが、複数のソフトラベルを作成することができる。
【0076】
ブロック530では、該第1の訓練ベクトル及び第2の訓練ベクトルが、重み付けされた補間を用いて組み合わされて、組み合わされた1つの訓練ベクトルxm(合成データベクトルとしてまた言及される)を作成することができる。
【0077】
【0078】
ブロック540では、ソフトラベルのマスクされた1つのベクトルが、マスク処理400を通じて作成されることができる。様々な実施態様において、補間重みλが、2つの入力ベクトルに対応する複数のソフトラベルに適用されて、重み付けされたソフトラベルを形成することができ、ここで、該2つの入力ベクトルに対応するソフトラベルは、補間重みλを使用して重み付けされている。これらの重み付けされたソフトラベルは、マスクされたソフトラベルベクトルを作成する為に使用されることができる。
【0079】
【0080】
ブロック550では、該ミックスアップ訓練データが、該組み合わされた訓練ベクトルを、ソフトラベルの該マスクされたベクトルと組み合わせることによって作成されることができる。
【0081】
図6は、本発明の1つの実施態様に従う、本方法及びシステムが適用されうる例示的な処理システム600である。
【0082】
処理システム600は、少なくとも1つのプロセッサ(CPU)604を備えていることができ、且つシステムバス602を介して他のコンポーネントに動作可能に接続されたベクトル計算/操作を実行することができるグラフィックス処理(GPU)605を有しうる。キャッシュ606、読み取り専用メモリ(ROM:read only memory)608、ランダムアクセスメモリ(RAM:random access memory)610、入出力(I/O)アダプタ620、音声アダプタ630、ネットワークアダプタ640、ユーザインタフェースアダプタ650、及びディスプレイアダプタ660は、システムバス602に動作可能に接続されることができる。
【0083】
第1のストレージデバイス622及び第2のストレージデバイス624は、I/Oアダプタ620によってシステムバス602に動作可能に接続される。ストレージデバイス622及び624は、ディスクストレージデバイス(例えば、磁気ディスクストレージデバイス又は光ディスクストレージデバイス)、ソリッドステートデバイス、磁気ストレージデバイス等のうちのいずれかであることができる。また、ストレージデバイス622及び624は、同じ種類のストレージデバイスであることができ又は異なる種類のストレージデバイスであることができる。
【0084】
スピーカ632は、音声アダプタ630によってシステムバス602に動作可能に接続される。トランシーバ642は、ネットワークアダプタ640によってシステムバス602に動作可能に接続される。ディスプレイデバイス662は、ディスプレイアダプタ660によってシステムバス602に動作可能に接続される。
【0085】
第1のユーザ入力デバイス652、第2のユーザ入力デバイス654、及び第3のユーザ入力デバイス656は、ユーザインタフェースアダプタ650によってシステムバス602に動作可能に接続される。ユーザ入力デバイス652、654及び656は、キーボード、マウス、キーパッド、画像キャプチャデバイス、動作感知デバイス、マイクロフォン、複数の先行デバイスのうちの少なくとも2つの機能を組み込んだデバイス等、のうちのいずれでもあることができる。勿論、本原理の精神を維持しながら、他のタイプの入力デバイスがまた使用されることができる。ユーザ入力デバイス652、654及び656は、同じ種類のユーザ入力デバイスであってもよく又は異なる種類のユーザ入力デバイスであってもよい。ユーザ入力デバイス652、654及び656は、処理システム600との間で情報を入力及び出力する為に使用されることができる。
【0086】
様々な実施態様において、処理システム600は、当業者によって容易に企図されるように、他の要素(図示せず)を備えていてもよく、並びに或る要素を省略してもよい。例えば、様々な他の入力デバイス若しくは出力デバイス又はそれらの組み合わせは、当業者によって容易に理解されるように、同じものの特定の実装に依存して、処理システム600内に備えられていることができる。例えば、様々なタイプの無線入力及び/又は有線入力及び/又は出力デバイスが使用されることができる。その上、様々な構成の追加のプロセッサ、コントローラ、メモリ等が、当業者によって容易に理解されるように、利用されることができる。処理システム600のこれらの及び他の変形は、本明細書において提供される本原理の教示を考慮し、当業者によって容易に企図される。
【0087】
その上、処理システム600は、本方法/システムの夫々の実施態様を実装する為のコンピュータシステムであることが理解されよう。処理システム600の一部又は全部は、
図1~
図5の要素のうちの1以上で実装されうる。更に、処理システム600は、例えば、
図1~
図5の方法のうちの少なくとも一部を含む、本明細書に記載された方法の少なくとも一部を実行しうることが理解されよう。
【0088】
図7は、本発明の1つの実施態様に従う、道路レイアウトをモデル化する為の1以上のニューラルネットワークを実装するように構成された例示的な処理システム700である。
【0089】
1以上の実施態様において、処理システム700は、ミックスアップ訓練データを使用して教師役のニューラルネットワーク及び生徒役のニューラルネットワークを訓練する、コンピュータに実装された方法を実行するように構成されたコンピュータシステム600であることができる。
【0090】
1以上の実施態様において、処理システム700は、ビデオ画像から道路レイアウトを理解する、コンピュータに実装された方法を記憶及び実装する為に、メモリコンポーネント760、例えば、コンピュータシステムのランダムアクセスメモリ(RAM)610、ハードドライブ622、若しくはクラウドストレージ又はそれらの組み合わせを包含するがこれらに限定されない上記のメモリコンポーネント760、を有するコンピュータシステム700であることができる。メモリコンポーネント760はまた、メモリストレージを編成する為にデータベースを利用することができる。
【0091】
様々な実施態様において、メモリコンポーネント760は、音響入力をモデル化し且つ自動音声認識(ASR)を実行するように構成された複数の音響モデルを実装するように構成されることができる教師役のニューラルネットワーク710を備えていることができる。様々な実施態様において、教師役のニューラルネットワーク710は、長短期記憶(LSTM:Long Short Term Memory)又は双方向LSTM(BLSTM:bidirectional LSTM)として実装されうる。教師役のニューラルネットワーク710はまた、音響信号、例えば音素のシーケンス、を入力として受信し、そして、音素のシーケンスから語及びコンテキストを識別することを学習するように構成されることができる。入力は、マイクロフォン656によって受信された音素のシーケンシャルな組であることができる。教師役のニューラルネットワーク710はまた、出力値及びソフトラベルを作成するように構成されることができる。
【0092】
様々な実施態様において、メモリコンポーネント760は生徒役のニューラルネットワーク720を備えていることができ、該生徒役のニューラルネットワーク720は、教師役のニューラルネットワーク710から1以上の音響モデルを学習するように構成されることができ、及び音響入力をモデル化し、そして、自動音声認識(ASR)を実行するように構成されることができる。様々な実施態様において、生徒役のニューラルネットワーク720は、教師役のニューラルネットワーク710よりも小さく(例えば、より少ないノード若しくは層又はそれらの組み合わせ)、より複雑でない(例えば、学習されるべき自由パラメータが少ない)深層ニューラルネットワーク(例えば、多層パーセプトロン)として実装されうる。生徒役のニューラルネットワーク720はまた、出力値及びソフトラベルを作成するように構成されることができる。
【0093】
様々な実施態様において、メモリコンポーネント760は、訓練データ及び対応するソフトラベルの2つの別々の組を組み合わせるように構成されることができるミックスアップジェネレータ730を備えていることができ、ここで、該訓練データは、特徴/ベクトル、xxi及びxjであることができる。ミックスアップジェネレータ730は、生徒役のミックスアップと生徒役のソフトラベルの訓練ペアを作成するように構成されることができる。
【0094】
様々な実施態様において、メモリコンポーネント760は、2つのソフト値qiベクトルを、マスクされた1つのベクトルに変換するように構成されたマスカー740を備えていることができる。マスカー740は、2つのソフト値qiベクトルを受信し、及びマスキング処理を実行してマスキングされたベクトルを作成するように構成されることができる。
【0095】
様々な実施態様において、メモリコンポーネント760は、教師役のニューラルネットワーク710の複数の出力値及び生徒役のニューラルネットワーク720の複数の出力値からソフトラベルを作成するように構成されたソフトマックス関数750を備えていることができる。該出力は、教師役のニューラルネットワーク710の重み及び生徒役のニューラルネットワーク720の重みを調整する為に誤り関数に入力されることができ、若しくはユーザによる閲覧及び実施の為にスクリーン上に表示されることができ、又は上記の入力及び上記の表示をされることができる。
【0096】
図8は、本発明の別の実施態様に従う、例示的なニューラルネットワーク800を例示的に図示するブロック図である。
【0097】
ニューラルネットワーク800は、複数のニューロン/ノードを備えていてもよく、及び複数の出力ノードは、複数の接続808のうちの1以上を使用して通信してもよい。ニューラルネットワーク800は、複数の層、例えば、1以上の入力層802、1以上の隠れ層804及び1以上の出力層806を包含する上記複数の層、を備えていてもよい。1つの実施態様において、各層でのノードは、任意の機能(例えば、入力プログラム、入力データ等)を任意の前の層に適用して出力を作成する為に使用されてもよく、及び、隠れ層804は、入力層(又は任意の他の層)からの入力を、異なるレベルでのノードの為の出力に変換する為に使用されうる。
【0098】
図9は、1つの実施態様に従って、クラウドコンシューマによって使用されるローカルコンピューティングデバイスが通信するところの1以上のクラウドコンピューティングノードを有する例示的なクラウドコンピューティング環境を示すブロック図である。
【0099】
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に列挙される教示の実装はクラウドコンピューティング環境に限定されないことが理解されるべきである。寧ろ、本発明の実施態様は、現在知られている又は後に開発される任意の他の種類のコンピューティング環境と組み合わされて実装されることができる。
【0100】
クラウドコンピューティングは、最小限の管理労力又はサービスのプロバイダとの相互作用で迅速にプロビジョニングされ且つ解放されることができる構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理(processing)、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの便利なオンデマンドネットワークアクセスを可能にする為のサービス提供のモデルである。このクラウドモデルは、少なくとも5つの特徴、少なくとも3つのサービスモデル、及び少なくとも4つのデプロイメントモデル(deployment model)を含みうる。
【0101】
特徴は下記の通りである。
【0102】
オンデマンドセルフサービス(On-demand self-service):クラウドコンシューマ(cloud consumer)は、サービスのプロバイダとのヒューマンインターラクション(human interaction)を必要とせずに、自動的に必要に応じて、コンピューティング機能、例えばサーバ時間及びネットワークストレージ、を一方的にプロビジョニングすることができる。
【0103】
ブロードネットワークアクセス:機能は、ネットワークを介して利用可能であり、及び異種のシン(thin)クライアント・プラットフォーム又はシック(thick)クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的なメカニズムを介してアクセスされる。
【0104】
リソースのプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数のコンシューマにサービスを提供する為にプールされ、及び様々な物理リソースと仮想リソースが需要に従って動的に割り当てられ及び再割り当てされる。コンシューマは一般的に、提供されたリソースの正確なロケーションについての制御又はナレッジを有していないが、より高いレベルの抽象化でのロケーション(例えば、国、州又はデータセンター)を特定できうるという点で、ロケーションに依存しないといえる。
【0105】
迅速な順応性:機能は、迅速且つ弾力的にプロビジョニングされ、場合によっては自動的に、迅速にスケールアウトされ、迅速にリリースされて迅速にスケールインされうる。コンシューマにとって、プロビジョニングに利用可能な機能はしばしば、無制限であり及びいつでも任意の量で購入されることができる。
【0106】
測定されたサービス:クラウド・システムは、サービスの種類(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザアカウント)に適した何らかの抽象化レベルでの計量機能を用いることによって、リソースの使用を自動的に制御し及び最適化する。リソース使用は監視され、制御され、及び報告されることができ、利用されるサービスのプロバイダ及びコンシューマの両方についての透明性を提供することができる。
【0107】
サービスモデルは下記の通りである。
【0108】
サービスとしてのソフトウェア(SaaS:Software as a Service):クラウドインフラストラクチャにおいて実行しているプロバイダのアプリケーションを使用する為に、コンシューマに提供される機能である。該アプリケーションは、シン・クライアント・インタフェース、例えばウェブブラウザ(例えば、ウェブベースの電子メール)、を通じて、様々なクライアント・装置からアクセス可能である。該コンシューマは、制限されたユーザ固有のアプリケーション構成設定の在りうる例外として、基礎をなすクラウドインフラストラクチャ、例えば、ネットワーク、サーバ、オペレーティングシステム、ストレージ、又は個々のアプリケーション機能さえも包含する基礎をなすクラウドインフラストラクチャ、を管理又は制御しない。
【0109】
サービスとしてのプラットフォーム(PaaS:Platform as a Service):プロバイダによってサポートされるプログラミング言語及びツールを用いて作成された、コンシューマが作成した又は取得したアプリケーションを、クラウドインフラストラクチャ上にデプロイする為に、該コンシューマに提供される機能である。該コンシューマは、基礎をなすクラウドインフラストラクチャ、例えば、ネットワーク、サーバ、オペレーティングシステム、又はストレージを包含する基礎をなすクラウドインフラストラクチャ、を管理又は制御しないが、デプロイされたアプリケーション、及び場合によってはアプリケーションホスティング環境構成に対して制御を有する。
【0110】
サービスとしてのインフラストラクチャ(IaaS:Infrastructure as a Service):コンシューマが、オペレーティングシステム及びアプリケーションを含むことができる任意のソフトウェアをデプロイ及び実行することができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティングリソースをプロビジョニングする為に、該コンシューマに提供される機能である。該コンシューマは、基礎をなすクラウドインフラストラクチャを管理又は制御しないが、オペレーティングシステム、ストレージ、デプロイされたアプリケーションに対する制御、並びに、場合によっては、ネットワーク・コンポーネント(例えば、ホストのファイアウォール)を選択することの制限された制御を有する。
【0111】
デプロイメントモデル(Deployment Models)は下記の通りである。
【0112】
プライベートクラウド:クラウドインフラストラクチャは、ある組織の為のみに運営される。該クラウドインフラストラクチャは、該組織又は第三者によって管理され得、及びオンプレミス(on-premises)又はオフプレミス(off-premises)に存在しうる。
【0113】
コミュニティクラウド:クラウドインフラストラクチャは、幾つかの組織によって共有され、及び共通の関心事項(例えば、ミッション、セキュリティ要件、ポリシ、及びコンプライアンス考慮事項)を有する特定のコミュニティをサポートする。該クラウドインフラストラクチャは、該組織又は第三者によって管理され得、及びオンプレミス又はオフプレミスに存在しうる。
【0114】
パブリッククラウド:クラウドインフラストラクチャは、一般公衆又は大規模な業界グループに対して利用可能であり、及びクラウドサービスを販売する組織によって所有される。
【0115】
ハイブリッドクラウド:クラウドインフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術(例えば、クラウド間の負荷分散の為のクラウド・バースティング)によって組み合わされる2以上のクラウド(プライベート、コミュニティ、又はパブリック)の混成物である。
【0116】
クラウドコンピューティング環境は、無国籍性(statelessness)、低結合性、モジュール性、及びセマンティック相互運用性(semantic interoperability)に焦点を有する指向されたサービスである。クラウドコンピューティングの中核(heart)は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0117】
ここで
図9を参照すると、例示的なクラウドコンピューティング環境950が図示されている。図示されているように、クラウドコンピューティング環境950は、クラウドコンシューマ、例えば、パーソナルデジタルアシスタント(PDA:personal digital assistant)又は携帯電話951、デスクトップコンピュータ952、ラップトップコンピュータ953若しくは自動車コンピュータシステム954又はそれらの組み合わせ、によって用いられるローカルコンピューティングデバイスが通信しうる1以上のクラウドコンピューティングノード910を備えている。クラウドコンピューティングノード910は、互いに通信しうる。それらは、1以上のネットワーク、例えば、本明細書において記載されている、プライベートクラウド、コミュニティクラウド、パブリッククラウド、若しくはハイブリッドクラウド、又はそれらの組み合わせ、において物理的又は仮想的にグループ化されていてもよい(図示せず)。これにより、クラウドコンピューティング環境950は、クラウドコンシューマがローカルコンピューティングデバイス上のリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォーム若しくはソフトウェア又はそれらの組み合わせを提供することができる。図示されているコンピューティングデバイス951、952、953及び954の種類は、例示のみを意図されていること、並びにコンピューティングノード910及びクラウドコンピューティング環境950は、任意の種類のネットワーク若しくはネットワークアドレス可能接続又はそれらの組み合わせを介して(例えば、ウェブブラウザを使用して)任意の種類のコンピュータ化されたデバイスと通信することが理解される。
【0118】
図10は、1つの実施態様に従う、クラウドコンピューティング環境によって提供される機能抽象化レイヤの1組を示すブロック図である。
【0119】
ここで
図10を参照すると、クラウドコンピューティング環境950(
図9)によって提供される機能的抽象化層の1組が示されている。
図10において示されているコンポーネント、層及び機能は、単に例示であることが意図されていること、並びに本発明の実施態様はそれらに限定されないことが理解されるべきである。図示されている通り、下記の複数の層及び対応する複数の機能が提供される。
【0120】
ハードウェア及びソフトウェア層1060は、ハードウェアコンポーネント及びソフトウェアコンポーネントを包含する。ハードウェアコンポーネントの例は、メインフレーム61、RISC(Reduced Instruction Set Computer(縮小命令セット・コンピュータ))アーキテクチャ・ベースのサーバ62;サーバ63;ブレード・サーバ64;ストレージデバイス65;並びに、ネットワーク及びネットワーキングコンポーネント66を包含する。幾つかの実施態様において、ソフトウェアコンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67及びデータベース・ソフトウェア68を包含する。
【0121】
仮想化層1070は、抽象化層を提供し、この抽象化層から、仮想エンティティの下記の例が提供されうる:すなわち、仮想サーバ71;仮想ストレージ72;仮想ネットワーク73;例えば仮想プライベートネットワークを包含する上記の仮想ネットワーク73;仮想アプリケーション及びオペレーティングシステム74;並びに、仮想クライアント75。
【0122】
1つの例において、管理層1080は、以下で説明される複数の機能を提供しうる。リソース・プロビジョニング81は、クラウドコンピューティング環境内でタスクを実行する為に利用されるコンピューティングリソース及び他のリソースの動的な調達を提供する。計量及び価格決定82は、リソースがクラウドコンピューティング環境内で利用される場合のコスト追跡と、これらのリソースの消費についての課金又は請求とを提供する。1つの例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを包含しうる。セキュリティは、クラウドコンシューマ及びタスクに対する識別検証と、データ及び他のリソースに対する保護とを提供する。ユーザ・ポータル83は、コンシューマ及びシステム管理者の為に、クラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されるサービスレベルが満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス・レベル・アグリーメント(SLA:Service Level Agreement)の計画及び履行85は、将来の要件がSLAに従って予想されるクラウド・コンピューティング・リソースの為の事前配置及びその調達を提供する。
【0123】
ワークロード層1090は、該クラウドコンピューティング環境が利用されうる複数の機能の例を提供する。この層から提供されうる複数のワークロード及び複数の機能の例は、マッピング及びナビゲーション91;ソフトウェア開発及びライフサイクル管理92;仮想教室教育の提供93;データアナリティクス処理94;トランザクション処理95;並びに教師役のニューラルネットワーク96を包含し、ここで、該教師役のニューラルネットワークは、自動音声認識を学習し、そして、生徒役のニューラルネットワークを調整するように構成されたリカレントニューラルネットワークであることができる。
【0124】
本明細書において使用される場合に、語「ハードウェアプロセッササブシステム」又は「ハードウェアプロセッサ」は、1以上の特定のタスクを実行する為に協働する、プロセッサ、メモリ、ソフトウェア又はそれらの組み合わせを云うことができる。有用な実施態様において、ハードウェアプロセッササブシステムは、1以上のデータ処理要素(例えば、論理回路、処理回路、命令実行デバイス等)を備えていることができる。1以上のデータ処理要素は、中央処理装置、グラフィックス処理装置、若しくは別個のプロセッサ或いは演算要素のベースのコントローラ(例えば、論理ゲート等)、又はそれらの組み合わせを包含することができる。ハードウェアプロセッササブシステムは、1以上のオンボードメモリ(例えば、キャッシュ、専用メモリアレイ、読み取り専用メモリ等)を備えていることができる。幾つかの実施態様において、ハードウェアプロセッササブシステムは、オンボード若しくはオフボードであることができる又はハードウェアプロセッササブシステムによる使用の為に専用であることができるところの1以上のメモリ(例えば、ROM、RAM、基本入出力システム(BIOS:basic input/output system)等)を包含することができる。
【0125】
幾つかの実施態様において、該ハードウェアプロセッササブシステムは、1以上のソフトウェア要素を備えており且つ実行することができる。該1以上のソフトウェア要素は、指定された結果を達成する為に、オペレーティングシステム若しくは1以上のアプリケーション若しくは特定のコード又はそれらの組み合わせを備えていることができる。
【0126】
他の実施態様において、該ハードウェアプロセッササブシステムは、指定された結果を達成する為に、1以上の電子処理機能を実行するところの専用の特殊な回路を備えていることができる。そのような回路は、1以上の特定用途向け集積回路(ASIC:application-specific integrated circuit)、FPGA若しくはPLA又はそれらの組み合わせを備えていることができる。
【0127】
ハードウェアプロセッササブシステムのこれらの及び他の変形がまた、本発明の複数の実施態様に従って企図される。
【0128】
本発明は、統合の在りうる任意の技術的詳細レベルでの、システム、方法若しくはコンピュータプログラム製品又はそれらの組み合わせでありうる。該コンピュータプログラム製品は、プロセッサに本発明の観点を実行させる為のコンピュータ可読プログラム命令を有する1以上のコンピュータ可読記憶媒体を包含しうる。
【0129】
該コンピュータ可読記憶媒体は、命令実行デバイスによって使用する為の命令を保持且つ記憶することができる有形のデバイスであることができる。該コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又はこれらの任意の適切な組み合わせでありうるが、これらに限定されない。該コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、下記を包含する:ポータブルのコンピュータディスケット(登録商標)、ハードディスク、ランダムアクセスメモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read only memory)、消去可能なプログラム可能な読み取り専用メモリ(EPROM(erasable programmable read-only memory)又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM:static random access memory)、ポータブル・コンパクトディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリスティック、フロッピーディスク、機械的に符号化されたデバイス、例えば、パンチカード若しくは命令が記録されている溝内の隆起構造又はこれらの任意の適切な組み合わせ。本明細書において使用される場合、該コンピュータ可読記憶媒体は、一時的な信号それ自体、例えば、電波又は他の自由に伝播する電磁波、導波管若しくは他の伝送媒体を伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又は電線を介して送信される電気信号、であると解釈されるべきでない。
【0130】
本明細書において記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から夫々のコンピューティングデバイス/処理デバイスに、又はネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク若しくはワイヤレスネットワーク又はそれらの組み合わせ、を介して外部コンピュータ又は外部記憶デバイスにダウンロードされることができる。該ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ若しくはエッジサーバ又はこれらの組み合わせで構成されうる。各コンピューティングデバイス/処理デバイスにおけるネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そして、該コンピュータ可読プログラム命令を、個々のコンピューティングデバイス/処理デバイス内にコンピュータ可読記憶媒体中に記憶する為に伝送する。
【0131】
本発明の動作を実行する為のコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の為の構成データ、又は、1以上のプログラミング言語、例えばオブジェクト指向プログラミング言語、例えば、Smalltalk、C++等、慣用的な手続き型プログラミング言語(例えば、「C」プログラミング言語又は同様のプログラミング言語)、の任意の組み合わせで書かれているソースコード又はオブジェクトコードのいずれか、でありうる。該コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に、ユーザのコンピュータ上で部分的に且つリモート・コンピュータ上で部分的に、又はリモート・コンピュータ若しくはサーバ上で全体的に、実行されうる。後者のシナリオにおいて、該リモート・コンピュータは、任意の種類のネットワーク、例えば、ローカルエリアネットワーク(LAN:local area network)若しくはワイドエリアネットワーク(WAN:wide area network)、を介してユーザのコンピュータに接続されうるか、又は該接続は(例えば、インターネットサービスプロバイダを使用したインターネットを通じて)外部コンピュータに対して行われうる。幾つかの実施態様において、電子回路、例えば、プログラム可能な論理回路、フィールドプログラム可能なゲートアレイ(FPGA:field-programmable gate arrays)又はプログラム可能なロジックアレイ(PLA:programmable logic arrays)、は、本発明の観点を実行する為に、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行しうる。
【0132】
本発明の観点は、本発明の実施態様に従う、方法、装置(システム)及びコンピュータプログラム製品若しくはコンピュータプログラムのフローチャート図若しくはブロック図又はそれらの組み合わせを参照して本明細書において記載されている。該フローチャート図若しくは該ブロック図又はそれらの組み合わせの各ブロック、並びに該フローチャート図若しくは該ブロック図又はそれらの組み合わせにおける複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されることができることが理解されるであろう。
【0133】
これらのコンピュータ可読プログラム命令は、該コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサを介して実行する命令が該フローチャート図若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定された機能/動作を実装する為の手段を作成するように、コンピュータのプロセッサ又は他のプログラム可能なデータ処理装置に提供されて、マシンを作り出しうる。記憶された命令を有するコンピュータ可読記憶媒体が該フローチャート図若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定される機能/動作の観点を実装する命令を含む製造品を含むように、これらのコンピュータ可読プログラム命令はまた、コンピュータプログラム可能なデータ処理装置若しくは他のデバイス又はこれらの組み合わせに特定の様式で機能するように指示することができるコンピュータ可読記憶媒体中に記憶されうる。
【0134】
該コンピュータ可読プログラム命令はまた、コンピュータ上、他のプログラム可能なデータ処理装置上又は他のデバイス上で実行される命令が、該フローチャート図若しくはブロック図若しくはそれらの組み合わせの1以上のブロックにおいて特定される機能/動作を実装するように、上記のコンピュータ上、他のプログラム可能なデータ処理装置上又は他のデバイス上にロードされて、コンピュータ、他のプログラム可能な装置又は他のデバイス上で一連の操作工程を実行させて、コンピュータに実装されたプロセスを作成しうる。
【0135】
本明細書において、本発明の「1つの実施態様」(one embodiment)又は「1つの実施態様」(an embodiment)、並びにそれらの他の変形例への言及は、実施態様に関連して説明されている特定の特徴、構造、特性等が、本発明の少なくとも1つの実施態様に含まれることを意味する。従って、本明細書を通じて様々な場所に表れる表現「1つの実施態様において」(in one embodiment)又は「1つの実施態様において」(in an embodiment)並びに他の変形は、必ずしも全てが同じ実施態様を云うわけではない。
【0136】
「/」、「及び/又は」、「のうちの少なくとも1つ」のいずれかの使用、例えば、「A/B」、「A及び/又はB」、「A及びBのうちの少なくとも1つ」の場合、第1のリストされた選択肢(A)のみの選択、又は第2のリストされた選択肢(B)のみの選択、又は両方の選択肢(A及びB)の選択を包含することが意図されていることが理解されるべきである。更なる例として、「A、B及び/又はC」及び「A、B及びCのうちの少なくとも1つ」の場合、そのような表現は、第1のリストされた選択肢(A)のみの選択、又は第2のリストされた選択肢(B)のみの選択、又は第3のリストされた選択肢(C)のみの選択、又は第1及び第2の選択肢(A及びB)のみの選択、第1及び第3の選択肢(A及びC)のみの選択、第2及び第3の選択肢(B及びC)のみの選択、又は3つの選択肢すべて(A及びB及びC)の選択を包含することが意図されている。これは、本技術及び関連技術における当業者が容易に理解できるように、記載された項目数だけ拡張されうる。
【0137】
図面中のフローチャート図及びブロック図は、本発明の様々な実施態様に従う、システム、方法及びコンピュータプログラム製品若しくはコンピュータプログラムの在りうる実装の、アーキテクチャ、機能及び動作を示す。これに関連して、該フローチャート図又はブロック図における各ブロックは、命令のモジュール、セグメント、又はその一部を表し得、それは、特定された1以上の論理機能を実装する為の1以上の実行可能命令を含む。幾つかの代替の実装において、該ブロックにおいて示されている機能は、図面中に示されている順序とは異なって生じうる。例えば、連続して示されている2つのブロックは、実際には、関与する機能に依存して、同時に、実質的に同時に、部分的又は全体的に時間的に重複する様式で実行される1つの工程として達成されうるか、又は該ブロックは、逆の順序で実行されうる。該ブロック図若しくはフローチャート図又はこれらの組み合わせの各ブロック、並びに該ブロック図若しくはフローチャート図又はこれらの組み合わせの複数のブロックの組み合わせは、特定された機能又は動作を実行する特別な目的のハードウェアベースのシステムによって実装することができ、又は特別な目的のハードウェアとコンピュータ命令との組み合わせを実行することができることに留意されたい。
【0138】
システム及び方法の好ましい実施態様(それは例示であって限定することが意図されていない)を説明したが、修正及び変形は、上記の教示に照らして当業者によって行われることができることに留意されたい。それ故に、添付の特許請求の範囲によって概説されている本発明の範囲内にある、開示された特定の実施態様において変更がなされうることが理解されるべきである。このように、特許法によって要求される詳細及び特殊性をもって本発明の観点を説明したが、特許証によって保護されることを主張し且つ望むものは、添付の特許請求の範囲に記載されている。
【国際調査報告】