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

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

▶ グーグル インコーポレイテッドの特許一覧

特表2024-538691プライベート鏡像降下法を用いたニューラルネットワークの訓練におけるパブリックデータの活用
<>
  • 特表-プライベート鏡像降下法を用いたニューラルネットワークの訓練におけるパブリックデータの活用 図1
  • 特表-プライベート鏡像降下法を用いたニューラルネットワークの訓練におけるパブリックデータの活用 図2
  • 特表-プライベート鏡像降下法を用いたニューラルネットワークの訓練におけるパブリックデータの活用 図3
  • 特表-プライベート鏡像降下法を用いたニューラルネットワークの訓練におけるパブリックデータの活用 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-23
(54)【発明の名称】プライベート鏡像降下法を用いたニューラルネットワークの訓練におけるパブリックデータの活用
(51)【国際特許分類】
   G06N 3/084 20230101AFI20241016BHJP
   G06N 3/098 20230101ALI20241016BHJP
【FI】
G06N3/084
G06N3/098
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024520750
(86)(22)【出願日】2022-10-04
(85)【翻訳文提出日】2024-05-22
(86)【国際出願番号】 US2022077497
(87)【国際公開番号】W WO2023060055
(87)【国際公開日】2023-04-13
(31)【優先権主張番号】63/262,129
(32)【優先日】2021-10-05
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】オム・ディパクバイ・タッカー
(72)【発明者】
【氏名】エーサン・アミド
(72)【発明者】
【氏名】アルン・ガネシュ
(72)【発明者】
【氏名】ラジヴ・マシューズ
(72)【発明者】
【氏名】スワループ・ラマスワミー
(72)【発明者】
【氏名】シュアン・ソン
(72)【発明者】
【氏名】トーマス・ステインケ
(72)【発明者】
【氏名】ヴィニト・スリヤクマール
(72)【発明者】
【氏名】アブラディープ・グハ・タクルタ
(57)【要約】
方法(300)は、対応するプライベートデータ(139)を処理することに基づいて各々生成された差分プライベート(DP)勾配のセット(143)を取得するステップと、対応するパブリックデータ(160)を処理することに基づいて各々生成されたパブリック勾配のセット(117)を取得するステップとを含む。この方法はまた、DP勾配のセットについてのジオメトリ(215)を学習するためにパブリック勾配のセットに鏡像降下法を適用するステップと、学習したジオメトリに基づいてDP勾配のセットを再整形するステップとを含む。この方法はさらに、再整形したDP勾配のセット(225)に基づいて機械学習モデル(150)を訓練するステップを含む。
【特許請求の範囲】
【請求項1】
データ処理ハードウェア(410)上で実行されると、前記データ処理ハードウェア(410)に動作を実施させる、コンピュータにより実施される方法(300)であって、前記動作が、
対応するプライベートデータ(139)を処理することに基づいて各々生成された差分プライベート(DP)勾配のセット(143)を取得するステップと、
対応するパブリックデータ(160)を処理することに基づいて各々生成されたパブリック勾配のセット(117)を取得するステップと、
前記DP勾配のセット(143)についてのジオメトリ(215)を学習するために、前記パブリック勾配のセット(117)に鏡像降下法を適用するステップと、
前記学習したジオメトリ(215)に基づいて前記DP勾配のセット(143)を再整形するステップと、
前記再整形したDP勾配のセット(225)に基づいて機械学習モデル(150)を訓練するステップと
を含む、方法(300)。
【請求項2】
前記DP勾配のセット(143)中の各DP勾配(143)が、
対応する予測プライベート出力(141)を生成するために、機械学習モデル(135)を使用して、対応するプライベートデータ(139)を処理することと、
前記対応する予測プライベート出力(141)および対応するプライベートグランドトゥルース(144)に基づいてプライベート損失関数を決定することと、
前記DP勾配(143)を生成するために、前記プライベート損失関数から導出されたプライベート勾配にノイズを加えることと
によって生成される、請求項1に記載の方法(300)。
【請求項3】
前記プライベート損失関数が凸であり、L-リプシッツである、請求項2に記載の方法(300)。
【請求項4】
前記プライベートデータ(139)および前記パブリックデータ(160)が、同じソース分布から導出される、請求項1から3のいずれか一項に記載の方法(300)。
【請求項5】
前記パブリック勾配のセット(117)中の各パブリック勾配(117)が、
対応する予測パブリック出力(115)を生成するために、機械学習モデル(150)を使用して、対応するパブリックデータ(160)を処理することと、
前記対応する予測パブリック出力(115)および対応するパブリックグランドトゥルース(118)に基づいてパブリック損失関数を決定することと、
前記パブリック損失関数から前記パブリック勾配(117)を導出することと
によって生成される、請求項1から4のいずれか一項に記載の方法(300)。
【請求項6】
前記DP勾配のセット(143)についての前記ジオメトリ(215)を学習するために前記パブリック勾配のセット(117)に鏡像降下法を適用するステップが、前記DP勾配のセット(143)についての前記ジオメトリ(215)を学習するために、前記パブリック損失関数から導出された前記パブリック勾配(117)をミラー写像として使用することによって鏡像降下法を適用するステップを含む、請求項5に記載の方法(300)。
【請求項7】
前記パブリック損失関数が強凸である、請求項5または6に記載の方法(300)。
【請求項8】
前記データ処理ハードウェア(410)が中央サーバにあり、
前記DP勾配のセット(143)および前記パブリック勾配のセット(117)が、前記中央サーバにある中央リポジトリ(119)に記憶されている、請求項1から7のいずれか一項に記載の方法(300)。
【請求項9】
前記データ処理ハードウェア(410)がリモートシステムにあり、
前記DP勾配のセット(143)を取得する前記ステップが、前記対応するプライベートデータ(139)のいずれも受信することなく、連合学習によって1つまたは複数のクライアントデバイス(130)から前記DP勾配のセット(143)を受信するステップを含み、
前記DP勾配のセット(143)中の各DP勾配(143)が、前記1つまたは複数のクライアントデバイス(130)のそれぞれのクライアントデバイスにおいてローカルに生成される、請求項1から7のいずれか一項に記載の方法(300)。
【請求項10】
前記機械学習モデル(150)が、画像分類モデルを含む、請求項1から9のいずれか一項に記載の方法(300)。
【請求項11】
前記機械学習モデル(150)が言語モデルを含む、請求項1から9のいずれか一項に記載の方法(300)。
【請求項12】
前記機械学習モデル(150)が、音声認識モデルを含む、請求項1から9のいずれか一項に記載の方法(300)。
【請求項13】
データ処理ハードウェア(410)と、
前記データ処理ハードウェア(410)と通信しているメモリハードウェア(420)と
を備え、前記メモリハードウェア(420)が、前記データ処理ハードウェア(410)上で実行されると前記データ処理ハードウェア(410)に動作を実行させる命令を記憶し、前記動作が、
対応するプライベートデータ(139)を処理することに基づいて各々生成された差分プライベート(DP)勾配のセット(143)を取得することと、
対応するパブリックデータ(160)を処理することに基づいて各々生成されたパブリック勾配のセット(117)を取得することと、
前記DP勾配のセット(143)についてのジオメトリ(215)を学習するために、前記パブリック勾配のセット(117)に鏡像降下法を適用することと、
前記学習したジオメトリ(215)に基づいて前記DP勾配のセット(143)を再整形することと、
前記再整形したDP勾配のセット(225)に基づいて機械学習モデル(150)を訓練することと
を含む、システム。
【請求項14】
前記DP勾配のセット(143)中の各DP勾配(143)が、
対応する予測プライベート出力(141)を生成するために、機械学習モデル(135)を使用して、対応するプライベートデータ(139)を処理することと、
前記対応する予測プライベート出力(141)および対応するプライベートグランドトゥルース(144)に基づいてプライベート損失関数を決定することと、
前記DP勾配(143)を生成するために、前記プライベート損失関数から導出されたプライベート勾配にノイズを加えることと
によって生成される、請求項13に記載のシステム。
【請求項15】
前記プライベート損失関数が凸であり、L-リプシッツである、請求項14に記載のシステム。
【請求項16】
前記プライベートデータ(139)および前記パブリックデータ(160)が、同じソース分布から導出される、請求項13から15のいずれか一項に記載のシステム。
【請求項17】
前記パブリック勾配のセット(117)中の各パブリック勾配(117)が、
対応する予測パブリック出力(115)を生成するために、機械学習モデル(150)を使用して、対応するパブリックデータ(160)を処理することと、
前記対応する予測パブリック出力(115)および対応するパブリックグランドトゥルース(118)に基づいてパブリック損失関数を決定することと、
前記パブリック損失関数から前記パブリック勾配(117)を導出することと
によって生成される、請求項13から16のいずれか一項に記載のシステム。
【請求項18】
前記DP勾配のセット(143)についての前記ジオメトリ(215)を学習するために前記パブリック勾配のセット(117)に鏡像降下法を適用することが、前記DP勾配のセット(143)についての前記ジオメトリ(215)を学習するために、前記パブリック損失関数から導出された前記パブリック勾配(117)をミラー写像として使用することによって鏡像降下法を適用することを含む、請求項17に記載のシステム。
【請求項19】
前記パブリック損失関数が強凸である、請求項17または18に記載のシステム。
【請求項20】
前記データ処理ハードウェア(410)が中央サーバにあり、
前記DP勾配のセット(143)および前記パブリック勾配のセット(117)が、前記中央サーバにある中央リポジトリ(119)に記憶されている、請求項13から19のいずれか一項に記載のシステム。
【請求項21】
前記データ処理ハードウェア(410)がリモートシステムにあり、
前記DP勾配のセット(143)を取得することが、前記対応するプライベートデータ(139)のいずれも受信することなく、連合学習によって1つまたは複数のクライアントデバイス(130)から前記DP勾配のセット(143)を受信することを含み、
前記DP勾配のセット(143)中の各DP勾配(143)が、前記1つまたは複数のクライアントデバイス(130)のそれぞれのクライアントデバイスにおいてローカルに生成される、請求項13から19のいずれか一項に記載のシステム。
【請求項22】
前記機械学習モデル(150)が、画像分類モデルを含む、請求項13から21のいずれか一項に記載のシステム。
【請求項23】
前記機械学習モデル(150)が言語モデルを含む、請求項13から21のいずれか一項に記載のシステム。
【請求項24】
前記機械学習モデル(150)が、音声認識モデルを含む、請求項13から21のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プライベート鏡像降下法を用いたニューラルネットワークの訓練においてパブリックデータを活用することに関する。
【背景技術】
【0002】
差分プライベート(DP)訓練は一般に、機密情報がプライベートデータから漏れることがないようにプライベートデータ上でプライベートモデルを訓練するために使用される。差分プライベート確率的勾配降下法(DP-SGD)が、差分プライバシーを使用してプライベートモデルを訓練するための事実上の標準アルゴリズムになっている。
【発明の概要】
【課題を解決するための手段】
【0003】
本開示の一態様は、対応するプライベートデータを処理することに基づいて各々生成された差分プライベート(DP)勾配のセットを取得するステップと、対応するパブリックデータを処理することに基づいて各々生成されたパブリック勾配のセットを取得するステップとを含む方法を提供する。この方法はまた、DP勾配のセットについてのジオメトリを学習するためにパブリック勾配のセットに鏡像降下法を適用するステップと、学習したジオメトリに基づいてDP勾配のセットを再整形するステップとを含む。この方法はさらに、再整形したDP勾配のセットに基づいて機械学習モデルを訓練するステップを含む。
【0004】
本開示の実装形態は、以下の任意選択の特徴のうちの1つまたは複数を含み得る。いくつかの例では、プライベートデータおよびパブリックデータは、同じソース分布から導出される。いくつかの実装形態では、DP勾配のセット中の各DP勾配は、対応する予測プライベート出力を生成するために、機械学習モデルを使用して対応するプライベートデータを処理することと、対応する予測プライベート出力および対応するプライベートグランドトゥルースに基づいてプライベート損失関数を決定することと、DP勾配を生成するために、プライベート損失関数から導出されたプライベート勾配にノイズを追加することとによって生成される。いくつかの例では、プライベート損失関数は凸であり、L-リプシッツ(L-Lipschitz)である。
【0005】
いくつかの実装形態では、パブリック勾配のセット中の各パブリック勾配は、対応する予測パブリック出力を生成するために、機械学習モデルを使用して対応するパブリックデータを処理することと、対応する予測パブリック出力および対応するパブリックグランドトゥルースに基づいてパブリック損失関数を決定することと、パブリック損失関数からパブリック勾配を導出することとによって生成される。いくつかの例では、DP勾配のセットについてのジオメトリを学習するためにパブリック勾配のセットに鏡像降下法を適用することは、DP勾配のセットについてのジオメトリを学習するために、パブリック損失関数から導出されたパブリック勾配をミラー写像(mirror map)として使用することによって鏡像降下法を適用することを含む。いくつかの例では、パブリック損失関数は、強凸である。
【0006】
いくつかの例では、データ処理ハードウェアは、中央サーバにあり、DP勾配のセットおよびパブリック勾配のセットは、中央サーバにある中央リポジトリに記憶されている。いくつかの実装形態では、データ処理ハードウェアは、リモートシステムにあり、DP勾配のセットを取得することは、対応するプライベートデータのいずれも受信することなく、連合学習(federated learning)によって1つまたは複数のクライアントデバイスからDP勾配のセットを受信することを含み、DP勾配のセット中の各DP勾配は、1つまたは複数のクライアントデバイスのそれぞれのクライアントデバイスにおいてローカルに生成される。
【0007】
いくつかの実装形態では、機械学習モデルは、画像分類モデル、言語モデル、および/または音声認識モデルを含む。
【0008】
本開示の別の態様は、データ処理ハードウェアと、データ処理ハードウェアと通信しているメモリハードウェアとを含むシステムを提供し、メモリハードウェアは、データ処理ハードウェア上で実行されるとデータ処理ハードウェアに動作を実施させる命令を記憶する。動作は、対応するプライベートデータを処理することに基づいて各々生成された差分プライベート(DP)勾配のセットを取得するステップと、対応するパブリックデータを処理することに基づいて各々生成されたパブリック勾配のセットを取得するステップとを含む。この方法はまた、DP勾配のセットについてのジオメトリを学習するためにパブリック勾配のセットに鏡像降下法を適用するステップと、学習したジオメトリに基づいてDP勾配のセットを再整形するステップとを含む。この方法はさらに、再整形したDP勾配のセットに基づいて機械学習モデルを訓練するステップを含む。
【0009】
本開示の実装形態は、以下の任意選択の特徴のうちの1つまたは複数を含み得る。いくつかの例では、プライベートデータおよびパブリックデータは、同じソース分布から導出される。いくつかの実装形態では、DP勾配のセット中の各DP勾配は、対応する予測プライベート出力を生成するために、機械学習モデルを使用して対応するプライベートデータを処理することと、対応する予測プライベート出力および対応するプライベートグランドトゥルースに基づいてプライベート損失関数を決定することと、DP勾配を生成するために、プライベート損失関数から導出されたプライベート勾配にノイズを追加することとによって生成される。いくつかの例では、プライベート損失関数は凸であり、L-リプシッツである。
【0010】
いくつかの実装形態では、パブリック勾配のセット中の各パブリック勾配は、対応する予測パブリック出力を生成するために、機械学習モデルを使用して対応するパブリックデータを処理することと、対応する予測パブリック出力および対応するパブリックグランドトゥルースに基づいてパブリック損失関数を決定することと、パブリック損失関数からパブリック勾配を導出することとによって生成される。いくつかの例では、DP勾配のセットについてのジオメトリを学習するためにパブリック勾配のセットに鏡像降下法を適用することは、DP勾配のセットについてのジオメトリを学習するために、パブリック損失関数から導出されたパブリック勾配をミラー写像として使用することによって鏡像降下法を適用することを含む。いくつかの例では、パブリック損失関数は、強凸である。
【0011】
いくつかの例では、データ処理ハードウェアは、中央サーバにあり、DP勾配のセットおよびパブリック勾配のセットは、中央サーバにある中央リポジトリに記憶されている。いくつかの実装形態では、データ処理ハードウェアは、リモートシステムにあり、DP勾配のセットを取得することは、対応するプライベートデータのいずれも受信することなく、連合学習によって1つまたは複数のクライアントデバイスからDP勾配のセットを受信することを含み、DP勾配のセット中の各DP勾配は、1つまたは複数のクライアントデバイスのそれぞれのクライアントデバイスにおいてローカルに生成される。
【0012】
いくつかの実装形態では、機械学習モデルは、画像分類モデル、言語モデル、および/または音声認識モデルを含む。
【0013】
本開示の1つまたは複数の実装形態の詳細について、添付の図面および以下の説明に示す。他の態様、特徴、および利点は、説明および図面から、ならびに特許請求の範囲から明らかであろう。
【図面の簡単な説明】
【0014】
図1】プライベート鏡像降下法を用いたニューラルネットワークの訓練にパブリックデータを活用する機械学習(ML)環境の例示的なシステムを示す図である。
図2】プライベート鏡像降下法を用いたニューラルネットワークの訓練のためにパブリックデータを活用する例示的な訓練プロセスの概略図である。
図3】プライベート鏡像降下法を用いたニューラルネットワークの訓練にパブリックデータを活用するためのコンピュータにより実施される方法のための動作の例示的な構成のフローチャートである。
図4】本明細書で説明するシステムおよび方法を実装するために使用され得る例示的なコンピューティングデバイスの概略図である。
【発明を実施するための形態】
【0015】
様々な図面における同様の参照符号は、同様の要素を示す。
【0016】
機械学習(ML)モデルの連合学習は、MLモデルを訓練するための、ますます普及している技法である。従来の連合学習では、ローカルMLモデルが、ユーザのクライアントデバイスにローカルで記憶され、ローカルMLモデルのクラウドベースのカウンターパートであるグローバルMLモデルが、リモートシステム(たとえば、サーバのクラスタ)にリモートに記憶される。クライアントデバイスは、ローカルMLモデルを使用して、予測出力を生成するためにクライアントデバイスで検出されたユーザ入力を処理することができ、クライアント勾配を生成するために予測出力をグランドトゥルースと比較することができる。さらに、クライアントデバイスは、クライアント勾配をリモートシステムに送信することができる。リモートシステムは、グローバルMLモデルの重みを更新するために、クライアント勾配、および場合によってはさらなるクライアントデバイスで同様に生成されたさらなるクライアント勾配を利用することができる。リモートシステムは、グローバルMLモデル、またはグローバルMLモデルの更新された重みを、クライアントデバイスに送信することができる。クライアントデバイスは次いで、それらのローカルMLモデルをグローバルMLモデルに置き換え、またはそれらのローカルMLモデルの重みをグローバルMLモデルの更新された重みに置き換え、それによってローカルMLモデルを更新することができる。
【0017】
特に、これらのグローバルMLモデルは一般に、リモートシステムでリモートで生成される複数のリモート勾配に基づいて、クライアントデバイスでローカルで生成されるクライアント勾配を使用せずに、連合学習での利用の前にリモートシステムで事前訓練される。この事前訓練は一般に、グローバルMLモデルがクライアントデバイスで展開されるときに遭遇されるデータを反映しない可能性があるプロキシまたは偏りのあるデータに基づいている。事前訓練に続いて、これらのグローバルMLモデルの重みは、通常、グローバルMLモデルがクライアントデバイスで展開されるときに遭遇されるデータ(たとえば、プライベートデータ)に基づいてクライアントデバイスで生成されるクライアント勾配に基づいてのみ更新され、リモートシステムで生成される勾配を使用せずに更新される。しかしながら、これらのグローバルMLモデルの重みをこのようにして更新すると、事前訓練中に学習された情報の破滅的忘却をもたらすことがある。さらに、あるデータ(たとえば、偽陽性、偽陰性など)に基づいて生成されるクライアント勾配は、クライアントデバイスで取得するのが困難であり、それによって連合学習を使用して訓練されるMLモデルの性能の低下をもたらす可能性がある。
【0018】
差分プライベート確率的勾配降下法(DP-SGD)およびそれの変形態が、差分プライバシーを使用してMLモデルを訓練するための事実上の標準アルゴリズムになった。DP-SGDは、凸損失について最適な余剰経験リスクと余剰母集団リスクの両方を取得することに関して良好に機能することが知られているが、取得される誤差保証は、モデルの次元への明確な多項式依存性の問題があり得る。この多項式依存性は、モデルの次元がデータセットにおけるプライベート訓練データ記録の数よりも大きいとき、プライバシー/有用性のトレードオフに著しく影響を及ぼし得る。このために、さらには経験的に、DP-SGDが大規模深層学習MLモデルを訓練するために使用されるときでも、非プライベートのカウンターパートと比較されると、精度の著しい低下がある可能性がある。ここでは実装形態は、DPモデル訓練についてプライバシー/有用性のトレードオフを改善するために(たとえば、元のプライベート/機密の訓練データセットと同じ分布から引き出される)パブリックデータを効果的に使用することを対象とする。具体的には、技法は、パブリックデータセットにおける記録の数がモデル次元を超える限り、次元に明確に依存せずに凸損失について母集団リスク保証を確実にするために、パブリックデータから生成された損失関数をミラー写像として、およびプライベート/機密のデータについてのDP勾配を線形項として使用する鏡像降下法のDP変形態を提供する。明らかになるように、鏡像降下法のDP変形態は、パブリックデータで支援されると、DPモデル訓練においてプライベート勾配に加えられるノイズの分散を効果的に縮小することができる。DPモデルは、DP-SGDまたはそれの変形態を使用して訓練されたどんなタイプのニューラルネットワークモデルにも対応し得る。たとえば、DPニューラルネットワークモデルは、画像分類モデル、言語モデル、音声認識モデル、音声から音声へのモデル、またはテキストから音声へのモデルに対応し得る。
【0019】
図1は、ML環境101において動作している例示的なシステム100の概略図である。図示の例では、システム100は、プライベート鏡像降下法を用いてパブリックデータ160を活用することによってグローバルMLモデル150の連合学習(たとえば、訓練)を実施するために、リモートシステム110(たとえば、中央サーバ)と、1つまたは複数のクライアントデバイス130とを含む。使用または推論中に、各クライアントデバイス130のMLモジュール132は、出力136を生成するために、オンデバイスMLモデル135を実行するオンデバイスMLエンジン134を使用して、入力133を処理するように構成される。図示の例では、リモートシステム110の配布エンジン111が、オンデバイスMLモデル135として使用するために、1つまたは複数の通信ネットワーク170(たとえば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、および/または他のタイプのネットワークの任意の組合せ)を介して、グローバルMLモデル150をMLモジュール132、またはより一般的にはクライアントデバイス130に提供する。図示の例は、対応するプライベートデータについてのプライベート勾配を決定する複数のクライアントデバイス130を含み、プライベート勾配は、プライベートデータを公表せず、グローバルMLモデル150を更新するためにリモートシステム110によって使用され得る。しかしながら、他の例では、リモートシステム110は、リモートシステム110がML訓練の実質的にすべての態様を実施するように、対応するプライベートデータについてのプライベート勾配を決定する。
【0020】
クライアントデバイス130は、ユーザに関連し、入力を受信すること、処理すること、および出力を提供することが可能な何らかのコンピューティングデバイスに対応し得る。ユーザデバイス130のいくつかの例は、限定はしないが、モバイルデバイス(たとえば、携帯電話、タブレット、ラップトップなど)、コンピュータ、ウェアラブルデバイス(たとえば、スマートウォッチ)、スマート家電、モノのインターネット(IoT)デバイス、車両インフォテインメントシステム、スマートディスプレイ、スマートスピーカーなどを含む。各クライアントデバイス130は、データ処理ハードウェア137と、データ処理ハードウェア137と通信しているメモリハードウェア138とを含む。メモリハードウェア138は、データ処理ハードウェア137によって実行されると、データ処理ハードウェア137またはより一般的にはクライアントデバイス130に1つまたは複数の動作を行わせる命令を記憶する。各クライアントデバイス130は、クライアントデバイス130に対するおそらくは他の入力の中の入力133を取り込む、記録する、受信する、または場合によっては取得するために、1つまたは複数の入力システム(説明を明確にするために図示せず)を含んでもよく、またはそれらに結合されてもよい。各クライアントデバイス130は、クライアントデバイス130のおそらくは他の入力の中の出力136を出力する、または場合によっては提供するために、1つまたは複数の出力システム(説明を明確にするために図示せず)を含んでも、またはそれらに結合されてもよい。入力システムは、ユーザ、他のデバイス、他のシステムなどから入力を取得するために使用され得る。出力システムは、ユーザ、デバイス、他のシステムなどへ出力を提供するために使用され得る。
【0021】
一例では、入力133は、テキストを含み、オンデバイスMLモデル135は、出力136としてテキストを合成音声に変換する。たとえば、オンデバイスMLモデル135は、クライアントデバイス130とユーザとの間の口頭対話式やりとりの一部として合成音声を提供するために、入力テキストを対応する合成音声に変換してもよい。追加または代替として、入力133は、クライアントデバイス130によって記録された口頭発話を特徴づけるオーディオデータを含み、オンデバイスMLモデル135は、出力136として発話のトランスクリプションを生成するために、口頭発話を特徴づけるオーディオデータについて音声認識を実行する。たとえば、音声認識モデルとして採用されるオンデバイスMLモデル135は、クライアントデバイス130が口頭クエリを認識し、その後下流のアプリケーションにクエリを実現するよう命令することを可能にし得る。追加または代替として、入力133は、画像を含んでもよく、オンデバイスMLモデル135は、画像分類または物体認識を出力136として実行してもよい。他の例では、オンデバイスMLモデル135は、音声から音声へのモデル、言語モデル、言語翻訳モデル、機械翻訳モデル、または受信した入力133に基づいて出力136を生成するためにMLによって訓練される他のタイプのニューラルネットワークモデルを含む。
【0022】
訓練中に、オンデバイスMLエンジン134は、1つまたは複数の予測プライベート出力141を生成するために、オンデバイスMLモデル135を使用して、(たとえば、メモリハードウェア138にある)データストア140に記憶されたプライベートデータ139を処理する。いくつかの例では、プライベートデータ139およびパブリックデータ160は、共通の、同様の、または同じソース分布から導出される。
【0023】
勾配エンジン142は、予測プライベート出力141に基づいて1つまたは複数の差分プライベート(DP)勾配143を生成する。いくつかの実装形態では、勾配エンジン142は、教師あり学習技法を使用して、予測プライベート出力141を、プライベートデータ139に対応するプライベートグランドトゥルース144と比較することに基づいてDP勾配143を生成する。プライベートデータ139に対応するプライベートグランドトゥルース144が利用不可能であるときなど、追加または代替の実装形態では、勾配エンジン142は、教師ありおよび/または教師なし学習技法を使用してDP勾配143を生成する。クライアントデバイス130は、MLモジュール132の勾配エンジン142から生成/出力されたDP勾配143を、ネットワーク170を通じてリモートシステム110に送信する。いくつかの例では、クライアントデバイス130は、勾配エンジン142によってDP勾配143が生成されると、それらをリモートシステム110に送信する。追加または代替として、クライアントデバイス130は、DP勾配を(たとえば、メモリハードウェア138に)記憶し、次いでDP勾配143をバッチでリモートシステム110に送信してもよい。特に、クライアントデバイス130は、プライベートデータ139、プライベートグランドトゥルース144、予測プライベート出力141、および/または任意の他の個人を識別できる情報のいずれも送信することなく、DP勾配143をリモートシステム110に送信してもよい。様々な実装形態では、クライアントデバイス130は、1つまたは複数の条件が満たされると決定することに応じて、DP勾配143をリモートシステム110に送信する。例示的な条件は、クライアントデバイス130が充電中であり、クライアントデバイス130の充電状態がしきい値充電状態を満たし、(1つまたは複数のオンデバイス温度センサーに基づく)クライアントデバイス130の温度がしきい値温度未満であるという表示、クライアントデバイス130がユーザによって保有されていないという表示、クライアントデバイス130に関連する時間的条件(たとえば、特定の時間期間の間、N時間ごと、ただしNは正の整数である、および/もしくはクライアントデバイス130に関連する他の時間的条件)、ならびに/またはしきい値数のDP勾配143がクライアントデバイス130によって生成されたかどうかを含む。
【0024】
いくつかの例では、勾配エンジン142は、予測プライベート出力141および対応するプライベートグランドトゥルース144に基づいてプライベート損失関数を決定することによってDP勾配143を決定し、決定されたプライベート損失関数からプライベート勾配を導出し、対応するDP勾配143を生成するために、導出されたプライベート勾配にノイズを加える。いくつかの例では、プライベート損失関数は凸であり、L-リプシッツ(L-Lipschitz)である。ここで、任意の方向にノイズを加える効果は、その方向のプライベート損失関数の曲率に反比例する。
【0025】
追加または代替の実装形態では、勾配エンジン142は、オンデバイスMLモデル135を訓練するために使用されるプライベート損失関数からDP勾配143を導出し、DP勾配143が、(たとえば、教師あり学習技法を使用して)プライベートグランドトゥルース144を予測プライベート出力141と比較することから得られるそのプライベート損失関数(またはそれの導関数)の値を表すようにする。たとえば、プライベートグランドトゥルース144および予測プライベート出力141が一致するとき、勾配エンジン142は、ゼロDP勾配143を生成することができる。また、たとえば、プライベートグランドトゥルース144および予測プライベート出力141が一致しないとき、勾配エンジン142は、不一致の程度に応じた非ゼロのDP勾配143を生成することができる。勾配エンジン142は、プライベートグランドトゥルース144および予測プライベート出力141の決定論的比較間の不一致の程度に基づいて不一致の程度を決定することができる。追加または代替の実装形態では、勾配エンジン142は、オンデバイスMLモデル135を訓練するために使用されるプライベート損失関数からDP勾配143を導出することができ、DP勾配143が、(たとえば、教師ありまたは半教師あり学習技法を使用して)予測プライベート出力141に基づいて決定されたそのプライベート損失関数(またはそれの導関数)の値を表すようにする。
【0026】
以下でより詳細に説明するように、プライベートデータ139は、クライアントデバイス130のマイクロフォンによって生成されたオーディオデータ、クライアントデバイス130のユーザによって入力として提供された、かつ/またはメモリハードウェア138に記憶されたテキストセグメント、クライアントデバイス130と通信している撮像デバイスによって取り込まれた画像データ、および/またはクライアントデバイス130によって取り込まれ、もしくはそれにローカルで生成され、オンデバイスMLモデル135を使用して処理されたいずれか他のデータを含んでもよい。いくつかの実装形態では、オンデバイスMLモデル135は、プライベートデータ139がクライアントデバイス130に生成または提供されるとき、プライベートデータ139を処理して、同期的にDP勾配143を生成する。追加または代替実装形態では、プライベートデータ139がクライアントデバイス130に生成または提供されるとき、プライベートデータ139は、データストア140に記憶されることがあり、プライベートデータ139は、その後非同期的にDP勾配143を生成するために利用され得る。追加または代替実装形態では、オンデバイスMLエンジン134は、予測プライベート出力141を生成するためにプライベートデータ139を処理し、クライアントデバイス130は、予測プライベート出力141を記憶またはキャッシュし、予測プライベート出力141は、非同期的にDP勾配143を生成するために勾配エンジン142によるその後の利用に備えて、(場合によっては予測プライベート出力141に関連するプライベートデータ139に関連付けて)クライアントデバイス130に記憶またはキャッシュされ得る。プライベートデータ139(本明細書ではオンデバイスメモリまたはオンデバイスストレージとも呼ぶ)は、限定はしないが、クライアントデバイス130のユーザによって送信されるまたはクライアントデバイス130のユーザによって受信されるオーディオデータ、画像データ、連絡先リスト、電子メッセージ(たとえば、テキストメッセージ、電子メール、ソーシャルメディアメッセージなど)を含む、クライアントデバイス130に生成または提供されるデータ、および/または他のクライアントデータを含むことができる。特に、プライベートデータ139は、アクセス制限されたデータ、または公に利用可能ではないおよび/またはリモートシステム110に利用可能ではないデータに対応する。
【0027】
リモートシステム110は、データ処理ハードウェア112と、データ処理ハードウェア112と通信しているメモリハードウェア113とを含む。メモリハードウェア113は、データ処理ハードウェア112によって実行されると、データ処理ハードウェア112に1つまたは複数の動作を行わせる命令を記憶する。
【0028】
訓練中に、リモートシステム110のグローバルMLエンジン114は、予測パブリック出力115を生成するために、グローバルMLモデル150を使用してパブリックデータ160を処理する。パブリックデータ160は、パブリックデータ160の(たとえば、メモリハードウェア113にある)データストア121から取得され得る。いくつかの例では、プライベートデータ139およびパブリックデータ160は、共通の、同様の、または同じソース分布から導出される。出力115は、それらがパブリックデータ160に基づいて生成されることを示すために、本明細書では予測パブリック出力115と呼ぶが、それらは必ずしもリモートシステム110外に開示されるとは限らない。しかしながら、予測パブリック勾配117は、公表されてもよい。データストア119は、限定はしないが、オーディオデータ、テキストデータ、および/または画像データを含むパブリックデータリポジトリ、ならびにプライベートデータリポジトリを含む、リモートシステム110によってアクセス可能なデータを含むことができる。さらに、データストア119は、異なるデバイス特性または構成要素を有する異なるタイプのクライアントデバイス130からのデータを含むことができる。たとえば、データベース119は、(たとえば、クライアントデバイス130によって取り込まれたオーディオデータと同様の)近距離マイクロフォンによって取り込まれたオーディオデータと、遠距離マイクロフォンによって取り込まれたオーディオデータ(たとえば、他のデバイスによって取り込まれたオーディオデータ)とを含むことができる。別の例として、データベース119は、RGB画像データ、RGB-D画像データ、CMYK画像データなど、異なる視覚構成要素によって取り込まれた画像データ(または他の視覚データ)、および/または様々な異なる視覚構成要素によって取り込まれた他のタイプの画像データを含むことができる。さらに、リモートシステム110は、パブリックデータ160を変更するためにパブリックデータ160に1つまたは複数の技法を採用することができる。これらの技法は、パブリックデータ160がオーディオデータであるとき、ノイズを追加または除去するためにオーディオデータをフィルタリングすること、パブリックデータ160が画像データであるとき、画像をぼかすこと、および/またはパブリックデータ160を操作するための他の技法を含むことができる。これは、リモートシステム110が複数の異なるクライアントデバイス130によって生成されたクライアントデータをより良く反映すること、および/または特定のタイプのデータの必要を満たすこと(たとえば、本明細書で説明するように偽陽性もしくは偽陰性を誘発すること、本明細書で説明するようにオーディオデータの十分な多様性を保証することなど)を可能にする。
【0029】
勾配エンジン116は、予測パブリック出力115に基づいて1つまたは複数のパブリック勾配117を生成する。勾配117は、それらがパブリックデータ160に基づいて生成されることを示すために、本明細書ではパブリック勾配117と呼ぶが、それらは必ずしもリモートシステム110外に開示されるとは限らない。しかしながら、パブリック勾配117は、公表されてもよい。いくつかの実装形態では、勾配エンジン116は、教師あり学習技法を使用して予測パブリック出力115を、パブリックデータ160に対応するパブリックグランドトゥルース118と比較することに基づいてパブリック勾配117を生成する。パブリックデータ160に対応するパブリックグランドトゥルース118が利用不可能であるときなど、追加または代替の実装形態では、勾配エンジン116は、教師ありおよび/または教師なし学習技法を使用してパブリック勾配117を生成することができる。パブリック勾配117は、クライアントデバイス130から受信したDP勾配143とともに、リモートシステム110上の中央リポジトリ(たとえば、メモリハードウェア113またはバッファなどの長期メモリおよび/または短期メモリ)に記憶された勾配データストア119に記憶され得る。
【0030】
いくつかの例では、勾配エンジン116は、パブリック予測出力115および対応するパブリックグランドトゥルース118に基づいてパブリック損失関数を決定し、決定したパブリック損失関数からパブリック勾配を導出することによって、パブリック勾配117を決定する。いくつかの例では、パブリック損失関数は、強凸である。
【0031】
上記のように、パブリックおよび/またはプライベート勾配117、143は、勾配117、143が生成および/または受信されると、勾配データストア119(または他のメモリ(たとえば、バッファ))に記憶され得る。いくつかの実装形態では、勾配117、143は、複数の異なるタイプの勾配の中から、プライベートデータ139を処理した対応するオンデバイスMLモデル135および/またはパブリックデータ160を処理した対応するグローバルMLモデル150に基づいて決定される勾配のタイプによってインデックスされ得る。複数の異なるタイプの勾配は、様々な度合の粒度で定義され得る。たとえば、勾配のタイプは具体的には、たとえば、ホットワードモデルを使用してオーディオデータを処理することに基づいて生成されるホットワード勾配、オーディオデータを処理することに基づいて生成されるASR勾配、VADモデルを使用してオーディオデータを処理することに基づいて生成されるVAD勾配、連続会話モデルを使用して処理することに基づいて生成される連続会話勾配、音声識別モデルを使用してオーディオデータを処理することに基づいて生成される音声識別勾配、顔識別モデルを使用して画像データを処理することに基づいて生成される顔識別勾配、ホットワードフリーモデルを使用して画像データを処理することに基づいて生成されるホットワードフリー勾配、物体検出モデルを使用して画像データを処理することに基づいて生成される物体検出勾配、テキストから音声への(TTS)モデルを使用してテキストセグメントを処理することに基づいて生成されるTTS勾配、および/または任意の他のMLモデルを使用してデータを処理することに基づいて生成され得る任意の他の勾配と、定義され得る。特に、勾配117、143の所与の1つは、複数の異なるタイプの勾配のうちの1つに属することができる。別の例として、勾配のタイプはより一般的に、たとえば、1つまたは複数のオーディオベースのモデルを使用してオーディオデータを処理することに基づいて生成されるオーディオベースの勾配、1つまたは複数の画像ベースのモデルを使用して画像データを処理することに基づいて生成される画像ベースの勾配、または、テキストベースのモデルを使用してテキストセグメントを処理することに基づいて生成されるテキストベースの勾配と、定義され得る。
【0032】
訓練エンジン200が、グローバルMLモデル150の1つまたは複数の重みを更新するために、DP勾配143およびパブリック勾配117を利用することができる。いくつかの実装形態では、リモートシステム110は、1つまたは複数の基準に基づいてグローバルMLモデル150を更新する特定の反復に、パブリック勾配117およびDP勾配143を割り当てる。1つまたは複数の基準は、たとえば、訓練エンジン200に利用可能な勾配のタイプ、訓練エンジン200に利用可能な勾配のしきい値量、勾配を使用して更新するしきい値持続時間、および/または他の基準を含むことができる。具体的には、訓練エンジン200は、グローバルMLモデル150を訓練するために使用するDP勾配143および/またはパブリック勾配117の複数のセットまたはサブセットを識別することができる。さらに、訓練エンジン200は、勾配のこれらのセットまたはサブセットに基づいてグローバルMLモデル150を更新することができる。これらの実装形態のいくつかのさらなるバージョンでは、DP勾配143のセット中のおよびパブリック勾配117のセット中の勾配の量は同じであるか、異なるものになる(たとえば、互いに比例し、より多くのDP勾配143、またはより多くのパブリック勾配117を有する)。他の実装形態では、リモートシステム110は、グローバルMLモデル150を更新する特定の反復に勾配117、143を割り当てることなく先入れ先出し(FIFO)方式でグローバルMLモデル150を更新するために、DP勾配143およびパブリック勾配117を利用する。
【0033】
図2は、グローバルMLモデル150を訓練するためにプライベート鏡像降下法を用いてパブリックデータ160を活用する訓練プロセス200の概略図である。訓練プロセス200は、パブリック勾配117のジオメトリ215を学習するために、鏡像降下法をパブリック勾配117に適用する。訓練プロセス200は、DP勾配のセットのジオメトリ215を学習するために、パブリック損失関数から導出されたパブリック勾配117をミラー写像として使用することによって鏡像降下法を適用してもよい。
【0034】
訓練プロセス200は、学習したジオメトリ215を使用してDP勾配143を再整形し、再整形したDP勾配225が学習したジオメトリ215に一致するようにする。訓練プロセス200は次いで、グローバルMLモデル150の更新された重み235を学習することによってグローバルMLモデル150を訓練する。いくつかの例では、訓練プロセス200は、確率的勾配降下法を使用して重み235を更新する。
【0035】
配布エンジン111は、更新されたグローバルMLモデル150および/またはそれの重みをクライアントデバイス130に送信してもよい。いくつかの実施形態では、配布エンジン111は、1つまたは複数の条件がクライアントデバイス130および/またはリモートシステム110に対して満たされることに反応して、更新されたグローバルMLモデル150および/またはそれの重みを送信する。更新されたグローバルMLモデル150および/またはそれの重みを受信すると、クライアントデバイス130は、対応するオンデバイスMLモデル135を更新されたグローバルMLモデル150に置き換えるもしくは更新する、または対応するオンデバイスMLモデル135の重みを更新されたグローバルMLモデル150の重みに置き換える。さらに、クライアントデバイス130はその後、クライアントデバイス130で検出されるさらなるユーザ入力133に基づいて予測を行うために、更新されたオンデバイスMLモデル135および/またはそれの重みを使用してもよい。クライアントデバイス130は、本明細書で説明した方法でさらなるDP勾配143を生成すること、およびさらなるDP勾配143をリモートシステム110に送信することを続けることができる。さらに、リモートシステム110は、本明細書で説明した方法でさらなるパブリック勾配117を生成すること、ならびにさらなるDP勾配143および/またはさらなるパブリック勾配117に基づいてグローバルMLモデル150を更新することを続けることができる。
【0036】
図3は、プライベート鏡像降下法を用いたニューラルネットワークの訓練にパブリックデータ160を活用するためのコンピュータにより実施される方法300のための動作の例示的な構成のフローチャートである。機械学習モデル150の初期または事前訓練中に、方法は、動作302および304を実施する。動作302において、方法300は、対応するパブリックデータ160を処理することに基づいて各々生成されたパブリック勾配117のセットを取得するステップを含む。動作304において、方法300は、DP勾配143のセットに、またはそのために適用され得るまたはパブリック勾配117のジオメトリ215を学習するために、パブリック勾配117のセットに鏡像降下法を適用するステップを含む。たとえば、DP勾配143のセットについてのジオメトリ215を学習するためにミラー写像として導出されたパブリック勾配117を使用することによる。
【0037】
機械学習モデル150のその後の訓練または更新中に、方法は、動作306、308、および310を実施する。動作306において、方法300は、対応するプライベートデータ139を処理することに基づいて各々生成された差分プライベート(DP)勾配143のセットを取得するステップを含む。動作308において、この方法は、学習されたジオメトリ215に基づいて、DP勾配143のセットを再整形するステップを含む。動作310において、方法300は、再整形したDP勾配のセットに基づいて機械学習モデル150を訓練または更新するステップを含む。
【0038】
図4は、本明細書で説明するシステムおよび方法を実装するために使用され得る、例示的なコンピューティングデバイス400の概略図である。コンピューティングデバイス400は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなど、様々な形態のデジタルコンピュータを表すことを意図している。ここに示される構成要素、それらの接続および関係、ならびにそれらの機能は、例示であることのみを意図しており、本明細書で説明および/または特許請求する本発明の実装形態を限定することは意図していない。
【0039】
コンピューティングデバイス400は、データ処理ハードウェア137および/または112を実装するために使用され得るプロセッサ410(すなわち、データ処理ハードウェア)と、メモリハードウェア138および/または113を実装するために使用され得るメモリ420(すなわち、メモリハードウェア)と、メモリハードウェア138および/または113を実装するために使用され得るストレージデバイス430(すなわち、メモリハードウェア)と、メモリ420および後続拡張ポート450に接続する高速インターフェース/コントローラ440と、低速バス470およびストレージデバイス430に接続する低速インターフェース/コントローラ460とを含む。構成要素410、420、430、440、450、および460の各々は、様々なバスを使用して相互接続され、共通マザーボード上に、または適宜に他の方法で搭載され得る。プロセッサ410は、グラフィカルユーザインターフェース(GUI)についてのグラフィカル情報を、高速インターフェース440に結合されたディスプレイ480などの外部入力/出力デバイス上で表示するための、メモリ420中またはストレージデバイス430上に記憶された命令を含む、コンピューティングデバイス400内での実行のための命令を処理することができる。他の実装形態では、複数のプロセッサおよび/または複数のバスが、適宜に、複数のメモリおよび複数のタイプのメモリとともに使用されてもよい。また、複数のコンピューティングデバイス400が接続されてもよく、各デバイスは、必要な動作の部分を(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)提供する。
【0040】
メモリ420は、コンピューティングデバイス400内に情報を非一時的に記憶する。メモリ420は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットであってよい。非一時的メモリ420は、プログラム(たとえば、命令のシーケンス)またはデータ(たとえば、プログラム状態情報)を、コンピューティングデバイス400による使用のために、一時的または永続的に記憶するために使用される物理デバイスであってもよい。不揮発性メモリの例は、限定はしないが、フラッシュメモリおよび読取り専用メモリ(ROM)/プログラマブル読取り専用メモリ(PROM)/消去可能プログラマブル読取り専用メモリ(EPROM)/電気的消去可能プログラマブル読取り専用メモリ(EEPROM)(たとえば、通常は、ブートプログラムなどのファームウェア用に使用される)を含む。揮発性メモリの例は、限定はしないが、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)ならびにディスクまたはテープを含む。
【0041】
ストレージデバイス430は、コンピューティングデバイス400用の大容量ストレージを提供することが可能である。いくつかの実装形態では、ストレージデバイス430はコンピュータ可読媒体である。様々な異なる実装形態では、ストレージデバイス430は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、あるいは、ストレージエリアネットワークまたは他の構成におけるデバイスを含むデバイスのアレイであり得る。追加の実施形態では、コンピュータプログラム製品は、情報キャリアにおいて有形に具現化される。コンピュータプログラム製品は、実行されると、上記で説明した方法などの1つまたは複数の方法を実施する命令を含む。情報キャリアは、メモリ420、ストレージデバイス430、またはプロセッサ410上のメモリなどの、コンピュータ可読媒体または機械可読媒体である。
【0042】
高速コントローラ440は、コンピューティングデバイス400向けの帯域幅消費型の動作を管理し、低速コントローラ460は、より低い帯域幅消費型の動作を管理する。役割のそのような割振りは、例示にすぎない。いくつかの実装形態では、高速コントローラ440は、メモリ420、ディスプレイ480に(たとえば、グラフィックスプロセッサまたはアクセラレータを通じて)、および様々な拡張カード(図示せず)を受け入れることができる高速拡張ポート450に結合される。いくつかの実装形態では、低速コントローラ460は、ストレージデバイス430および低速拡張ポート490に結合される。様々な通信ポート(たとえば、USB、Bluetooth、イーサネット、ワイヤレスイーサネット)を含み得る低速拡張ポート490は、たとえば、ネットワークアダプタを通じて、キーボード、ポインティングデバイス、スキャナ、またはスイッチもしくはルータなどのネットワーキングデバイスなどの1つまたは複数の入力/出力デバイスに結合され得る。
【0043】
コンピューティングデバイス400は、図に示されているように、いくつかの異なる形態で実装されてもよい。たとえば、コンピューティングデバイス400は、標準サーバ400aとして、またはそのようなサーバ400aのグループにおいて複数回、ラップトップコンピュータ400bとして、またはラックサーバシステム400cの一部として、実装され得る。
【0044】
本明細書で説明されるシステムおよび技法の様々な実装形態は、デジタル電子回路および/もしくは光回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、ならびに/またはそれらの組合せで実現され得る。これらの様々な実装形態は、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能な1つまたは複数のコンピュータプログラムにおける実装を含むことができ、プログラマブルプロセッサは、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信するように、かつそれらにデータおよび命令を送信するように結合された、専用または汎用であってもよい。
【0045】
ソフトウェアアプリケーション(すなわち、ソフトウェアリソース)は、コンピューティングデバイスにタスクを実行させるコンピュータソフトウェアを指すことがある。いくつかの例では、ソフトウェアアプリケーションは、「アプリケーション」、「アプリ」、または「プログラム」と呼ばれる場合がある。例示的アプリケーションは、限定はしないが、システム診断アプリケーション、システム管理アプリケーション、システム保守アプリケーション、文書処理アプリケーション、表計算アプリケーション、メッセージングアプリケーション、メディアストリーミングアプリケーション、ソーシャルネットワーキングアプリケーション、およびゲーム用アプリケーションを含む。
【0046】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られている)は、プログラマブルプロセッサ用の機械命令を含み、高水準手続き型および/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ/機械言語で実装され得る。本明細書で使用される「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械命令を機械可読信号として受信する機械可読媒体を含むプログラマブルプロセッサに機械命令および/またはデータを提供するために使用される、任意のコンピュータプログラム製品、非一時的コンピュータ可読媒体、装置および/またはデバイス(たとえば、磁気ディスク、光ディスク、メモリ、プログラマブル論理デバイス(PLD))を指す。「機械可読信号」という用語は、プログラマブルプロセッサに機械命令および/またはデータを提供するために使用される任意の信号を指す。
【0047】
本明細書に記載したプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによって機能を実施するための1つまたは複数のコンピュータプログラムを実行する、データ処理ハードウェアとも呼ばれる1つまたは複数のプログラマブルプロセッサによって実施することができる。プロセスおよび論理フローは、特殊目的論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)やASIC(特定用途向け集積回路)によって実施することもできる。コンピュータプログラムの実行に適したプロセッサは、例として、汎用および専用マイクロプロセッサの両方、ならびに任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。概して、プロセッサは、読取り専用メモリもしくはランダムアクセスメモリまたは両方から、命令およびデータを受信することになる。コンピュータの本質的要素は、命令を実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータは、データを記憶するための1つまたは複数の大容量ストレージデバイス(たとえば、磁気ディスク、光磁気ディスク、または光ディスク)も含むか、あるいは1つまたは複数の大容量ストレージデバイスからデータを受信することもしくは1つまたは複数の大容量ストレージデバイスにデータを転送すること、またはその両方を行うように動作可能に結合される。ただし、コンピュータは、そのようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスと、磁気ディスク、たとえば、内部ハードディスクまたは取外し可能ディスクと、光磁気ディスクと、CD-ROMおよびDVD-ROMディスクとを含む、すべての形態の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完され得るか、専用論理回路に組み込まれ得る。
【0048】
ユーザとの対話を可能にするために、本開示の1つまたは複数の態様は、情報をユーザに表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)、LCD(液晶ディスプレイ)モニタ、またはタッチスクリーンと、任意選択で、それによってユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールとを有するコンピュータ上で実装され得る。他の種類のデバイスも、ユーザとの対話を可能にするために使用されることが可能であり、たとえば、ユーザに与えられるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることができ、ユーザからの入力は、音響、音声、または触覚入力を含む、任意の形態で受信されることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、そのデバイスから文書を受信することによって、たとえば、ユーザのクライアントデバイス上のウェブブラウザから受信された要求に応答して、そのウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。
【0049】
特に断りのない限り、「または」は、排他的「または」ではなく、包含的「または」を指す。たとえば、「A、B、またはC」は、(1)Aのみ、(2)Bのみ、(3)Cのみ、(4)AとB、(5)AとC、(6)BとC、および(7)AとBとCなど、A、B、Cの任意の組合せまたはサブセットを指す。同様に、「AまたはBの少なくとも1つ」という句は、(1)少なくとも1つのA、(2)少なくとも1つのB、(3)少なくとも1つのAおよび少なくとも1つのBなど、AおよびBの任意の組合せまたはサブセットを指すものとする。さらに、「AおよびBの少なくとも1つ」という句は、(1)少なくとも1つのA、(2)少なくとも1つのB、(3)少なくとも1つのAおよび少なくとも1つのBなど、AおよびBの任意の組合せまたはサブセットを指すものとする。
【0050】
いくつかの実装形態について説明した。それでもなお、本開示の趣旨および範囲から逸脱することなく様々な修正が行われ得ることが理解されよう。したがって、他の実装形態が、以下の特許請求の範囲の範囲内にある。
【符号の説明】
【0051】
100 システム
101 機械学習(ML)環境
110 リモートシステム
111 配布エンジン
112 データ処理ハードウェア
113 メモリハードウェア
114 グローバルMLエンジン
115 予測パブリック出力
116 勾配エンジン
117 勾配
118 パブリックグランドトゥルース
119 データストア/データベース
121 データストア
130 クライアントデバイス
132 MLモジュール
133 入力
134 オンデバイスMLエンジン
135 オンデバイスMLモデル
136 出力
137 データ処理ハードウェア
138 メモリハードウェア
139 プライベートデータ
140 データストア
141 予測プライベート出力
142 勾配エンジン
143 差分プライベート(DP)勾配
144 プライベートグランドトゥルース
150 グローバルMLモデル
160 パブリックデータ
170 通信ネットワーク
200 訓練エンジン
215 ジオメトリ
225 再整形したDP勾配
235 重み
400 コンピューティングデバイス
410 プロセッサ
420 メモリ
430 ストレージデバイス
440 高速インターフェース/コントローラ
450 高速拡張ポート
460 低速インターフェース/コントローラ
470 低速バス
480 ディスプレイ
490 低速拡張ポート
図1
図2
図3
図4
【手続補正書】
【提出日】2024-05-22
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
データ処理ハードウェア(410)上で実行されると、前記データ処理ハードウェア(410)に動作を実施させる、コンピュータにより実施される方法(300)であって、前記動作が、
対応するプライベートデータ(139)を処理することに基づいて各々生成された差分プライベート(DP)勾配のセット(143)を取得するステップと、
対応するパブリックデータ(160)を処理することに基づいて各々生成されたパブリック勾配のセット(117)を取得するステップと、
前記DP勾配のセット(143)についてのジオメトリ(215)を学習するために、前記パブリック勾配のセット(117)に鏡像降下法を適用するステップと、
前記学習したジオメトリ(215)に基づいて前記DP勾配のセット(143)を再整形するステップと、
前記再整形したDP勾配のセット(225)に基づいて機械学習モデル(150)を訓練するステップと
を含む、方法(300)。
【請求項2】
前記DP勾配のセット(143)中の各DP勾配(143)が、
対応する予測プライベート出力(141)を生成するために、機械学習モデル(135)を使用して、対応するプライベートデータ(139)を処理することと、
前記対応する予測プライベート出力(141)および対応するプライベートグランドトゥルース(144)に基づいてプライベート損失関数を決定することと、
前記DP勾配(143)を生成するために、前記プライベート損失関数から導出されたプライベート勾配にノイズを加えることと
によって生成される、請求項1に記載の方法(300)。
【請求項3】
前記プライベート損失関数が凸であり、L-リプシッツである、請求項2に記載の方法(300)。
【請求項4】
前記プライベートデータ(139)および前記パブリックデータ(160)が、同じソース分布から導出される、請求項1に記載の方法(300)。
【請求項5】
前記パブリック勾配のセット(117)中の各パブリック勾配(117)が、
対応する予測パブリック出力(115)を生成するために、機械学習モデル(150)を使用して、対応するパブリックデータ(160)を処理することと、
前記対応する予測パブリック出力(115)および対応するパブリックグランドトゥルース(118)に基づいてパブリック損失関数を決定することと、
前記パブリック損失関数から前記パブリック勾配(117)を導出することと
によって生成される、請求項1に記載の方法(300)。
【請求項6】
前記DP勾配のセット(143)についての前記ジオメトリ(215)を学習するために前記パブリック勾配のセット(117)に鏡像降下法を適用するステップが、前記DP勾配のセット(143)についての前記ジオメトリ(215)を学習するために、前記パブリック損失関数から導出された前記パブリック勾配(117)をミラー写像として使用することによって鏡像降下法を適用するステップを含む、請求項5に記載の方法(300)。
【請求項7】
前記パブリック損失関数が強凸である、請求項5または6に記載の方法(300)。
【請求項8】
前記データ処理ハードウェア(410)が中央サーバにあり、
前記DP勾配のセット(143)および前記パブリック勾配のセット(117)が、前記中央サーバにある中央リポジトリ(119)に記憶されている、請求項1に記載の方法(300)。
【請求項9】
前記データ処理ハードウェア(410)がリモートシステムにあり、
前記DP勾配のセット(143)を取得する前記ステップが、前記対応するプライベートデータ(139)のいずれも受信することなく、連合学習によって1つまたは複数のクライアントデバイス(130)から前記DP勾配のセット(143)を受信するステップを含み、
前記DP勾配のセット(143)中の各DP勾配(143)が、前記1つまたは複数のクライアントデバイス(130)のそれぞれのクライアントデバイスにおいてローカルに生成される、請求項1に記載の方法(300)。
【請求項10】
前記機械学習モデル(150)が、画像分類モデルを含む、請求項1に記載の方法(300)。
【請求項11】
前記機械学習モデル(150)が言語モデルを含む、請求項1に記載の方法(300)。
【請求項12】
前記機械学習モデル(150)が、音声認識モデルを含む、請求項1に記載の方法(300)。
【請求項13】
データ処理ハードウェア(410)と、
前記データ処理ハードウェア(410)と通信しているメモリハードウェア(420)と
を備え、前記メモリハードウェア(420)が、前記データ処理ハードウェア(410)上で実行されると前記データ処理ハードウェア(410)に動作を実行させる命令を記憶し、前記動作が、
対応するプライベートデータ(139)を処理することに基づいて各々生成された差分プライベート(DP)勾配のセット(143)を取得することと、
対応するパブリックデータ(160)を処理することに基づいて各々生成されたパブリック勾配のセット(117)を取得することと、
前記DP勾配のセット(143)についてのジオメトリ(215)を学習するために、前記パブリック勾配のセット(117)に鏡像降下法を適用することと、
前記学習したジオメトリ(215)に基づいて前記DP勾配のセット(143)を再整形することと、
前記再整形したDP勾配のセット(225)に基づいて機械学習モデル(150)を訓練することと
を含む、システム。
【請求項14】
前記DP勾配のセット(143)中の各DP勾配(143)が、
対応する予測プライベート出力(141)を生成するために、機械学習モデル(135)を使用して、対応するプライベートデータ(139)を処理することと、
前記対応する予測プライベート出力(141)および対応するプライベートグランドトゥルース(144)に基づいてプライベート損失関数を決定することと、
前記DP勾配(143)を生成するために、前記プライベート損失関数から導出されたプライベート勾配にノイズを加えることと
によって生成される、請求項13に記載のシステム。
【請求項15】
前記プライベート損失関数が凸であり、L-リプシッツである、請求項14に記載のシステム。
【請求項16】
前記プライベートデータ(139)および前記パブリックデータ(160)が、同じソース分布から導出される、請求項13に記載のシステム。
【請求項17】
前記パブリック勾配のセット(117)中の各パブリック勾配(117)が、
対応する予測パブリック出力(115)を生成するために、機械学習モデル(150)を使用して、対応するパブリックデータ(160)を処理することと、
前記対応する予測パブリック出力(115)および対応するパブリックグランドトゥルース(118)に基づいてパブリック損失関数を決定することと、
前記パブリック損失関数から前記パブリック勾配(117)を導出することと
によって生成される、請求項13に記載のシステム。
【請求項18】
前記DP勾配のセット(143)についての前記ジオメトリ(215)を学習するために前記パブリック勾配のセット(117)に鏡像降下法を適用することが、前記DP勾配のセット(143)についての前記ジオメトリ(215)を学習するために、前記パブリック損失関数から導出された前記パブリック勾配(117)をミラー写像として使用することによって鏡像降下法を適用することを含む、請求項17に記載のシステム。
【請求項19】
前記パブリック損失関数が強凸である、請求項17または18に記載のシステム。
【請求項20】
前記データ処理ハードウェア(410)が中央サーバにあり、
前記DP勾配のセット(143)および前記パブリック勾配のセット(117)が、前記中央サーバにある中央リポジトリ(119)に記憶されている、請求項13に記載のシステム。
【請求項21】
前記データ処理ハードウェア(410)がリモートシステムにあり、
前記DP勾配のセット(143)を取得することが、前記対応するプライベートデータ(139)のいずれも受信することなく、連合学習によって1つまたは複数のクライアントデバイス(130)から前記DP勾配のセット(143)を受信することを含み、
前記DP勾配のセット(143)中の各DP勾配(143)が、前記1つまたは複数のクライアントデバイス(130)のそれぞれのクライアントデバイスにおいてローカルに生成される、請求項13に記載のシステム。
【請求項22】
前記機械学習モデル(150)が、画像分類モデルを含む、請求項13に記載のシステム。
【請求項23】
前記機械学習モデル(150)が言語モデルを含む、請求項13に記載のシステム。
【請求項24】
前記機械学習モデル(150)が、音声認識モデルを含む、請求項13に記載のシステム。
【国際調査報告】