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

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

▶ オムロン株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-08
(45)【発行日】2024-04-16
(54)【発明の名称】機械学習モデル
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240409BHJP
   G06N 3/0895 20230101ALI20240409BHJP
【FI】
G06N20/00
G06N3/0895
【請求項の数】 20
(21)【出願番号】P 2022549165
(86)(22)【出願日】2021-02-12
(65)【公表番号】
(43)【公表日】2023-03-31
(86)【国際出願番号】 JP2021005327
(87)【国際公開番号】W WO2021172058
(87)【国際公開日】2021-09-02
【審査請求日】2022-08-15
(31)【優先権主張番号】16/802,882
(32)【優先日】2020-02-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】100145403
【弁理士】
【氏名又は名称】山尾 憲人
(74)【代理人】
【識別番号】100189555
【弁理士】
【氏名又は名称】徳山 英浩
(74)【代理人】
【識別番号】100101454
【弁理士】
【氏名又は名称】山田 卓二
(72)【発明者】
【氏名】米谷 竜
【審査官】渡辺 一帆
(56)【参考文献】
【文献】米国特許出願公開第2019/0258936(US,A1)
【文献】SHIN, S et al.,"Generative Knowledge Transfer for Neural Language Models",arXiv.org [online],2017年,pp. 1-10,[retrieved on 2023.09.29], Retrieved from the Internet: <URL: https://arxiv.org/abs/1608.04077v3>,<DOI: 10.48550/arXiv.1608.04077>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00-20/20
G06N 3/02- 3/10
(57)【特許請求の範囲】
【請求項1】
コンピューティングデバイスで利用される方法であって、
第1のプライベートデータセットを用いて生成された第1のプライベート人工知能モデルと、第2のプライベートデータセットを用いて生成された第2のプライベート人工知能モデルとに、入力データセットを入力し、
前記第1のプライベート人工知能モデルに前記入力データセットを適用させた結果として、前記第1のプライベート人工知能モデルから、第1の結果データセットを受信し、
前記第2のプライベート人工知能モデルに前記入力データセットを適用させた結果として、前記第2のプライベート人工知能モデルから、第2の結果データセットを受信し、
第1の訓練フェーズにおいて、前記入力データセットを入力とし、前記第1の結果データセットを目標出力として、機械学習モデルを訓練し、
第2の訓練フェーズにおいて、前記入力データセットを入力とし、前記第2の結果データセットを目標出力として、機械学習モデルを訓練する
方法であって、
前記機械学習モデルは、前記第1のプライベートデータセットまたは前記第2のプライベートデータセットで訓練されていない
方法。
【請求項2】
前記第1のプライベート人工知能モデルは、第1のモデルアーキテクチャを有し、
前記第2のプライベート人工知能モデルは、前記第1のモデルアーキテクチャとは異なる第2のモデルアーキテクチャを有する
請求項1に記載の方法。
【請求項3】
前記第1のプライベート人工知能モデルおよび前記第2のプライベート人工知能モデルのそれぞれは、深層ニューラルネットワーク、カーネルマシンまたはランダムフォレストである
請求項2に記載の方法。
【請求項4】
前記機械学習モデルは、分類モデルであって、
前記第1の結果データセットおよび第2の結果データセットのそれぞれは、それぞれの複数の分類ラベルを含む
請求項1に記載の方法。
【請求項5】
前記入力データセットは、それぞれの入力分類ラベルを含む入力データエントリの第1のサブセットおよびそれぞれの入力分類ラベルを含む入力データエントリの第2のサブセットを含む複数のラベル付きデータセットである
請求項4に記載の方法。
【請求項6】
前記機械学習モデルは、回帰モデルであって、
前記第1の結果データセットおよび前記第2の結果データセットは、それぞれ、それぞれの複数の数値を含む
請求項1に記載の方法。
【請求項7】
前記機械学習モデルは、回帰型ニューラルネットワークであって、
前記入力データセットは、複数の順序付けされた数値を有する複数の入力系列を含む
請求項1に記載の方法。
【請求項8】
少なくとも前記第1の訓練フェーズにおいて、前記機械学習モデルは、重み付き損失関数を利用する訓練アルゴリズムを用いて訓練される
請求項1に記載の方法。
【請求項9】
前記重み付き損失関数は、前記機械学習モデルの予測出力と前記第1の結果データセットの目標データ出力との間の損失を、第1の類似度アルゴリズムによって決定される前記入力データセット内の係数と前記第1のプライベートデータセットとの間のデータ距離、前記第1の結果データセットにおける信頼値、および人が指定した入力のうちの1つ以上に基づく重み係数によって重み付けする、
請求項8に記載の方法。
【請求項10】
前記第1の結果データセットまたは前記第2の結果データセットは、準同型に暗号化される
請求項1に記載の方法。
【請求項11】
前記機械学習モデルは、少なくとも、教師あり学習によって一部が訓練される
請求項1に記載の方法。
【請求項12】
コンピューティングシステムであって、
プロセッサを有するサーバコンピューティングデバイスを含み、
前記プロセッサは、
第1のプライベートデータセットによって生成された第1のプライベート人工知能モデルを実行する第1のクライアントコンピューティングデバイスと、第2のプライベートデータセットによって生成された第2のプライベート人工知能モデルを実行する第2のクライアントコンピューティングデバイスとに、入力データセットを送信し、
前記第1のプライベート人工知能モデルに前記入力データセットを適用させた結果として、前記第1のクライアントコンピューティングデバイスにおいて実行された前記第1のプライベート人工知能モデルから、第1の結果データセットを受信し、
前記第2のプライベート人工知能モデルに前記入力データセットを適用させて結果として、前記第2のクライアントコンピューティングデバイスにおいて実行された前記第2のプライベート人工知能モデルから、第2の結果データセットを受信し、
第1の訓練フェーズにおいて、前記入力データセットを入力とし、前記第1の結果データセットを第1の目標出力として、機械学習モデルを訓練し、
第2の訓練フェーズにおいて、さらに、前記入力データセットを前記入力とし、前記第2の結果データセットを第2の目標出力として、前記機械学習モデルを訓練する、
ように構成され、
前記機械学習モデルは、前記第1のプライベートデータセットおよび第2のプライベートデータセットによって訓練されていない
コンピューティングシステム。
【請求項13】
前記第1のプライベート人工知能モデルは、第1のモデルアーキテクチャを有し、
前記第2のプライベート人工知能モデルは、前記第1のモデルアーキテクチャとは異なる第2のモデルアーキテクチャを有する
請求項12に記載のコンピューティングシステム。
【請求項14】
前記第1のプライベート人工知能モデルおよび前記第2のプライベート人工知能モデルのそれぞれは、深層ニューラルネットワーク、カーネルマシンまたはランダムフォレストである
請求項13に記載のコンピューティングシステム。
【請求項15】
前記機械学習モデルは、分類モデルであって、
前記第1の結果データセットおよび第2の結果データセットのそれぞれは、それぞれの分類ラベルを含む
請求項12に記載のコンピューティングシステム。
【請求項16】
前記機械学習モデルは、回帰モデルであって、
前記第1の結果データセットおよび前記第2の結果データセットは、それぞれ、それぞれの複数の数値を含む
請求項12に記載のコンピューティングシステム。
【請求項17】
前記機械学習モデルは、回帰型ニューラルネットワークであって、
前記入力データセットは、複数の順序付けされた数値を有する複数の入力系列を含む
請求項12に記載のコンピューティングシステム。
【請求項18】
前記プロセッサはさらに、
テンプレートデータセットによりテンプレート機械学習モデルを訓練し、
前記テンプレート機械学習モデルを前記第1のクライアントコンピューティングデバイスおよび前記第2のクライアントコンピューティングデバイスに送信する
ように構成され、
前記第1のプライベート人工知能モデルは、さらに、前記第1のプライベートデータセットによって訓練された、前記テンプレート機械学習モデルの第1のコピーであって、
前記第2のプライベート人工知能モデルは、さらに、前記第2のプライベートデータセットによって訓練された、前記テンプレート機械学習モデルの第2のコピーである
請求項12に記載のコンピューティングシステム。
【請求項19】
前記機械学習モデルは、重み付き損失関数を利用する訓練アルゴリズムを用いて訓練される
請求項12に記載のコンピューティングシステム。
【請求項20】
コンピューティングデバイスを用いる方法であって、
前記方法は、
第1のプライベートデータセットを用いて生成された第1のプライベート人工知能モデルと、第2のプライベートデータセットを用いて生成された第2のプライベート人工知能モデルとに、入力データセットを入力し、
前記第1のプライベート人工知能モデルに前記入力データセットを適用させた結果として、前記第1のプライベート人工知能モデルから、複数の第1の分類ラベルを含む第1の結果データセットを受信し、
前記第2のプライベート人工知能モデルに前記入力データセットを適用させて結果として、前記第2のプライベート人工知能モデルから、複数の第2の分類ラベルを含む第2の結果データセットを受信し、
第1の訓練フェーズにおいて、前記入力データセットを入力とし、前記第1の結果データセットを第1の目標出力として、機械学習モデルを訓練し、
第2の訓練フェーズにおいて、さらに、前記入力データセットを前記入力とし、前記第2の結果データセットを第2の目標出力として、前記機械学習モデルを訓練し、
複数の実行時入力データエントリを含む実行時データセットを受信し、
各複数の実行時入力データエントリに対し、複数の第1の分類ラベルおよび複数の第2の分類ラベルセットを含む合わせられた分類ラベルセットから選択された実行時分類ラベルを出力する
方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、適応共蒸留モデル(adaptive co-distillation model)に関する。
【背景技術】
【0002】
コンピュータモデルは、コンピュータシステムが特定の状況についてデータを分析し、そのデータに基づいて決定を下せるようにするために、さまざまな分野で使用されている。そのようなモデルは多種多様に開発されてきた。たとえば、エキスパートシステムやデシジョンツリーなどのシンボリックモデル、およびニューラルネットワークやサポートベクターマシンなどの非シンボリックモデルはよく知られている。機械学習では、モデルはデータセットで訓練されるが、シンボリックシステムでは、モデルは通常、ヒューリスティックに、つまり人の決定を使用して設計される。さまざまなエンティティでこのように多種多様なモデルが使用されているため、コラボレーションの機会が存在する。
【0003】
分散型機械学習では、機械学習アルゴリズムは、複数のコンピューティングデバイス間で分散されたデータを使用して訓練される。これらのコンピューティングデバイスのそれぞれは、機械学習モデルをローカルで訓練するために使用される独自の訓練データのセットを格納し得る。これらの機械学習モデルは、集中型モデル(centralized model)に組み合わせることができる。分散型機械学習は、たとえば、コンピューティングデバイスのユーザが中央サーバに送信したくないプライベートデータを使用して機械学習モデルを訓練する場合に使用できる。
【0004】
しかしながら、本発明者らは、分散型機械学習の上記の方法の以下の技術的欠点を特定した。上記の分散型機械学習の方法では、すべてのクライアントの機械学習モデルが同じモデルアーキテクチャを持つ。したがって、アーキテクチャが異なる複数のクライアント機械学習モデルを組み合わせて中央の機械学習モデルにすることはできない。さらに、分散型クライアントコンピューティングデバイスのユーザは、プライバシー上の理由、競争上の優位性、ライセンス、またはその他の法的制約などのために、クライアントの機械学習モデルに使用する特定の機械学習モデルアーキテクチャをプライベートにすることを希望する場合がある。ただし、上記の分散型機械学習の方法は、分散型ユーザ間で同じモデルアーキテクチャを共有するため、クライアントモデルアーキテクチャをプライベートにすることはできない。したがって、独立した当事者によって開発された異なる人工知能モデルの学習の技術的統合を促進すると同時に、それらの異なる人工知能モデルのそれぞれが存在するデータのデータプライバシを維持する訓練された人工知能システムを提供するという技術的課題が存在する。
【0005】
産業自動化の分野は、これらの欠点が特定の課題を提示する技術分野の一例である。さまざまなメーカが、ロボットアーム、コンベアなどの製造装置に、製造プロセス中に製造装置からパフォーマンスデータを収集するモーションセンサやカメラなどを装備している。このパフォーマンスデータは、将来の製造プロセス中に製造装置を操作するために使用される人工知能モデルを訓練するために、各メーカによって使用される。異なるアーキテクチャの人工知能モデルと、これらの異なる訓練されたモデルのデータセットのデータプライバシとの相互運用性の欠如に関する上述の課題は、そのような産業オートメーションシステムで使用される人工知能モデルの急速な成長と開発に対する潜在的な障壁を提示する。
【発明の概要】
【0006】
本開示の一態様によれば、コンピューティングデバイスと共に使用する方法が提供される。方法は、第1のプライベートデータセットを用いて生成された第1のプライベート人工知能モデルと、第2のプライベートデータセットを用いて生成された第2のプライベート人工知能モデルとに入力データセットを入力することを含み得る。方法は、さらに、第1のプライベート人工知能モデルに入力データセットを適用させた結果として、第1のプライベート人工知能モデルか、ら第1の結果データセットを受信することを含み得る。方法は、さらに、第2のプライベート人工知能モデルに入力データセットを適用させた結果として、第2のプライベート人工知能モデルから、第2の結果データセットを受信することを含み得る。第1の訓練フェーズにおいて、方法は、さらに、入力データセットを入力とし、第1の結果データセットを第1の目標出力として、適応共蒸留モデルを訓練することを含み得る。第2の訓練フェーズにおいて、方法は、さらに、入力データセットを入力として、第2の結果データセットを第2の目標出力として、適応共蒸留モデルを訓練することを含み得る。適応共蒸留モデルは、第1のプライベートデータセットまたは第2のプライベートデータセットで訓練されない場合がある。
【0007】
この要約は、詳細な説明でさらに後述される簡略化された形式で概念の選択を紹介するために提供される。この要約は、主張された主題の主要な特徴または本質的な特徴を特定することを意図しておらず、主張された主題の範囲を制限するために使用されることも意図されていない。さらに、請求された主題は、本開示のいずれかの部分に記載された不利な点のいずれかまたはすべてを解決する実装に限定されない。
【図面の簡単な説明】
【0008】
図1図1は、一実施形態に係る、適応共蒸留モデルを訓練し得るコンピューティングシステムの一例を概略的に示す。
図2図2は、図1の実施形態に係る、適応共蒸留モデルが深層ニューラルネットワークである適応共蒸留モデルの訓練の一例を示す。
図3図3は、図1の実施形態に係る、組み合わせられた分類ラベルセットから分類ラベルを選択する適応共蒸留モデルを示す。
図4図4は、図1の実施形態に係る、複数の一連の順序付けられた入力値を使用する適応共蒸留モデルの訓練を示す。
図5図5は、図1の適応共蒸留モデルの訓練における重み付き損失関数の使用を示す概略図である。
図6図6は、図5の重み付き損失関数で使用される重み係数の計算を示す概略図である。
図7図7は、プライベートデータセットとパブリックデータセット内の2つのサンプル画像のそれぞれとの間の訓練データ距離の計算を示す。
図8図8は、図1の実施形態のグラフィカルユーザインタフェースの適応共蒸留モデル生成インタフェースの一例を示す。
図9図9は、図1の実施形態に係る、分類信頼値を編集するインタフェースの一例を示す。
図10図10は、図1の実施形態に係る、訓練データ距離を編集するインタフェースの一例を示す。
図11A図11Aは、図1の実施形態に係る、一連の所与のモデル入力についてのパブリックモデル出力とプライベートモデル出力との間の誤差、重み付けされていない損失、および重み付き損失を示すグラフの一例である。
図11B図11Bは、図1の実施形態に係る、一連の所与のモデル入力について、パブリックモデル出力とプライベートモデル出力との間の誤差、およびパブリックモデル出力と重み付きプライベートモデル出力との間の損失を示すグラフの他の一例である。
図12図12は、図1の実施形態に係る、重み付きおよび重み付けされていない損失面を一次元で示すグラフである。
図13図13は、テンプレート機械学習モデルがサーバコンピューティングデバイスで訓練された場合の図1のコンピューティングシステムの一例を示す。
図14図14は、図1の実施形態に係る、テンプレート機械学習モデルが深層ニューラルネットワークであるテンプレート機械学習モデルの一例の訓練を示す。
図15A図15Aは、図1の実施形態に係る、適応共蒸留モデルを訓練する方法の一例のフローチャートを示す。
図15B図15Bは、図15Aの方法を実行する場合にいくつかの実施形態において実行され得る追加のステップを示す。
図16図16は、図1のコンピューティングシステムが規定され得るコンピューティング環境の一例の概略図を示す。
【発明を実施するための形態】
【0009】
上記の問題に対処するために、図1に示される一実施形態に係る、コンピューティングシステム1が提供される。概要として、コンピューティングシステム1は、プライベートデータセットを使用して生成された1つ以上のプライベート人工知能モデルの動作を模擬するように、パブリックまたは共有の人工知能モデルを訓練可能に構成される。これは、パブリックまたは共有データセットから各プライベート人工知能モデルにデータを入力し、プライベート人工知能モデルの出力を使用してパブリック人工知能モデルを訓練することによって達成される。以下で詳細に説明するように、重み付き損失関数を使用して、パブリックまたは共有データセット内の関連性の低いデータの訓練の効果を重視しないようにし得る。重み付き損失関数は、以下に説明するように、例えば、出力重み付き損失関数または入力重み付き損失関数であり得る。このようなシステムを使用することにより、各プライベートデータセット内のデータのプライバシーを維持しながら、各プライベート人工知能モデルの学習を共有できる。
【0010】
図1の例では、コンピューティングシステム1は、サーバコンピューティングデバイス10、第1のクライアントコンピューティングデバイス80、および第2のクライアントコンピューティングデバイス90を含む。サーバコンピューティングデバイス10は、ネットワークを介して、第1のクライアントコンピューティングデバイス80および第2のクライアントコンピューティングデバイス90と通信するように構成され得る。図1の例では2つのクライアントコンピューティングデバイスのみが示されるが、いくつかの実施形態では、サーバコンピューティングデバイス10は、2つ以上のクライアントコンピューティングデバイスと通信するように構成され得る。いくつかの実施形態では、サーバコンピューティングデバイス10の機能は、通信可能に接続された複数の物理コンピューティングデバイスに分散され得る。
【0011】
サーバコンピューティングデバイス10は、プロセッサ12を含み得る。さらに、サーバコンピューティングデバイス10は、プロセッサ12によって実行可能な命令を格納できるメモリ14を含み得る。メモリ14は、揮発性ストレージおよび/または不揮発性ストレージを含み得る。第1のクライアントコンピューティングデバイス80および第2のクライアントコンピューティングデバイス90は、また、それぞれのプロセッサ82および92ならびにメモリ84および94を含み得る。いくつかの実施形態では、サーバコンピューティングデバイス10は、キーボード、マウス、タッチスクリーン、トラックパッド、マイク、光学センサー、加速度計、または他のタイプの入力デバイス16などの1以上のそれぞれの入力デバイス16を含み得る。サーバコンピューティングデバイス10は、また、ディスプレイ、スピーカ、触覚フィードバックデバイス、または他のタイプの出力デバイス18などの1以上のそれぞれの出力デバイス18を含み得る。第1のクライアントコンピューティングデバイス80および第2のクライアントコンピューティングデバイス90は、また、1以上のそれぞれの入力デバイスおよび/または1以上のそれぞれの出力デバイスを含み得る。
【0012】
サーバコンピューティングデバイス10のプロセッサ12は、入力データセット50を第1のクライアントコンピューティングデバイス80および第2のクライアントコンピューティングデバイス90に送信するように構成され得る。入力データセット50はサーバコンピューティングデバイス間で共有されるため、第1のコンピューティングデバイスおよび第1のコンピューティングデバイスのそれぞれが異なるエンティティに配置され得、入力データセット50は、共有データセットと呼ばれることもあり、場合によっては、パブリックデータセットであり得る。入力データセット50は、複数の入力データエントリ52を含み得る。以下でさらに詳細に説明するように、入力データセット50は、第1のクライアントコンピューティングデバイス80で実行される第1のプライベート人工知能モデル30および第2のクライアントコンピューティングデバイス90で実行される第2のプライベート人工知能モデル40の入力として使用され得、その結果、出力は、サーバコンピューティングデバイスで適応共蒸留モデル60を訓練するために使用できるこれらのモデルによって生成され得る。入力データセット50に含まれる入力データエントリ52は、ラベル無しデータであり得る。ラベル無しデータには、通常、ラベル付きデータよりも簡単に利用できる利点がある。加えて、ラベル無しデータは、第1のプライベート人工知能モデル30および第2のプライベート人工知能モデル40によって入力データエントリ52に割り当てられ得る分類ラベルを指定しない。他の実施形態では、入力データセット50は、以下でさらに詳細に説明するように、入力データエントリ52のサブセットがそれぞれの分類ラベルを有する部分的にラベル付けされたデータセットであり得る。入力データセット50でラベル無しまたは部分的にラベル付けされたデータを使用することにより、プライベート人工知能モデルは、例えば、各プライベートモデルに既知であり、入力データセット50に含まれていない分類に従って、入力データセット50内のデータを自由に分類できる。
【0013】
図1の例に示すように、第1のプライベート人工知能モデル30は、第1のプライベートデータセット32を使用して生成される。第1のプライベートデータセット32は、複数の第1のプライベートエントリ34を含み得、これは、複数の第1のプライベート人工知能モデル30の入力例および対応する出力例を含み得る。第1のプライベート人工知能モデル30は、訓練データセットとして第1のプライベートデータセット32を使用して訓練される機械学習モデルであり得る。あるいは、第1のプライベート人工知能モデルは、機械学習技術を使用せずに、第1のプライベートデータセット32に基づいてプログラムされる、シンボリック人工知能モデルなどのヒューリスティックモデルであり得る。いくつかの実施形態では、入力データセット50が第1のプライベート人工知能モデル30の実行時入力であるように、第1のプライベート人工知能モデル30は、入力データセット50を受信する前に生成され得る。第1のプライベート人工知能モデル30は、第1のクライアントコンピューティングデバイス80で生成されるので、第1のプライベートデータセット32は、サーバコンピューティングデバイス10に送信される必要はなく、プライベートデータセットとして保持され得る。
【0014】
図1に一例が示されるように、第2のプライベート人工知能モデル40は、第2のプライベートデータセット42を使用して生成される。第2のプライベートデータセット42は、複数の第2のプライベートエントリ44を含み得、これは、第2のプライベート人工知能モデル40のための複数の例示的な入力および対応する例示的な出力を含み得る。第2のプライベート人工知能モデル40が機械学習モデルである実施形態では、第2のプライベート人工知能モデル40は、訓練データセットとして第2のプライベートデータセット42を使用して訓練され得る。あるいは、第2のプライベート人工知能モデル40は、機械学習モデルト訓練技術を使用せずに、第2のプライベートデータセット42に基づいてプログラムされるヒューリスティックモデルであり得る。第1のプライベート人工知能モデル30と同様に、第2のプライベート人工知能モデル40は、入力データセット50を受信する前に、第2のプライベートデータセット42を使用して生成され得る。
【0015】
いくつかの実施形態では、第1のプライベート人工知能モデル30は、第1のモデルアーキテクチャを有し得、第2のプライベート人工知能モデル40は、第1のモデルアーキテクチャとは異なる第2のモデルアーキテクチャを有し得る。例えば、第1のプライベート人工知能モデル30および第2のプライベート人工知能モデル40のそれぞれは、深層ニューラルネットワーク、カーネルマシン、またはランダムフォレストであり得る。深層ニューラルネットワークが第1のプライベート人工知能モデル30または第2のプライベート人工知能モデル40のいずれかに使用される場合、深層ニューラルネットワークは、例えば、多層パーセプトロン、畳み込みニューラルネットワーク、回帰型ニューラルネットワーク、または他のタイプの深層ニューラルネットワークであり得る。必要に応じて、異なるタイプまたはアーキテクチャの深層ニューラルネットワークを各プライベート人工知能モデルで使用し得る。カーネルマシンが第1のプライベート人工知能モデル30および/または第2のプライベート人工知能モデル40に使用される場合、カーネルマシンは、サポートベクターマシンまたは他のタイプのカーネルマシンであり得る。第1のモデルアーキテクチャと第2のモデルアーキテクチャの違いは、使用する機械学習アルゴリズムのタイプの違いであり得、また、あるいは、同じタイプの機械学習アルゴリズムが使用される場合のニューロンの数または層の数などのパラメータの違いであり得る。
【0016】
図2は、共に深層ニューラルネットワークである第1のプライベート人工知能モデル30および第2のプライベート人工知能モデル40を示す。第1のプライベート人工知能モデル30は、そのニューロン間の接続の複数の第1のプライベートモデル重み31を有する。さらに、第1のプライベート人工知能モデル30は、各ニューロンに対してそれぞれの第1のプライベートモデルバイアス33を有する。第1のプライベート人工知能モデル30は、第1のプライベートデータセット32に含まれる入力例および対応する出力例のペアを使用する確率的勾配降下を伴うバックプロパゲーションなどの第1の訓練アルゴリズム100(図5に示す)を介して訓練され得る。そのような例では、第1のプライベートモデルは、重み付き損失関数を使用するコスト関数36を使用し得る。重み付き損失関数は、図11Aに関連して示され、説明されるように、出力重み付き損失関数であり得、または、図11Bに関連して示され、説明されるように、入力重み付き損失関数であり得る。コスト関数36は、機械学習中のバックプロパゲーションに使用され、例えば、平均二乗誤差コスト関数であり得る。あるいは、以下に説明するように、クロスエントロピーコスト関数、指数コスト関数などの別の適切なコスト関数を使用し得る。あるいは、第1のプライベート人工知能モデル30は、座標降下法または劣勾配降下法などの他の方法を使用して訓練され得る。
【0017】
図2に示される第2のプライベート人工知能モデル40は、そのニューロン間の接続の複数の第2のプライベートモデル重み41を有する。さらに、第2のプライベート人工知能モデル40は、各ニューロンに対してそれぞれの第2のプライベートモデルバイアス43を有する。第1のプライベート人工知能モデル30について上述された例のように、第2のプライベート人工知能モデル40は、確率的勾配降下を伴うバックプロパゲーションを使用して、第2の訓練アルゴリズム102(図5に示す)を介して訓練され得る。バックプロパゲーションが使用される場合の第2のプライベートモデルコスト関数46は、平均二乗誤差コスト関数、または交差エントロピーコスト関数、指数コスト関数などの他の適切なコスト関数であり得る。あるいは、座標降下法または劣勾配降下法(subgradient descent)などの他の訓練方法を使用して、第2のプライベート人工知能モデル40を訓練し得る。
【0018】
図1に戻り、第1のクライアントコンピューティングデバイス80は、第1のプライベート人工知能モデル30を入力データセット50に適用した結果として、第1の結果データセット20を生成し得る。第1の結果データセット20は、複数の第1の結果エントリ22を含み得る。いくつかの実施形態では、第1の結果データセット20は、第1の結果エントリ22に関連する複数の第1の信頼値23をさらに含み得る。例えば、第1の結果エントリ22のそれぞれが事前定義された潜在的出力のリストから選択される場合、第1の結果データセット22は、第1の信頼値23としてそれらの潜在的出力のそれぞれの推定確率を含み得る。いくつかの実施形態では、第1の結果エントリ22は、複数の第1の信頼値23のベクトルであり得る。さらに、第1の結果データセット20は、複数の第1のデータ距離21を含み得、そのそれぞれは、第1のデータ類似度アルゴリズム35によって計算された、例えば、入力データセット50の対応する入力データエントリ52および第1のプライベートデータセット32間の訓練データ距離であり得る。第1のデータ距離21は、例えば、図5に関連して以下に説明するように、重み付き損失関数を計算する際に使用され得る。データ類似度アルゴリズムの一例を、図6に関連して説明する。
【0019】
図1に続いて、さらに、第2のクライアントコンピューティングデバイス90は、第2のプライベート人工知能モデル40を入力データセット50に適用した結果として、第2の結果データセット24を生成し得る。第2の結果データセット24は、複数の第2の結果エントリ26を含み得る。第2の結果データセット24は、第2の結果エントリ26にそれぞれ関連する複数の第2の信頼値27をさらに含み得る。第1のクライアントコンピューティングデバイス80のプロセッサ82および第2のクライアントコンピューティングデバイス90のプロセッサ92は、それぞれ、第1の結果データセット20および第2の結果データセット24をサーバコンピューティングデバイス10に送信するように構成され得る。さらに、第2の結果データセット24は、複数の第2のデータ距離25を含み得、そのそれぞれは、第2のデータ類似度アルゴリズム45によって計算された、例えば、入力データセット50内の対応する入力データエントリ52と第2のプライベートデータセット44との間の訓練データ距離であり得る。第1および第2のデータ類似度アルゴリズム35、45は、必要に応じて、同じまたは異なるアルゴリズムであり得ることが理解されよう。第2のデータ距離25はまた、例えば、図5に関連して以下に説明されるように、重み付き損失関数を計算する際に使用され得る。
【0020】
また図1において、サーバコンピューティングデバイス10のプロセッサ12は、さらに、入力として入力データセット50、第1の目標出力として結果データセット20(特に、第1のデータセット20の第1のデータエントリ22)を用いて、適応共蒸留モデル60を訓練するように構成され得る。第1の信頼値23は、また、適応共蒸留モデル60の訓練中の第1の目標出力に含まれ得る。適応共蒸留モデル60は、深層ニューラルネットワーク、カーネルマシン、またはランダムフォレストなどの機械学習モデル、または人によってヒューリスティックに設計されたアルゴリズムなどであり得る。図2の例では、適応共蒸留モデル60は、そのニューロン間に複数の適応共蒸留モデル重み61を有する深層ニューラルネットワークである。適応共蒸留モデル60は、また、ニューロンのそれぞれについて、それぞれの適応共蒸留モデルバイアス63を有し得る。第1の結果データセット20を使用する訓練は、第1の訓練フェーズ62の間に実行され得る。適応共蒸留モデル60は、例えば、平均二乗誤差コスト関数などの適応共蒸留モデルコスト関数66を用いた確率的勾配降下法を介して訓練され得る。あるいは、上記のように、他のコスト関数を使用し得る。いくつかの実施形態では、確率的勾配降下法の代わりに、座標降下法または劣勾配降下法など、適応共蒸留モデル60を訓練するいくつかの他の方法を使用し得る。
【0021】
第2の訓練フェーズ64において、プロセッサ12は、さらに、入力データセット50を入力とし、第2の結果データセット24を第2の目標出力として、適応共蒸留モデル60を訓練するように構成され得る。第2の訓練フェーズ64は、第1の訓練フェーズ62に続いて実行され得る。確率的勾配降下を伴うバックプロパゲーションを使用して、入力データセット50および第2の結果データセット24を用いて、適応共蒸留モデル60を訓練し得る。いくつかの実施形態では、第1の訓練フェーズ62で使用される適応共蒸留モデルコスト関数66は、第2の訓練フェーズ64で再利用され得る。あるいは、上記のように、他のいくつかのコスト関数が使用され得る。以下で説明するように、コスト関数は重み付き損失関数を含み得、これにより、適応共蒸留モデルは、第1および第2のプライベート訓練データセット32、42のプライベート訓練データと同様の訓練データからより多くを学習することができる。
【0022】
適応共蒸留モデル60の訓練は、以下の例に従って象徴的に表し得る。入力データセット50は、Ddist =(x1、x2、...。)として表わし得、ここで、xnは、入力データエントリ52である。第1のプライベート人工知能モデル30および第2のプライベート人工知能モデル40は、それぞれ、サーバコンピューティングデバイス10への各モデル出力値{Mi(xn)|xn∈Ddist}を出力し得、ここで、MiはDdistの各入力値xnのモデル出力値である。分類モデルの場合、出力値は種別であり得、モデルは、分類に加えて信頼値を出力するように構成し得る。適応共蒸留モデル60が訓練される場合、サーバコンピューティングデバイス10のプロセッサ12は、以下の誤差表現を最小化するように構成され得る。
【数1】

