(57)【要約】【課題】モデルアンサンブルを生成する方法等を提供すること。【解決手段】方法は、複数の層を含むベースモデルをトレーニングするステップを含み得る。この方法はまた、ベースモデルに基づいて、モデルアンサンブルの複数のモデルを生成するステップを含み得る。複数のモデルの各モデルは、複数の層を含む。さらに、この方法は、複数のモデルの各モデルが、ベースモデルの関連する層と複数のモデルのうちの他のモデルの各モデルの関連する層とに対して変更された層を含むように、複数のモデルの各モデルの層を変更するステップを含み得る。さらに、この方法は、複数のモデルの各変更された層を調整するステップを含み得る。【選択図】図３
2019114230.tif 000002
【特許請求の範囲】
【請求項１】
モデルアンサンブルを生成する方法であって、
少なくとも１つのプロセッサにより、複数の層を含むベースモデルをトレーニングするステップと、
前記少なくとも１つのプロセッサにより、前記ベースモデルに基づいて、前記モデルアンサンブルの複数のモデルを生成するステップであって、前記複数のモデルの各モデルは、複数の層を含む、ステップと、
前記少なくとも１つのプロセッサにより、前記複数のモデルの各モデルが、前記ベースモデルの関連する層と前記複数のモデルのうちの他のモデルの各モデルの関連する層とに対して変更された層を含むように、前記複数のモデルの各モデルの層を変更するステップと、
前記少なくとも１つのプロセッサにより、前記複数のモデルの各変更された層を調整するステップと、
を含む方法。
【請求項２】
前記複数のモデルの各モデルから出力を受け取るステップと、
前記少なくとも１つのプロセッサにより、前記複数のモデルの各モデルの前記出力に基づいて、モデルアンサンブル出力を生成するステップと、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記変更することは、クラスタリング及び量子化のうちの少なくとも１つに基づいて、前記複数のモデルの各モデルの前記層を変更することを含む、請求項１に記載の方法。
【請求項４】
前記変更することは、前記複数のモデルの各モデルの前記層の少なくとも１つのトレーニングパラメータを変更することを含む、請求項１に記載の方法。
【請求項５】
前記層の少なくとも１つのトレーニングパラメータを前記変更することは、前記層のビット数と、前記層のニューロンの数と、前記層の１つ以上の結合についての重みと、前記層の結合の数と、のうちの少なくとも１つを変更することを含む、請求項４に記載の方法。
【請求項６】
前記生成することは、前記少なくとも１つのプロセッサにより、前記複数のモデルの各モデルを、前記ベースモデルの複製として生成することを含む、請求項１に記載の方法。
【請求項７】
各変更された層を前記調整することは、エポック数Ｘで各変更された層を調整することを含む、請求項１に記載の方法。
【請求項８】
ベースモデルを前記トレーニングすることは、エポック数１０Ｘで前記ベースモデルの各層をトレーニングすることを含む、請求項７に記載の方法。
【請求項９】
変更のために、少なくとも１つのモデルにおける少なくとも１つの追加の層を任意に選択するステップと、
選択された前記少なくとも１つの追加の層を変更するステップと、
選択された前記少なくとも１つの追加の層を調整するステップと、
をさらに含む、請求項１に記載の方法。
【請求項１０】
ベースモデルを前記トレーニングすることは、ランダム初期化を用いて前記ベースモデルをトレーニングすることを含む、請求項１に記載の方法。
【請求項１１】
命令を含む１つ以上の非一時的なコンピュータ読み取り可能な媒体であって、前記命令は、１つ以上のプロセッサにより実行されたときに、前記１つ以上のプロセッサに複数の動作を実行させるよう構成されており、前記複数の動作は、
複数の層を含むベースモデルをトレーニングする動作と、
前記ベースモデルに基づいて、モデルアンサンブルの複数のモデルを生成する動作であって、前記複数のモデルの各モデルは、複数の層を含む、動作と、
前記複数のモデルの各モデルが、前記ベースモデルの関連する層と前記複数のモデルのうちの他のモデルの各モデルの関連する層とに対して変更された層を含むように、前記複数のモデルの各モデルの層を変更する動作と、
前記複数のモデルの各変更された層を調整する動作と、
を含む、コンピュータ読み取り可能な媒体。
【請求項１２】
前記複数の動作は、
前記複数のモデルの各モデルから出力を受け取る動作と、
前記複数のモデルの各モデルの前記出力に基づいて、モデルアンサンブル出力を生成する動作と、
をさらに含む、請求項１１に記載のコンピュータ読み取り可能な媒体。
【請求項１３】
前記変更することは、クラスタリング及び量子化のうちの少なくとも１つに基づいて、前記複数のモデルの各モデルの前記層を変更することを含む、請求項１１に記載のコンピュータ読み取り可能な媒体。
【請求項１４】
前記変更することは、前記複数のモデルの各モデルの前記層の少なくとも１つのトレーニングパラメータを変更することを含む、請求項１１に記載のコンピュータ読み取り可能な媒体。
【請求項１５】
前記層の少なくとも１つのトレーニングパラメータを前記変更することは、前記層のビット数と、前記層のニューロンの数と、前記層の１つ以上の結合についての重みと、前記層の結合の数と、のうちの少なくとも１つを変更することを含む、請求項１４に記載のコンピュータ読み取り可能な媒体。
【請求項１６】
前記生成することは、前記複数のモデルの各モデルを、前記ベースモデルの複製として生成することを含む、請求項１１に記載のコンピュータ読み取り可能な媒体。
【請求項１７】
各変更された層を前記調整することは、エポック数Ｘで各変更された層を調整することを含む、請求項１１に記載のコンピュータ読み取り可能な媒体。
【請求項１８】
ベースモデルを前記トレーニングすることは、エポック数１０Ｘで前記ベースモデルの各層をトレーニングすることを含む、請求項１７に記載のコンピュータ読み取り可能な媒体。
【請求項１９】
前記複数の動作は、
変更のために、少なくとも１つのモデルにおける少なくとも１つの追加の層を任意に選択する動作と、
選択された前記少なくとも１つの追加の層を変更する動作と、
選択された前記少なくとも１つの追加の層を調整する動作と、
をさらに含む、請求項１１に記載のコンピュータ読み取り可能な媒体。
【請求項２０】
ベースモデルを前記トレーニングすることは、ランダム初期化を用いて前記ベースモデルをトレーニングすることを含む、請求項１１に記載のコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示に記載の実施形態は、学習モデルアンサンブルを生成及び／又はトレーニングすることに関する。
【背景技術】
【０００２】
ニューラルネットワーク分析は、複数の処理層を通じて高レベル抽象化をモデル化しようと試みる生物学的ニューラルネットワークによって生じる分析のモデルを含み得る。しかしながら、ニューラルネットワーク分析（例えば、モデルアンサンブルを生成及び／又はトレーニングすること）は、大量の計算リソース及び／又はネットワークリソースを消費し得る。
【０００３】
本出願において特許請求される主題は、あらゆる欠点を解決する実施形態又は上記のような環境においてのみ動作する実施形態に限定されるものではない。そうではなく、この背景技術の記載は、本開示に記載のいくつかの実施形態が実施され得る１つの例示的な技術領域を示すために提供されているに過ぎない。
【発明の概要】
【０００４】
本開示の１つ以上の実施形態は、モデルアンサンブルを生成する方法を含み得る。この方法は、複数の層を含むベースモデルをトレーニングするステップを含み得る。この方法はまた、ベースモデルに基づいて、モデルアンサンブルの複数のモデルを生成するステップであって、複数のモデルの各モデルは、複数の層を含む、ステップを含み得る。さらに、この方法は、複数のモデルの各モデルが、ベースモデルの関連する層と複数のモデルのうちの他のモデルの各モデルの関連する層とに対して変更された層を含むように、複数のモデルの各モデルの層を変更するステップを含み得る。さらに、この方法は、複数のモデルの各変更された層を調整する（チューニングする：tuning）ステップを含み得る。
【０００５】
実施形態の目的及び利点が、少なくとも請求項において特に示される要素、特徴、及び組合せにより、実現及び達成される。前述の総括的な説明及び以下の詳細な説明の両方ともが、例示的で説明的なものであり、限定的なものではない。
【図面の簡単な説明】
【０００６】
例示的な実施形態が、添付の図面を使用して、より具体的且つ詳細に記載及び説明される。
【図１】モデルアンサンブルを含む例示的なシステムを示す図。
【図２】ベースモデルと、変更された層を含む複数のモデルと、を含む例示的なモデルアンサンブルを示す図。
【図３】モデルアンサンブルを生成する例示的な方法のフローチャート。
【図４】複数の畳み込み層及び全結合層を含む例示的なモデルアンサンブルを示す図。
【図５】モデルアンサンブルと、モデルアンサンブルのモデルの層を変更する変更ユニットと、を示す図。
【図６】例示的なコンピューティングデバイスのブロック図。
【発明を実施するための形態】
【０００７】
本出願において開示される様々な実施形態は、アンサンブル学習に関する。さらに、様々な実施形態は、ニューラルネットワークを生成及び／又はトレーニングすることに関する。より詳細には、様々な実施形態は、深層学習ニューラルネットワークモデルアンサンブルを生成及び／又はトレーニングすることに関する。
【０００８】
アンサンブル学習は、特定の問題（例えば計算知能問題）を解決するために、複数のモデル（例えばモデルアンサンブル）が戦略的に生成されて組み合わせられ得るプロセスを含み得る。アンサンブル学習は、学習システムの性能（例えば、分類、予測、関数近似等）を向上させるために且つ／又は不十分なモデルの選択の可能性を低減するために、用いられ得る。
【０００９】
モデルアンサンブルは、複数の学習アルゴリズムを使用して、１つの学習アルゴリズムよりも精度を高めることができる。モデルアンサンブルは、オブジェクト検出及びオブジェクト分類等の様々な機械学習タスクについて最適な性能を実現し得る。しかしながら、精度を維持するために、既知のシステム及び方法は、複数の多様なモデルを生成するのに重い計算を必要とし得る。
【００１０】
例えば、少なくとも１つの従来方法は、異なるニューラルネットワーク構成を用いて独立したモデル群をトレーニングすることを含む。この方法において、計算時間は、モデルの数が増加するにつれて直線的に増加する。別の従来方法において、異なる分類器を伴うモデルは、異なるニューラルネットワーク構成を用いてトレーニングされる。これは、各モデルが再トレーニングされることを必要とし、したがって、計算時間が不必要に増加する。別の従来方法は、バックワードパスにおいて１つのモデル（例えば最良のモデル）を更新する。しかしながら、フォワードパス計算要件は変わらず、したがって、この方法は、相当の計算時間及びリソースを必要とする。さらに別の従来方法は、モデルを順次にトレーニングし、トレーニングされたパラメータをモデル間で再使用することを含む。しかしながら、この方法において、トレーニングは、順次に制限されるので、トレーニング時間を低減するための並列計算の使用を制限してしまう。
【００１１】
本開示の様々な実施形態に従うと、ベースモデルが生成及び／又はトレーニングされ得る。さらに、いくつかの実施形態において、複数のモデルが、ベースモデルに基づいて生成され得る。さらに、複数のモデルの各モデルの少なくとも１つの層が変更され得る。さらに、複数のモデルのうちの１つ以上のモデルが調整され得、これは、高い多様性を有するアンサンブルモデルをもたらす。
【００１２】
本出願において開示される様々な実施形態に従うと、既知の深層学習アンサンブルトレーニングシステム及び方法とは対照的に、層は、削除されることもモデルアンサンブルに追加されることもない。したがって、既知のシステム及び方法と比較すると、本開示の様々な実施形態は、より少ない計算要件と相当の精度とを伴う、（例えばモデルアンサンブルの）深層学習モデルの生成及び／又はトレーニングを提供することができる。
【００１３】
したがって、本開示の様々な実施形態は、本開示においてより詳細に説明されるように、人間により合理的には行われ得ないテクノロジから生じる問題に対する技術的解決策を提供し、本出願において開示される様々な実施形態は、上述した問題及び／又は課題を克服するために、コンピュータテクノロジに根差している。さらに、本出願において開示される少なくともいくつかの実施形態は、コンピュータにより以前には実行できなかった機能のコンピュータ実行を可能にすることにより、コンピュータ関連テクノロジを向上させることができる。
【００１４】
本開示の様々な実施形態は、インターネット及びクラウド用途（例えば、画像分類、音声認識、言語翻訳、言語処理、感情分析レコメンデーション等）、薬学及び生物学（例えば、癌細胞検出、糖尿病分類、創薬等）、メディア及びエンターテイメント（例えば、ビデオキャプション付け、ビデオ検索、リアルタイム翻訳等）、セキュリティ及び防衛（例えば、顔検出、ビデオ監視、衛星画像等）、及び自律マシン（例えば、歩行者検出、車線追跡、信号機検出等）等といった様々な用途で利用され得る。
【００１５】
本開示の実施形態が、添付の図面を参照しながら、これより説明される。
【００１６】
図１は、本開示の様々な実施形態に従った例示的なシステム１００を示している。システム１００は、処理モジュール１０２、モデルアンサンブル１０４、及び投票モジュール１０６を含む。モデルアンサンブル１０４の各モデルは、複数の層を含み得、各モデルの各層は、本開示においてより詳細に説明されるように、１つ以上のトレーニングパラメータ（ニューロンの数、結合、シナプス重み、ビットに関するもの等）を含む。
【００１７】
システム１００は、入力１０５を受け取り、例えば予測出力を含み得る出力１０７を生成するよう構成され得る。より詳細には、処理モジュール１０２は、入力（例えば未処理データ）１０７を受け取り、入力１０７に対して１つ以上の既知の処理動作を実行し、処理された入力１０９をモデルアンサンブル１０４の各モデルに伝達することができる。さらに、モデルアンサンブル１０４の各モデルは、出力１１１を生成することができる。投票モジュール１０６は、各モデル（例えば、Model_1〜Model_N）から出力１１１を受け取ることができ、１つ以上の既知の投票動作及び／又は平均化動作（本開示において「アンサンブル平均化」とも呼ばれる）に基づいて、出力１０７を生成することができる。例えば、アンサンブル平均化は、多数決投票、重み付き投票、重み付き平均化、重み付き和等を含み得る。
【００１８】
図２は、ベースモデル２０１及び複数のモデル２０２（例えば、Model_1〜Model_N）を含む例示的なモデルアンサンブル（本開示において、複数のモデルを含むニューラルネットワークとも呼ばれる）２００を示している。複数のモデル２０２の各モデルは、複数の層を含み得、各モデルの各層は、ニューロンの数、結合（例えば、結合構成及び／又は結合の数）、（例えば、結合についての）シナプス重み、（例えば、シナプス重みについての）ビット数等といった様々なトレーニングパラメータを含み得る。
【００１９】
様々な実施形態に従うと、複数の層（例えば、Layer1〜LayerN及び分類層C1）を含むベースモデル２０１は、例えば、ランダム初期化を用いた従来のバックプロパゲーション及び／又は任意の他の適切なトレーニング方法を介して、トレーニングされ得る。より詳細には、ベースモデル２０１の各層の１つ以上のトレーニングパラメータがトレーニングされ得る。
【００２０】
さらに、ベースモデル２０１を使用して、例えば、クラスタリング方法（例えば、ｋ平均）、量子化方法（例えば、固定点、ベクトル等）を介して、複数のモデル２０２を生成することができる。例えば、ベースモデルのＮ個のコピーが生成され得、ベースモデル２０１のトレーニングされたパラメータが、各モデルModel_1〜Model_Nについての初期値として使用され得る。さらに、様々な実施形態に従うと、各モデル２０２（例えば、Model_1〜Model_N）の１つ以上の層が変更され得る。より詳細には、例えば、Model_1の第１の層（Layer1）が、Layer1_modを生成するために変更され得る。さらに、Model_2の第２の層（Layer2）が、Layer2_modを生成するために変更され得、Model_Nの第Ｎの層（LayerN）が、LayerN_modを生成するために変更され得る。
【００２１】
様々な実施形態に従うと、層を変更するために、層の１つ以上のパラメータ（例えばトレーニングパラメータ）が変更され得る。例えば、層のビット数（例えば、シナプス重み及び／又はニューロンの出力等のパラメータについてのビット数）が変更され得、層のニューロンの数が変更され得、（例えば、層内の、別の層への、且つ／又は別の層からの）結合の数が変更され得る、等である。例えば、層は、この層の１つ以上のトレーニングパラメータに対して実行される１つ以上の動作（例えば、クラスタリング、量子化等）を介して変更され得る。
【００２２】
いくつかの実施形態において、層の変更は、関連するモデルの出力における１つ以上の誤差をもたらし得る。したがって、少なくともいくつかの実施形態に従うと、モデル２０２のうちの１つ以上のモデルが調整（本開示において「微調整」とも呼ばれる）され得る。モデルを調整することは、変更に起因する誤差を低減する、場合によっては、なくす、ことができる。例えば、モデルアンサンブル２００の各変更された層は、モデルに対して実行される１つ以上のトレーニング動作（例えばバックプロパゲーション）を介して調整され得る。
【００２３】
様々な実施形態に従うと、モデルアンサンブル２００における少なくともいくつかの他の層が、（例えば、ベースモデル２０１のトレーニングを介して）既にトレーニングされているので、これらの層は、たとえあるとしても、さらなるトレーニング及び／又は調整をあまり必要とし得ない。したがって、モデルを完全にトレーニングすること（例えば、ベースモデルを最初からトレーニングすること）と比較して、モデル２０２は、著しく少ないトレーニングしか必要とし得ない。
【００２４】
図３は、本開示の少なくとも１つの実施形態に従った、モデルアンサンブルを生成する例示的な方法３００のフローチャートである。方法３００は、任意の適切なシステム、装置、又はデバイスにより実行され得る。例えば、システム１００及び／若しくは図６のデバイス６００、又はこれらのコンポーネントのうちの１つ以上のコンポーネントが、方法３００に関連付けられている動作のうちの１つ以上の動作を実行し得る。これらの実施形態及び他の実施形態において、コンピュータ読み取り可能な媒体に記憶されているプログラム命令が、方法３００の動作のうちの１つ以上の動作を実行するために実行され得る。
【００２５】
ブロック３０２において、モデルアンサンブルのベースモデルがトレーニングされ得、方法３００はブロック３０４に進み得る。例えば、ベースモデル（例えば図２のベースモデル２０１）が、ランダム初期化を用いた従来のバックプロパゲーション及び／又は任意の他の適切なトレーニング方法を介して、トレーニングされ得る。例えば、図６のプロセッサ６１０が、ベースモデルをトレーニングするために使用され得る。
【００２６】
ブロック３０４において、モデルアンサンブルの複数のモデルが生成され得、方法３００はブロック３０６に進み得る。例えば、複数のモデル（例えばモデル２０２）が、ベースモデル（例えば図２のベースモデル２０１）を介して生成され得る。より詳細には、例えば、複数のモデルの各モデルが、ベースモデルの複製として生成され得る。例えば、図６のプロセッサ６１０が、複数のモデルを生成するために使用され得る。
【００２７】
さらに、この例において、各モデルの少なくとも１つの層が変更され得る。様々な実施形態に従うと、１つ以上の層が、クラスタリング動作及び／又は量子化動作等の１つ以上の動作を介して変更され得る。例えば、層の１つ以上のパラメータについて使用されるビット数が変更され得、層のニューロンの数が変更され得、層についての（例えば他の層への且つ／又は他の層からの）結合の数が変更され得、層の（例えば１つ以上の結合の）シナプス重みが変更され得る、等である。例えば、図６のプロセッサ６１０が、各モデルの少なくとも１つの層を生成及び／又は変更するために使用され得る。
【００２８】
少なくともいくつかの実施形態において、複数のモデルの各モデルは、各モデルにおける少なくとも１つの層が、ベースモデルの関連する層と複数のモデルのうちの他のモデルの各モデルの関連する層とに対して変わるように、変更され得る。より詳細には、一例として、第１のモデル（例えばModel_1）における第１の層（例えばLayer1）が変更され得、第２のモデル（例えばModel_2）における第２の層（例えばLayer2）が変更され得、第３のモデル（例えばModel_3）における第３の層（例えばLayer3）が変更され得、第Ｎのモデル（例えばModel_N）における第Ｎの層（例えばLayerN）が変更され得る、等である。少なくともこの例において、これらのモデルの各モデルにおける他の層は、変更されることもあるし、又は、変更されないこともある。さらに、いくつかの実施形態において、層が、変更のために任意に選択され得る（例えば、各モデルから、１つの層、２つの層、３つの層、又は４つ以上の層が選択され得る）。
【００２９】
ブロック３０６において、複数のモデルのうちの１つ以上のモデルが調整され得、方法３００はブロック３０８に進み得る。例えば、モデルアンサンブルの各変更された層が、１つ以上の既知の方法（例えばバックプロパゲーション）を介して、調整（例えば微調整）され得る。さらに、例えば、図６のプロセッサ６１０が、１つ以上のモデルを調整するために使用され得る。
【００３０】
様々な実施形態に従うと、モデルにおける他の層（例えば、変更されていない層（例えば、ベースモデルにおける関連する層の複製である層））は、たとえあるとしても、トレーニング及び／又は調整をあまり必要とし得ない。したがって、追加的な計算が、他の層について必要とされ得ない。
【００３１】
ブロック３０８において、出力が生成され得る。例えば、ベースモデルを含むこともあるし含まないこともあるモデルアンサンブルの各モデルからの出力と、１つ以上の既知の投票動作及び／又は平均化動作（例えばアンサンブル平均化）と、に基づいて、予測を含み得る出力が生成され得る。例えば、いくつかの実施形態において、１つ以上の投票動作及び／又は平均化動作（例えば、多数決投票、重み付き投票、重み付き平均化、重み付き和等）を実行して、各モデルの出力の間の出力を選択することができる。例えば、図６のプロセッサ６１０が、（例えば投票動作及び／又は平均化動作に基づいて）出力を生成し得る。
【００３２】
本開示の範囲から逸脱することなく、方法３００に対して、変更、追加、又は省略が可能である。例えば、方法３００の動作は、異なる順番で実行されることもある。さらに、説明された動作及びステップは、例として提供されているに過ぎず、動作及びステップのうちの一部は、開示されている実施形態の本質を損なうことなく、任意的であることもあるし、より少ない動作及びステップに組み合わされることもあるし、追加の動作及びステップに拡張されることもある。
【００３３】
図４及び図５を参照して、モデルアンサンブルを生成する例がこれより説明される。最初に、所望の精度を実現するための適切なサイズの適切なニューラルネットワークが選択され得る。例えば、図４に示されているように、３つの畳み込み層Conv1〜Conv3及び１つの全結合層FC1を含むニューラルネットワークが選択され得る。ニューラルネットワークは、入力４１２から特徴を抽出して分類４１４を生成するための様々なフィルタ４１０を含み得る。
【００３４】
さらに、本開示の様々な実施形態に従うと、ベースモデル５０２が生成及びトレーニングされ得る。さらに、複数のモデル（例えばModel_1〜Model_N）が、ベースモデル５０２に基づいて生成され得る。少なくともいくつかの実施形態において、当初は、各モデルは、ベースモデル５０２の複製であり得る。より詳細には、各層（例えば、複数のモデル（例えばModel_1〜Model_N）の各モデルのLayer1〜LayerN）は、（例えば、ベースモデル５０２を介して）以前にトレーニングされたパラメータを含み得る。
【００３５】
さらに、複数のモデルの各モデルの少なくとも１つの層が変更され得る。より詳細には、例えば、第１のモデルの第１の層が変更され得、第２のモデルの第２の層が変更され得、第３のモデルの第３の層が変更され得、第Ｎのモデルの第Ｎの層が変更され得る、等である。いくつかの実施形態において、層は、例えば、量子化動作及び／又はクラスタリング動作に基づいて変更され得る。
【００３６】
例えば、図５を参照すると、Model_1のLayer1が変更され得、Model_2のLayer2が変更され得、Model_NのLayerNが変更され得る。各モデルの他の層は、変更されることもあるし、又は、変更されないこともある。引き続き図５を参照すると、一例に従うと、例えば、プログラム可能なコンバータ及び／又はクラスタリングユニットを含み得る変更ユニット５１０は、Model_2のLayer2についてシナプス重みについてのビット数を増大又は低減することができる。より詳細には、例えば、Layer2が、Layer2の３２ビット浮動小数点シナプス重みを１６ビット固定小数点シナプス重みに変換してLayer2_modを生成することにより、変更され得る。Layer2におけるニューロンの数及び／又は（例えばLayer2への且つ／又はLayer2からの）結合の数等の、Model_2のLayer2の他のパラメータは、変更されることもあるし、又は、変更されないこともある。
【００３７】
別の例として、変更ユニット５１０は、Model_NのLayerNについてシナプス重みについてのビット数を増大又は低減することができる。より詳細には、例えば、LayerNが、LayerNの３２ビット浮動小数点シナプス重みをインデックス又は値（例えば数値）に変換してLayerN_modを生成することにより、変更され得る。LayerNにおけるニューロンの数及び／又は（例えばLayerNへの且つ／又はLayerNからの）結合の数等の、Model_NのLayerNの他のパラメータは、変更されることもあるし、又は、変更されないこともある。
【００３８】
さらに、各変更されたモデルが調整され得る。より詳細には、各変更されたモデルの各変更された層が調整され得る。さらに、動作中、（例えば、ベースモデルを利用した又は利用していない）各モデルは、出力を生成することができ、１つ以上の投票動作及び／又は平均化動作が、これらの出力に対して実行されて、モデルアンサンブルの出力が選択され得る。
【００３９】
１つのシミュレーション例において、１０個のクラスを有する、画像認識のためのデータセットを使用して、４つのモデルを含むアンサンブルモデルの多様性を評価した。このシミュレーション例において、本開示の１つ以上の実施形態を利用して、モデルアンサンブルを生成及びトレーニングするのに要した時間は、約８２０秒であり、モデルアンサンブルは、約２４％という精度を示した。対照的に、従来方法は、同等の精度（例えば、２３．９５％）を実現するのに、約２３６０秒を要し得る。さらに、例えば、ベースモデルの各層をトレーニングすることは、おおよそ１０Ｘエポック（例えば１００エポック）を要し得、層（例えば、図２のLayer1_mod又はLayer2_mod等の変更された層）を調整することは、おおよそＸエポック（例えば１０エポック）を要し得る。したがって、本出願において開示される様々な実施形態に従うと、１つのベースモデル及び４つのモデルを含むモデルアンサンブルは、おおよそ１４０エポックしか要し得ない。対照的に、いくつかの従来方法は、４つのモデルを含むモデルアンサンブルを生成するのに、おおよそ４００エポックを要し得る。
【００４０】
図６は、本開示の少なくとも１つの実施形態に従った例示的なコンピューティングデバイス６００のブロック図である。コンピューティングデバイス６００は、デスクトップコンピュータ、ラップトップコンピュータ、サーバコンピュータ、タブレットコンピュータ、携帯電話機、スマートフォン、携帯情報端末（PDA）、電子リーダデバイス、ネットワークスイッチ、ネットワークルータ、ネットワークハブ、他のネットワーキングデバイス、又は他の適切なコンピューティングデバイスを含み得る。
【００４１】
コンピューティングデバイス６００は、プロセッサ６１０、記憶デバイス６２０、メモリ６３０、及び通信デバイス６４０を含み得る。プロセッサ６１０、記憶デバイス６２０、メモリ６３０、及び／又は通信デバイス６４０は全て、これらのコンポーネントの各々が他のコンポーネントと通信できるように、通信可能に接続され得る。コンピューティングデバイス６００は、本開示に記載の動作のうちの任意の動作を実行することができる。
【００４２】
概して、プロセッサ６１０は、様々なコンピュータハードウェア又はソフトウェアモジュールを含む任意の適切な専用又は汎用のコンピュータ、コンピューティングエンティティ、又は処理デバイスを含み得、任意の適用可能なコンピュータ読み取り可能な記憶媒体に記憶されている命令を実行するよう構成され得る。例えば、プロセッサ６１０は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ（DSP）、特定用途向け集積回路（ASIC）、フィールドプログラマブルゲートアレイ（FPGA）、又は、プログラム命令を解釈及び／又は実行し、且つ／又はデータを処理するよう構成されている任意の他のデジタル回路若しくはアナログ回路を含み得る。プロセッサ６１０は、図６において１つのプロセッサとして示されているが、プロセッサ６１０は、本開示に記載の任意の数の動作を個別的又は集合的に実行するよう構成されている任意の数のプロセッサを含んでもよい。
【００４３】
いくつかの実施形態において、プロセッサ６１０は、記憶デバイス６２０、メモリ６３０、又は記憶デバイス６２０とメモリ６３０との両方に記憶されているプログラム命令を解釈及び／又は実行し、且つ／又は、記憶デバイス６２０、メモリ６３０、又は記憶デバイス６２０とメモリ６３０との両方に記憶されているデータを処理することができる。いくつかの実施形態において、プロセッサ６１０は、記憶デバイス６２０からプログラム命令をフェッチして、プログラム命令をメモリ６２０にロードすることができる。プログラム命令がメモリ６３０にロードされた後、プロセッサ６１０は、プログラム命令を実行することができる。
【００４４】
例えば、いくつかの実施形態において、モデルアンサンブルを生成及び／又はトレーニングする処理動作のうちの１つ以上の処理動作は、プログラム命令として、記憶デバイス６２０に含められ得る。プロセッサ６１０は、そのような処理動作のうちの１つ以上の処理動作のプログラム命令をフェッチして、そのような処理動作のうちの１つ以上の処理動作のプログラム命令をメモリ６３０にロードすることができる。そのような処理動作のうちの１つ以上の処理動作のプログラム命令がメモリ６３０にロードされた後、プロセッサ６１０は、そのプログラム命令により指示されるように処理動作に関連付けられている動作をコンピューティングデバイス６００が実施できるように、そのような処理動作のうちの１つ以上の処理動作のプログラム命令を実行することができる。
【００４５】
記憶デバイス６２０及びメモリ６３０は、コンピュータ実行可能な命令又はデータ構造を運ぶ又は記憶するコンピュータ読み取り可能な記憶媒体を含み得る。そのようなコンピュータ読み取り可能な記憶媒体は、プロセッサ６１０等の汎用又は専用のコンピュータによりアクセスされ得る任意の利用可能な媒体を含み得る。限定ではなく例として、そのようなコンピュータ読み取り可能な記憶媒体は、RAM、ROM、EEPROM、CD-ROM若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、フラッシュメモリデバイス（例えばソリッドステートメモリデバイス）、又は、コンピュータ実行可能な命令又はデータ構造の形態の所望のプログラムコードを運ぶ又は記憶するために使用され得る任意の他の記憶媒体であって、汎用又は専用のコンピュータによりアクセスされ得る任意の他の記憶媒体、を含む有形の又は非一時的なコンピュータ読み取り可能な記憶媒体を含み得る。上記の組合せも、コンピュータ読み取り可能な記憶媒体の範囲に含まれ得る。コンピュータ実行可能な命令は、例えば、プロセッサ６１０に所定の動作又は動作群を実行させるよう構成されている命令及びデータを含み得る。
【００４６】
いくつかの実施形態において、記憶デバイス６２０及び／又はメモリ６３０は、ニューラルネットワークを生成及び／又はトレーニングすること、より詳細には、モデルアンサンブルにおける１つ以上のモデルを生成及び／又はトレーニングすること、に関連するデータを記憶することができる。例えば、記憶デバイス６２０及び／又はメモリ６３０は、モデルアンサンブル入力、モデルアンサンブル出力、モデルパラメータ、又は、モデルアンサンブルの生成及び／又はトレーニングに関連する任意のデータを記憶することができる。
【００４７】
通信デバイス６４０は、コンピューティングデバイス６００と別の電子デバイスとの間の通信を可能にする又は円滑にするよう構成されている任意のデバイス、システム、コンポーネント、又はコンポーネントの集合を含み得る。例えば、通信デバイス６４０は、モデム、ネットワークカード（無線又は有線）、赤外線通信デバイス、光通信デバイス、無線通信デバイス（アンテナ等）、及び／若しくはチップセット（Bluetooth（登録商標）デバイス、802.6デバイス（例えばメトロポリタンエリアネットワーク（MAN））、Wi-Fi（登録商標）デバイス、WiMAX（登録商標）デバイス、セルラ通信設備等）、並びに／又は同様のものを含み得るが、これらに限定されるものではない。通信デバイス６４０は、ほんの少しの例を挙げると、セルラネットワーク、Wi-Fi（登録商標）ネットワーク、MAN、光ネットワーク等といった任意のネットワークとの間で、且つ／又は、リモートデバイスを含め、本開示に記載の任意の他のデバイスとの間で、データが交換されることを可能にし得る。
【００４８】
本開示の範囲から逸脱することなく、図６に対して、変更、追加、又は省略が可能である。例えば、コンピューティングデバイス６００は、本開示において図示及び説明された要素よりも多い又は少ない要素を含んでもよい。例えば、コンピューティングデバイス６００は、タブレット又は携帯電話機のスクリーン等の統合されたディスプレイデバイスを含んでもよいし、コンピューティングデバイス６００から分離されコンピューティングデバイス６００に通信可能に接続され得る外部モニタ、プロジェクタ、テレビジョン、又は他の適切なディスプレイデバイスを含んでもよい。
【００４９】
本開示において使用される場合、「モジュール」又は「コンポーネント」という用語は、モジュール又はコンポーネントのアクションを実行するよう構成されている特定のハードウェア実装、及び／又は、コンピューティングシステムの汎用ハードウェア（例えばコンピュータ読み取り可能な媒体等）に記憶され得る且つ／又はコンピューティングシステムの汎用ハードウェア（例えば処理デバイス等）により実行され得るソフトウェアオブジェクト又はソフトウェアルーチンを指し得る。いくつかの実施形態において、本開示に記載の異なるコンポーネント、モジュール、エンジン、及びサービスは、コンピューティングシステム上で実行されるオブジェクト又はプロセスとして（例えば別個のスレッドとして）実装され得る。本開示に記載のシステム及び方法のうちの一部は、（汎用ハードウェアに記憶される且つ／又は汎用ハードウェアにより実行される）ソフトウェアにより実装されるとして一般に説明されるが、特定のハードウェア実装又はソフトウェアと特定のハードウェア実装との組合せも可能であり企図されている。本開示において、「コンピューティングエンティティ」は、本開示において前に定義された任意のコンピューティングシステム、又は、コンピューティングシステム上で動作する任意のモジュール又はモジュールの組合せであり得る。
【００５０】
本開示及び特に請求項（例えば請求項の本体部分）において使用される用語は、一般に、「オープンな」用語であるとして意図される（例えば、「〜を備える」という用語は、「〜を備えるが、〜に限定されるものではない」として解釈されるべきであり、「〜を有する」という用語は、「少なくとも〜を有する」として解釈されるべきであり、「〜を含む」という用語は、「〜を含むが、〜に限定されるものではない」として解釈されるべきである、等）。
【００５１】
さらに、導入される請求項記載事項の特定の数が意図される場合、そのような意図は、当該請求項中に明示的に記載され、そのような記載がない場合、そのような意図は存在しない。例えば、理解の助けとして、請求項中に、請求項記載事項を導入するための「少なくとも１つの」及び「１つ以上の」といった導入句の使用が含まれることがある。しかしながら、このような導入句の使用は、「a」又は「an」といった不定冠詞による請求項記載事項の導入が、同一の請求項中に「１つ以上の」又は「少なくとも１つの」といった導入句と「a」又は「an」といった不定冠詞とが含まれるとしても、当該導入された請求項記載事項を含む特定の請求項が、当該請求項記載事項を１つしか含まない実施形態に限定されることを意味するとして解釈されるべきではない（例えば、「a」及び／又は「an」は、「少なくとも１つの」又は「１つ以上の」を意味するとして解釈されるべきである）。請求項記載事項を導入するために使用される定冠詞の使用についても同じことが当てはまる。
【００５２】
さらに、導入される請求項記載事項の特定の数が明示的に記載されている場合であっても、そのような記載は、少なくとも記載されている数を意味するとして解釈されるべきである（例えば、他の修飾語のない「２つの記載事項」という単なる記載は、少なくとも２つの記載事項又は２つ以上の記載事項を意味する）ことが、当業者であれば認識されよう。さらに、「Ａ、Ｂ、及びＣ等のうちの少なくとも１つ」又は「Ａ、Ｂ、及びＣ等のうちの１つ以上」に類する表記が使用される場合、一般に、そのような構造は、Ａのみ、Ｂのみ、Ｃのみ、Ａ及びＢの両方、Ａ及びＣの両方、Ｂ及びＣの両方、又は、Ａ、Ｂ、及びＣの全て、等を含むことが意図される。
【００５３】
さらに、２つ以上の選択可能な用語を表すいかなる離接語又は離接句も、明細書、特許請求の範囲、又は図面のいずれであろうと、それら用語のうちの１つ、それらの用語の組合せ、又は、それらの用語の全てを含む可能性を意図するとして理解されるべきである。例えば、「Ａ又はＢ」という句は、「Ａ」若しくは「Ｂ」又は「Ａ及びＢ」の可能性を含むとして理解されるべきである。
【００５４】
本開示において記載された全ての例及び条件付き文言は、当該技術を促進させるために本発明者によって寄与されるコンセプト及び本発明を読者が理解するのを助ける教育上の目的のために意図され、そのような具体的に記載された例及び条件に限定されるものではないとして解釈されるべきである。本開示の実施形態が詳細に説明されたが、それら実施形態に対する様々な変形、置換、及び変更が、本開示の主旨及び範囲から逸脱することなく可能である。
【００５５】
以上の実施形態に関し、さらに以下の付記を開示する。
【００５６】
（付記１）
モデルアンサンブルを生成する方法であって、
少なくとも１つのプロセッサにより、複数の層を含むベースモデルをトレーニングするステップと、
前記少なくとも１つのプロセッサにより、前記ベースモデルに基づいて、前記モデルアンサンブルの複数のモデルを生成するステップであって、前記複数のモデルの各モデルは、複数の層を含む、ステップと、
前記少なくとも１つのプロセッサにより、前記複数のモデルの各モデルが、前記ベースモデルの関連する層と前記複数のモデルのうちの他のモデルの各モデルの関連する層とに対して変更された層を含むように、前記複数のモデルの各モデルの層を変更するステップと、
前記少なくとも１つのプロセッサにより、前記複数のモデルの各変更された層を調整するステップと、
を含む方法。
【００５７】
（付記２）
前記複数のモデルの各モデルから出力を受け取るステップと、
前記少なくとも１つのプロセッサにより、前記複数のモデルの各モデルの前記出力に基づいて、モデルアンサンブル出力を生成するステップと、
をさらに含む、付記１に記載の方法。
【００５８】
（付記３）
前記変更することは、クラスタリング及び量子化のうちの少なくとも１つに基づいて、前記複数のモデルの各モデルの前記層を変更することを含む、付記１に記載の方法。
【００５９】
（付記４）
前記変更することは、前記複数のモデルの各モデルの前記層の少なくとも１つのトレーニングパラメータを変更することを含む、付記１に記載の方法。
【００６０】
（付記５）
前記層の少なくとも１つのトレーニングパラメータを前記変更することは、前記層のビット数と、前記層のニューロンの数と、前記層の１つ以上の結合についての重みと、前記層の結合の数と、のうちの少なくとも１つを変更することを含む、付記４に記載の方法。
【００６１】
（付記６）
前記生成することは、前記少なくとも１つのプロセッサにより、前記複数のモデルの各モデルを、前記ベースモデルの複製として生成することを含む、付記１に記載の方法。
【００６２】
（付記７）
各変更された層を前記調整することは、エポック数Ｘで各変更された層を調整することを含む、付記１に記載の方法。
【００６３】
（付記８）
ベースモデルを前記トレーニングすることは、エポック数１０Ｘで前記ベースモデルの各層をトレーニングすることを含む、付記７に記載の方法。
【００６４】
（付記９）
変更のために、少なくとも１つのモデルにおける少なくとも１つの追加の層を任意に選択するステップと、
選択された前記少なくとも１つの追加の層を変更するステップと、
選択された前記少なくとも１つの追加の層を調整するステップと、
をさらに含む、付記１に記載の方法。
【００６５】
（付記１０）
ベースモデルを前記トレーニングすることは、ランダム初期化を用いて前記ベースモデルをトレーニングすることを含む、付記１に記載の方法。
【００６６】
（付記１１）
命令を含む１つ以上の非一時的なコンピュータ読み取り可能な媒体であって、前記命令は、１つ以上のプロセッサにより実行されたときに、前記１つ以上のプロセッサに複数の動作を実行させるよう構成されており、前記複数の動作は、
複数の層を含むベースモデルをトレーニングする動作と、
前記ベースモデルに基づいて、モデルアンサンブルの複数のモデルを生成する動作であって、前記複数のモデルの各モデルは、複数の層を含む、動作と、
前記複数のモデルの各モデルが、前記ベースモデルの関連する層と前記複数のモデルのうちの他のモデルの各モデルの関連する層とに対して変更された層を含むように、前記複数のモデルの各モデルの層を変更する動作と、
前記複数のモデルの各変更された層を調整する動作と、
を含む、コンピュータ読み取り可能な媒体。
【００６７】
（付記１２）
前記複数の動作は、
前記複数のモデルの各モデルから出力を受け取る動作と、
前記複数のモデルの各モデルの前記出力に基づいて、モデルアンサンブル出力を生成する動作と、
をさらに含む、付記１１に記載のコンピュータ読み取り可能な媒体。
【００６８】
（付記１３）
前記変更することは、クラスタリング及び量子化のうちの少なくとも１つに基づいて、前記複数のモデルの各モデルの前記層を変更することを含む、付記１１に記載のコンピュータ読み取り可能な媒体。
【００６９】
（付記１４）
前記変更することは、前記複数のモデルの各モデルの前記層の少なくとも１つのトレーニングパラメータを変更することを含む、付記１１に記載のコンピュータ読み取り可能な媒体。
【００７０】
（付記１５）
前記層の少なくとも１つのトレーニングパラメータを前記変更することは、前記層のビット数と、前記層のニューロンの数と、前記層の１つ以上の結合についての重みと、前記層の結合の数と、のうちの少なくとも１つを変更することを含む、付記１４に記載のコンピュータ読み取り可能な媒体。
【００７１】
（付記１６）
前記生成することは、前記複数のモデルの各モデルを、前記ベースモデルの複製として生成することを含む、付記１１に記載のコンピュータ読み取り可能な媒体。
【００７２】
（付記１７）
各変更された層を前記調整することは、エポック数Ｘで各変更された層を調整することを含む、付記１１に記載のコンピュータ読み取り可能な媒体。
【００７３】
（付記１８）
ベースモデルを前記トレーニングすることは、エポック数１０Ｘで前記ベースモデルの各層をトレーニングすることを含む、付記１７に記載のコンピュータ読み取り可能な媒体。
【００７４】
（付記１９）
前記複数の動作は、
変更のために、少なくとも１つのモデルにおける少なくとも１つの追加の層を任意に選択する動作と、
選択された前記少なくとも１つの追加の層を変更する動作と、
選択された前記少なくとも１つの追加の層を調整する動作と、
をさらに含む、付記１１に記載のコンピュータ読み取り可能な媒体。
【００７５】
（付記２０）
ベースモデルを前記トレーニングすることは、ランダム初期化を用いて前記ベースモデルをトレーニングすることを含む、付記１１に記載のコンピュータ読み取り可能な媒体。
【符号の説明】
【００７６】
１００  システム
１０２  処理モジュール
１０４  モデルアンサンブル
１０６  投票モジュール
６００  コンピューティングデバイス
６１０  プロセッサ
６２０  記憶デバイス
６３０  メモリ
６４０  通信デバイス
【図１】
2019114230.tif 000003
【図２】
2019114230.tif 000004
【図３】
2019114230.tif 000005
【図４】
2019114230.tif 000006
【図５】
2019114230.tif 000007
【図６】
2019114230.tif 000008