IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ソニー・コンピュータエンタテインメントの特許一覧

特許7544975効率的なトレーニングのための可変長入力による半ソートバッチ処理
<>
  • 特許-効率的なトレーニングのための可変長入力による半ソートバッチ処理 図1
  • 特許-効率的なトレーニングのための可変長入力による半ソートバッチ処理 図2
  • 特許-効率的なトレーニングのための可変長入力による半ソートバッチ処理 図3
  • 特許-効率的なトレーニングのための可変長入力による半ソートバッチ処理 図4
  • 特許-効率的なトレーニングのための可変長入力による半ソートバッチ処理 図5
  • 特許-効率的なトレーニングのための可変長入力による半ソートバッチ処理 図6
  • 特許-効率的なトレーニングのための可変長入力による半ソートバッチ処理 図7
  • 特許-効率的なトレーニングのための可変長入力による半ソートバッチ処理 図8
  • 特許-効率的なトレーニングのための可変長入力による半ソートバッチ処理 図9
  • 特許-効率的なトレーニングのための可変長入力による半ソートバッチ処理 図10
  • 特許-効率的なトレーニングのための可変長入力による半ソートバッチ処理 図11
  • 特許-効率的なトレーニングのための可変長入力による半ソートバッチ処理 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-26
(45)【発行日】2024-09-03
(54)【発明の名称】効率的なトレーニングのための可変長入力による半ソートバッチ処理
(51)【国際特許分類】
   G06N 3/08 20230101AFI20240827BHJP
   G06N 20/00 20190101ALI20240827BHJP
   G10L 15/16 20060101ALI20240827BHJP
   G06F 40/216 20200101ALI20240827BHJP
   G06F 40/44 20200101ALI20240827BHJP