ここで、以下の語は以下を意味する
WeightedLoss:訓練中に最小化されるMserverのコスト関数
Mserver:共有モデルまたはパブリックモデル(例:適応共蒸留モデル60)
Mi:プライベートモデル(例:第1と第2のプライベート人工知能モデル30、40)
損失:平均二乗誤差、平均平均誤差(mean average error)、平均バイアス誤差、サポートベクターマシン損失、クロスエントロピー損失などの適切な損失関数
xn:共有またはパブリックデータセットDdistの係数n(例:入力データセット50)
w:重み係数
【数2】
上記の式は、損失関数の出力が重み付けされ、また、以下で説明する入力重み付き損失関数と対比され得るため、出力重み付き損失関数と呼ばれ得る。重み係数は、パブリックまたは共有データセットDdistの各xnを、Miが生成されたプライベートデータセットDiのすべての係数と比較するデータ類似度アルゴリズム35、45によって計算し得る。データ類似度アルゴリズム35、45は、入力データ係数xnとパブリックセットとの間のデータ距離に基づいて、それぞれの重み係数wi, nをさらに出力し得る。データ類似度アルゴリズム35、45は、単一次元(すなわち、単一の独立変数の場合)または多次元(すなわち、複数の独立変数の場合)でデータ距離を計算し得る。このデータ距離に基づく重み係数wi, nに代えて、または、加えて、例えば、重み係数wi, nは、それぞれのプライベート人工知能モデル30、40からの信頼値、または、図8に関連して以下で説明する、人が指定した入力、などの別の評価、に基づき得る。データ類似度アルゴリズム35、45として使用できる適切なアルゴリズムには、例えば、ユークリッド距離、マンハッタン距離、ミンコフスキー距離、n乗根の類似度、コサイン類似度、平方根、およびジャッカード距離が含まれ得る。データ類似度アルゴリズム35、45は、最初にデータ距離を計算し得、次に、例えば、データ距離を0から1の間の値に正規化することによって、データ距離に基づいて重み係数wi, nを計算し得(1に近づくより高い距離)、次に、重み係数を1から正規化されたデータ距離値を引いた値として計算する。共有またはパブリックモデルMserver(たとえば、適応共蒸留モデル60)の訓練に使用される訓練アルゴリズムは、より大きな損失からより多くを学習することによって重み付き損失を最小限に抑えようとするため、共有またはパブリックモデルMserver(たとえば、適応共蒸留モデル60)は、各プライベートデータセットMiのデータと同様のパブリックデータセットのデータからより多くを学習し、各プライベートデータセットのデータとは異なるパブリックデータセットのデータからはより多くを学習しない。上記の式は、以下の図9を参照してより詳細に説明される。
【0023】
図1および2の一例では、適応共蒸留モデル60は、第1のプライベートデータセット32または第2のプライベートデータセット42で直接訓練されておらず、それらを利用しない。サーバコンピューティングデバイス10は、訓練のために第1のプライベートデータセット32または第2のプライベートデータセット42を受信する必要がないため、プライベートデータセットのプライバシーを保つことができる。さらに、プロセッサ12は、第1のプライベート人工知能モデル30および第2のプライベート人工知能モデル40のパラメータではなく、第1の結果データセット20および第2の結果データセット24を受信するので、第1のクライアントコンピューティングデバイスの80および第2のクライアントコンピューティングデバイス90のそれぞれのユーザは、例えば、それぞれの会社の従業員またはそれぞれの研究エンティティの研究者であり得、また、それぞれの機械学習モデルのアーキテクチャをプライベートに保ち、それによってプライバシー、競争上の優位性、ライセンスまたはその他の法的制約などを助成することができる。適応共蒸留モデル60を訓練するための第1の結果データセット20および第2の結果データセット24の使用は、また、異なるアーキテクチャを有するプライベート人工知能モデル用の適応共蒸留モデル60の生成を実現する。これに対し、モデル間に共有レイヤを形成することによって分散機械学習モデルを組み合わせる既存の方法は、異なるアーキテクチャのモデルを組み合わせるのに使用できないことが頻繁にある。
【0024】
いくつかの実施形態では、図1に示されるように、適応共蒸留モデル60は、教師あり学習を介して少なくとも部分的に訓練され得る。そのような実施形態では、適応共蒸留モデル60の訓練中に、プロセッサ12は、さらに、適応共蒸留モデル60によって生成された1以上の適応共蒸留モデル出力68を1以上のサーバコンピューティングデバイス10の出力デバイス18を介してユーザに伝達するように構成され得る。プロセッサ12は、さらに、1以上の入力デバイス16を介して1以上の教師あり学習ユーザ入力56を受信するように構成され得る。1以上の教師あり学習ユーザ入力56は、1以上の複数の適応共蒸留モデル出力68のそれぞれの評価を含み得る。例えば、教師あり学習ユーザ入力56は、適応共蒸留モデル60が、入力データセット50に含まれる入力データエントリ52に正確な分類ラベルを付与したか否かを示し得る。教師あり学習ユーザ入力56に基づいて、プロセッサ12は、さらに、適応共蒸留モデル60の1以上のパラメータを更新するように構成され得る。例えば、適応共蒸留モデル60が深層ニューラルネットワークである実施形態では、プロセッサ12は、1以上の適応共蒸留モデルの重み61および/または1以上の適応共蒸留モデルバイアス63を更新し得る。
【0025】
いくつかの実施形態では、図3に示されるように、適応共蒸留モデル60は分類モデルであり得る。そのような実施形態では、第1の結果データセット20および第2の結果データセット24は、それぞれ、各複数の分類ラベルを含み得る。図3は、第1の結果データセット20および第2の結果データセット24にそれぞれ含まれる複数の第1の分類ラベル126および複数の第2の分類ラベル128を示す。図3の例の適応共蒸留モデル60は、第1の分類ラベル126および第2の分類ラベル128のそれぞれを含む結合された分類ラベルセット120を含む。実行時に、適応共蒸留モデル60は、1以上の実行時入力データエントリ112を含む実行時データセット110を受信し得る。実行時入力データセット110の受信に応答して、適応共蒸留モデルは、1以上の実行時入力データエントリ112に対応する1以上の実行時分類ラベル142を含む実行時出力データセット140を出力するように構成され得る。いくつかの実施形態では、複数の実行時分類ラベル142は、各実行時入力データエントリ112に一致させ得る。そのような実施形態では、適応共蒸留モデル60は、さらに、実行時分類ラベル142のそれぞれについて、それぞれの出力信頼値144を出力するように構成され得る。したがって、適応共蒸留モデル60は、第1のプライベートデータセット32または第2のプライベートデータセット42で訓練されていなくても、第1のプライベート人工知能モデル30および第2のプライベート人工知能モデル40の両方によって実行される分類タスクを実行するように構成され得る。
【0026】
図3に示すように、適応共蒸留モデル60が分類モデルである実施形態では、入力データセット50は、部分的にラベル付けされたデータセットであり得る。そのような実施形態では、入力データセット50は、それぞれの入力分類ラベル54を有する入力データエントリ52の第1のサブセットと、それぞれの入力分類ラベル54を有しない入力データエントリ52の第2のサブセットとを含み得る。そのような実施形態では、複数の入力分類ラベル54が結合された分類ラベルセット120に含まれ得る。
【0027】
あるいは、いくつかの実施形態では、適応共蒸留モデル60は回帰モデルであり得る。そのような実施形態では、第1の結果データセット20および第2の結果データセット24はそれぞれ、それぞれの複数の数値を含み得る。第1のプライベート人工知能モデル30および第2のプライベート人工知能モデル40は両方とも、それぞれの入力を、1以上の数値を含む対応する第1の結果エントリ22および第2の結果エントリ26にマッピングするように構成され得る。例えば、第1のプライベート人工知能モデル30および第2のプライベート人工知能モデル40はそれぞれ、スカラー数値、数値のベクトル、または1以上の数値を含む何らかの他のデータ構造を出力し得る。適応共蒸留モデル60は、そのような実施形態では、入力データエントリ52の関数として、第1の結果エントリ22および第2の結果エントリ26に対して回帰を実行し得る。
【0028】
他の実施形態では、図4の例に示されるように、適応共蒸留モデル60は回帰型ニューラルネットワークであり得る。図4の例では、入力データセット250は、それぞれが複数の順序付けされた入力値254を含む複数の入力系列252を含む。各入力系列252に含まれる順序付けされた入力値254は、時間的に順序付けされ、空間的に順序付けされ、または何らかの他の変数に従って順序付けされ得る。適応共蒸留モデル60が回帰型ニューラルネットワークである実施形態では、第1のプライベート人工知能モデル30が訓練される第1のプライベートデータセット232は、複数の第1のプライベート系列235を含み得る。第1のプライベート系列234のそれぞれは、複数の第1のプライベート順序付けられた入力値256を含み得、それは、入力データセット250の入力系列252に含まれる順序付けられた入力値254と同じ変数に従って順序付けられ得る。第2のプライベートデータセット242は、複数の第2のプライベート系列244を含み得る。第2のプライベート系列244のそれぞれは、複数の第2のプライベート順序付けられた入力値246を含み得、入力データセット250の入力系列252に含まれる順序付けられた入力値254と同じ変数に従って順序付けられ得る。したがって、第1のプライベート人工知能モデル30、第2のプライベート人工知能モデル40、および適応共蒸留モデル60はそれぞれ、系列データを使用して生成され得る。
【0029】
いくつかの実施形態では、図1の第1の結果データセット20または第2の結果データセット24は、準同型に暗号化され得る。第1の結果データセット20または第2の結果データセット24が準同型に暗号化される場合、サーバコンピューティングデバイス10のプロセッサ12で第1の結果エントリ22または第2の結果エントリ26に対して1以上の計算を実行し得、これらのエントリの平文の値は秘密が保たれる。第1の結果データセット20または第2の結果データセット24は、部分的準同型(partially homomorphic)、やや準同型(somewhat homomorphic)、ラベル付き完全準同型(leveled fully homomorphic)、または完全準同型(fully homomorphic)の暗号化アルゴリズムを使用して暗号化し得る。例えば、部分的準同型スキームとして、Paillier cryptosystem、Rivest-Shamir-Adleman(RSA)、ElGamalスキーム、またはGoldwasser-Micaliスキームを使用し得、完全準同型スキームとして、Brakerski-Gentry-Vaikuntanathanスキームまたはバリアントを使用し得る。第1の結果データセット20または第2の結果データセット24の暗号化は、それぞれ第1のクライアントコンピューティングデバイス80または第2のクライアントコンピューティングデバイス90で実行され得る。適応共蒸留モデル60は、準同型に暗号化された第1の結果データセット20または第2の結果データセット24で訓練され得る。
【0030】
図5乃至12は、コンピュータシステム1が重み付き損失関数を利用可能にするコンピュータシステム1の態様を一般的に示す。図5に示すように、入力データセット50(Ddist)の各係数xnは、第1および第2のプライベート人工知能モデル30、40などの複数のプライベート人工知能モデルへの入力として、それらのそれぞれの後に提供され得、モデルは、第1および第2のプライベートデータセット32、42(Di)などのプライベートデータセットを使用して生成された。係数xnがプライベートモデル30、40のそれぞれに入力されるとき、第1および第2のデータ類似度アルゴリズム35、45などのデータ類似度アルゴリズムは、係数xnをプライベートデータセット32、40のデータDiと比較する。データ類似度アルゴリズムは、例えば、ユークリッド距離、マンハッタン距離、ミンコフスキー距離、n乗根の類似度、コサイン類似度、平方根、ジャッカード距離などであり得る。プライベートモデル30、40はそれぞれ、モデル出力値(Mi)、モデル出力値の信頼値、および類似度アルゴリズムによって出力される訓練データ距離を含むそれぞれの結果データセット20、24を出力する。モデル入力値(xn)は、結果データセット20、24で通過し得、また、サーバで入力データセット50から直接取り戻し得る。プライベートモデル30、40によって出力される結果データセット20、24は、それぞれの訓練フェーズで使用され、第1および第2の訓練アルゴリズム100、120によって適応共蒸留モデル60(すなわち、共有またはパブリックモデル)を訓練する。適応共蒸留モデル60は、各プライベートモデル30、40から、xnを入力として使用し、Miをその出力として訓練される。第1および第2の訓練アルゴリズム100、102は、上述のように、勾配降下を伴うバックプロパゲーションなどの多種多様な訓練アルゴリズムから選択され得る。訓練アルゴリズム100、102の各々は、訓練中に最小化を試みる関連する重み付き損失関数104、106を有する。重み付き損失関数は、以下でより詳細に説明するように、例えば、対応する類似度アルゴリズム35、45から出力されるそれぞれの訓練データ距離21、25、関連するプライベートモデル30、40から出力されるそれぞれの信頼値23、27、および/または、人により入力される。
【0031】
図6は、第1のプライベートデータセットDiと比較される入力データセット50(すなわち、共有またはパブリックデータセット(Ddist))において、ロボットによって把持される卵の画像のxnの具体例を示す。この例では、Diは、場合によって、ゴルフボールがロボットによって把持されている、または把持されていない画像のタグ付きコレクションであり、タグは、画像でロボットがボールを適切に把持するか否かを示すグランドトゥルースタグである。特徴抽出アルゴリズム108は、係数xnおよびプライベートデータセットDiに適用され、それぞれのパラメータ化された表現110、112を生成する。一般的には、特徴はスケール不変の特徴であり、たとえば、畳み込みニューラルネットワークによって検出し得る。あるいは、他のタイプの特徴が抽出され得る。パラメータ化された表現(representations)110、112は、例えば、多次元特徴ベクトルであり得る。特徴ベクトルは、この例では、第1の類似度アルゴリズム35に供給され、第1の訓練データ距離21を計算し、次に、これを、係数xnが、通常、0から1の間の値を有する適応共蒸留モデル60(すなわち、共有またはパブリックモデルMserver)に及ぼす学習効果を重み付けするための重み係数114に変換する。訓練データ距離21が増加すると、重み係数114は減少し、訓練データ距離21が減少すると、重み係数は増加する。通常、両方の値の範囲は0から1の間である。
【0032】
図7は、卵を把持するロボットと野球ボールを把持するロボットの2つの画像の一例を示し第1の類似度アルゴリズム35によってプライベートデータセットDiと比較し、訓練データ距離21が、それぞれ、低い訓練データ距離と高い訓練データ距離を有することを示す。この違いは、プライベートデータセットDiのゴルフボールに対する卵の形状の違い、およびプライベートデータセットDiの画像の関心領域(ROI)におけるボールの形状のゴルフボールに対する類似度に起因し得る。したがって、類似度アルゴリズム35は、卵のある画像に対して低く、野球のある画像に対して高い、それぞれの重み係数114を計算する。多数の変形が可能であるため、これは単なる一例であることが理解されるであろう。
【0033】
図8は、適応共蒸留モデル60を構成するグラフィカルユーザインタフェースGUI116のプライベートモデルの表示画面(owner view)を示す。図示するように、GUI116は、ユーザがパブリックモデル、パブリックデータセット、第1のプライベートデータセット、および第1のプライベートデータモデルへのパスを指定する複数の入力フィールド118を含む。必要に応じて、所有者が所有する追加のプライベートデータセットおよびプライベートモデルを追加するために、アフォーダンス120が提供される。異なるプライベートデータセットの他の所有者は、GUI116の異なる表示画面(view)を使用して追加のプライベートモデルでパブリックモデルを訓練することを理解されたい。GUI116は、また、訓練アルゴリズム選択ツール122を含み、それは、図示されるように、訓練アルゴリズムとして勾配降下を伴うバックプロパゲーションを選択するように設定される。GUI116は、また、第1の訓練アルゴリズム100によって使用される1以上の重み係数114を指定するセレクタ124を含む。図示するように、重み係数セレクタ124は、複数の選択チェックボックスツールを含み、それによってユーザは訓練データの距離、モデル出力の信頼値、または、人が編集した信頼値、人が編集したデータ距離または人が作成したアルゴリズムなどの人が指定した係数の1以上の中から選択し得る。これらの人が指定した値を定義するリンク126、128、130が表示される。パラメータが入力されると、ユーザは、第1のプライベートデータモデル30によるパブリックデータセット(例えば、入力データセット50)の処理を開始する訓練モデルコマンドセレクタ132を選択し得、第1の結果データセット20を出力し適応共蒸留モデル60に入力され、その結果、適応共蒸留モデル60が訓練される。
【0034】
図9は、図9のリンク126の選択時に表示される、人が編集した信頼値ユーザインタフェース134を示す。図示されるように、人が編集した信頼値ユーザインタフェース134は、第1のプライベートモデル30への入力としての入力データセット50からの係数xnと、第1の結果データセット20の出力値(ボール把持の分類)および出力信頼値(0.88)とを含む。インタフェース134のヒューマンオペレータインタフェースの部分を介して、人のオペレータは、たとえば「はい」を選択してボールが適切に把握されていることを示すことによって、第1のプライベートモデル30の出力を変更するための入力を提供し得、人がこの分類が訓練のグラウンドトゥルースとして正しいと判断することで、分類信頼値として1.00を入力し得る。この値は、特定の値を入力することにより、さらに人が編集し得る。図示された一例では、プライベートモデルが、0.88の信頼値を持つ「ボール把持」の分類を計算し、これを、インタフェースを介して人が1.00の信頼値に編集した。
【0035】
図10は、人が編集した訓練データ距離値を提供する人が編集した訓練データ距離ユーザインタフェース136を示し、これは、図9のリンク128をトラバース(traversing)することによってアクセスし得る。図示するように、ユーザインタフェース134は、入力データセット50からの係数xnを表示し、また、第1のプライベートデータセット32(Di)からの係数を表示する。通常、インタフェース136は、xnをDiの各係数と比較する人が編集した入力を受け取るために、Diの各係数を巡回する。表示される画像の各ペアに応答して、画像が類似しているかまたは類似していないことを確認するため、人のオペレータは、「はい」または「いいえ」のセレクタを選択し得る。「はい」を選択するとデフォルトで訓練データ距離が0.01になり、「いいえ」を選択するとデフォルトで訓練データ距離が1.0になり、両方の値は、必要に応じてオペレータがさらに編集し得る。「送信」を選択すると、すべての画像ペアの訓練データの距離が人によって編集されるまで、次の画像ペアに巡回する。図示の例では、第1の類似度アルゴリズム35は、人が0.01に編集した画像対の間の0.14の訓練データ距離を計算した。
【0036】
図11Aは、パブリックモデルの訓練に使用される損失関数の出力を重み付けするために使用される、モデル入力、モデル出力、誤差、重み付けされていない損失、および重み付き損失の関係を示すアノテートされたグラフである。図の上部は、適応共蒸留モデル(パブリックモデル Mserver)および第1のプライベート人工知能モデル30(プライベートモデルMi)のモデル入力(パブリックデータセット50のx1からx5サンプル係数のそれぞれ)からモデル出力のグラフである。2つの出力の差は、誤差E = Mserver - Miである。誤差Eは、説明を簡単にするために1次元で示されるが、より一般的には、MserverやMiの出力のように多次元である。損失は通常、MserverとMiの出力値に基づく損失関数に従って計算される。平均二乗誤差など、誤差を二乗する損失関数を使用すると、損失に対する大きな誤差の影響が大きくなる。グラフにおいて、x1、x2、x4、およびx5は、第1の類似度アルゴリズム35によって、第1のプライベートデータセット32(Di)に類似している、すなわち、この第1のプライベートデータセット32(Di)に対して低いデータ距離を有する、と決定された係数であり、図6に示す方法を用いて、x3は、第1のプライベートデータセット32(Di)に対して高いデータ距離(すなわち、低い類似度)を有すると決定された。このため、破線の重み付けされていない損失(たとえば、MSE)ベクトルは、x3の実線の誤差ベクトルよりも大きく示され、一方、破線の重み付けされていない損失ベクトルは、x1、x2、x4、およびx5の実線の誤差ベクトルとほぼ同じ長さで示される。重み付けがなければ、適応共蒸留モデル60(すなわち、共有またはパブリックモデル)による学習に対するデータ係数x3の効果は、データ係数x1、x2、x4、およびx5のいずれか1つの効果よりも大きいであろう。また、x3からDiまでの訓練データの距離が大きいため、このより大きな学習効果はメリットが無く、適応共蒸留モデル69(すなわち、共有またはパブリックモデル)が誤った結果を生成する原因となる。この問題に対処するため、図6で説明したプロセスに従って、x1、x2、x4、およびx5よりも相対的に低いx3の重み係数が計算され、データ係数の重み付き損失の計算に使用される。重み係数wi,nは、図11Aのグラフの下に再現された式に入力され、式の第1の項は、重み係数の重み平均である。この重み平均は、損失関数の出力(前述の任意の適切な損失関数であり得る)で乗算され、その結果が重み付き損失である。図11Aの重み付き損失は、訓練データ距離によって重み付けされており、訓練データ重み付き損失とも呼ばれる。重み付き損失を示す破線ベクトルの相対的なサイズの違いで示されるように、Diまでのデータ距離が大きいデータ係数xiの重み付き損失は、グラフ内のDiまでのデータ距離が小さい他のデータ係数の重み付き損失よりも小さいことに留意されたい。重み付けされていない損失ベクトルと重み付き損失ベクトルの相対的なサイズは、例示を目的としており、損失と誤差は、例示のみを目的として同じ軸上に示されていることを理解されたい。
【0037】
上述の式に従って重み付き損失を計算する代わりに、代替の重み付けの式を使用して、プライベートデータセットとのデータ距離が大きいパブリックデータセット内のデータ係数の学習効果を最小限に抑えることができることを理解されたい。例えば、入力重み付き損失関数を使用し得る。図11Bは、入力重み付き損失関数の次の式が代わりに使用される場合の、図11Aと同様のアノテートされたグラフを示す。
【数3】
この式では、重み平均は、損失関数の出力ではなく、各モデル入力xiのプライベートモデル出力値Miに適用される。実際のMi値に加えて、図11Bは、損失関数の入力として使用される重み付きMi値をさらに示す。図11Aの一例のように、この例における損失関数は、平均二乗誤差または任意の他の適切な損失関数であり得る。プライベートモデル出力値Miを損失関数に出力する前に重み付けすることにより、プロセッサ12は、損失関数の計算値に伝播するプライベートモデル出力値Miのノイズの量を低減し得、これにより、プライベートデータセットからのデータ距離が小さいデータ係数から学習されるよりも、プライベートデータセットからのデータ距離が大きいパブリックデータのデータセットのデータ係数からの学習を減らすことができる。
【0038】
図12は、2次元損失関数曲面の一例を曲線として示す。より一般的には損失関数は多次元であるため、この2次元表現は説明を容易にするためのものである。損失は、図11Aと同様のデータ係数のx1からx5のそれぞれについてグラフ化されて示される。重み付けされていない損失面は、図11Aに示されるデータ係数の大きな重み付けされていない損失のために、x3にピークのある破線として示される。重み付き損失面は実線で示され、x3にピークはない。損失面を重み付けすることで、x3付近での重み付けされていない高い損失による不適切な学習効果を回避できる。このようにして、適応共蒸留モデルは、プライベートデータセットのデータとは異なる入力データセットのデータから学習しすぎることなく、入力データセット50のデータから学習できる。
【0039】
図13は、テンプレート機械学習モデル70が、サーバコンピューティングデバイス10のプロセッサ12で訓練されるときの、図1のコンピューティングシステム1を示す。図13の一例に示すように、プロセッサ12はさらに、第1のクライアントコンピューティングデバイス80および第2のクライアントコンピューティングデバイス90で、第1のプライベートデータセット32および第2のプライベートデータセット42を用いて第1のプライベート人工知能モデル30および第2のプライベート人工知能モデル40を訓練する前に、テンプレートデータセット72でテンプレート機械学習モデル70を訓練する。テンプレートデータセット72は、それぞれの複数のテンプレート出力エントリ78に関連付けられる、複数のテンプレート入力エントリ74を含み得る。テンプレート入力エントリ74のそれぞれは、入力データセット50に含まれる入力データエントリ52として、同じデータタイプを有し得る。加えて、テンプレート出力エントリ78はそれぞれ、適応共蒸留モデル60が生成するように後に訓練される適応共蒸留モデル出力68と同じデータタイプを有し得る。
【0040】
図14は、テンプレート機械学習モデル70が深層ニューラルネットワークである実施形態におけるテンプレート機械学習モデル70をさらに詳細に示している。図14の一例では、テンプレート機械学習モデルは、そのニューロン間の接続に関する複数のテンプレート重み71を有する。さらに、テンプレート機械学習モデル70は、ニューロンごとにそれぞれのテンプレートバイアス73を有する。テンプレート機械学習モデル70は、テンプレートコスト関数76を使用し得る確率的な勾配降下法を用いたバックプロパゲーションによって訓練し得る。テンプレートコスト関数76は、例えば、平均二乗誤差コスト関数であり得る。あるいは、上述のように、他の訓練方法および他のコスト関数を使用し得る。
【0041】
テンプレート機械学習モデル70が訓練された後、サーバコンピューティングデバイス10のプロセッサ12は、さらに、テンプレート機械学習モデル70のコピーを第1のクライアントコンピューティングデバイス80および第2のクライアントコンピューティングデバイス90に送信するように構成され得る。図14の一例では、テンプレート機械学習モデル70の第1のコピー75および第2のコピー77が、それぞれ第1のクライアントコンピューティングデバイス80および第2のクライアントコンピューティングデバイス90に送信される。図14の一例の第1のプライベート人工知能モデル30は、第1のプライベートデータセット32でさらに訓練された後のテンプレート機械学習モデル70の第1のコピー75である。同様に、第2のプライベート人工知能モデル40は、第2のプライベートデータセット42でさらに訓練された後のテンプレート機械学習モデル70の第2のコピー77である。したがって、テンプレート機械学習モデル70は、第1のクライアントコンピューティングデバイス80および第2のクライアントコンピューティングデバイス90で、最初にテンプレートデータセット72で訓練され、さらに第1のクライアントコンピューティングデバイス80で訓練される、第1のプライベート人工知能モデル30および第2のプライベート人工知能モデル40のテンプレートとして使用し得る。図13及び図14に示す実施形態に示されるように、テンプレート機械学習モデル70とプライベートデータセット32、42の両方に基づいて訓練された第1および第2のプライベート機械学習モデル30、40は、ラベル付けされていない、または部分的にラベル付けされた入力データセット50を供給された後、図1の実施形態において前述した同様の方法で、適応共蒸留モデル60の訓練に使用される、第1および第2の結果データセット20、24を生成することを理解されるであろう。
【0042】
図15Aは、コンピューティングシステムで使用し得る方法300の一例のフローチャートを示す。図15Aの方法300は、図1の一例のコンピューティングシステム、または他のコンピューティングシステムと共に使用し得る。ステップ302で、方法300は、第1のプライベートデータセットを使用して生成された第1のプライベート人工知能モデル、および第2のプライベートデータセットを使用して生成された第2のプライベート人工知能モデルに、入力データセットを入力することを含み得る。入力データセットは、複数の入力データエントリを含み得る。いくつかの実施形態では、第1のプライベート人工知能モデルおよび第2のプライベート人工知能モデルは、対応する第1のクライアントコンピューティングデバイスおよび第2のクライアントコンピューティングデバイスで実行され得る。そのような実施形態では、入力データセットは、サーバコンピューティングデバイスから、第1のクライアントコンピューティングデバイスおよび第2のクライアントコンピューティングデバイスに送信され得る。第1のプライベートデータセットは、第1のプライベート人工知能モデルが訓練される入力の一例および対応する出力の一例であり得る、複数の第1のプライベートエントリを含み得る。同様に、第2のプライベートデータセットは、第2のプライベート人工知能モデルが訓練される入力の一例および対応する出力の一例であり得る、複数の第2のプライベートエントリを含み得る。
【0043】
ステップ304において、方法300は、さらに、第1のプライベート人工知能モデルを入力データセットに適用した結果として、第1のプライベート人工知能モデルから第1の結果データセットを受信することを含み得る。第1の結果データセットは、複数の第1の結果エントリを含み得る。第1の結果データセットは、さらに、各第1の結果エントリに関連付けられた1以上の第1の信頼値を含み得る。さらに、ステップ306で、方法300は、さらに、第2のプライベート人工知能モデルを入力データセットに適用した結果として、第2のプライベート人工知能モデルから第2の結果データセットを受信することを含み得る。第2の結果データセットは、複数の第2の結果エントリを含みうる。いくつかの実施形態では、第2の結果データセットは、各第2の結果エントリに関連付けられた1以上の第2の信頼値を含み得る。
【0044】
いくつかの実施形態では、第1のプライベート人工知能モデルは第1のモデルアーキテクチャを有し得、第2のプライベート人工知能モデルは第1のモデルアーキテクチャとは異なる第2のモデルアーキテクチャを有し得る。例えば、第1のプライベート人工知能モデルおよび第2のプライベート人工知能モデルは、それぞれ、深層ニューラルネットワーク、カーネルマシン、またはランダムフォレストであり得る。第1のプライベート人工知能モデルに使用される機械学習アルゴリズムのタイプは、第2のプライベート人工知能モデルに使用される機械学習アルゴリズムのタイプとは異なり得る。あるいは、第1のプライベート人工知能モデルと第2のプライベート人工知能モデルの両方に同じタイプの機械学習モデルが使用される場合、ニューロンの数やレイヤの数などのパラメータが2つのモデル間で異なり得る。
【0045】
ステップ308において、方法300は、さらに、第1の訓練フェーズにおいて、入力データセットを入力として、第1の結果データセットを第1の目標出力として、適応共蒸留モデルを訓練することを含み得る。したがって、適応共蒸留モデルは、入力データセットが入力として与えられたときに、第1のプライベート人工知能モデルによって生成されたものと同じ結果データを生成するように訓練され得る。適応共蒸留モデルは、例えば、確率的な勾配降下によるバックプロパゲーションを使用して訓練し得る。バックプロパゲーションを使用して適応共蒸留モデルを訓練する場合、適応共蒸留モデルは適応共蒸留モデルのコスト関数を有し得る。
【0046】
ステップ310において、方法300は、さらに、第2の訓練フェーズにおいて、入力データセットを入力とし、第2の結果データセットを第2の目標出力として、適応共蒸留モデルをさらに訓練することを含み得る。第2の訓練フェーズは、第1の訓練フェーズに続いて実行され得る。第1の訓練フェーズにおける適応共蒸留モデルの訓練と同様に、第2のフェーズにおける適応共蒸留モデルの訓練は、バックプロパゲーションを介して実行され得る。適応共蒸留モデルが訓練される方法300のステップでは、適応共蒸留モデルは、第1のプライベートデータセットまたは第2のプライベートデータセットでは訓練されない。したがって、第1のプライベートデータセットおよび第2のプライベートデータセットは、サーバコンピューティングデバイスからプライベートに保つことができる。さらに、適応共蒸留モデルは、第1のプライベート人工知能モデルおよび第2のプライベート人工知能モデルのモデルアーキテクチャを明示的に参照することなく、第1のプライベート人工知能モデルおよび第1のプライベート人工知能モデルによって生成された結果データセットを使用して訓練し得るため、プライベート人工知能モデル、第1のプライベート人工知能モデルおよび第2のプライベート人工知能モデルの構造もプライベートに保ち得る。
【0047】
方法300では、少なくとも308の第1の訓練フェーズ、および、また一般的に310の第2の訓練フェーズにおいて、適応共蒸留モデルは、上述したように重み付き損失関数を利用する訓練アルゴリズムを使用して訓練されることを理解されたい。重み付き損失関数は、上述の図8に示したように、適応共蒸留モデルの予測出力と、第1の結果データセットおよび第2の結果データセットの目標データ出力との間の損失を、(a)第1(または第2)の類似度アルゴリズムによって決定される、第1(または第2)の入力データセットと第1(または第2)のプライベートデータセットの係数との間の距離、(b)第1または第2の人工知能モデルにより出力される第1の結果データセットの信頼値、および、人が指定した入力、のうちの1以上に基づく重み係数によって、重み付けする。
【0048】
図15Bは、図15Aの方法300を実行する場合に、いくつかの実施形態で実行され得る追加のステップを示す。ステップ312で、方法300は、さらに、テンプレートデータセットでテンプレート機械学習モデルを訓練することを含み得る。テンプレートデータセットは、複数のテンプレート入力エントリおよび複数のテンプレート出力エントリを含み得る。テンプレート機械学習モデルは、例えば、深層ニューラルネットワーク、カーネルマシン、またはランダムフォレストであり得る。いくつかの実施形態では、テンプレート機械学習モデルは、サーバコンピューティングデバイスで訓練され得る。ステップ314で、この方法は、さらに、テンプレート機械学習モデルの第1のコピーを第1のプライベートデータセットで訓練することを含み得る。同様に、ステップ316で、方法300は、さらに、テンプレート機械学習モデルの第2のコピーを第2のプライベートデータセットで訓練することを含み得る。ステップ314およびステップ316は、第1のクライアントコンピューティングデバイスおよび第2のクライアントコンピューティングデバイスで実行され得、サーバコンピューティングデバイスのプロセッサは、テンプレート機械学習モデルのコピーを送信するように構成され得る。したがって、第1のプライベートデータセットおよび第2のプライベートデータセットを使用して、クライアントコンピューティングデバイスでテンプレート機械学習モデルのコピーをさらに訓練し得る。
【0049】
ステップ318で、方法300は、さらに、第1の結果データセットまたは第2の結果データセットを準同型に暗号化することを含み得る。第1の結果データセットまたは第2の結果データセットを準同型に暗号化するために使用される暗号化アルゴリズムは、部分的準同型、やや準同型、ラベル付き完全準同型、または完全準同型の暗号化アルゴリズムであり得る。第1の結果データセットまたは第2の結果データセットは、第1の結果データセットまたは第2の結果データセットをサーバコンピューティングデバイスに送信する前に、それぞれ第1のクライアントコンピューティングデバイスまたは第2のクライアントコンピューティングデバイスで準同型に暗号化され得る。したがって、第1の結果エントリおよび第2の結果エントリの平文バージョンは、プライベートに管理し得る。
【0050】
上述のコンピューティングシステムおよび方法の一例は、第1のクライアントコンピューティングデバイス80および第2のクライアントコンピューティングデバイス90を参照して説明されるが、上述のシステムおよび方法は、3つ以上のクライアントコンピューティングデバイスで使用し得る。各クライアントコンピューティングデバイスは、プライベート人工知能モデルを訓練するために使用されるそれぞれのプライベートデータセットを有し得る。さらに、各クライアントコンピューティングデバイスは、それぞれの結果データセットをサーバコンピューティングデバイス10に送信し得る。サーバコンピューティングデバイス10のプロセッサ12は、複数のクライアントコンピューティングデバイスのそれぞれから受信したそれぞれの結果データセットについて、適応共蒸留モデル60を順次、訓練し得、訓練できる。いくつかの実施形態では、プロセッサ12は、適応共蒸留モデル60が同時に訓練される2以上の結果データセットを含む1以上のバッチを使用して、適応共蒸留モデル60を訓練し得る。
【0051】
ユースケースシナリオの一例では、第1のクライアントコンピューティングデバイスおよび第2のクライアントコンピューティングデバイスのユーザは、検査機などの電子デバイスを製造する産業メーカである。この一例では、回路コンポーネントをソートするときに、第1のクライアントコンピューティングデバイスは、サポートベクターマシンを実行し、画像内の抵抗とコンデンサを区別する。第2のクライアントコンピューティングデバイスは、畳み込みニューラルネットワークを実行し、無傷の電子コンポーネントと損傷した電子コンポーネントを区別する。適応共蒸留モデルは、サポートベクターマシンと畳み込みニューラルネットワークの両方の出力を使用して訓練される。実行時に、適応共蒸留モデルは、無傷の抵抗器、無傷のコンデンサ、損傷した抵抗器、および損傷したコンデンサの両方を区別する。この例のサポートベクターマシンも畳み込みニューラルネットワークも製造メーカ間で共有されておらず、それぞれの訓練に使用されるデータも製造メーカ毎にプライベートが保たれる。
【0052】
この例では、畳み込みニューラルネットワークの代わりに、ヒューリスティックモデルを使用して無傷の電子部品と損傷した電子部品を区別し得る。例えば、ヒューリスティックモデルは、電子部品(抵抗またはコンデンサ)の外面にひびが入っているか否か判断するように構成されたエッジ検出器であってもよい。この例では、第2のプライベートデータセットは、訓練データセットではなく、テストデータセットとして使用し得る。ヒューリスティックエッジ検出器は機械学習モデルではないが、ヒューリスティックエッジ検出器の出力をサポートベクターマシンの出力と共に使用して、適応共蒸留モデルを訓練し得る。
【0053】
別のユースケースシナリオの一例では、第1のプライベート人工知能モデルは、音声のテキストトランスクリプションを生成するように構成された回帰型ニューラルネットワークである。第2のプライベート人工知能モデルは、音声入力に音声が含まれている複数の人の音声を区別するように構成された他の回帰型ニューラルネットワークである。オーディオ入力の共有セットが与えられたときに、2つの回帰型ニューラルネットワークによって生成された出力を使用して、適応共蒸留モデルを訓練して、音声入力に含まれる音声のテキストトランスクリプションを生成し、トランスクリプション内の各発話に、誰が話したかの表示をタグ付けし得る。これは、個々の回帰型ニューラルネットワーク自体や、各回帰型ニューラルネットワークの訓練に使用されるデータを共有することなく実現される。
【0054】
他のユースケースシナリオの一例では、第1のプライベート人工知能モデルは、ロボットアームの動きを制御して工場内のあるエリアから別のエリアに製造品目を渡すように構成された回帰型ニューラルネットワークである。第2のプライベート人工知能モデルは、ロボットが物理環境をナビゲートするときに、自律型ロボットが動くように構成された他の回帰型ニューラルネットワークである。第1のプライベート人工知能モデルと第2のプライベート人工知能モデルに与えられる共有入力データセットは、工場環境におけるオブジェクトのサイズ、形状、および位置を示すレイアウトデータを含む。第1のプライベート人工知能モデルと第2のプライベート人工知能モデルのそれぞれの出力を使用して、適応共蒸留モデルは、製造されたアイテムが工場環境の一の領域から工場環境の他の領域に移動する結合された移動経路を出力するように訓練される。結合された各移動経路では、製造された品目がロボットアームによって最初の場所から自律型ロボットに移動され、その後、自律型ロボットによって最終的な場所に移動される。適応共蒸留モデルは、ロボットアームのメーカと自律型ロボットのメーカが、適応共蒸留モデルを訓練するユーザにプライベート機械学習モデルへのアクセスを許可することなく、結合された移動経路を生成するように訓練される。
【0055】
別のユースケースシナリオの一例では、医療環境で使用するために適応共蒸留モデルを訓練する。この一例では、第1のプライベート人工知能モデルは、X線画像に存在する骨を識別するように構成されたサポートベクターマシンである。第2のプライベート人工知能モデルは、X線画像の骨が骨折しているか否か判断するように構成された畳み込みニューラルネットワークである。複数のX線画像を含む入力データセットは、第1のプライベート人工知能モデルと第2のプライベート人工知能モデルの両方に入力され、プライベートモデルの出力は、適応共蒸留モデルの訓練に使用される。訓練された適応共蒸留モデルは、X線画像を受信し、X線画像に表示される骨折がある場合は、どの骨が骨折しているかを示すそれぞれのラベルを出力するように構成される。
【0056】
別のユースケースシナリオの例では、トラフィックフロー分析を実行するように適応共蒸留モデルを訓練する。この一例では、第1のプライベート人工知能モデルは、ライブカメラによって供給されまたは保存されたビデオに描画された空間(駅など)を移動する人々のグループの流量を推定するように構成された回帰型ニューラルネットワークである。第1のプライベート人工知能モデルは、数値を出力するように構成された回帰モデルである。第2のプライベート人工知能モデルは、ビデオに示されている空間内の人々の密度を推定するように構成された別の回帰モデルである。第1のプライベート人工知能モデルおよび第2のプライベート人工知能モデルは両方とも、それぞれの複数の物理的環境を通って移動する人々の群衆の複数のビデオを含む入力データセットを受信する。第1のプライベート人工知能モデルおよび第2のプライベート人工知能モデルの出力に基づいて、適応共蒸留モデルは、物理的な領域を移動する複数の人々の交通渋滞のレベル(流量および密度の関数として定義される)を推定するように訓練される。適応共蒸留モデルは、ビデオ映像を入力として受け取り、交通渋滞レベルの数値推定を出力するように構成された回帰モデルである。
【0057】
いくつかの実施形態では、本明細書に記載の方法およびプロセスは、1以上のコンピューティングデバイスのコンピューティングシステムに関連付け得る。特に、そのような方法およびプロセスは、コンピュータアプリケーションプログラムまたはサービス、アプリケーションプログラミングインターフェース(API)、ライブラリ、および/または他のコンピュータプログラムプロダクトとして実装され得る。
【0058】
図16は、上述の方法およびプロセスのうちの1以上を実施できるコンピューティングシステム400の非限定的な実施形態を概略的に示す。コンピューティングシステム400は、簡略化された形で示される。コンピューティングシステム400は、上述し、図1に示したコンピューティングシステム1を具現化し得る。コンピューティングシステム400は、1以上のパーソナルコンピュータ、サーバコンピュータ、タブレットコンピュータ、ホームエンターテイメントコンピュータ、ネットワークコンピューティングデバイス、ゲームデバイス、モバイルコンピューティングデバイス、モバイル通信デバイス(例えば、スマートフォン)、および/または、コンピューティングデバイス、また、スマートウォッチおよびヘッドマウント拡張現実デバイスなどのウェアラブルデバイスを採用し得る。
【0059】
コンピューティングシステム400は、論理プロセッサ402、揮発性メモリ404、および不揮発性記憶デバイス406を含む。コンピューティングシステム400は、オプションで、表示サブシステム408、入力サブシステム410、通信サブシステム412、および/または、図16で図示を省略する他のコンポーネントを含み得る。
【0060】
論理プロセッサ402は、命令を実行するように構成された1以上の物理デバイスを含む。例えば、論理プロセッサは、1以上のアプリケーション、プログラム、ルーチン、ライブラリ、オブジェクト、コンポーネント、データ構造、または他の論理構造の一部である命令を実行するように構成され得る。このような命令は、タスクの実行、データ型の実装、1以上のコンポーネントの状態の変換、技術的な効果の達成、またはその他の方法で目的の結果への到達、のために実装され得る。
【0061】
論理プロセッサは、ソフトウェア命令を実行するように構成された1以上の物理プロセッサ(ハードウェア)を含み得る。追加的または代替的に、論理プロセッサは、ハードウェア実装論理またはファームウェア命令を実行するように構成された1以上のハードウェア論理回路またはファームウェアデバイスを含み得る。論理プロセッサ402のプロセッサは、シングルコアまたはマルチコアであり得、そこで実行される命令は、順次、並列、および/または、分散処理のために構成され得る。論理プロセッサの個々の構成要素は、任意で、連携処理のために、遠隔に配置および/または構成され得る2つ以上の別個のデバイス間に分散され得る。論理プロセッサの側面は、クラウドコンピューティング構成で構成された、リモートでアクセス可能なネットワーク化されたコンピューティングデバイスによって仮想化および実行し得る。そのような場合、これらの仮想化された側面は、さまざまな異なるマシンの異なる物理論理プロセッサで実行されることが理解される。
【0062】
不揮発性記憶デバイス406は、論理プロセッサによって実行可能な命令を保持して、本明細書に記載の方法およびプロセスを実装するように構成された1以上の物理デバイスを含む。そのような方法およびプロセスが実施される場合、不揮発性記憶デバイス406の状態は、例えば、異なるデータを保持するために変換され得る。
【0063】
不揮発性記憶デバイス406は、取り外し可能および/または内蔵の物理デバイスを含み得る。不揮発性記憶デバイス406は、光メモリ(例えば、CD、DVD、HD-DVD、Blu-Rayディスクなど)、半導体メモリ(例えば、ROM、EPROM、EEPROM、フラッシュメモリなど)、および/または磁気メモリ(例えば、ハードディスクドライブ、フロッピーディスクドライブ、テープドライブ、MRAMなど)、または他の大容量記憶デバイス技術を含み得る。不揮発性記憶デバイス406は、不揮発性、動的、静的、読み取り/書き込み、読み取り専用、シーケンシャルアクセス、番地指定(location-addressable)、ファイル指定(file-addressable)および/またはコンテンツ指定(content-addressable)デバイスを含み得る。不揮発性記憶デバイス406は、不揮発性記憶デバイス406への電力が遮断された場合でも命令を保持するように構成されていることを理解されたい。
【0064】
揮発性メモリ404は、ランダムアクセスメモリを含む物理デバイスを含み得る。揮発性メモリ404は、通常、ソフトウェア命令の処理中に情報を一時的に記憶するために論理プロセッサ402によって利用される。揮発性メモリ404は、通常、揮発性メモリ404への電力が遮断された場合、命令を格納し続けないことを理解されたい。
【0065】
論理プロセッサ402、揮発性メモリ404、および不揮発性記憶デバイス406の態様は、1以上のハードウェア論理構成要素に共に統合され得る。このようなハードウェア論理構成要素は、フィールドプログラマブルゲートアレイ(FPGA)、プログラムおよびアプリケーション固有の集積回路(PASIC/ASIC)、プログラムおよびアプリケーション固有の標準製品(PSSP/ASSP)、システムオンアチップ(SOC)、複雑なプログラマブル論理デバイス(CPLD)などを含み得る。
【0066】
「モジュール」、「プログラム」、および「エンジン」の用語は、揮発性メモリの一部を使用して特定の機能を実行するためにプロセッサによってソフトウェアで一般的に実装されるコンピューティングシステム400の態様の説明に使用され得、その機能は、機能を実行するようにプロセッサを特別に構成する変換処理を必要とする。したがって、モジュール、プログラム、またはエンジンは、揮発性メモリ404の一部を使用して、不揮発性記憶デバイス406によって保持される命令を実行する論理プロセッサ402を介してインスタンスを生成し得る。同じアプリケーション、サービス、コードブロック、オブジェクト、ライブラリ、ルーチン、API、関数などから、異なるモジュール、プログラムおよび/またはエンジンが、インスタンスが生成され得ることが理解されるであろう。同様に、同じモジュール、プログラム、および/またはエンジンが、異なるアプリケーション、サービス、コードブロック、オブジェクト、ルーチン、API、関数などによってインスタンスが生成され得る。「モジュール」、「プログラム」、および「エンジン」の用語は、実行ファイル、データファイル、ライブラリ、ドライバ、スクリプト、データベースレコードなどの個々またはグループを包含し得る。
【0067】
含まれる場合、表示サブシステム408は、不揮発性記憶デバイス406によって保持されるデータの視覚的表現を提示するために使用され得る。視覚的表現は、グラフィカルユーザインタフェース(GUI)の形態をとり得る。本明細書で説明する方法およびプロセスが、不揮発性記憶デバイスによって保持されるデータを変更し、したがって不揮発性記憶デバイスの状態を変換すると、同様に、表示サブシステム408の状態を変換し、基礎となるデータの変化を視覚的に表し得る。表示サブシステム408は、事実上あらゆるタイプの技術を利用する1以上の表示装置を含み得る。そのような表示装置は、共有筐体内の論理プロセッサ402、揮発性メモリ404、および/または不揮発性記憶デバイス406と組み合わせ得、またはそのような表示装置は周辺機器の表示装置とし得る。
【0068】
含まれる場合、入力サブシステム410は、キーボード、マウス、タッチスクリーン、またはゲームコントローラなどの1以上のユーザ入力デバイスを含み得、または、それらとインタフェースで連結し得る。いくつかの実施形態では、入力サブシステムは、選択された自然ユーザ入力(NUI)コンポーネントを含み得、または、それとインタフェースで連結し得る。このようなコンポーネントは、統合または周辺機器であり得、入力動作の変換および/または処理は、オンボードまたはオフボードで処理し得る。NUI構成部分の一例は、スピーチおよび/または音声認識のためのマイクロフォン;マシンビジョンおよび/またはジェスチャ認識のための赤外線、カラー、立体、および/または深度のカメラ;動き検出および/または意図認識のための、ヘッドトラッカ、アイトラッカ、加速度計および/またはジャイロスコープ;同様に、脳活動を評価するための電場センシングコンポーネント;および/またはその他の適切なセンサを含み得る。
【0069】
含まれる場合、通信サブシステム412は、本明細書で説明される様々なコンピューティングデバイスを互いに、および他のデバイスと通信可能に接続するように構成され得る。通信サブシステム412は、1以上の異なる通信プロトコルと互換性のある有線および/または無線の通信デバイスを含み得る。非限定的な例として、通信サブシステムは、無線電話ネットワーク、またはHDMIからWi-Fi接続までなどの有線または無線のローカルまたは広域ネットワークを介した通信のために構成され得る。いくつかの実施形態では、通信サブシステムは、コンピューティングシステム400が、インターネットなどのネットワークを介して他のデバイスとの間でメッセージを送信および/または受信を可能とし得る。
【0070】
本開示の一態様によれば、コンピューティングデバイスと共に使用する方法が開示される。方法は、入力データセットを、第1のプライベートデータセットを使用して生成された第1のプライベート人工知能モデルおよび第2のプライベートデータセットを使用して生成された第2のプライベート人工知能モデルに入力することを含み得る。方法は、第1のプライベート人工知能モデルを入力データセットに適用した結果として、第1のプライベート人工知能モデルから第1の結果データセットを受信することをさらに含み得る。方法は、第2のプライベート人工知能モデルを入力データセットに適用した結果として、第2のプライベート人工知能モデルから第2の結果データセットを受信することをさらに含み得る。第1の訓練フェーズにおいて、方法は、さらに、入力データセットを入力とし、第1の結果データセットを第1の目標出力として適応共蒸留モデルを訓練することを含み得る。第2の訓練フェーズにおいて、方法は、さらに、入力データセットを入力とし、第2の結果データセットを第2の目標出力として、適応共蒸留モデルをさらに訓練することを含み得る。適応共蒸留モデルは、第1のプライベートデータセットまたは第2のプライベートデータセットで訓練されない場合がある。
【0071】
この態様によれば、第1のプライベート人工知能モデルは第1のモデルアーキテクチャを有し、第2のプライベート人工知能モデルは第1のモデルアーキテクチャとは異なる第2のモデルアーキテクチャを有し得る。
【0072】
この態様によれば、第1のプライベート人工知能モデルおよび第2のプライベート人工知能モデルのそれぞれは、深層ニューラルネットワーク、カーネルマシン、またはランダムフォレストである。
【0073】
この態様によれば、適応共蒸留モデルは分類モデルであってもよい。第1の結果データセットおよび第2結果データセットはそれぞれ、それぞれの複数の分類ラベルを含み得る。
【0074】
この態様によれば、入力データセットは、それぞれの入力分類ラベルを有する入力データエントリの第1のサブセットと、それぞれの入力分類ラベルを持たない入力データエントリの第2のサブセットとを含む部分的にラベル付けされたデータセットであり得る。
【0075】
この態様によれば、適応共蒸留モデルは回帰モデルである。第1の結果データセットおよび第2の結果データセットはそれぞれ、それぞれ複数の数値を含み得る。
【0076】
この態様によれば、適応共蒸留モデルは、回帰型ニューラルネットワークであり得る。入力データセットは、それぞれが複数の順序付けられた入力値を含む複数の入力系列を含み得る。
【0077】
この態様によれば、少なくとも第1の訓練フェーズおいて、適応共蒸留モデルは、重み付き損失関数を利用する訓練アルゴリズムを使用して訓練され得る。
【0078】
この態様によれば、重み付き損失関数は、適応共蒸留モデルの予測出力と、第1の結果データセットの目標データ出力との間の損失を、第1の類似度アルゴリズムによって決定される入力データセット内の係数と第1のプライベートセットとの間のデータ距離、第1の結果データセットにおける信頼値、および、人が指定した入力のうちの1以上のデータ距離に基づく重み係数によって重み付けし得る。
【0079】
この態様によれば、第1の結果データセットまたは第2の結果データセットは、準同型に暗号化され得る。
【0080】
この態様によれば、適応共蒸留モデルは、教師あり学習を介して少なくとも部分的に訓練され得る。
【0081】
本開示の別の態様によれば、プロセッサを有するサーバコンピューティングデバイスを含むコンピューティングシステムが開示される。プロセッサは、第1のプライベートデータセットを使用して生成された第1のプライベート人工知能モデルを実行する第1のクライアントコンピューティングデバイスに入力データセットを送信するように構成され得る。プロセッサは、さらに、第2のプライベートデータセットを使用して生成された第2のプライベート人工知能モデルを実行する第2のクライアントコンピューティングデバイスに入力データセットを送信するように構成され得る。プロセッサは、さらに、第1のプライベート人工知能モデルを入力データセットに適用した結果として、第1のクライアントコンピューティングデバイスで実行された第1のプライベート人工知能モデルから、第1の結果データセットを受信するように構成され得る。プロセッサは、さらに、第2のプライベート人工知能モデルを入力データセットに適用した結果として、第2のクライアントコンピューティングデバイスで実行された第2のプライベート人工知能モデルから、第2の結果データセットを受信するように構成され得る。第1の訓練フェーズでは、プロセッサは、さらに、入力データセットを入力とし、第1の結果データセットを第1の目標出力として、適応共蒸留モデルを訓練するように構成され得る。第2の訓練フェーズでは、プロセッサは、さらに、入力データセットを入力として、第2の結果データセットを第2の目標出力として、適応共蒸留モデルを訓練するように構成され得る。適応共蒸留モデルは、第1のプライベートデータセットまたは第2のプライベートデータセットで訓練されない場合があり得る。
【0082】
この態様によれば、第1のプライベート人工知能モデルは第1のモデルアーキテクチャを有し得、第2のプライベート人工知能モデルは第1のモデルアーキテクチャとは異なる第2のモデルアーキテクチャを有し得る。
【0083】
この態様によれば、第1のプライベート人工知能モデルおよび第2のプライベート人工知能モデルのそれぞれは、深層ニューラルネットワーク、カーネルマシン、またはランダムフォレストであり得る。
【0084】
この態様によれば、適応共蒸留モデルは分類モデルであり得る。第1の結果データセットおよび第2の結果データセットはそれぞれ、それぞれの複数の分類ラベルを含み得る。
【0085】
この態様によれば、適応共蒸留モデルは回帰モデルであり得る。第1の結果データセットおよび第2の結果データセットはそれぞれ、それぞれ複数の数値を含み得る。
【0086】
この態様によれば、適応共蒸留モデルは、回帰型ニューラルネットワークであり得る。入力データセットは、それぞれが複数の順序付けられた入力値を含む複数の入力系列を含み得る。
【0087】
この態様によれば、プロセッサは、さらに、テンプレートデータセットでテンプレート機械学習モデルを訓練するように構成され得る。プロセッサは、さらに、テンプレート機械学習モデルを第1のクライアントコンピューティングデバイスおよび第2のクライアントコンピューティングデバイスに送信するように構成され得る。第1のプライベート人工知能モデルは、第1のプライベートデータセットでさらに訓練されたテンプレート機械学習モデルの第1のコピーであり得る。第2のプライベート人工知能モデルは、第2のプライベートデータセットでさらに訓練されたテンプレート機械学習モデルの第2のコピーであり得る。
【0088】
この態様によれば、適応共蒸留モデルは、教師あり学習を介して少なくとも部分的に訓練され得る。
【0089】
本開示の別の態様によれば、コンピューティングデバイスを用いて使用する方法が開示される。方法は、入力データセットを、第1のプライベートデータセットを使用して生成された第1のプライベート人工知能モデルおよび第2のプライベートデータセットを使用して生成された第2のプライベート人工知能モデルに入力することを含み得る。方法は、さらに、第1のプライベート人工知能モデルを入力データセットに適用した結果として、第1のプライベート人工知能モデルから第1の結果データセットを受信することを含み得る。第1の結果データセットは、複数の第1の分類ラベルを含み得る。方法は、さらに、入力データセットに第2のプライベート人工知能モデルを適用した結果として、第2のプライベート人工知能モデルから第2の結果データセットを受信することを含み得る。第2の結果データセットは、複数の第2の分類ラベルを含み得る。第1の訓練フェーズにおいて、方法は、さらに、入力データセットを入力とし、第1の結果データセットを第1の目標出力として、適応共蒸留モデルを訓練することを含み得る。第2の訓練フェーズにおいて、方法は、さらに、入力データセットを入力とし、第2の結果データセットを第2の目標出力として、適応共蒸留モデルをさらに訓練することを含み得る。適応共蒸留モデルは、第1のプライベートデータセットまたは第2のプライベートデータセットで訓練されない場合があり得る。方法は、さらに、複数の実行時入力データエントリを含む実行時データセットを受信することを含み得る。複数の実行時入力データエントリのそれぞれについて、方法は、さらに、複数の第1の分類ラベルおよび複数の第2の分類ラベルを含む組み合せた分類ラベルセットから選択された実行時分類ラベルを出力することを含み得る。
【0090】
ここで開示された構成および/またはアプローチは本質的に例示的であり、多数のバリエーションが可能であり、これらの特定の実施形態または例は、限定的な意味で考慮されるべきではないことが理解されるであろう。ここで開示される特定のルーチンまたは方法は、任意の数の処理方法のうちの1以上を表し得る。したがって、図示および/または説明される様々な動作は、図示および/または説明される順序で、他の順序で、並行して、または省略されて実行され得る。同様に、上記の処理の順序は変更され得る。
【0091】
本開示の主題は、ここで開示される様々なプロセス、システムおよび構成、および他の特徴、機能、動作、および/または特性のすべての新規かつ非自明な組み合わせおよびサブコンビネーション、同様にあらゆる全ての等価物を含む。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11A
図11B
図12
図13
図14
図15A
図15B
図16