【FI】
G06N3/08
G06N20/00
G10L15/16
G06F40/216
G06F40/44
【請求項の数】 20
(21)【出願番号】P 2023528496
(86)(22)【出願日】2021-11-10
(65)【公表番号】
(43)【公表日】2023-12-05
(86)【国際出願番号】 US2021058848
(87)【国際公開番号】W WO2022103884
(87)【国際公開日】2022-05-19
【審査請求日】2023-05-12
(31)【優先権主張番号】63/113,164
(32)【優先日】2020-11-12
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/107,362
(32)【優先日】2020-11-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】グ、チェンハオ
(72)【発明者】
【氏名】カウシィク、ラクシュミシュ
(72)【発明者】
【氏名】クマール、サケット
(72)【発明者】
【氏名】オモテ、マサノリ
【審査官】真木 健彦
(56)【参考文献】
【文献】特開2011-059815(JP,A)
【文献】森下 睦,ニューラル機械翻訳におけるミニバッチ構成法の違いによる影響の調査,言語処理学会 第23回年次大会 発表論文集 (2017年3月),日本,言語処理学会,2017年03月06日,P.1097-1100
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/08
G06N 20/00
G06F 40/216
G06F 40/44
G10L 15/06
G10L 15/16
G10L 13/00
G10L 13/02
(57)【特許請求の範囲】
【請求項1】
一時的信号ではない少なくとも1つのコンピュータストレージであって、少なくとも1つのプロセッサによって、
各機械学習(ML)トレーニングサンプルの長さの各数値表現をランダムに摂動させて、各疑似長を確立し、
前記MLトレーニングサンプルを疑似長によってソートし、かつ、
前記MLトレーニングサンプルの前記ソートから導出されたMLトレーニングサンプルのバッチを入力することによって少なくとも1つのMLモデルをトレーニングする
ように実行可能な命令を含む、前記コンピュータストレージ
を含む、デバイス。
【請求項2】
前記命令が、前記MLトレーニングサンプルの少なくとも一部の長さの各数値表現をランダムに摂動させるように実行可能である、請求項1に記載のデバイス。
【請求項3】
前記命令が、前記MLトレーニングサンプルのすべての長さの各数値表現をランダムに摂動させるように実行可能である、請求項1に記載のデバイス。
【請求項4】
前記MLトレーニングサンプルが可変長を有する、請求項1に記載のデバイス。
【請求項5】
前記MLトレーニングサンプルが可変長波形を含み、前記MLモデルが自動音声認識(ASR)用に構成される、請求項4に記載のデバイス。
【請求項6】
前記MLトレーニングサンプルが可変長のフレーズを含み、前記MLモデルが自然言語処理用に構成される、請求項4に記載のデバイス。
【請求項7】
前記MLトレーニングサンプルが可変長のテキスト文字列を含み、前記MLモデルが音声合成用に構成される、請求項4に記載のデバイス。
【請求項8】
前記命令が、それぞれの各数値表現にランダム化された各値を追加することによって少なくとも部分的に、長さの前記各数値表現をランダムに摂動させるように実行可能である、請求項1に記載のデバイス。
【請求項9】
ランダム化された各値が、前記MLトレーニングサンプルの中の最長サンプル長と最短サンプル長との差の2分の1を引いたものと、前記最長サンプル長と前記最短サンプル長との前記差の2分の1を足したものとの間の値の分布からランダムに選択される、請求項8に記載のデバイス。
【請求項10】
ランダム化された各値が、前記最長サンプル長と前記最短サンプル長との前記差の2分の1を引いたものと、前記最長サンプル長と前記最短サンプル長との前記差の2分の1を足したものとの間の値の前記分布にランダム化係数を乗じたものからランダムに選択される、請求項9に記載のデバイス。
【請求項11】
前記値の分布が、平均ゼロである、請求項9に記載のデバイス。
【請求項12】
前記分布が均一な分布である、請求項11に記載のデバイス。
【請求項13】
前記命令を実行する前記少なくとも1つのプロセッサを含む、請求項1に記載のデバイス。
【請求項14】
似長を確立するために、可変長トレーニングサンプルの実際の長さをランダムに摂動させることと、
可変長トレーニングサンプルの配置を確立するために前記疑似長を使用して前記可変長トレーニングサンプルを配置することと、
可変長トレーニングサンプルの前記配置を使用して、少なくとも1つの機械学習(ML)モデルをトレーニングすることと
を含む、方法。
【請求項15】
非訓練データから予するために前記MLモデルを使用することを含む、請求項14に記載の方法。
【請求項16】
前記可変長トレーニングサンプルが可変長波形を含み、前記MLモデルが自動音声認識(ASR)のために構成される、請求項14に記載の方法。
【請求項17】
前記可変長トレーニングサンプルが可変長のフレーズを含み、前記MLモデルが自然言語処理用に構成される、請求項14に記載の方法。
【請求項18】
前記可変長トレーニングサンプルが可変長テキスト文字列を含み、前記MLモデルが音声合成用に構成される、請求項14に記載の方法。
【請求項19】
少なくとも1つのプロセッサであって、
実サンプル長とランダム化された長さの各組み合わせに基づいて、各長さごとに複数の可変長サンプルを配置し、
トレーニングフェーズ、推論フェーズ、検証フェーズ、またはテスト、推論、及び検証の任意の組み合わせで、それぞれの各長さごとに配置された前記可変長サンプルを少なくとも1つのニューラルネットワークに入力し、かつ、
前記サンプルに少なくとも部分的に基づいて、前記少なくとも1つのニューラルネットワークを実行する
ように適合された、前記少なくとも1つのプロセッサ
を含む、装置。
【請求項20】
前記少なくとも1つのプロセッサが、(-a/2,a/2)内に均一に分布されたランダム変数であるランダム化された各長さεを各実サンプル長xに加えることによって少なくとも部分的に前記各長さを確立するように適合され、
aは、サンプル長の下限境界と上限境界との差とランダム化係数r∈[0,∞)とによって決定された境界であり、
【数1】
である、請求項19に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は一般に、コンピュータ技術に必然的に根差し、具体的な技術的改善をもたらす、技術的に発明的で非定型的な解決策に関する。詳細には、本出願は、機械学習ニューラルネットワークをトレーニングするための技術に関する。
【背景技術】
【0002】
機械学習(ML)モデルは、可変長の音声入力(波形を使用した自動音声認識(ASR))からのテキストの導出、フレーズ内の次の単語の予測を行う自然言語処理、及び音声合成(テキストから音声へ)など、可変長データのパターンの認識に使用される。
【0003】
このようなモデルは、時間情報を伴う順次トレーニングデータを使用してトレーニングする必要がある。「順次」という言葉は、予測される結果が現在のデータだけでなく、以前のデータからも決定されることを意味する。ランダムバッチ処理は、可変長トレーニングデータを使用した順次モデルトレーニングのためのデフォルトのバッチ処理戦略として一般に使用されている。ただし、ゼロパディングレート(ZPR)は比較的高くなる。ZPRは、効率的なトレーニングのためにすべてのデータが同じ長さになるように、短いサンプルにゼロを追加する必要があることを指し、ZPRは、追加されたゼロの総数とパディング後の総サンプル長の比率である。本明細書で理解されるように、高いZPRはかなりの計算コストの増加を伴う。
【0004】
ZPRを減らすために、ランダムバッチ処理の代わりに、サンプルをランダムに並べるのではなく、バッチ処理の前に長さでサンプルをソートすることができる。本明細書で認識されるように、これはZPRを減少させるが、データのランダム性も完全に除去し、モデルの学習及び精度の改善には良くない。
【発明の概要】
【0005】
本原理は、可変長のトレーニングサンプルの実際の長さに、サンプルをソートするためのランダムな長さの摂動を追加する。摂動の追加が無ければ、上記の厳密にソートされたサンプルのみを取得することができる。結果として生じるサンプルシーケンスは、実際の長さを持つ実際のサンプルを含む。このようにして、サンプルはランダム化された疑似長でソートされるが、各バッチの長さにはある程度のランダム性が維持される。
【0006】
この技術は、本明細書では半ソートバッチ処理と呼ばれ、ZPRの削減(トレーニング速度の向上のため)とデータのランダム性(ランダムバッチ処理と比較して同様のモデルパフォーマンスを維持するため)のバランスを取る。このバッチ処理方法は、入力サンプルの長さが可変である限り、あらゆる順次モデルトレーニングに役立つ。半ソートバッチ処理は、ランダムレベルの調整に使用できるパラメータも提供し、これは、ランダムバッチ処理と厳密にソートされたバッチ処理の間の「スイートスポット」を見つけるのに役立ち、モデルのトレーニング効率とトレーニングのランダム性のバランスが良い。
【0007】
さらに、バケットバッチ処理(サンプルを最初にソートしてから異なるバケットに分割し、バケットサイズはバッチサイズの倍数である)や交互ソートバッチ処理(サンプルを最初にビンに分割し、次に各ビン内のサンプルを奇数ビンは昇順にソートし、偶数ビンは降順にソートするように交互にソートする)とは異なり、本技術では2つのステップは必要なく、必要なのは、ランダムに摂動された長さでサンプルをバッチにソートする1ステップのみである。
【0008】
したがって、デバイスは、一時的信号ではない少なくとも1つのコンピュータストレージを含み、少なくとも1つのコンピュータストレージは、少なくとも1つのプロセッサによって実行されて、各機械学習(ML)トレーニングサンプルの長さの各数値表現をランダムに摂動させて各疑似長を確立する命令を含む。命令は、疑似長によってMLトレーニングサンプルをソートし、MLトレーニングサンプルのソートから導出したMLトレーニングサンプルのバッチを入力することによって少なくとも1つのMLモデルをトレーニングするように実行可能である。ここで留意すべきは、本ソート技術は、テスト(推論)フェーズ及び検証フェーズでも使用されてよいことである。
【0009】
例示的な実施形態では、命令は、MLトレーニングサンプルの少なくとも一部の長さの各数値表現をランダムに摂動させるように実行可能である。必要に応じて、命令は、MLトレーニングサンプルのすべての長さの各数値表現をランダムに摂動させるように実行可能であってよい。
【0010】
本明細書で論じる実施態様では、MLトレーニングサンプルは可変長を有する。例として、MLサンプルは可変長の波形を含むことができ、MLモデルは自動音声認識(ASR)用に構成することができる。または、MLサンプルは可変長のフレーズを含むことができ、MLモデルは自然言語処理用に構成することができる。さらにまた、MLサンプルは可変長のテキスト文字列と可変長の波形を一緒に含むことができ、MLモデルは音声合成トレーニング用に構成することができる。TTSのトレーニング中は波形が必要であるが、推論中はテキストのみが必要である。上記の組み合わせを実装することができる。
【0011】
例示的な実施形態では、命令は、ランダム化された各値をそれぞれの各数値表現に追加することによって少なくとも部分的に、長さの各数値表現をランダムに摂動させるように実行可能であってよい。いくつかの実施態様では、ランダム化された各値は、MLサンプルの中の最長サンプル長と最短サンプル長との差の2分の1を引いたものと、最長サンプル長と最短サンプル長との差の2分の1を足したものとの間の値の分布からランダムに選択することができる。必要に応じて、分布にランダム化係数を掛けてよい。値の分布は、平均値が0の場合もあれば、均一な分布の場合もある。
【0012】
別の態様では、方法は、疑似長をレンダリングするために、可変長トレーニングサンプルの実際の長さをランダムに摂動させることを含む。この方法はさらに、可変長トレーニングサンプルの配置をレンダリングするために疑似長を使用して可変長トレーニングサンプルを配置することと、可変長トレーニングサンプルの配置を使用して少なくとも1つの機械学習(ML)モデルをトレーニングすることとを含む。
【0013】
別の態様では、装置は、実サンプル長とランダム化された長さとの各組み合わせに基づいて、各長さごとに複数の可変長サンプルを配置するように適合された少なくとも1つのプロセッサを含む。プロセッサは、トレーニングフェーズ、推論フェーズ、検証フェーズ、またはテスト、推論、及び検証の任意の組み合わせで、それぞれの各長さごとに配置された可変長サンプルを少なくとも1つのニューラルネットワークに入力するように適合される。プロセッサは、サンプルに少なくとも部分的に基づいて、少なくとも1つのニューラルネットワークを実行するようにさらに適合される。
【0014】
本願の詳細は、その構造と動作との両方について、添付の図面を参照すると最もよく理解でき、図面において、類似の参照番号は、類似の部分を指す。
【図面の簡単な説明】
【0015】
図1】本原理と一致した例示的なシステムのブロック図である。
図2】機械学習(ML)の可変長トレーニングサンプルと、ソートのためにサンプルの長さのランダムに摂動する数値表現とを示す。
図3】本原理と一致した例示的な論理を例示的なフローチャート形式で示す。
図4】本原理に一致する図6の半ソートシーケンスと比較するための、完全にランダムにソートされた(バッチソート)トレーニングサンプルのシーケンスを示す。
図5】本原理に一致する図6の半ソートシーケンスと比較するための、完全にソートされたトレーニングサンプルのシーケンスを示す。
図6】本原理に一致する半ソートシーケンスを示す。
図7図9に示される半ソートバッチ処理のより滑らかな曲線と比較するために、バケットバッチ処理のZPRの曲線を示す。
図8図9に示される半ソートバッチ処理のより滑らかな曲線と比較するために、ソートバッチ処理のZPRの曲線を示す。
図9】半ソートバッチ処理のより滑らかな曲線を示す。
図10図12に示す半ソートバッチ処理と比較するために、バケットバッチ処理のバッチ長を示す。
図11図12に示す半ソートバッチ処理と比較するために、ソートバッチ処理のバッチ長を示す。
図12】半ソートバッチ処理のバッチ長を示す。
【発明を実施するための形態】
【0016】
図1を参照すると、本開示は一般的に、家電(CE)デバイスなどであるが、これに限らないコンピュータデバイスを含み得るコンピュータネットワークの態様を含むコンピュータエコシステムに関する。本明細書のシステムは、クライアントコンポーネントとサーバコンポーネントとの間でデータが交換できるようにネットワークを介して接続されたサーバコンポーネント及びクライアントコンポーネントを含み得る。クライアントコンポーネントは、ポータブルテレビ(例えば、スマートTV、インターネット対応TV)、ラップトップ及びタブレットコンピュータなどのポータブルコンピュータ、ならびにスマートフォン及び下記で説明する追加の例を含む他のモバイルデバイスを含む1つまたは複数のコンピューティングデバイスを含み得る。これらのクライアントデバイスは、様々な動作環境で動作し得る。例えば、クライアントコンピュータの一部は、例として、Microsoft(登録商標)のオペレーティングシステム、またはUnix(登録商標)オペレーティングシステム、またはApple Computer(登録商標)もしくはGoogle(登録商標)によって製造されたオペレーティングシステムを採用している場合がある。これらの動作環境は、Microsoft(登録商標)もしくはGoogle(登録商標)もしくはMozilla(登録商標)によって作成されたブラウザ、または以下で説明されるインターネットサーバによってホストされるウェブサイトにアクセスできる他のブラウザプログラムなど、1つまたは複数の閲覧プログラムを実行するために使用されてよい。
【0017】
サーバ及び/またはゲートウェイは、インターネットなどのネットワークを介してデータを受信及び送信するようにサーバを構成する命令を実行する1つまたは複数のプロセッサを含み得る。または、クライアント及びサーバは、ローカルイントラネットまたは仮想プライベートネットワークを介して接続することができる。サーバまたはコントローラは、Sony PlayStation(登録商標)等のゲーム機、パーソナルコンピュータ等によってインスタンス化されてよい。
【0018】
クライアントとサーバとの間でネットワークを介して情報を交換することができる。この目的及びセキュリティのために、サーバ及び/またはクライアントは、ファイアウォール、ロードバランサ、テンポラリストレージ、及びプロキシ、ならびに信頼性及びセキュリティのための他のネットワークインフラストラクチャを含み得る。
【0019】
本明細書で使用される場合、命令とは、システム内の情報を処理するためのコンピュータ実施ステップを指す。命令は、ソフトウェア、ファームウェアまたはハードウェアで実施することができ、システムのコンポーネントによって行われるあらゆるタイプのプログラムされたステップを含み得る。
【0020】
プロセッサは、アドレスライン、データライン、及び制御ラインなどの様々なライン、ならびにレジスタ及びシフトレジスタによって論理を実行できる汎用シングルチッププロセッサまたは汎用マルチチッププロセッサであってよい。
【0021】
本明細書でフローチャート及びユーザインタフェースによって記述されるソフトウェアモジュールは、様々なサブルーチン、手順等を含み得る。本開示を限定することなく、特定のモジュールによって実行されるように規定された論理は、他のソフトウェアモジュールに再分配すること、及び/または単一のモジュールにまとめること、及び/または共有可能ライブラリで利用可能にすることができる。フローチャート形式が使用されてもよいが、当然ながら、ソフトウェアは、状態機械または他の論理的方法として実装されてよい。
【0022】
本明細書に記載された本原理は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせとして実施することができる。したがって、実例となるコンポーネント、ブロック、モジュール、回路、及びステップは、それらの機能性の観点から説明されている。
【0023】
上記で示唆されたものに加えて、以下に記載の論理ブロック、モジュール、及び回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)、ディスクリートゲート、もしくはトランジスタ論理などの他のプログラマブル論理デバイス、ディスクリートハードウェアコンポーネント、または本明細書に記載の機能を実行するように設計されたこれらの任意の組み合わせを用いて、実装または実行することができる。プロセッサは、コントローラもしくは状態機械、またはコンピューティングデバイスの組み合わせによって実装することができる。
【0024】
以下に記載されている機能及び方法は、ソフトウェアで実装される場合、C#、またはC++等であるがこれらに限定されない適切な言語で記述することができ、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、コンパクトディスクリードオンリメモリ(CD-ROM)もしくはデジタル多用途ディスク(DVD)等の他の光ディスクストレージ、磁気ディスクストレージもしくはリムーバブルサムドライブ等を含む他の磁気ストレージデバイス等のコンピュータ可読記憶媒体に記憶し、またはそのコンピュータ可読記憶媒体を介して伝送することができる。接続によりコンピュータ可読媒体が確立され得る。このような接続は、例として、光ファイバ及び同軸ワイヤを含むハードワイヤケーブル、ならびにデジタル加入者線(DSL)及びツイストペア線を含み得る。
【0025】
一実施形態に含まれるコンポーネントは、任意の適切な組み合わせで他の実施形態で使用することができる。例えば、本明細書に記載される及び/または図で示される様々なコンポーネントのいずれも、組み合わされ、交換され、または他の実施形態から除外されてよい。
【0026】
「A、B、及びCのうちの少なくとも1つを有するシステム」(同様に「A、B、またはCのうちの少なくとも1つを有するシステム」及び「A、B、Cのうちの少なくとも1つを有するシステム」)は、A単独、B単独、C単独、A及びBを一緒に、A及びCを一緒に、B及びCを一緒に、及び/またはA、B、及びCを一緒に有するシステムなどを含む。
【0027】
ここで、具体的に図1を参照すると、本原理による、上述され、以下でさらに記載される例示的なデバイスのうちの1つまたは複数を含み得る例示的なシステム10が示されている。ここで留意すべきは、本明細書の図に記載されているコンピュータ化されたデバイスは、図1の様々なデバイスについて説明されているコンポーネントの一部またはすべてを含み得ることである。
【0028】
システム10に含まれる例示的なデバイスの第1のデバイスはコンピュータ12であり、本明細書に記載の他のコンピュータと同様、本原理を実行する(例えば、他のコンピュータデバイスと通信して本原理を実行し、本明細書に記載の論理を実行し、本明細書に記載の任意の他の機能及び/または動作を実行する)ように構成されている。
【0029】
したがって、このような原理を実施するために、コンピュータ12は、図1に示されているコンポーネントの一部またはすべてによって確立することができる。例えば、コンピュータ12は、1つまたは複数のディスプレイ14を備えることができ、このディスプレイは、高解像度もしくは超高解像度「4K」またはそれ以上の解像度のフラットスクリーンによって実装されてよく、ディスプレイのタッチを介したユーザ入力信号を受信するためにタッチ対応であってもよく、タッチ対応でなくてもよい。コンピュータ12はまた、本原理に従ってオーディオを出力するための1つまたは複数のスピーカ16と、例えば、可聴コマンドをコンピュータ12に入力してコンピュータ12を制御するための、例えば、オーディオ受信機/マイクロフォン等の少なくとも1つの追加の入力デバイス18とを備えてよい。例示的なコンピュータ12は、1つまたは複数のプロセッサ24の制御の下、インターネット、他の広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)パーソナルエリアネットワーク(PAN)などの少なくとも1つのネットワーク22を介して通信するための1つまたは複数のネットワークインタフェース20をさらに備えてよい。したがって、インタフェース20は、限定ではなく、Wi-Fi送受信機であってよく、このWi-Fi(登録商標)送受信機は、メッシュネットワーク送受信機などであるが、これに限定されない無線コンピュータネットワークインタフェースの例である。インタフェース20は、Bluetooth(登録商標)送受信機、Zigbee(登録商標)送受信機、IrDA送受信機、ワイヤレスUSB送受信機、有線USB、有線LAN、電力線、またはMoCAであってよいが、これらに限定されない。当然ながら、プロセッサ24は、例えば、ディスプレイ14を、画像を提示するように制御することや、そこから入力を受信すること等の本明細書に記載のコンピュータ12の他の要素を含む、本原理を実施するようにコンピュータ12を制御する。さらに、ここで留意すべきは、ネットワークインタフェース20は、例えば、有線もしくは無線のモデムもしくはルータ、または、例えば、無線テレフォニ送受信機もしくは上述したWi-Fi(登録商標)送受信機等の他の適切なインタフェースであってよいことである。
【0030】
プロセッサ24は、本原理に一致する1つまたは複数のニューラルネットワークなどであるがこれに限定されない、1つまたは複数の機械学習(ML)モデル25にアクセスすることができる。
【0031】
上記に加えて、コンピュータ12はまた、(例えば、有線接続を使用して)別のコンピュータデバイスに物理的に接続する、例えば、高解像度マルチメディアインタフェース(HDMI(登録商標))ポートもしくはUSBポート、及び/またはヘッドフォンを通してユーザにコンピュータ12からのオーディオを提示するためにヘッドフォンをコンピュータ12に接続するヘッドフォンポートなどの1つまたは複数の入力ポート26を備えてよい。コンピュータ12はさらに、一時的信号でないディスクベースストレージまたはソリッドステートストレージなどの1つまたは複数のコンピュータメモリ28を備えてよく、コンピュータメモリ28は、場合によっては、スタンドアロンデバイスとしてコンピュータの筐体に、またはコンピュータの筐体の内側もしくは外側にパーソナルビデオレコーディングデバイス(PVR)もしくはビデオディスクプレイヤとして、または、リムーバブルメモリ媒体として具体化される。また、いくつかの実施形態では、コンピュータ12は、グラフィック処理ユニット(GPU)30及び/またはフィールドプログラマブルゲートアレイ(FPGA)32を含み得る。GPU及び/またはFPGAは、例えば、本原理に従ってニューラルネットワークをトレーニングし、ニューラルネットワークの動作(例えば、推論)を実行するなどの人工知能処理のために、コンピュータ12によって使用されてよい。しかし、ここで留意すべきは、プロセッサ24は、プロセッサ24が中央処理装置(CPU)である場合など、人工知能処理にも使用されてよいことである。
【0032】
引き続き図1を参照すると、コンピュータ12に加えて、システム10は、コンピュータ12について示されるコンポーネントの一部またはすべてを含み得る1つまたは複数の他のコンピュータデバイスタイプを含み得る。一例では、第1のデバイス34及び第2のデバイス36が示され、コンピュータ12のコンポーネントの一部またはすべてと同様のコンポーネントを含み得る。示されているよりも少ないまたは多いデバイスが使用されてよい。
【0033】
システム10はまた、1つまたは複数のサーバ38を含み得る。サーバ38は、少なくとも1つのサーバプロセッサ40と、ディスクベースストレージまたはソリッドステートストレージなどの少なくとも1つのコンピュータメモリ42と、サーバプロセッサ40の制御下で、ネットワーク22を介して図1の他のデバイスとの通信を可能にし、実際に、本原理に従ってサーバ、コントローラ、及びクライアントデバイスの間の通信を容易にし得る少なくとも1つのネットワークインタフェース44とを含み得る。ここで留意すべきは、ネットワークインタフェース44は、例えば、有線もしくは無線のモデムもしくはルータ、Wi-Fi送受信機、または、例えば、無線テレフォニ送受信機などの他の適切なインタフェースであってよいことである。
【0034】
したがって、いくつかの実施形態では、サーバ38は、インターネットサーバであってよく、システム10のデバイスが、例示的な実施形態においてサーバ38を介して「クラウド」環境にアクセスし得るように、「クラウド」機能を含んでよく、「クラウド」機能を実行してよい。あるいは、サーバ38は、図1に示されている他のデバイスと同じ部屋にある、またはその近くにある、ゲーム機、または他のコンピュータによって実装されてよい。
【0035】
以下に記載のデバイスは、上記の要素の一部またはすべてを組み込んでよい。
【0036】
図2は、簡単にするために図2ではサンプル1、サンプル2、...、サンプルNとして示される一連の可変長のMLエンジントレーニングサンプル200を示し、サンプルは下付き文字「i」と共に表され、「i」は、サンプルからサンプルまでのi番目のサンプルを示す。限定ではないが、サンプル200は、例えば、自動音声認識(ASR)のために図1のMLモデル25をトレーニングするための可変長の波形、または自然言語処理のためにMLモデルをトレーニングするための可変長のフレーズ、または音声合成のためにMLモデルをトレーニングするための可変長のテキスト文字列であってよい。
【0037】
それぞれの各サンプル200は各長さ202を有し、場合によっては、トレーニング記録の秒数など、時間的に表されるか、合成音声に変換するテキスト単語または文字の数など、空間的に表される。いずれの場合でも、長さは、ここではxで表される数値で表すことができる。長さの各数値は、疑似長206をレンダリングするために、ここではεで示される負または正のランダム値204をその長さに追加することによってランダムに摂動される。
【0038】
図3でさらに説明する。ブロック300から始まり、各機械学習(ML)トレーニングサンプル200の長さの各数値表現は、各疑似長を確立するためにランダムに摂動される。ある実施態様において、これは、サンプル200ごとに各ランダム値204をランダムに選択し、そのランダム値204をサンプルの実際の各長さ202に加算することによって行われる。
【0039】
ブロック302に進むと、サンプルはその各疑似長によってソートされ、ブロック304でM個のサンプルのシーケンスが生成される。ここで、MはN(サンプルの総数)未満の整数であり、ブロック306でのトレーニングのためにMLモデルまたはエンジンに提供されるサンプルの複数のバッチを確立する。したがって、バッチは、擬似長に基づくMLトレーニングサンプルのソートから導出される。各バッチのサンプルは、その元のデータと実際の元の長さを保持する。疑似長は、サンプルのソートにのみ使用される。サンプルの一部またはすべては、記載したように摂動されてよい。実質的にすべてのサンプル、例えば、少なくとも90%が、記載したように摂動されてよい。ここで留意すべきは、サンプルを疑似長によってソートする場合、ソート時にある程度のランダム化が本質的に達成されるため、ビニング(厳密にソートされたバッチ処理で行う必要がある)やバケット化(ランダム化されたバッチ処理で行う必要がある)などの追加のステップは必要ないことである。次に、トレーニングされたMLモデルがブロック308で使用されて、ブロック306でのトレーニングに基づいて非トレーニングデータから関連する予測をレンダリングする。
【0040】
例示の実施形態では、ランダム化された各値は、サンプルの中の最長サンプル長と最短サンプル長との差の2分の1を引いたものと、最長サンプル長と最短サンプル長との差の2分の1を足したものとの間の値の分布からランダムに選択することができる。さらに、値の分布にランダム化係数を乗じて、ZPRの削減と適切なランダム化の達成との間のトレードオフを最適化するように技術を「調整」することができる。これは、以下に数学的に記号化されている。
【0041】
当然ながら、厳密にソートされたバッチ処理と比較して、本半ソートバッチ処理(SSB)は、ソート時にランダム化された長さεをサンプル長xに追加することによって、サンプル長を摂動させる。ランダム化された長さεは、(-a/2,a/2)内に均一に分布するランダム変数であり、aは、サンプル長の下限と上限(最長サンプル長と最短サンプル長)の差とローカルランダム化係数(LRF)r∈[0,∞)によって決定される境界である。
【数1】
【0042】
上式の記号「U」は、分布が均一な分布であることを示す。εのガウス分布を代わりに使用してもよい、または一般に平均がゼロの任意の分布を使用してもよい。rを0から∞に調整することで、SSBのランダム性はSBのランダム性(r=0)とランダムバッチ処理のランダム性(r=∞)の中間になる。実際には、ランダム化係数rは、ゼロと1の間の調整のみを必要とし得る。
【0043】
図4~6でさらに説明する。図4は、バッチ400が任意の長さのサンプル402を含み、長さがy軸に反映される、ランダム化されたバッチ処理を示す。図5は、サンプル502のバッチ500が最長から最短の長さまで単調に減少するサンプルを含む、厳密にソートされたバッチ処理の結果を示す。最短の長さから最長の長さへとソートすることもできるが、降順でソートする方がよい。なぜなら、最前列に最長の長さのバッチを置くと、最初のバッチが正常に処理されると、後のトレーニングがうまくいくことを保証するためのコンピュータの能力が早期にテストされるからである。
【0044】
対照的に、図6は、バッチ600が、図4のように完全にランダム化されておらず、一般にx軸に沿って長さが減少しているが、最長から最短まで単調に減少していないサンプル602を含む、本技術の結果を示す。これは、サンプルが、図6に示されている実際の長さではなく、疑似長でソートされているためである。
【0045】
図7は、不連続700が発生するランダム化されたバッチ処理について、x軸のバケットサイズ対y軸のZPRを示す。図8も同様に、厳密にソートされたバッチ処理について、ビン数対ZPRを示し、不連続点800も示している。
【0046】
対照的に、図9は、有利に滑らかな曲線900を示す、ZPRに対する上記のランダム化係数「r」を示す。これは、半ソートバッチ処理でチューニングパラメータ「r」を使用したZPRの曲線に対するランダムレベルが、ランダムバッチ処理及び厳密にソートされたバッチ処理によって提供されるよりも滑らかなランダムレベルのチューニングを可能にすることを示している。
【0047】
図10~12は、チューニングパラメータ(半ソートバッチ処理のランダム化関数「r」、ランダムバッチ処理のバケットサイズ、及び厳密にソートされたバッチ処理のビンの数)がほぼ同じランダムレベル(類似のZPR及び平均バッチ長)を有するとき、x軸上のバッチ数に対応するランダムバッチ処理、厳密にソートされたバッチ処理、及び本半ソートバッチ処理のそれぞれ対応するバッチ長をy軸上に示す。
【0048】
ここで留意すべきは、本バッチ処理アルゴリズムは、トレーニング中の時間を節約するだけでなく、テスト(推論)中の時間を節約するためにも使用できることである。基本的に、効率的な計算のためにサンプルのグループのバッチ処理が必要な場合、本バッチ処理アルゴリズムはランダムバッチ処理と比較して時間を節約する。
【0049】
例えば、テスト(または推論)中は、一度に1つのサンプルをテストし得るが(例えば、モデルに1つの文を入力すると、モデルはその文の合成波形を生成する)、推論すべき多くの文(またはテキスト)がある場合、本バッチ処理技術を使用してバッチごとに出力波形を生成してよい。
【0050】
検証(トレーニング中のテスト)の場合、検証データセットはチェックポイントごとに1回テストされ、現在のチェックポイントモデルのパフォーマンスに関するフィードバックを提供することができる。この検証セットは、本原理とMLモデルへの入力とに従ってバッチ処理できる多くのサンプルを含む。
【0051】
当然ながら、いくつかの例示的な実施形態を参照して本原理を記載したが、これらは限定することを意図しておらず、各種の代替的な構成が本明細書で特許請求される主題を実施するために使用されてよい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12