(57)【要約】  プライバシーが強化された深層学習システム・フレームワーク（以下では、「フレームワーク」）を実装するためのメカニズムが提供される。このフレームワークは、ニューラル・ネットワークの暗号化された第１のサブネット・モデルをクライアント・コンピューティング・デバイスから受信する。ここで、第１のサブネット・モデルは、ニューラル・ネットワークの複数のパーティションのうちの１つのパーティションである。このフレームワークは、暗号化された第１のサブネット・モデルをフレームワークの信頼できる実行環境（ＴＥＥ）に読み込み、ＴＥＥ内で第１のサブネット・モデルを暗号解読し、ＴＥＥ内で第１のサブネット・モデルを実行する。このフレームワークは、暗号化された入力データをクライアント・コンピューティング・デバイスから受信し、暗号化された入力データをＴＥＥに読み込み、入力データを暗号解読し、ＴＥＥ内で実行される第１のサブネット・モデルを使用してＴＥＥ内で入力データを処理する。
2021531533.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサおよび少なくとも１つのメモリを備えているデータ処理システムにおける方法であって、前記少なくとも１つのメモリが、プライバシーが強化された深層学習システム・フレームワークを実装するように前記少なくとも１つのプロセッサを構成するために、前記少なくとも１つのプロセッサによって実行される命令を含んでおり、前記方法が、
前記プライバシーが強化された深層学習システム・フレームワークによって、ニューラル・ネットワークの暗号化された第１のサブネット・モデルをクライアント・コンピューティング・デバイスから受信することであって、前記第１のサブネット・モデルが、前記ニューラル・ネットワークの複数のパーティションのうちの１つのパーティションである、前記受信することと、
前記プライバシーが強化された深層学習システム・フレームワークによって、前記暗号化された第１のサブネット・モデルを前記プライバシーが強化された深層学習システム・フレームワークの信頼できる実行環境に読み込むことと、
前記プライバシーが強化された深層学習システム・フレームワークによって、前記信頼できる実行環境内の前記第１のサブネット・モデルを暗号解読し、前記信頼できる実行環境内の前記第１のサブネット・モデルを実行することと、
前記プライバシーが強化された深層学習システム・フレームワークによって、暗号化された入力データを前記クライアント・コンピューティング・デバイスから受信することと、
前記プライバシーが強化された深層学習システム・フレームワークによって、前記暗号化された入力データを前記信頼できる実行環境に読み込むことと、
前記プライバシーが強化された深層学習システム・フレームワークによって、前記信頼できる実行環境内で実行される前記第１のサブネット・モデルを使用して、前記信頼できる実行環境内の前記入力データを暗号解読して処理することと
を含む、方法。
【請求項２】
前記ニューラル・ネットワークが少なくとも前記第１のサブネット・モデルおよび第２のサブネット・モデルに分割され、前記第１のサブネット・モデルが、前記ニューラル・ネットワークの入力層および前記ニューラル・ネットワーク・モデルの１つまたは複数の中間層を含むＦｒｏｎｔＮｅｔサブネット・モデルであり、前記第２のサブネット・モデルが、前記ニューラル・ネットワークの出力層および前記ニューラル・ネットワーク・モデルの１つまたは複数の中間層を含むＢａｃｋＮｅｔサブネット・モデルである、請求項１に記載の方法。
【請求項３】
前記ＦｒｏｎｔＮｅｔサブネット・モデルに含まれる最後の中間層を示す前記ニューラル・ネットワーク内の分割点が、前記ニューラル・ネットワークへの入力に対応する機密情報を中間表現出力が含んでいない中間層として選択され、前記ニューラル・ネットワークの後続の中間層および前記出力層が前記ＢａｃｋＮｅｔサブネット・モデルに含まれる、請求項２に記載の方法。
【請求項４】
前記ニューラル・ネットワークを分割する前記ニューラル・ネットワーク内の最適な分割点を識別する自動分割ツールを使用して、前記ニューラル・ネットワークが自動的に分割され、前記最適な分割点が、前記ニューラル・ネットワークを分割する中間層を識別する、請求項２に記載の方法。
【請求項５】
前記信頼できる実行環境内で実行される前記第１のサブネット・モデルを使用する前記信頼できる実行環境内の前記入力データの前記処理が、前記入力データの処理の１つまたは複数の中間表現を生成し、前記方法が、
前記１つまたは複数の中間表現を前記ニューラル・ネットワークの第２のサブネット・モデルに入力することと、
前記１つまたは複数の中間表現を処理して結果データを生成することと、
前記結果データを出力することと
をさらに含む、請求項１に記載の方法。
【請求項６】
前記第２のサブネット・モデルが、前記信頼できる実行環境の外部で実行される、請求項５に記載の方法。
【請求項７】
前記結果データが、Ｎ個の異なる可能性のあるクラスにわたる確率分布を表すＮ次元実数値ベクトルであり、前記方法が、前記Ｎ次元実数値ベクトルから、対応する確率値を有する上位ｋ個のクラスを選択し、前記クライアント・コンピューティング・デバイスに返すことをさらに含む、請求項５に記載の方法。
【請求項８】
前記結果データに基づいて深層学習動作を実行するために、前記結果データが深層学習システムに出力される、請求項５に記載の方法。
【請求項９】
前記深層学習動作が深層学習画像認識動作であり、前記入力データが入力画像であり、前記結果データが、複数の事前に定義されたクラスのうちの１つへの前記入力画像の分類である、請求項８に記載の方法。
【請求項１０】
前記信頼できる実行環境が、前記信頼できる実行環境の外部からの前記暗号解読された第１のサブネット・モデルおよび暗号解読された入力データへのアクセスを防ぐ、請求項１に記載の方法。
【請求項１１】
コンピュータ可読プログラムが格納されているコンピュータ可読記憶媒体を備えているコンピュータ・プログラム製品であって、前記コンピュータ可読プログラムが、データ処理システム上で実行された場合に、前記データ処理システムに、プライバシーが強化された深層学習システム・フレームワークを実装させ、前記プライバシーが強化された深層学習システム・フレームワークが、
ニューラル・ネットワークの暗号化された第１のサブネット・モデルをクライアント・コンピューティング・デバイスから受信することであって、前記第１のサブネット・モデルが、前記ニューラル・ネットワークの複数のパーティションのうちの１つのパーティションである、前記受信することと、
前記暗号化された第１のサブネット・モデルを前記プライバシーが強化された深層学習システム・フレームワークの信頼できる実行環境に読み込むことと、
前記信頼できる実行環境内の前記第１のサブネット・モデルを暗号解読し、前記信頼できる実行環境内の前記第１のサブネット・モデルを実行することと、
暗号化された入力データを前記クライアント・コンピューティング・デバイスから受信することと、
前記暗号化された入力データを前記信頼できる実行環境に読み込むことと、
前記信頼できる実行環境内で実行される前記第１のサブネット・モデルを使用して、前記信頼できる実行環境内の前記入力データを暗号解読して処理することと
を実行するように構成されている、コンピュータ・プログラム製品。
【請求項１２】
前記ニューラル・ネットワークが少なくとも前記第１のサブネット・モデルおよび第２のサブネット・モデルに分割され、前記第１のサブネット・モデルが、前記ニューラル・ネットワークの入力層および前記ニューラル・ネットワーク・モデルの１つまたは複数の中間層を含むＦｒｏｎｔＮｅｔサブネット・モデルであり、前記第２のサブネット・モデルが、前記ニューラル・ネットワークの出力層および前記ニューラル・ネットワーク・モデルの１つまたは複数の中間層を含むＢａｃｋＮｅｔサブネット・モデルである、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１３】
前記ＦｒｏｎｔＮｅｔサブネット・モデルに含まれる最後の中間層を示す前記ニューラル・ネットワーク内の分割点が、前記ニューラル・ネットワークへの入力に対応する機密情報を中間表現出力が含んでいない中間層として選択され、前記ニューラル・ネットワークの後続の中間層および前記出力層が前記ＢａｃｋＮｅｔサブネット・モデルに含まれる、請求項１２に記載のコンピュータ・プログラム製品。
【請求項１４】
前記ニューラル・ネットワークを分割する前記ニューラル・ネットワーク内の最適な分割点を識別する自動分割ツールを使用して、前記ニューラル・ネットワークが自動的に分割され、前記最適な分割点が、前記ニューラル・ネットワークを分割する中間層を識別する、請求項１２に記載のコンピュータ・プログラム製品。
【請求項１５】
前記信頼できる実行環境内で実行される前記第１のサブネット・モデルを使用する前記信頼できる実行環境内の前記入力データの前記処理が、前記入力データの処理の１つまたは複数の中間表現を生成し、前記方法が、
前記１つまたは複数の中間表現を前記ニューラル・ネットワークの第２のサブネット・モデルに入力することと、
前記１つまたは複数の中間表現を処理して結果データを生成することと、
前記結果データを出力することと
をさらに含む、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１６】
前記第２のサブネット・モデルが、前記信頼できる実行環境の外部で実行される、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１７】
前記結果データが、Ｎ個の異なる可能性のあるクラスにわたる確率分布を表すＮ次元実数値ベクトルであり、前記方法が、前記Ｎ次元実数値ベクトルから、対応する確率値を有する上位ｋ個のクラスを選択し、前記クライアント・コンピューティング・デバイスに返すことをさらに含む、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１８】
前記結果データに基づいて認知動作を実行するために、前記結果データが認知システムに出力される、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１９】
前記認知動作が認知画像認識動作であり、前記入力データが入力画像であり、前記結果データが、複数の事前に定義されたクラスのうちの１つへの前記入力画像の分類である、請求項１８に記載のコンピュータ・プログラム製品。
【請求項２０】
システムであって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合された少なくとも１つのメモリと
を備えており、前記少なくとも１つのメモリが、前記少なくとも１つのプロセッサによって実行された場合に、前記少なくとも１つのプロセッサに、プライバシーが強化された深層学習システム・フレームワークを実装させる命令を含んでおり、前記プライバシーが強化された深層学習システム・フレームワークが、
ニューラル・ネットワークの暗号化された第１のサブネット・モデルをクライアント・コンピューティング・デバイスから受信することであって、前記第１のサブネット・モデルが、前記ニューラル・ネットワークの複数のパーティションのうちの１つのパーティションである、前記受信することと、
前記暗号化された第１のサブネット・モデルを前記プライバシーが強化された深層学習システム・フレームワークの信頼できる実行環境に読み込むことと、
前記信頼できる実行環境内の前記第１のサブネット・モデルを暗号解読し、前記信頼できる実行環境内の前記第１のサブネット・モデルを実行することと、
暗号化された入力データを前記クライアント・コンピューティング・デバイスから受信することと、
前記暗号化された入力データを前記信頼できる実行環境に読み込むことと、
前記信頼できる実行環境内で実行される前記第１のサブネット・モデルを使用して、前記信頼できる実行環境内の前記入力データを暗号解読して処理することと
を実行するように構成されている、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、一般に、改良されたデータ処理装置および方法に関し、より詳細には、信頼できる実行環境を利用することによって、深層学習クラウド・サービスにおけるデータのプライバシーを強化するためのメカニズムに関する。
【０００２】
深層学習システムは、認知的作業を実行するときに人間の性能に近づくことができるため、人工知能（ＡＩ：artificial intelligence）サービスの一部として広く展開されている。深層学習は、非線形処理ユニットの複数の層の連鎖を特徴抽出および変換に使用する機械学習技術の一種である。連続する各層は、入力の前の層からの出力を使用する。深層学習システムは、教師あり（例えば、分類）学習メカニズムまたは教師なし（例えば、パターン解析）学習メカニズムあるいはその両方を使用してトレーニングされる。この学習は、異なるレベルの抽象化に対応する複数のレベルの表現に関して実行されてよく、これらのレベルは概念の階層を形成する。
【０００３】
最新の深層学習モデルは、人工ニューラル・ネットワークに基づくが、ディープ・ビリーフ・ネットワーク内のノードおよび深層ボルツマン・マシンなどの深層生成モデルにおいて層ごとに構造化された、命題式または潜在的変数を含むこともできる。深層学習では、各レベルが、その入力データをさらに少し抽象的な合成表現に変換するように学習する。顔画像認識アプリケーションでは、例えば、生の入力は、ピクセルを抽象化し、エッジをエンコードする第１の表現層、エッジの配置を構成してエンコードする第２の層、鼻および目をエンコードする第３の層、および画像が顔を含んでいるということを認識する第４の層を含む、ピクセルの行列であってよい。重要なことに、深層学習プロセスは、どの特徴をそれ自身のどのレベルに最適に配置するべきかを学習することができるが、ハンド・チューニングの必要性を完全になくすわけではない。例えば、異なる抽象度を提供するように、層の数および層のサイズを変えるために、ハンド・チューニングが使用されることがある。
【０００４】
「深層学習」の「深層」とは、データが変換される際に通る層の数のことを指す。さらに正確には、深層学習システムは、実質的なクレジット割当てパス（ＣＡＰ：credit assignment path）の深さを含む。ＣＡＰは、入力から出力への変換のチェーンである。ＣＡＰは、入力と出力との間の因果関係を説明する可能性がある。フィードフォワード・ニューラル・ネットワークの場合、ＣＡＰの深さは、ネットワークの深さであり、（出力層もパラメータ化されるため）隠れ層の数に１を加えた値である。信号が１つの層を２回以上通って伝搬することがある回帰型ニューラル・ネットワークの場合、ＣＡＰの深さは、無制限になる可能性がある。浅い学習を深層学習から分ける深さのしきい値に関して一般に合意されず、ほとんどの研究者は、深層学習が２を超えるＣＡＰの深さを含むということに合意している。深さ２のＣＡＰは、どの機能もエミュレートすることができるという意味で、普遍的近似になるということが示されている。深さ２を超える、より多くの層は、ネットワークの機能の近似の能力を増やさないが、追加の層は、特徴を学習することに役立つ。
【発明の概要】
【０００５】
この「発明の概要」は、概念の選択を簡略化された形態で導入するために提供されており、本明細書の「発明を実施するための形態」において、さらに説明される。この「発明の概要」は、請求される対象の重要な要因または不可欠な特徴を識別するよう意図されておらず、請求される対象の範囲の限定に使用されることも意図されていない。
【０００６】
１つの実施形態例では、少なくとも１つのプロセッサおよび少なくとも１つのメモリを備えているデータ処理システムにおける方法であって、少なくとも１つのメモリが、プライバシーが強化された深層学習システム・フレームワークを実装するように少なくとも１つのプロセッサを構成するために、少なくとも１つのプロセッサによって実行される命令を含んでいる。この方法は、プライバシーが強化された深層学習システム・フレームワークによって、ニューラル・ネットワークの暗号化された第１のサブネット・モデルをクライアント・コンピューティング・デバイスから受信することを含む。ここで、第１のサブネット・モデルは、ニューラル・ネットワークの複数のパーティションのうちの１つのパーティションである。この方法は、プライバシーが強化された深層学習システム・フレームワークによって、暗号化された第１のサブネット・モデルをプライバシーが強化された深層学習システム・フレームワークの信頼できる実行環境に読み込むことをさらに含む。さらに、この方法は、プライバシーが強化された深層学習システム・フレームワークによって、信頼できる実行環境内の第１のサブネット・モデルを暗号解読することと、信頼できる実行環境内の第１のサブネット・モデルを実行することとを含む。加えて、この方法は、プライバシーが強化された深層学習システム・フレームワークによって、暗号化された入力データをクライアント・コンピューティング・デバイスから受信することと、プライバシーが強化された深層学習システム・フレームワークによって、暗号化された入力データを信頼できる実行環境に読み込むこととを含む。さらに、この方法は、プライバシーが強化された深層学習システム・フレームワークによって、信頼できる実行環境内で実行される第１のサブネット・モデルを使用して、信頼できる実行環境内の入力データを暗号解読して処理することを含む。
【０００７】
他の実施形態例では、コンピュータ可読プログラムを含んでいるコンピュータ使用可能媒体またはコンピュータ可読媒体を備えているコンピュータ・プログラム製品が提供される。このコンピュータ可読プログラムは、コンピューティング・デバイス上で実行された場合、コンピューティング・デバイスに、方法の実施形態例に関して上で概説された動作のうちのさまざまな動作およびその組合せを実行させる。
【０００８】
さらに別の実施形態例では、システム／装置が提供される。このシステム／装置は、１つまたは複数のプロセッサおよび１つまたは複数のプロセッサに結合されたメモリを備えてよい。このメモリは命令を含んでよく、これらの命令は、１つまたは複数のプロセッサによって実行された場合、１つまたは複数のプロセッサに、方法の実施形態例に関して上で概説された動作のうちのさまざまな動作およびその組合せを実行させる。
【０００９】
本発明の実施形態例の以下の詳細な説明を考慮して、そのような詳細な説明の中で、本発明のこれらおよびその他の特徴および優位性が説明され、または当業者にとって明らかになるであろう。
【００１０】
本発明ならびに本発明の最もよく使われる使用方法とその他の目的、および優位性は、実施形態例の以下の詳細な説明を、添付の図面と一緒に読みながら参照することによって、最も良く理解されるであろう。
【図面の簡単な説明】
【００１１】
【図１】一実施形態例に従って、プライバシー強化深層学習クラウド・サービスにおいてプライバシー強化深層ニューラル・ネットワーク（ＤＮＮ：deep neural network）の分類を実装するためのアルゴリズムを概説する例示的な図である。
【図２】一実施形態例に従って、プライバシー強化深層学習クラウド・サービスの複数のコンポーネント間の例示的な相互作用を概説するブロック図である。
【図３】一実施形態例に従って、自動分割ツールのニューラル・ネットワーク評価フレームワークの二重の畳み込みニューラル・ネットワーク・アーキテクチャを示す例示的な図である。
【図４】実施形態例の態様が実装されてよい例示的な分散データ処理システムの図的表現を示す図である。
【図５】実施形態例の態様が実装されてよい１つの例示的なデータ処理システムのブロック図である。
【図６】一実施形態例に従って、プライバシー強化深層学習クラウド・コンピューティング・サービスを構成して利用するための例示的な動作を概説するフローチャートである。
【図７】本発明の実施形態に従ってクラウド・コンピューティング環境を示す図である。
【図８】本発明の実施形態に従って抽象モデル・レイヤを示す図である。
【発明を実施するための形態】
【００１２】
深層学習（または人工知能（ＡＩ））システムおよびサービスは、深層学習システムをそれらのバックエンドのエンジンの一部として利用するが、評判の良い深層学習またはＡＩサービス・プロバイダの場合でも、エンド・ユーザのプロビジョニングされる入力データの機密性に関する懸念がまだ存在する。すなわち、セキュリティ違反、悪用された脆弱性、怠慢、または内部関係者に起因して、機密ユーザ・データの偶発的な開示が予期せずに発生する可能性があるという懸念が存在する。
【００１３】
深層学習（またはＡＩ）クラウド・プロバイダは、典型的には、２つの独立した深層学習（ＤＬ：deep learning）サービス、すなわち、トレーニングおよび推論を提供する。エンド・ユーザは、自分のトレーニング・データをトレーニング・サービスに供給することによって、カスタマイズされたＤＬモデルを最初から構築することができる。エンド・ユーザが十分なトレーニング・データを所有していない場合、エンド・ユーザは、類似するタスクを対象にする既存のモデルを再利用して再トレーニングするために、転移学習手法を活用することもできる。エンド・ユーザは、自分のトレーニング済みモデルを取得した後に、そのモデルを深層ニューラルネットワーク（ＤＮＮ）のハイパーパラメータおよび重みの形態で推論サービス（トレーニング・サービスの時点では、異なるＡＩサービス・プロバイダによってホストされてよい）にアップロードし、自分のＡＩクラウド・アプリケーション・プログラミング・インターフェイス（ＡＰＩ：application programming interfaces）をブートストラップすることができる。これらのＡＰＩは、モバイル・アプリケーションまたはデスクトップ・アプリケーションにさらに統合され得る。実行時に、エンド・ユーザは、自分の入力データを使用してリモートＡＰＩを呼び出し、予測結果を推論サービスから受信することができる。
【００１４】
エンド・ユーザは、サービス・プロバイダが、信頼することができ、頼ることができるというということを常に期待するが、エンド・ユーザの入力データのプライバシーに関して、まだ懸念を抱いていることがある。悪意ある攻撃、怠慢なシステム管理者による誤操作、または内部関係者によって行われたデータ窃盗に起因して、機密データの偶発的な開示が予期せずに発生する可能性がある。昇格した権限を有する敵対者は、機密データをディスク（保存データ）から、またはメイン・メモリ（実行時のデータ）から抽出できることがある。近年、このような種類の多数のデータ漏洩が観察されている。ＡＩクラウド・サービスのユーザ入力データにも、同様の事件が発生する可能性がある。加えて、深層学習は、手作りの特徴とは対照的に、画像、音声、およびビデオなどの生の入力データを処理するということによって差別化されることが多い。このことは、入力データが漏洩または侵害されるかどうかというプライバシーに関する懸念をさらに引き起こす。
【００１５】
実施形態例は、深層学習システム（深層学習推論パイプラインとも呼ばれる）における機密情報開示を軽減するためのプライバシー強化メカニズムを提供する。実施形態例は、深層学習推論パイプラインをＦｒｏｎｔＮｅｔニューラル・ネットワーク・モデル（本明細書では「ＦｒｏｎｔＮｅｔ」と呼ばれる）およびＢａｃｋＮｅｔニューラル・ネットワーク・モデル（本明細書では「ＢａｃｋＮｅｔ」と呼ばれる）に分割し、クラウド・インフラストラクチャ上で信頼できる実行環境手法を活用して、ＦｒｏｎｔＮｅｔモデルにおいて、ユーザ入力の機密性および完全性を暗号によって保護する。実施形態例は、ユーザがＦｒｏｎｔＮｅｔとＢａｃｋＮｅｔとの間の分割点を定義できるようにする。一部の実施形態例では、ユーザ入力のプライバシー保護と深層学習推論パイプラインの性能要件との間にバランスが存在するように、ＦｒｏｎｔＮｅｔとＢａｃｋＮｅｔとの間の分割点の自動決定を可能にする、自動メカニズムが提供される。実施形態例の得られたプライバシー強化メカニズムは、許容できる性能オーバーヘッドを伴って、最大のプライバシー保証を実現する。
【００１６】
深層学習推論パイプライン（または深層学習ニューラル・ネットワーク）の層状構造に基づいて、実施形態例は、深層学習ニューラル・ネットワークを、前述したように、各々がＦｒｏｎｔＮｅｔおよびＢａｃｋＮｅｔと呼ばれる２つの独立したサブネット・モデルに分割する。数学的には、深層ニューラル・ネットワーク（ＤＮＮ）は、入力ｘを出力ｙにマッピングする関数Ｆ＊（すなわち、ｙ＝Ｆ＊（ｘ；θ））として定義することができ、ここでθは、ＤＮＮをトレーニングするときにトレーニング段階において学習されるパラメータを表す。関数Ｆ＊は、ｎ個（ネットワークがｎ個の層を含んでいると仮定する）の副関数Ｄｉから成り、ここで、ｉ∈［１，ｎ］である。Ｆｉは、層ｉでの入力ｘｉを出力ｙｉにマッピングする。これらの副関数は、チェーンで接続される。したがって、ｙ＝Ｆ＊（ｘ；θ）＝ＦｎＦｎ−１．．．Ｆ１（ｘ）である。ｍ∈［１，ｎ］である場合、第ｍの層でＤＮＮを分割した後に、ＦｒｏｎｔＮｅｔサブネット・モデルの関数をΦ：Ｘ→ＩＲとして表すことができる。Ｘは、特定の深層ニューラル・ネットワークに適用可能な入力空間であり、ＩＲは、中間表現（ＩＲ：intermediate representations）の出力空間である。ＩＲ＝Φ（ｘ；θΦ）＝ＦｍＦｍ−１．．．Ｆ１（ｘ）およびその出力ＩＲは、ＦｒｏｎｔＮｅｔサブネット・モデルから計算された中間表現（中間特徴マップ）である。ＢａｃｋＮｅｔサブネット・モデルの関数λはλ（ＩＲ；θλ）＝ＦｎＦｎ−１．．．Ｆｍ＋１（ＩＲ）であり、ここでＩＲは、ＦｒｏｎｔＮｅｔサブネット・モデルからＢａｃｋＮｅｔサブネット・モデルへの入力である。
【００１７】
ＦｒｏｎｔＮｅｔサブネット・モデルへのエンド・ユーザの入力に対する不正アクセスを獲得しようとし得る敵対者は、元の機密の入力ｘを再構築するために、何らかの背景的知識Ｂを持っている可能性があるということが仮定される。背景的知識は、（１）ユーザ入力の専門知識（例えば、入力ファイルの種類、自然画像事前分布（natural image priors））、（２）確率行列Ｐ＝｛．．．，ｐｉｊ，．．．｝によって表すことができるｘのすべてのビットの分布の知識を含み、ここでｐｉｊは、ｘの第ｉのビットが値ｊを取る確率であり、１≦ｉ≦｜ｘ｜およびｊ∈Ωであり、ここでΩはエンコーディング・アルファベット（encoding alphabet）であり、∀ｉ，Σｊｐｉｊ＝１である。
【００１８】
敵対者は、ＩＲ∈ｘのＩＲ、および背景的知識Ｂを前提として、推論の入力ｘを再構築することを目指している。敵対者は、ｘの再構成済みバージョンである
【数１】
2021531533.tif 000003
（以降ｘティルドと記載する）
を返すための攻撃戦略Ａを考案することができる。攻撃戦略Ａは、中間表現を視覚化的に認識することから、逆モデルを近似することによって高度な入力再構築手法を活用することにまで、及ぶことがある。ＦｒｏｎｔＮｅｔサブネット・モデルの表現関数Φ（．）は、攻撃Ａ、背景的知識Ｂ、および次の中間表現ＩＲが存在する場合に、ｘのε−プライバシーを侵害すると見なされる。
【００１９】
【数２】
2021531533.tif 000004
ここで、εは、ＩＲを観察する前後でのｘとｘティルドとの間の距離の境界を示すためのプライバシー・パラメータであり、ε∈［０  １］である。ｄｉｓｔは、元の入力ｘと再構築された入力ｘティルドとの間の距離を測定する。具体的には、
【数３】
2021531533.tif 000005
は、敵対者の背景的知識Ｂのみに基づいてｘティルドが再構築されると見なし、一方
【数４】
2021531533.tif 000006
では、敵対者の背景的知識Ｂおよび観察されたＩＲの両方に基づいてｘティルドが再構築される。方程式１は、敵対者がｘの中間表現ＩＲを取得した後に、ｘティルドとｘとの間の距離を大幅に減らすことができる場合に、真の推論の入力ｘのプライバシーが侵害されるということを示している。
【００２０】
上で定義されているように、ＦｒｏｎｔＮｅｔサブネット・モデルの表現関数はＩＲ＝Φ（ｘ；θΦ）であり、ＢａｃｋＮｅｔはｙ＊＝λ（Φ（ｘ；θΦ）；θλ）である。ネットワークの分割に従って、元のＤＮＮのパラメータθがθΦおよびθλに分割される。ＦｒｏｎｔＮｅｔサブネット・モデルの出力形状は、対応するＢａｃｋＮｅｔサブネット・モデルの入力形状と互換性がある。ＩＲは、ＦｒｏｎｔＮｅｔサブネット・モデルの出力として配信され、結果ｙ＊を取得するための計算を続行する後続のＢａｃｋＮｅｔサブネット・モデルへの入力になる。同じ入力ｘを前提として、ｙ＊が、分割前の元のＤＮＮの出力であるｙと同等になるべきであるということが期待される。
【００２１】
クラウド側で、ＦｒｏｎｔＮｅｔサブネット・モデル（または単に「ＦｒｏｎｔＮｅｔ」）およびエンド・ユーザからの入力が信頼できる実行環境（ＴＥＥ：Trusted Execution Environment）に読み込まれ、信頼できる実行環境は、安全なリモート計算のための保護されたメモリの機密性、完全性、および鮮度を保証することができる。１つの実施形態例では、ＴＥＥは、Ｉｎｔｅｌ  ＳＧＸ  ｅｎｃｌａｖｅの実装によって提供され得る。しかし、実施形態例は、例えば、ＳＧＸ  ｅｎｃｌａｖｅに限定されず、ＩＢＭ  Ｐｏｗｅｒ  ＳｙｓｔｅｍｓのＰｒｏｔｅｃｔｅｄ  Ｅｘｅｃｕｔｉｏｎ  Ｆａｃｉｌｉｔｙ、およびＩＢＭ  Ｚ  ＳｙｓｔｅｍｓのＳｅｃｕｒｅ  Ｓｅｒｖｉｃｅ  Ｃｏｎｔａｉｎｅｒ、ＡＲＭ  ＴｒｕｓｔＺｏｎｅ、ならびにＡＭＤ  Ｓｅｃｕｒｅ  Ｍｅｍｏｒｙ  ＥｎｃｒｙｐｔｉｏｎおよびＳｅｃｕｒｅ  Ｅｎｃｒｙｐｔｅｄ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎなどの、任意の適切なＴＥＥを使用して実装され得る。ＴＥＥのメモリ・アクセス制御メカニズムおよびメモリ暗号化エンジン（ＭＥＥ：memory encryption engine）が保護され、特権を持つシステム・ソフトウェアまたはシステムのその他の信頼できないコンポーネントからのすべての非ＴＥＥアクセスが、拒否される。したがって、ＦｒｏｎｔＮｅｔでのユーザ入力の計算プロセスが、特定のＣＰＵパッケージの境界内に保たれ、外界から見えなくなる。ＴＥＥ内の計算は、ＴＥＥの外部で実行されている相手方と同じ動作のみを示して、当然ながらまだ、特定の推論タスクのために特徴を抽出することに専念する。さらに、ＴＥＥは、リモートの関係者（すなわち、ＡＩクラウド・サービスのエンド・ユーザ）に対して、信頼できるハードウェア・プラットフォームによってホストされている安全な環境内でＦｒｏｎｔＮｅｔが実行されているということを、証明することができる。
【００２２】
ユーザ入力の内容を、クラウド・サーバ上で公開されることから保護するために、エンド・ユーザは、自分の対称鍵を使用して入力を暗号化し、暗号化されたファイルをクラウド・サービスにアップロードしてよい。ＴＥＥでのリモートの証明の終了後に、エンド・ユーザは、安全な通信チャネルを介して、対称鍵をＴＥＥにプロビジョニングすることができる。次に、ＴＥＥ内のメカニズムが、ユーザ入力を暗号解読し、この入力を、同じＴＥＥに読み込まれているＦｒｏｎｔＮｅｔサブネット・モデルに渡す。加えて、実施形態例は、認証された暗号化を実現するために、例えばガロア・カウンタ・モード（ＧＣＭ：Galois Counter Mode）または種々のその他の認証された暗号化メカニズムのうちのいずれかなどの、認証された暗号化メカニズムを活用してよい。したがって、実施形態例は、正規のエンド・ユーザを認証し、サービスを悪用する攻撃を無効にすることができる。ＴＥＥによって実装されているＦｒｏｎｔＮｅｔサブネット・モデルをブラックボックス・サービスとして扱い、照会を使用してモデル情報を抽出する傾向がある敵対者は、正規のエンド・ユーザからの適切な対称鍵を使用して自分の入力を暗号化する必要がある。エンド・ユーザの鍵が漏洩していないと仮定すると、実施形態例は、完全性チェックに失敗するこれらの違法な要求に応えることを拒否し、ユーザ入力の再構築にとって極めて重要であると考えられるＦｒｏｎｔＮｅｔサブネット・モデル情報の漏洩を防ぐことができる。ＴＥＥ内のＦｒｏｎｔＮｅｔサブネット・モデルの暗号化および実装を介してユーザ入力およびＦｒｏｎｔＮｅｔサブネット・モデルの両方の機密性を保護することによって、すべての最先端の入力再構築方法は、無効になるであろう。
【００２３】
実施形態例のさまざまな態様の説明を開始する前に、この説明全体にわたって、「メカニズム」という用語が、さまざまな動作、および機能などを実行する本発明の要素を指すために使用されるということが、最初に理解されるべきである。「メカニズム」は、この用語が本明細書において使用されるとき、装置、手順、またはコンピュータ・プログラム製品の形態での、実施形態例の機能または態様の実装であってよい。手順の場合、この手順は、１つまたは複数のデバイス、装置、コンピュータ、またはデータ処理システムなどによって実装される。コンピュータ・プログラム製品の場合、特定の「メカニズム」に関連付けられた機能を実装するため、または特定の「メカニズム」に関連付けられた動作を実行するために、コンピュータ・プログラム製品内またはコンピュータ・プログラム製品上で具現化されたコンピュータ・コードまたは命令によって表されたロジックが、１つまたは複数のハードウェア・デバイスによって実行される。したがって、本明細書に記載されたメカニズムは、特殊なハードウェア、汎用ハードウェア上で実行されるソフトウェア、命令が特殊なハードウェアまたは汎用ハードウェアによって容易に実行可能になるように媒体に格納されたソフトウェア命令、機能を実行するための手順または方法、あるいはこれらのいずれかの組合せとして実装され得る。
【００２４】
本説明および特許請求の範囲では、実施形態例の特定の特徴および要素に関して、「１つの」、「〜のうちの少なくとも１つ」、および「〜のうちの１つまたは複数」という用語を使用することがある。これらの用語および語句が、特定の実施形態例に存在する特定の特徴または要素のうちの少なくとも１つが存在するが、２つ以上が存在する可能性もあるということを述べるよう意図されているということが、理解されるべきである。すなわち、これらの用語／語句は、説明または特許請求の範囲を、存在している単一の特徴／要素に限定するよう意図されておらず、そのような特徴／要素が複数存在することを必要とするようにも意図されていない。反対に、これらの用語／語句は、少なくとも単一の特徴／要素のみを必要とし、そのような特徴／要素は、説明および特許請求の範囲内に複数存在する可能性がある。
【００２５】
さらに、「エンジン」という用語の使用が、本発明の実施形態および特徴を説明することに関して本明細書において使用された場合、エンジンに起因するか、またはエンジンによって実行されるか、あるいはその両方である動作、ステップ、プロセスなどを実現するため、または実行するため、あるいはその両方のためのいずれかの特定の実装を制限するよう意図されていないということが、理解されるべきである。エンジンは、機械可読メモリに読み込まれるか、または格納されて、プロセッサによって実行される適切なソフトウェアと組み合わせた一般的なプロセッサまたは特殊なプロセッサあるいはその両方の任意の使用を含むが、これらに限定されない、指定された機能を実行するソフトウェア、ハードウェア、またはファームウェア、あるいはその組合せであってよいが、これらに限定されない。さらに、特定のエンジンに関連付けられたすべての名前は、特に指定されない限り、参照の便宜のためであり、特定の実装を制限するよう意図されていない。さらに、あるエンジンに起因する任意の機能が、同じ種類または異なる種類の別のエンジンの機能に組み込まれるか、もしくは結合されるか、またはその両方が行われるか、あるいはさまざまな構成の１つまたは複数のエンジンにわたって分散されて、複数のエンジンによって同じように実行され得る。
【００２６】
加えて、以下の説明では、実施形態例の種々の要素の複数のさまざまな例を使用して、実施形態例の例示的な実装をさらに説明し、実施形態例のメカニズムの理解を助けているということが、理解されるべきである。これらの例は、非限定的であるよう意図されており、実施形態例のメカニズムの実装のさまざまな可能性を網羅していない。本説明を考慮して、これらの種々の要素に関して、本発明の思想および範囲から逸脱することなく、本明細書において提供された例に加えて、またはそれらの例を置き換えて利用できる、多くのその他の代替の実装が存在するということが、当業者にとって明らかであろう。
【００２７】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいる１つまたは複数のコンピュータ可読ストレージ媒体を含んでよい。
【００２８】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：random access memory）、読取り専用メモリ（ＲＯＭ：read-only memory）、消去可能プログラマブル読取り専用メモリ（ＥＰＲＯＭ：erasable programmable read-only memoryまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：static random access memory）、ポータブル・コンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ：compact disc read-only memory）、デジタルバーサタイルディスク（ＤＶＤ：digital versatile disk）、メモリ・スティック、フロッピー（Ｒ）・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組合せを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を介して伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【００２９】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス／処理デバイスへ、またはネットワーク（例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組合せ）を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備え得る。各コンピューティング・デバイス／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス／処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【００３０】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ：instruction-set-architecture）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、またはＣ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードまたはオブジェクト・コードのいずれかであってよい。このコンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上で部分的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ：local area network）または広域ネットワーク（ＷＡＮ：wide area network）を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対して行われ得る。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ：field-programmable gate arrays）、またはプログラマブル・ロジック・アレイ（ＰＬＡ：programmable logic arrays）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行し得る。
【００３１】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組合せが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【００３２】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示できるものであってもよい。
【００３３】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれ、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で一連の動作可能なステップを実行させるものであってもよい。
【００３４】
図内のフローチャートおよびブロック図は、本発明の種々の実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、１つまたは複数の規定されたロジック機能を実装するための１つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表し得る。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生し得る。例えば、連続して示された２つのブロックは、実際には、含まれている機能に依って、実質的に同時に実行されるか、または場合によっては逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組合せは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【００３５】
図１および図２は、一実施形態例に従ってプライバシー強化深層学習クラウド・サービスの一実施形態例を示す例示的な図である。図１は、一実施形態例に従って、プライバシー強化深層学習クラウド・サービスにおいてプライバシー強化深層学習ニューラル・ネットワーク（ＤＮＮ）の分類を実装するためのアルゴリズムを概説する例示的な図である。図２は、一実施形態例に従って、プライバシー強化深層学習クラウド・サービスの複数のコンポーネント間の例示的な相互作用を概説するブロック図である。以下では、一実施形態例に従って、プライバシー強化深層学習クラウド・サービスの例示的な動作が図１および図２の両方を参照して説明される。
【００３６】
図１および図２に示されているように、プライバシー強化深層学習クラウド・サービスの実施形態例のワークフローは、クライアント・コンピューティング・デバイス側（図２の左側）で、エンド・ユーザが、暗号化された入力および事前トレーニング済みモデル２００の両方を、対称鍵暗号化またはその他の暗号化方法を使用して暗号化された元のＦｒｏｎｔＮｅｔサブネット・モデル１０５と共に提供し、それによって、暗号化されたＦｒｏｎｔＮｅｔサブネット・モデル２１０を生成することを含む。図２は、クライアント側の動作を暗号化されたＦｒｏｎｔＮｅｔサブネット・モデル２１０および暗号化された入力データをプライバシー強化深層学習クラウド・サービス（図２の右側）に提供することのみとして示しているが、これは、ＢａｃｋＮｅｔサブネット・モデル２２０がクライアント側の動作によってすでに提供され、プライバシー強化深層学習クラウド・サービスのサーバ・コンピューティング・デバイスに読み込まれている実施形態を仮定しているということに、注意するべきである。前述したように、ＢａｃｋＮｅｔサブネット・モデル２２０が暗号化される必要がないということが、理解されるべきである。
【００３７】
したがってエンド・ユーザは、事前トレーニング済み深層学習モデル２００（例えば、ＤＮＮまたはその他のＡＩモデル）を、ＦｒｏｎｔＮｅｔサブネット・モデル２１０およびＢａｃｋＮｅｔサブネット・モデル２２０に分割する。事前トレーニング済み深層学習モデル（例えば、ＤＮＮまたはその他のＡＩモデル）が分割される点は、クライアント・コンピューティング・デバイスを介してエンド・ユーザによって手動で決定されるか、またはクライアント・コンピューティング・デバイス上で実行される自動メカニズム（後述される実施形態例の自動分割メカニズムなど）によって決定され得る。ＦｒｏｎｔＮｅｔサブネット・モデル２１０は、秘密に保たれ、エンド・ユーザに関連付けられた対称鍵を使用して暗号化される（図２のステップ１）。前述したように、ＢａｃｋＮｅｔサブネット・モデル２２０は、そのような秘密および暗号化によって保護される必要がなく、代わりにＢａｃｋＮｅｔサブネット・モデル２２０の構成および重みが、プライバシー強化深層学習クラウド・サービスのプロバイダと共有され得る。しかし、一部の実施形態例では、ＢａｃｋＮｅｔサブネット・モデル２２０は、秘密に維持され、同じ対称鍵または別の暗号鍵もしくは暗号化方法を使用して暗号化されてもよい。示された例では、ＢａｃｋＮｅｔサブネット・モデル２２０は、性能上の制約のため、秘密ではなく、暗号化されず、または信頼できる実行環境（ＴＥＥ）２３０内で実行されない。しかし、これらの性能上の制約が取り除かれるか、または緩和された場合、ＦｒｏｎｔＮｅｔサブネット・モデル２１０と同様の方法で、ＢａｃｋＮｅｔサブネット・モデル２２０のパラメータ・データが保護されることも可能である。通信中のＢａｃｋＮｅｔサブネット・モデル２２０および保存されているＢａｃｋＮｅｔサブネット・モデル２２０を保護するために、標準的な暗号化メカニズムおよびプロトコルが使用され得る。
【００３８】
したがって、一部の実施形態例では、ＴＥＥ２３０内で深層ニューラル・ネットワーク全体が暗号化されて実行され得る。示された実施形態例では、（１）ＴＥＥ２３０のメモリ・サイズ制限、（２）ＴＥＥ２３０でのコード実行の追加の性能オーバーヘッド、および（３）ＴＥＥ２３０内に（最適な分割点を超えて）より多くの層を取り囲むことによる追加のプライバシーの恩恵がないことのため、深層ニューラル・ネットワーク（ＤＮＮ）が分割される。さらに、実施形態例では、ＴＥＥ２３０の外部でＢａｃｋＮｅｔサブネット・モデル２２０を実行することによって、フレームワークは、ＡＩアクセラレーテッド・ハードウェア（AI-accelerated hardware）（例えば、ＧＰＵ）を活用して深層学習の性能を向上させることを可能にする。
【００３９】
ＦｒｏｎｔＮｅｔサブネット・モデル２１０に加えて、エンド・ユーザは、クライアント・コンピューティング・デバイスで、対称鍵を使用して元の入力２１２も暗号化し、ＴＥＥ２３０内で実行される暗号化されたＦｒｏｎｔＮｅｔサブネット・モデル２１０によって処理するために、プライバシー強化深層学習クラウド・サービスのサーバ・コンピューティング・デバイスに送信するための暗号化された入力２１４を生成する（図２のステップ１）。示された例では、図２に示されている例示的な入力が、元の画像２１２であり、これはその後、対称鍵を使用して暗号化され、暗号化された画像２１４を生成し、この暗号化された画像２１４がプライバシー強化深層学習クラウド・サービスのサーバ・コンピューティング・システム（以下では、単に深層学習クラウド・サービスと呼ぶ）に実際に安全に送信されるように、プライバシー強化深層学習クラウド・サービスが画像分類サービスを提供するということが仮定される。
【００４０】
エンド・ユーザは、クライアント・コンピューティング・デバイスを介して、暗号化されたＦｒｏｎｔＮｅｔサブネット・モデル２１０をクラウド上の深層学習クラウド・サービスにアップロードする（図２のステップ２）。エンド・ユーザは、深層学習クラウド・サービスを開始するために、暗号化されたＦｒｏｎｔＮｅｔサブネット・モデル２１０を深層学習クラウド・サービスに１回だけ提供する必要がある。ＦｒｏｎｔＮｅｔサブネット・モデル２１０を提供した後に、深層学習クラウド・サービスが、ＦｒｏｎｔＮｅｔサブネット・モデル２１０をＴＥＥ２３０に読み込み、ＴＥＥ２３０が、暗号化された入力を処理するために安全な方法で実行される。このようにして、エンド・ユーザは、深層学習クラウド・サービスによって処理するために、クライアント・コンピューティング・デバイスを介して暗号化された入力２１４を継続的にアップロードすることができ、例えば、画像分類用の複数の暗号化された画像をアップロードすることができる。
【００４１】
クラウド側で、暗号化された入力２１４および暗号化されたＦｒｏｎｔＮｅｔモデル２１０を受信した後に、プライバシー強化深層学習クラウド・サービスが、信頼できる実行環境（ＴＥＥ）２３０をインスタンス化する。１つの実施形態例では、図１に示されているように、ＴＥＥ２３０は、図１に示されている疑似コードの行１７でコマンドＩＮＩＴ  ＥＮＣＬＡＶＥを使用して開始されるＩｎｔｅｌ  ＳＧＸ  ｅｎｃｌａｖｅであり、暗号化されたＦｒｏｎｔＮｅｔサブネット・モデル２１０をｅｎｃｌａｖｅ（ＴＥＥ２３０）に読み込む（図１の行１８でのＥＮＣＬＡＶＥ＿ＬＯＡＤ＿ＥＮＣ＿ＭＯＤＥＬ）（図２のステップ３）。深層学習クラウド・サービスは、深層学習クラウド・サービスのＡＰＩ関数（例えば、この実施形態例では、画像分類ＡＰＩ関数）を呼び出し（図１の行１９でのＥＮＣＬＡＶＥ＿ＩＮＦＥＲＥＮＣＥ＿ＥＮＣ＿ＩＭＧ）、暗号化された入力２１４を関数の引数としてｅｎｃｌａｖｅ（ＴＥＥ２３０）に安全にコピーする。
【００４２】
エンド・ユーザは、クライアント・コンピューティング・デバイスおよびＴＥＥ２３０（例えば、ＳＧＸ  ｅｎｃｌａｖｅ）を介して、リモートの証明手順を実行し得る（図２のステップ４）。ＴＥＥ２３０（例えば、ＳＧＸ  ｅｎｃｌａｖｅ）は、エンド・ユーザに対して、標準的な証明プロトコルを使用して、信頼できるクラウド・サービス・プロバイダからの正規のコード／データを使用して信頼できるハードウェア・プラットフォーム上で実行しているということを、証明することができる。代替として、エンド・ユーザのクライアント・コンピューティング・デバイスとＴＥＥ２３０との間で、トランスポート層セキュリティ（ＴＬＳ：Transport Layer Security）セッションが直接インスタンス化され得る。
【００４３】
安全なトランスポート層セキュリティ（ＴＬＳ）通信チャネルの作成後に、エンド・ユーザは、クライアント・コンピューティング・デバイスを介して、クラウド上で対称鍵をＴＥＥ２３０に直接プロビジョニングすることができる（図１の行５でのＥＮＣＬＡＶＥ＿ＧＥＴ＿ＫＥＹＳ）（図２のステップ５）。ＴＥＥ２３０内で、例えば、ＧＣＭ認証タグをチェックすることによって、またはその他の認証／検証動作を実行することによって、ＦｒｏｎｔＮｅｔサブネット・モデル２１０および入力２１４の両方の完全性が検証され、エンド・ユーザからプロビジョニングされた対称鍵を使用して、入力２１４と共に（図１の行１０でのＥＮＣＬＡＶＥ＿ＤＥＣＲＹＰＴ）ＦｒｏｎｔＮｅｔサブネット・モデル２１０が暗号解読される（図１の行６でのＥＮＣＬＡＶＥ＿ＤＥＣＲＹＰＴ）（図２のステップ６）。
【００４４】
深層学習クラウド・サービスのサーバ・コンピューティング・システムで、ＦｒｏｎｔＮｅｔサブネット・モデル２１０に基づいて深層ニューラル・ネットワーク２３５が構築され（図１の行７でのＥＮＣＬＡＶＥ＿ＬＯＡＤ＿ＷＥＩＧＨＴＳ）、深層ニューラル・ネットワーク２３５に、暗号解読された入力（すなわち、元の入力２１２）が渡され（図１の行１１でのＥＮＣＬＡＶＥ＿ＮＥＴＷＯＲＫ＿ＩＮＦＥＲＥＮＣＥ）、それによって、ＦｒｏｎｔＮｅｔサブネット・モデル２１０によって暗号解読された入力２１２の処理からＩＲ２４０を生成する。生成されたＩＲ２４０は、ＴＥＥ２３０の制御されたチャネルを介して、ＴＥＥ２３０またはｅｎｃｌａｖｅから安全にコピーされる。
【００４５】
ＢａｃｋＮｅｔサブネット・モデル２２０に基づいて、別の深層ニューラル・ネットワーク２５０が構築される（図１の行２０でのＬＯＡＤ＿ＷＥＩＧＨＴＳ）（図２のステップ７）。ＩＲ２４０が、ＢａｃｋＮｅｔサブネット・モデル２２０に基づいて構築された深層ニューラル・ネットワーク２５０に入力され（図２のステップ８）、ＢａｃｋＮｅｔサブネット・モデル２２０が、入力されたＩＲ２４０を処理し（図２のステップ８）、最終的な解析結果（例えば、最終的な画像分類結果）が生成される（図１の行２１でのＮＥＴＷＯＲＫ＿ＩＮＦＥＲＥＮＣＥ）（図２のステップ９）。一部の実施形態例では、最終的な結果は、Ｎ個の異なる可能性のあるクラスにわたる確率分布を表すＮ次元実数値ベクトルである。望ましい実装に基づいて、プライバシー強化深層学習クラウド・サービスは、対応する確率を有する上位ｋ個のクラスを選択し、クライアント・コンピューティング・デバイスを介してエンド・ユーザに返し得る。
【００４６】
このようにして、プライバシー強化深層学習クラウド・サービスまたはその他のＡＩに基づくクラウド・サービスとして実装され得るプライバシー強化深層学習システムは、深層ニューラル・ネットワーク・モデルの分割、暗号化、および信頼できる実行環境での分割されたモデルのＦｒｏｎｔＮｅｔサブネット・モデルの実行を介して、ユーザ入力の機密情報開示を最小限に抑える。深層ニューラル・ネットワーク・モデルの分割は、層状構成のネットワーク構造を利用する。信頼できる実行環境は、ユーザ入力およびＦｒｏｎｔＮｅｔサブネット・モデルの深層ニューラル・ネットワークの層の構成の両方の機密性を保護する。実施形態例のメカニズムは、意図的に、既存の最先端の入力再構築手法を無効にすることができ、それによって、敵対者が深層ニューラル・ネットワークを反転し、深層ニューラル・ネットワークへの入力を再構築するためのチャネルを取り除く。
【００４７】
前述したように、実施形態例の特徴のうちの１つは、深層ニューラル・ネットワーク（ＤＮＮ）をＦｒｏｎｔＮｅｔサブネット・モデルおよびＢａｃｋＮｅｔサブネット・モデルに分割することである。やはり、この分割は、望ましいレベルのプライバシー保護に関するエンド・ユーザの決定に基づいて、クライアント・コンピューティング・デバイスでエンド・ユーザによって実行される手動の分割であってよい。すなわち、信頼できる実行環境内のＤＮＮの追加の層を取り囲むことによって、さらにプライバシー保護を提供できる。エンド・ユーザは、入力データを提供し、すべての層のすべての中間表現（ＩＲ）を生成することによって、ＤＮＮをテストし得る。次に、エンド・ユーザは、人間の知覚によってＩＲを検査し、ＤＮＮのどの中間層でＩＲが機密情報をもうこれ以上含まなくなるかを決定することができる。その後、この中間層は、入力層、および機密情報が存在しなくなる層を含むそれまでの層が、ＦｒｏｎｔＮｅｔサブネット・モデルに含まれ、出力層を含むＤＮＮの残りの部分がＢａｃｋＮｅｔサブネット・モデルに含まれるような、分割点として選択され得る。
【００４８】
代替として、深層学習システム（例えば、深層学習システムの深層ニューラル・ネットワーク）の層を分割する最適な分割点を決定するために、プライバシー強化深層学習クラウド・サービスまたはその他のＡＩに基づくクラウド・サービスのプライバシー強化深層学習システムによって、自動分割ツールが提供され得る。自動分割ツールは、クラウド・サービスによって提供されてよく、クライアント・コンピューティング・デバイスでのローカルな実行のために、クライアント・コンピューティング・デバイスにダウンロード可能であってよい。このようにして、ＦｒｏｎｔＮｅｔサブネット・モデルおよびＢａｃｋＮｅｔサブネット・モデルを識別するために、自動分割ツールによって、クライアント・コンピューティング・デバイスでエンド・ユーザの事前トレーニング済みモデルが処理され得る。次に、クライアント・コンピューティング・デバイスは、信頼できる実行環境内でのＦｒｏｎｔＮｅｔサブネット・モデルのインスタンス化、および信頼できる実行環境外でのＢａｃｋＮｅｔサブネット・モデルのインスタンス化のために、ＦｒｏｎｔＮｅｔサブネット・モデルを暗号化し、ＦｒｏｎｔＮｅｔサブネット・モデルおよびＢａｃｋＮｅｔサブネット・モデルの両方をプライバシー強化深層学習クラウド・サービスに提供し得る。
【００４９】
自動分割ツールは、包括的なセキュリティ解析を介して、深層ニューラル・ネットワーク（ＤＮＮ）の最適な分割点を決定する問題に対処する。このセキュリティ解析は、２つの仮想敵対者Ａ１およびＡ２を、プライバシー再構築攻撃フレームワーク（privacy reconstruction attack framework）内でシミュレートし、ここで、これらの敵対者は、信頼できる実行環境（ＴＥＥ）からＩＲを取得した後に、元の未加工の入力ｘの内容を明らかにする傾向がある。両方の敵対者は、入力ｘの予備知識を持っていないと仮定され、すなわち、確率行列Ｐが均一な分布を保持し、
【数５】
2021531533.tif 000007
であるが、これらの敵対者は、次のような異なる（弱いものから強いものまでの）攻撃戦略Ａを持っている。
Ａ１：この敵対者は、ＦｒｏｎｔＮｅｔサブネット・モデルから生成されたＩＲを見ることができる。戦略Ａは、元の入力のほとんどの情報を暴露するＩＲを選択することである。情報公開は、ＤＮＮの異なる分割層でＩＲを評価することによって測定される。
Ａ２：ＩＲを見ることに加えて、このさらに高度な敵対者は、深層ニューラル・ネットワークのこれらの入力再構築手法をさらに習得することができる。したがって、この敵対者の戦略Ａは、Φから逆関数Φ−１を導出し、ｘティルド＝Φ−１（ＩＲ）を計算することである。再構築されたｘティルドは、元の入力ｘの情報を漏洩する可能性があるが、実施形態例のプライバシー強化深層学習クラウド・サービスまたはその他のＡＩに基づくクラウド・サービスは、意図的に、そのような攻撃を無効にすることができる。
【００５０】
ＩＲがコンピュータ・メモリ内のみに存在することがあるとしても、敵対者Ａ１は、ＴＥＥの外部（すなわち、ＢａｃｋＮｅｔサブネット・モデル内）にある隠れ層のＩＲデータを取り出すことができると仮定される。したがって、この敵対者が、ＩＲを見ることによって、元の入力の内容を認識して推定することができるかどうかを調査することは、重要である。
【００５１】
深層ニューラル・ネットワークでは、ＩＲは、積み重ねられた特徴マップの形態で構造化される。画像処理の実装を仮定すると、自動分割ツールは、すべての特徴マップをピクセル空間に逆に投影し、ＩＲ画像として格納する。例えば、モデルの畳み込み層が６４個のフィルタを含んでおり、出力が１１２×１１２×６４のテンソルである場合、モデルの出力から６４個のＩＲ画像が（１１２の幅および１１２の高さで）生成され得る。
【００５２】
この敵対者をシミュレートするための１つの方法は、被験者にすべてのＩＲ画像を見せ、元の入力ｘの情報を暴露するＩＲ画像を選択させることである。しかし、検査する必要のあるＩＲ画像の量を考えると、この作業は人間にとって退屈で間違いを起こしやすく、ｘとＩＲとの間の距離を定量化することが困難でもある。代わりに、実施形態例の自動分割ツールは、被験者を、すべてのＩＲ画像を自動的に評価して、各層でほとんどの入力情報を暴露するＩＲ画像を識別する、別の畳み込みニューラル・ネットワークに置き換える。この方法は、ＩＲ画像が入力画像に類似する内容を維持する場合、そのＩＲ画像が、同じ畳み込みネットワークを使用して類似するカテゴリに分類されるという洞察に基づく。自動分割ツールは、分類結果の類似性を測定することによって、特定のＩＲ画像が元の入力に視覚的に類似しているかどうかを推定することができる。エンド・ユーザは、評価結果をさら活用して、異なるニューラル・ネットワーク・アーキテクチャの最適な分割点を決定することができる。
【００５３】
図３は、一実施形態例に従って、自動分割ツールのニューラル・ネットワーク評価フレームワーク用の二重畳み込みネットワーク・アーキテクチャを示す例示的な図である。図３に示されているように、入力ｘ３１０は、ＩＲｉｉ∈［１，ｎ］を生成するＩＲ生成畳み込みネットワーク（ＩＲＧｅｎＮｅｔ：IR generation convolutional network）３２０にサブミットされる。各ＩＲｉは、層ｉ（Ｌｉ）を通過した後に、複数の特徴マップを含む。特徴マップは、ＩＲ画像に投影され、ＩＲＧｅｎＮｅｔ３２０と同じネットワーク・アーキテクチャ／重みを共有するＩＲ検証畳み込みネットワーク（ＩＲＶａｌＮｅｔ：IR validation convolutional network）３３０にサブミットされる。畳み込みネットワーク３２０および３３０の出力は、両方とも、クラス・スコアを含むＮ次元（Ｎはクラスの数）確率ベクトルである。
【００５４】
一部の実施形態例では、分類結果の類似性を測定するために、カルバック・ライブラー（ＫＬ：Kullback-Leibler）発散が使用されるが、本発明の思想および範囲から逸脱することなく、他の類似性指標が使用され得る。ＫＬ発散では、各層ｉで、次のｄｉｓｔ［ｘ，ＩＲｉ］を定量的に測定するために、入力ｘとの最小のＫＬ発散ＤＫＬを有するＩＲ画像が選択される。∀ｊ∈［１，ｆｉｌｔｅｒｎｕｍ（Ｌｉ）］、
【００５５】
【数６】
2021531533.tif 000008
ここで、Ｆ＊（．，θ）は、ＩＲＧｅｎＮｅｔ３２０およびＩＲＶａｌＮｅｔ３３０の両方によって共有される表現関数である。ニューラル・ネットワークごとに最適な分割点を決定するために、ＤＫＬ（Ｆ＊（ｘ，θ）｜｜μ）が計算され、ここでμ〜Ｕ（０，Ｎ）（確率ベクトルの一様分布）であり、Ｎはクラスの数である。これは、Ａ１がＩＲを取得する前にｘの予備知識を持っていないということを表しており、ｘが同じ確率ですべてのクラスに分類されると見なしている。上記の方程式１に基づいて、
【数７】
2021531533.tif 000009
が計算されてよく、δｉが、ユーザによって指定されたε境界と比較され得る。例えば、ユーザがε＝１を選択した場合、ε−プライバシーに違反するのを防ぐために、δｉ＞ε＝１の場合にのみ層ｉで分割するのが安全である。一様分布でのε＝１との比較が、情報公開にとって非常に厳しいプライバシー境界であるということは、注目に値する。現実世界の状況では、エンド・ユーザは、プライバシー要件を満たすように、特定のε∈［０，１］境界を指定して、制約を緩和することができる。
【００５６】
したがって、実施形態例の他のプライバシー強化の特徴に加えて、実施形態例は、ニューラル・ネットワーク評価フレームワークをさらに提供し、エンド・ユーザを支援するための自動分割ツールが、事前トレーニング済みモデルをＦｒｏｎｔＮｅｔサブネット・モデルおよびＢａｃｋＮｅｔサブネット・モデルに分割するための最適な分割点を決定する。ニューラル・ネットワーク評価フレームワークは、エンド・ユーザが異なるニューラル・ネットワーク・アーキテクチャの最適な分割層を決定するのを支援するために、プライバシーの損失を定量化する。
【００５７】
上の説明から明らかなように、本発明は、深層学習システムへの入力データのプライバシーを改善するためのコンピュータ・ツールを提供する。したがって、実施形態例は、種々の多くの種類のデータ処理環境において利用され得る。実施形態例の特定の要素および機能の説明の背景を提供するために、以下では、図４および図５が、実施形態例の態様が実装され得る例示的な環境として提供される。図４および図５は単なる例であり、本発明の実施形態の態様が実装され得る環境に関して、どのような制限も主張することも、意味することも意図されていないということが、理解されるべきである。本発明の思想および範囲から逸脱することなく、示された環境に対して多くの変更が行われ得る。
【００５８】
図４は、実施形態例の態様が実装され得る例示的な分散データ処理システムの図的表現を示している。分散データ処理システム４００は、実装形態例の態様を実装できるコンピュータのネットワークを含んでよい。分散データ処理システム４００は、分散データ処理システム４００内で一緒に接続されている種々のデバイスとコンピュータとの間の通信リンクを提供するために使用される媒体である、少なくとも１つのネットワーク４０２を含む。ネットワーク４０２は、ワイヤ、無線通信リンク、衛星通信リンク、または光ファイバ・ケーブルなどの接続を含んでよい。
【００５９】
図に示された例では、サーバ４０４Ａ〜４０４Ｃが、ストレージ・ユニット４０８と共にネットワーク４０２に接続されている。加えて、クライアント４１０および４１２も、ネットワーク４０２に接続されている。これらのクライアント４１０および４１２は、例えば、パーソナル・コンピュータ、またはネットワーク・コンピュータなどであってよい。図に示された例では、サーバ４０４Ａ〜４０４Ｃは、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータを、クライアント４１０〜４１２に提供する。クライアント４１０〜４１２は、示されている例では、サーバ４０４Ａおよび場合によっては他のサーバ・コンピューティング・デバイス４０４Ｂ〜４０４Ｃのうちの１つまたは複数を含むクラウド・コンピューティング・システムのクライアントである。分散データ処理システム４００は、図に示されていない追加のサーバ、クライアント、ならびにその他のコンピューティング・デバイス、データ・ストレージ・デバイス、および通信デバイスを含んでよい。
【００６０】
図に示された例では、分散データ処理システム４００は、相互に通信するための一連のプロトコル（送信制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ：Transmission Control Protocol/Internet Protocol））を使用する世界全体のネットワークとゲートウェイの集合を表す、ネットワーク４０２を含むインターネットである。インターネットの中心には、主要なノード間またはホスト・コンピュータ間を接続する高速データ通信ラインのバックボーンがあり、データおよびメッセージをルーティングする多数の民間のコンピュータ・システム、政府機関のコンピュータ・システム、教育機関のコンピュータ・システム、およびその他のコンピュータ・システムで構成されている。当然、分散データ処理システム４００は、例えばインターネット、ローカル・エリア・ネットワーク（ＬＡＮ）、または広域ネットワーク（ＷＡＮ）などの、多数の各種ネットワークを含むように実装されてもよい。前述したように、図４は、本発明の異なる実施形態に対するアーキテクチャの制限ではなく、一例となるよう意図されており、したがって、図４に示されている特定の要素は、本発明の実施形態例が実装され得る環境に関して制限していると見なされるべきではない。
【００６１】
図４に示されているように、コンピューティング・デバイスのうちの１つまたは複数（例えば、サーバ４０４Ａ）は、深層学習クラウド・サービス４００を実装するように具体的に構成されてよく、深層学習クラウド・サービス４００は、一実施形態例に従って、プライバシー強化深層学習クラウド・サービス・フレームワーク４２０をさらに実装する。コンピューティング・デバイスの構成は、実施形態例に関して本明細書に記載された動作の性能を促進し、出力の生成を容易にするために、アプリケーション固有のハードウェア、またはファームウェアなどを提供することを含んでよい。コンピューティング・デバイスの構成は、コンピューティング・デバイスの１つまたは複数のハードウェア・プロセッサに、ソフトウェア・アプリケーションを実行させ、実施形態例に関して本明細書に記載された動作を実行して出力を生成するようにプロセッサを構成するために、１つまたは複数のストレージ・デバイスに格納され、コンピューティング・デバイス（サーバ４０４Ａなど）のメモリに読み込まれるソフトウェア・アプリケーションを提供することを、追加または代替として含んでもよい。さらに、実施形態例の思想および範囲から逸脱することなく、アプリケーション固有のハードウェア、ファームウェア、またはハードウェア上で実行されるソフトウェア・アプリケーションなどの任意の組合せが使用され得る。
【００６２】
これらの方法のうちの１つでコンピューティング・デバイスが構成された後に、コンピューティング・デバイスが、実施形態例のメカニズムを実装するように具体的に構成された特殊なコンピューティング・デバイスになり、汎用コンピューティング・デバイスではないということが、理解されるべきである。さらに、後述するように、実施形態例のメカニズムの実装は、信頼できる実行環境の実装および暗号解読された入力に対する信頼できる実行環境内でのＤＮＮモデルのＦｒｏｎｔＮｅｔサブネット・モデルの実行を提供することによって、深層学習クラウド・サービスを使用する場合に、コンピューティング・デバイスの機能を改善し、データおよびモデルのプライバシーの強化を促進する有用な具体的結果を提供する。
【００６３】
図４に示されているように、サーバ４０４Ａ〜４０４Ｃのうちの１つまたは複数は、深層学習クラウド・サービス４００およびプライバシー強化深層学習クラウド・サービス・フレームワーク４２０（以下では、「フレームワーク」４２０と呼ぶ）を実装するように構成される。図４は単一のサーバ（すなわち、サーバ４０４Ａ）に関連付けられている要素４００および４２０を示しているが、フレームワーク４２０またはその一部および処理パイプライン４０５またはその一部を含む深層学習クラウド・サービス４００のメカニズムが複数のサーバ・コンピューティング・デバイス４０４Ａ〜４０４Ｃにわたって分散され得るように、複数のサーバ（例えば、４０４Ａ〜４０４Ｃ）が、クラウド・コンピューティング・システムを一緒に構成してよく、フレームワーク４２０を実装する深層学習クラウド・サービス４００を提供するように構成され得るということが、理解されるべきである。一部の実施形態例では、深層学習クラウド・サービス４００、パイプライン４０５、およびフレームワーク４２０の複数のインスタンスが、クラウド・コンピューティング・システムの複数の異なるサーバ４０４Ａ〜４０４Ｃ上で提供され得る。深層学習クラウド・サービス４００は、深層学習システムの任意の深層学習またはＡＩに基づく機能を提供してよく、以下では、その概要および例が示される。
【００６４】
一部の実施形態例では、深層学習クラウド・サービス４００は、認知計算システムまたは認知システムを実装し得る。概要として、認知システムは、特殊なコンピュータ・システム、またはコンピュータ・システムのセットであり、人間の認知機能をエミュレートするようにハードウェア・ロジックまたは（ソフトウェアが実行されるハードウェア・ロジックと組み合わせた）ソフトウェア・ロジックあるいはその両方を使用して構成される。これらの認知システムは、人間のような特徴を、考えを伝達することおよび操作することに適用し、デジタル計算の固有の強みと組み合わせた場合に、高い精度および柔軟性で大規模な問題を解くことができる。認知システムは、人間の思考過程に近づく１つまたは複数のコンピュータ実装認知動作を実行することに加えて、人間の専門知識および認知を拡張および拡大するために、より自然な方法で人間と機械が対話できるようにする。認知システムは、例えば自然言語処理（ＮＬＰ：natural language processing）に基づくロジック、画像解析および分類ロジック、電子医療記録解析ロジックなどの人工知能ロジック、ならびに機械学習ロジックを含んでおり、特殊なハードウェア、ハードウェア上で実行されるソフトウェア、または特殊なハードウェアおよびハードウェア上で実行されるソフトウェアの任意の組合せとして提供され得る。認知システムのロジックは認知動作を実装し、認知動作の例としては、質問回答、コーパス内の内容の異なる部分内の関連する概念の識別、画像解析および分類動作、例えばインターネットのＷｅｂページ検索などの、インテリジェントな検索アルゴリズム、医療診断および治療推奨、ならびにその他の種類の推奨の生成（例えば、特定のユーザにとって興味のある項目、または可能性のある新しい連絡先の推奨など）が挙げられるが、これらに限定されない。
【００６５】
ＩＢＭ  Ｗａｔｓｏｎ（ＴＭ）は、そのような認知システムの一例であり、人間が読める言語を処理し、テキストの通過間の推定を、人間のように高い精度で、人間よりもはるかに高速かつ大量に識別することができる。一般に、そのような認知システムは、次の機能を実行することができる。複雑な人間の言語を操作し、理解する機能、大量の構造化データおよび非構造化データを取り込んで処理する機能、仮説を生成して評価する機能、関連する証拠のみに基づく応答を検討して評価する機能、状況に固有の助言、洞察、および指導を提供する機能、機械学習プロセスを通じた各反復および対話により、知識を改善し、学習する機能、影響を与える時点で、意思決定を可能にする機能（状況に即した指導）、作業に比例して規模を変更する機能、人間の専門知識および認知を拡張および拡大する機能、自然言語から、共鳴、人間のような属性、および特質を識別する機能、自然言語から、さまざまな言語固有の属性または不可知的属性を推定する機能、データ点（画像、テキスト、音声）からの高度な関連する想起（記憶および思い出すこと）の機能、経験に基づく人間の認知を模倣する状況認識によって予測し、感知する機能、ならびに自然言語および特定の証拠に基づいて質問に回答する機能。
【００６６】
１つの実施形態例では、認知クラウド・サービス４００として実装され得る認知システムが、１つまたは複数の処理パイプライン４０５を介して、クライアント・コンピューティング・デバイス４１０などのクライアント・コンピューティング・デバイスからの質問に回答するため、または要求を処理するためのメカニズムを提供する。単一のパイプライン４０５が図４に示されているが、本発明がそのようなパイプラインに限定されず、複数の処理パイプラインが提供され得るということが、理解されるべきである。そのような実施形態では、処理パイプラインは、入力に対して異なる処理を適用し、ネットワーク・データ・ストレージ４０８などの種々のソースからの１つまたは複数の異なる情報のコーパスからの内容の異なる領域に対して動作するように別々に構成されてよく、異なる解析または推論アルゴリズム（アノテータとも呼ばれる）を使用して構成され得る、などとなる。パイプライン４０５は、望ましい実装に従って、自然言語で提示されるか、または構造化された質問／要求として提示される、質問／要求を処理し得る。
【００６７】
パイプライン４０５は、自然言語で提示された特定の対象領域に関する質問に回答するか、あるいは自然言語で提示されるか、または構造化された要求／質問として提示され得る入力データに対して認知動作を実行するように要求を処理する、データ処理ハードウェア上で実行される人工知能アプリケーションである。パイプライン４０５は、ネットワークを経由した入力、電子文書またはその他のデータのコーパス、コンテンツ作成者からのデータ、１人または複数のコンテンツ・ユーザからの情報、およびその他の可能性のある入力のソースからのその他のそのような入力を含む、種々のソースからの入力を受信する。例えばデータ・ストレージ４０８などの、データ・ストレージ・デバイスは、データの１つまたは複数のコーパスを格納する。コンテンツ作成者は、パイプライン４０５と共にデータの１つまたは複数のコーパスの一部として使用するために、文書の内容を作成する。この文書は、認知システム（すなわち、認知クラウド・サービス４００）において使用するための任意のファイル、テキスト、記事、またはデータのソースを含んでよい。例えば、パイプライン４０５は、領域または対象領域（例えば、金融の領域、医学の領域、法律の領域、画像解析の領域など）に関する知識体系にアクセスし、ここで、この知識体系（知識ベース）は、さまざまな構成（例えば、オントロジーなどの領域固有の情報の構造化されたリポジトリ、または領域に関連する非構造化データ、または領域に関する自然言語文書の集合）で整理され得る。
【００６８】
動作中に、パイプライン４０５は、入力質問／要求を受信し、質問／要求を構文解析して質問／要求の主要な特徴を抽出し、抽出された特徴を使用して照会を組み立て、その後、それらの照会をデータのコーパスに適用する。データのコーパスへの照会の適用に基づいて、パイプライン４０５は、入力質問／要求に対する有益な応答を含む可能性のあるデータのコーパスの部分に関して、データのコーパス全体を調べることによって、一連の仮説または入力質問／要求に対する回答／結果の候補を生成する。パイプライン４０５は、入力質問／要求、およびさまざまな推論アルゴリズムを使用した照会の適用中に検出されたデータのコーパスの部分に対して、綿密な解析を実行する。適用される数百または数千もの推論アルゴリズムが存在することがあり、それらのアルゴリズムの各々は、異なる解析（例えば、比較、自然言語解析、字句解析、または画像解析など）を実行して、スコアを生成する。例えば、一部の推論アルゴリズムは、入力質問およびデータのコーパスの検出された部分の言語内の用語および同義語の一致を調べ得る。他の推論アルゴリズムは、言語内の時間的特徴または空間的特徴を調べてよいが、さらに他の推論アルゴリズムは、データのコーパスの部分のソースを評価して、その正確さを評価し得る。さらに、一部の推論アルゴリズムは、画像を、画像の性質を示す複数のクラスのうちの１つに分類するために、画像解析を実行し得る。
【００６９】
さまざまな推論アルゴリズムから取得されたスコアは、その推論アルゴリズムが注目する特定の領域に基づいて、入力質問／要求によって可能性のある応答が推定される程度を示す。次に、得られた各スコアが、統計モデルに対して重み付けされる。この統計モデルは、パイプライン４０５のトレーニング期間中に、特定の領域に関して、２つの類似する入力間の推定の確立において推論アルゴリズムがどの程度適切に機能したかを捕捉する。この統計モデルは、可能性のある応答（すなわち、回答／結果の候補）が質問／要求によって推定される、証拠に関してパイプライン４０５が有している信頼度を集約するために、使用される。このプロセスは、パイプライン４０５が、他の候補より著しく強いとして浮上する回答／結果の候補を識別するまで、回答／結果の候補の各々に対して繰り返され、このようにして、入力質問／要求に対して最終的な回答／結果または回答／結果のランク付けされたセットを生成する。
【００７０】
図４に示されているように、深層学習クラウド・サービス４００およびそれに対応する１つまたは複数の処理パイプライン４０５は、プライバシー強化深層学習クラウド・サービス・フレームワーク４２０（または以下では、単にフレームワーク４２０）を実装する。フレームワーク４２０は、入力質問／要求に対して推論するため、または入力質問／要求に関連付けられた入力データを処理するため、あるいはその両方のための動作を実行するときに、処理パイプライン４０５の推論アルゴリズムのうちの１つまたは複数によって呼び出され得る。例えば、一部の実施形態例では、フレームワーク５２０は、例えば深層学習ニューラル・ネットワーク（ＤＮＮ）モデルを使用して、入力データを複数の既定のクラスのうちの１つに分類することを支援するために、呼び出され得る。フレームワーク４２０によって生成された結果（例えば、入力データの分類を識別するための既定のクラスの各々に関連付けられた確率値を含むベクトル出力、または単に最終的な分類自体）が、他の深層学習動作（その例が上で示されている）の実行において使用するために、処理パイプライン４０５に返され得る。
【００７１】
フレームワーク４２０は、セキュリティ・エンジン４２０と、暗号解読エンジン４２４を実装する信頼できる実行環境（ＴＥＥ）４２６と、前述したようにニューラル・ネットワーク評価フレームワークを実装する自動分割ツール４５０とを含む。加えて、ＴＥＥ４２６内で、入力データ４４０およびＦｒｏｎｔＮｅｔサブネット・モデル４３２を提供するために、暗号化された入力データおよび暗号化されたＦｒｏｎｔＮｅｔサブネット・モデルが、暗号解読エンジン４２４によって暗号解読される。ＢａｃｋＮｅｔサブネット・モデル４３４が、クライアント・コンピューティング・デバイス４１０によって、フレームワーク４２０内でインスタンス化するためにフレームワーク４２０に提供され得る。セキュリティ・エンジン４２２は、サーバ４０４Ａとクライアント・コンピューティング・デバイス４１０との間のトランスポート層セキュリティ（ＴＬＳ）接続またはその他の安全な通信接続を確立することなどによって、認証、証明、およびクライアント・コンピューティング・デバイス４１０とのセキュリティ・キーの交換を実行するためのロジックを提供する。
【００７２】
動作中に、クライアント・コンピューティング・デバイス４１０のエンド・ユーザは、事前トレーニング済みＤＮＮモデル４３０および入力データ４４０を深層学習クラウド・サービス４００に提供することによって、深層学習クラウド・サービス４００を利用して、入力データに対して深層学習動作（例えば、画像解析および画像分類）を実行したいと考える。実施形態例に従って、エンド・ユーザの入力データのプライバシーを強化するために、ＤＮＮモデル４３０がＦｒｏｎｔＮｅｔサブネット・モデル４３２およびＢａｃｋＮｅｔサブネット・モデル４３４に分割される。ＤＮＮモデル４３０の分割は、エンド・ユーザによって手動で実行されてよく、または深層学習クラウド・サービス４００によって提供される自動分割ツール４５０を使用することなどによって、自動化された方法で実行され得る。すなわち、１つの実施形態例では、クライアント・コンピューティング・デバイス４１０は、サーバ４０４Ａにログオンして深層学習クラウド・サービス４００にアクセスし、適切な認証動作および証明動作、セキュリティ・キーの交換などを実行し得る。次に、クライアント・コンピューティング・デバイス４１０のエンド・ユーザは、ローカルなクライアント・コンピューティング・デバイス４１０上で実行して事前トレーニング済みＤＮＮモデル４３０の最適な分割点を決定するために、自動分割ツール４５０のダウンロードを要求し得る。その後、ＤＮＮモデル４３０は、決定された最適な分割点（例えば、モデルが分割されるべき位置にあるＤＮＮモデル４３０の特定の隠れ層または中間層）に基づいて、ＦｒｏｎｔＮｅｔサブネット・モデル４３２およびＢａｃｋＮｅｔサブネット・モデル４３４に分割され得る。
【００７３】
セキュリティ・エンジン４２２を介して交換されたセキュリティ・キー（例えば、対称鍵）に基づいて、クライアント・コンピューティング・デバイス４１０は、ＦｒｏｎｔＮｅｔサブネット・モデル４３２を暗号化し、暗号化されたＦｒｏｎｔＮｅｔサブネット・モデル４３２および暗号化されていないＢａｃｋＮｅｔサブネット・モデル４３４の両方を含むＤＮＮモデル４３０を、サーバ４０４Ａおよび深層学習クラウド・サービス４００に提供する。深層学習クラウド・サービス４００のフレームワーク４２０は、暗号化されたＦｒｏｎｔＮｅｔサブネット・モデル４３２をＴＥＥ４２６に読み込み、ＴＥＥ４２６内で、ＦｒｏｎｔＮｅｔサブネット・モデル４３２が暗号解読され、ＴＥＥ４２６内で実行されるＦｒｏｎｔＮｅｔサブネット・モデル４３２のＤＮＮ実装をインスタンス化するための基礎として使用される。ＢａｃｋＮｅｔサブネット・モデル４３４は、ＴＥＥ４２６の外部のフレームワーク４２０において、ＢａｃｋＮｅｔサブネット・モデル４３４のＤＮＮ実装としてインスタンス化される。
【００７４】
次に、クライアント・コンピューティング・デバイス４１０は、暗号化された入力データ（すなわち、交換されたセキュリティ・キーを使用して暗号化された入力データ４４０）を、処理するために深層学習クラウド・サービス４００に送信し得る。処理パイプライン４０５を介した処理などの処理の一部として、深層学習クラウド・サービス４００は、フレームワーク４２０を呼び出し、受信された暗号化済み入力データを処理し得る。暗号化済み入力データは、ＴＥＥ４２６に読み込まれ、ここで、元の入力データ４４０を生成するために暗号解読エンジン４２４によって暗号解読される。入力データ４４０は、ＴＥＥ４２６内で実行されるＦｒｏｎｔＮｅｔサブネット・モデル４３２のＤＮＮに入力され、このＤＮＮが、ＢａｃｋＮｅｔサブネット・モデル４３４に出力される中間表現（ＩＲ）を生成する。次に、ＢａｃｋＮｅｔサブネット・モデル４３４のＤＮＮが、ＦｒｏｎｔＮｅｔサブネット・モデル４３２のＤＮＮから出力されたＩＲを処理して分類出力を生成し、この分類出力が、入力データに基づいて深層学習動作を実行することにおいて使用するために、深層学習クラウド・サービス４００または処理パイプライン４０５あるいはその両方に返される。その後、深層学習動作の結果が、クライアント・コンピューティング・デバイス４１０に返され得る。このプロセスでは、入力データ４４０およびＦｒｏｎｔＮｅｔサブネット・モデル４３２が、ＴＥＥ４２６内のみで暗号解読され、ＴＥＥ４２６の外部に公開されないため、入力データ４４０およびＦｒｏｎｔＮｅｔサブネット・モデル４３２の両方のプライバシーが保護されるということが、理解されるべきである。
【００７５】
前述したように、実施形態例のメカニズムは、信頼できる実行環境内で暗号解読された、暗号化入力データに対して信頼できる実行環境内のＤＮＮモデルの一部を実行するための動作を実行するように具体的に構成されたコンピューティング・デバイスまたはデータ処理システムを利用する。これらのコンピューティング・デバイスまたはデータ処理システムは、本明細書に記載されたシステムまたはサブシステムあるいはその両方のうちの１つまたは複数を実装するように、ハードウェア構成、ソフトウェア構成、またはハードウェア構成とソフトウェア構成の組合せのいずれかを使用して具体的に構成された、種々のハードウェア要素を備え得る。図５は、実施形態例の態様が実装され得る１つの例示的なデータ処理システムのブロック図である。データ処理システム５００は、図４のサーバ４０４などのコンピュータの一例であり、データ処理システム５００において、本明細書に記載されたような実施形態例の動作、出力、および外部効果を実現するために、本発明の実施形態例のプロセスおよび態様を実装するコンピュータ使用可能なコードまたは命令が、配置されるか、または実行されるか、あるいはその両方が行われ得る。
【００７６】
示されている例では、データ処理システム５００は、ノース・ブリッジおよびメモリ・コントローラ・ハブ（ＮＢ／ＭＣＨ：north bridge and memory controller hub）５０２およびサウス・ブリッジおよび入出力（Ｉ／Ｏ）コントローラ・ハブ（ＳＢ／ＩＣＨ：south bridge and input/output (I/O) controller hub）５０４を含むハブ・アーキテクチャを採用している。処理ユニット５０６、メイン・メモリ５０８、およびグラフィック・プロセッサ５１０が、ＮＢ／ＭＣＨ５０２に接続されている。グラフィック・プロセッサ５１０は、アクセラレーテッド・グラフィックス・ポート（ＡＧＰ：accelerated graphics port）を介してＮＢ／ＭＣＨ５０２に接続され得る。
【００７７】
示されている例では、ローカル・エリア・ネットワーク（ＬＡＮ：local area network）アダプタ５１２が、ＳＢ／ＩＣＨ５０４に接続されている。オーディオ・アダプタ５１６、キーボードおよびマウス・アダプタ５２０、モデム５２２、読取り専用メモリ（ＲＯＭ：read only memory）５２４、ハード・ディスク・ドライブ（ＨＤＤ：harddisk drive）５２６、ＣＤ−ＲＯＭドライブ５３０、ユニバーサル・シリアル・バス（ＵＳＢ：universal serial bus）ポートおよびその他の通信ポート５３２、ならびにＰＣＩ／ＰＣＩｅデバイス５３４が、バス５３８およびバス５４０を介してＳＢ／ＩＣＨ５０４に接続されている。ＰＣＩ／ＰＣＩｅデバイスは、例えば、ノートブック・コンピュータ用のイーサネット（Ｒ）・アダプタ、アドイン・カード、およびＰＣカードを含んでよい。ＰＣＩはカード・バス・コントローラを使用するが、ＰＣＩｅはカード・バス・コントローラを使用しない。ＲＯＭ５２４は、例えば、フラッシュ基本入出力システム（ＢＩＯＳ：basic input/output system）であってよい。
【００７８】
ＨＤＤ５２６およびＣＤ−ＲＯＭドライブ５３０は、バス５４０を介してＳＢ／ＩＣＨ５０４に接続されている。ＨＤＤ５２６およびＣＤ−ＲＯＭドライブ５３０は、例えば、ＩＤＥ（integrated drive electronics）またはシリアルＡＴＡ（ＳＡＴＡ：serial advanced technology attachment）インターフェイスを使用し得る。スーパーＩ／Ｏ（ＳＩＯ：Super I/O）デバイス５３６が、ＳＢ／ＩＣＨ５０４に接続され得る。
【００７９】
オペレーティング・システムが、処理ユニット５０６上で実行される。オペレーティング・システムは、図５のデータ処理システム５００内の種々のコンポーネントを調整して制御する。クライアントとして、オペレーティング・システムは、Ｍｉｃｒｏｓｏｆｔ（Ｒ）Ｗｉｎｄｏｗｓ（Ｒ）１０（Ｒ）などの市販のオペレーティング・システムであってよい。Ｊａｖａ（Ｒ）（ＴＭ）プログラミング・システムなどのオブジェクト指向プログラミング・システムが、オペレーティング・システムと共に実行されてよく、データ処理システム５００上で実行されているＪａｖａ（Ｒ）（ＴＭ）プログラムまたはアプリケーションからのオペレーティング・システムに対する呼び出しを提供する。
【００８０】
サーバとして、データ処理システム５００は、例えば、Ａｄｖａｎｃｅｄ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｅｘｅｃｕｔｉｖｅ（ＡＩＸ（Ｒ））オペレーティング・システムまたはＬＩＮＵＸ（Ｒ）オペレーティング・システムを実行するＩＢＭ  ｅＳｅｒｖｅｒ（ＴＭ）Ｓｙｓｔｅｍ  ｐ（Ｒ）コンピュータ・システム、またはＰｏｗｅｒ（ＴＭ）プロセッサに基づくコンピュータ・システムなどであってよい。データ処理システム５００は、処理ユニット５０６内で複数のプロセッサを含む対称型マルチプロセッサ（ＳＭＰ：symmetric multiprocessor）システムであってよい。代替として、シングル・プロセッサ・システムが採用され得る。
【００８１】
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムの命令が、ＨＤＤ５２６などのストレージ・デバイスに配置され、処理ユニット５０６によって実行するためにメイン・メモリ５０８に読み込まれ得る。本発明の実施形態例のプロセスは、コンピュータ使用可能なプログラム・コードを使用して、処理ユニット５０６によって実行されてよく、このプログラム・コードは、例えばメイン・メモリ５０８、ＲＯＭ５２４などのメモリ内、または例えば１つまたは複数の周辺機器５２６および５３０内に、配置され得る。
【００８２】
図５に示されているように、バス５３８またはバス５４０などのバス・システムは、１つまたは複数のバスから成ってよい。当然ながら、このバス・システムは、通信ファブリックまたは通信アーキテクチャに接続された異なるコンポーネントまたはデバイス間のデータの転送を提供する任意の種類の通信ファブリックまたは通信アーキテクチャを使用して、実装され得る。図５のモデム５２２またはネットワーク・アダプタ５１２などの通信ユニットは、データの送受信に使用される１つまたは複数のデバイスを含んでよい。メモリは、例えば、メイン・メモリ５０８、ＲＯＭ５２４、または図５のＮＢ／ＭＣＨ５０２において見られるようなキャッシュであってよい。
【００８３】
前述したように、一部の実施形態例では、実施形態例のメカニズムは、アプリケーション固有のハードウェア、またはファームウェアなど、処理ユニット５０６などの１つまたは複数のハードウェア・プロセッサによって実行するためにＨＤＤ５２６などのストレージ・デバイスに格納され、メイン・メモリ５０８などのメモリに読み込まれるアプリケーション・ソフトウェアなどとして、実装され得る。そのため、図５に示されているコンピューティング・デバイスは、実施形態例のメカニズムを実装するように具体的に構成され、プライバシー強化深層学習クラウド・サービス・フレームワークおよび１つまたは複数の処理パイプラインを実装する深層学習クラウド・サービスに関して本明細書に記載された動作を実行し、出力を生成するように具体的に構成される。
【００８４】
当業者は、図４および図５のハードウェアが実装に依って変わってよいということを、理解するであろう。フラッシュ・メモリ、同等の不揮発性メモリ、または光ディスク・ドライブなどの、その他の内部ハードウェアまたは周辺機器が、図４および図５に示されているハードウェアに加えて、またはそれらのハードウェアの代わりに、使用され得る。また、実施形態例のプロセスは、本発明の思想および範囲から逸脱することなく、前述したＳＭＰシステム以外のマルチプロセッサ・データ処理システムに適用され得る。
【００８５】
さらに、データ処理システム５００は、クライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、タブレット・コンピュータ、ラップトップ・コンピュータ、電話もしくはその他の通信デバイス、またはパーソナル・デジタル・アシスタント（ＰＤＡ：personal digital assistant）などを含む、複数の異なるデータ処理システムのうちのいずれかの形態を取り得る。一部の例では、データ処理システム５００は、例えばオペレーティング・システム・ファイルまたはユーザによって生成されたデータあるいはその両方を格納するために、不揮発性メモリを提供するようにフラッシュ・メモリを使用して構成された、ポータブル・コンピューティング・デバイスであってよい。基本的に、データ処理システム５００は、アーキテクチャの制限なしで、任意の既知のデータ処理システムまたは今後開発されるデータ処理システムであってよい。
【００８６】
図６は、一実施形態例に従って、プライバシー強化深層学習クラウド・コンピューティング・サービスを構成して利用するための例示的な動作を概説するフローチャートである。図６に示されているように、この動作は、深層学習クラウド・サービスのコンピューティング・システムとエンド・ユーザのクライアント・コンピューティング・デバイスとの間のＴＬＳまたはその他の安全な通信接続などを介して、エンド・ユーザの認証、証明、およびセキュリティ・キーの交換を実行することによって開始する（ステップ６１０）。エンド・ユーザは、自分の事前トレーニング済みＤＮＮモデルをＦｒｏｎｔＮｅｔサブネット・モデルおよびＢａｃｋＮｅｔサブネット・モデルに分割する（ステップ６２０）。前述したように、この分割は、手動で実行されてよく、または自動分割ツールの支援を受けて実行されてよく、この自動分割ツールは、例えば、深層学習クラウド・サービスによって、ローカルな実行のためのクライアント・コンピューティング・デバイスに提供され得る。
【００８７】
交換されたセキュリティ・キーを使用してＦｒｏｎｔＮｅｔサブネット・モデルが暗号化され、深層学習クラウド・サービス・フレームワークにアップロードされる（ステップ６３０）。深層学習クラウド・サービス・フレームワークは、暗号化されたＦｒｏｎｔＮｅｔサブネット・モデルを信頼できる実行環境（ＴＥＥ）に読み込み、ＦｒｏｎｔＮｅｔサブネット・モデルを暗号解読し、ＴＥＥ内で実行されるＤＮＮとしてインスタンス化する（ステップ６４０）。暗号化されていないＢａｃｋＮｅｔサブネット・モデルが深層学習クラウド・サービス・フレームワークにアップロードされ、深層学習クラウド・サービス・フレームワークが、ＢａｃｋＮｅｔサブネット・モデルを、ＴＥＥの外部で実行されるＤＮＮとしてインスタンス化する（ステップ６５０）。
【００８８】
深層学習クラウド・サービス・フレームワーク上で現在実行されている事前トレーニング済みＤＮＮによって処理される入力データが暗号化され、深層学習クラウド・サービス・フレームワークにアップロードされ（ステップ６６０）、深層学習クラウド・サービス・フレームワークで、入力データがＴＥＥに読み込まれて暗号解読され、ＦｒｏｎｔＮｅｔサブネット・モデルのＤＮＮへの入力として提供される（ステップ６７０）。ＦｒｏｎｔＮｅｔサブネット・モデルのＤＮＮは、暗号解読された入力を処理して、中間表現（ＩＲ）を生成し（ステップ６８０）、この中間表現（ＩＲ）が、ＴＥＥの外部で実行されるＢａｃｋＮｅｔサブネット・モデルのＤＮＮに出力される（ステップ６９０）。ＢａｃｋＮｅｔサブネット・モデルのＤＮＮは、入力データの処理の最終的な結果を生成して出力し、この結果を、追加の深層学習動作の実行のために深層学習クラウド・サービスに返す（ステップ６９５）。その後、この動作が終了する。
【００８９】
このようにして、実施形態例は、信頼できる実行環境を提供することによって、エンド・ユーザの入力データの秘密を維持するプライバシー強化深層学習またはＡＩクラウド・サービス・フレームワークを提供し、この信頼できる実行環境内で、事前トレーニング済みＤＮＮの一部が入力データに対して実行され、事前トレーニング済みＤＮＮおよび入力データの両方が暗号化され、ＴＥＥの外部で、暗号化されない方法ではアクセスできない。本開示は、クラウド・コンピューティング・システムに実装されている本発明の実施形態の詳細な説明を含むが、本明細書において示された内容の実装がクラウド・コンピューティング環境に限定されないということが、理解されるべきである。むしろ、本発明の実施形態は、現在既知であるか、または今後開発される任意のその他の種類のコンピューティング環境と組み合わせて実装できる。
【００９０】
クラウド・コンピューティングは、構成可能な計算リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス）の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも５つの特徴、少なくとも３つのサービス・モデル、および少なくとも４つのデプロイメント・モデルを含むことができる。
【００９１】
クラウド・モデルの特徴は、次のとおりである。
（１）オンデマンドのセルフ・サービス：クラウドの利用者は、サーバの時間、およびネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
（２）幅広いネットワーク・アクセス：クラウドの能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム（例えば、携帯電話、ラップトップ、およびＰＤＡ）による利用を促進する。
（３）リソース・プール：プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。種々の物理的および仮想的リソースが、要求に従って動的に割当ておよび再割当てされる。場所に依存しないという感覚があり、その点において、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高い抽象レベルでは、場所（例えば、国、州、またはデータセンター）を指定できる場合がある。
（４）迅速な順応性：クラウドの能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、任意の量をいつでも無制限に購入できるように見える。
（５）測定されるサービス：クラウド・システムは、計測機能を活用することによって、サービスの種類（例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント）に適した抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用量は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
【００９２】
サービス・モデルは、次のとおりである。
（１）ＳａａＳ（Software as a Service）：利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Ｗｅｂブラウザ（例えば、Ｗｅｂベースの電子メール）などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能さえも含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
（２）ＰａａＳ（Platform as a Service）：利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
（３）ＩａａＳ（Infrastructure as a Service）：利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、ここで、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションを制御することができ、場合によっては、選択されたネットワーキング・コンポーネント（例えば、ホスト・ファイアウォール）を限定的に制御できる。
【００９３】
デプロイメント・モデルは、次のとおりである。
（１）プライベート・クラウド：このクラウド・インフラストラクチャは、組織のためにのみ運用される。このクラウド・インフラストラクチャは、この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
（２）コミュニティ・クラウド：このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事（例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項）を共有している特定のコミュニティをサポートする。このクラウド・インフラストラクチャは、これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
（３）パブリック・クラウド：このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
（４）ハイブリッド・クラウド：このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術（例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト）によって固有の実体を残したままだが互いに結合された２つ以上のクラウド（プライベート、コミュニティ、またはパブリック）の複合である。
【００９４】
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【００９５】
ここで図７を参照すると、例示的なクラウド・コンピューティング環境７５０が示されている。図示されているように、クラウド・コンピューティング環境７５０は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス（例えば、パーソナル・デジタル・アシスタント（ＰＤＡ：personal digital assistant）または携帯電話７５４Ａ、デスクトップ・コンピュータ７５４Ｂ、ラップトップ・コンピュータ７５４Ｃ、または自動車コンピュータ・システム７５４Ｎ、あるいはその組合せなど）が通信できる１つまたは複数のクラウド・コンピューティング・ノード７１０を含む。ノード７１０は、互いに通信し得る。ノード７１０は、１つまたは複数のネットワーク内で、本明細書において前述されたようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組合せなどに、物理的または仮想的にグループ化され得る（図示されていない）。これによって、クラウド・コンピューティング環境７５０は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはＳａａＳ、あるいはその組合せを提供できる。図７に示されたコンピューティング・デバイス７５４Ａ〜Ｎの種類は、例示のみが意図されており、コンピューティング・ノード７１０およびクラウド・コンピューティング環境７５０は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続（例えば、Ｗｅｂブラウザを使用した接続）あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信できるということが理解される。
【００９６】
ここで図８を参照すると、クラウド・コンピューティング環境７５０（図７）によって提供される機能的抽象レイヤのセットが示されている。図８に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
（１）ハードウェアおよびソフトウェア・レイヤ８６０は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム８６１、ＲＩＳＣ（Reduced Instruction Set Computer）アーキテクチャベースのサーバ８６２、サーバ８６３、ブレード・サーバ８６４、ストレージ・デバイス８６５、ならびにネットワークおよびネットワーキング・コンポーネント８６６が挙げられる。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア８６７およびデータベース・ソフトウェア８６８を含む。
（２）仮想化レイヤ８７０は、仮想サーバ８７１、仮想ストレージ８７２、仮想プライベート・ネットワークを含む仮想ネットワーク８７３、仮想アプリケーションおよびオペレーティング・システム８７４、ならびに仮想クライアント８７５などの仮想的実体を提供できる抽象レイヤを備える。
【００９７】
一例を挙げると、管理レイヤ８８０は、以下で説明される機能を提供することができる。リソース・プロビジョニング８８１は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよびその他のリソースの動的調達を行う。計測および価格設定８８２は、クラウド・コンピューティング環境内でリソースが利用された際のコスト追跡、およびこれらのリソースの利用に対する請求書の作成と送付を行う。一例を挙げると、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクのＩＤ検証を行うとともに、データおよびその他のリソースの保護を行う。ユーザ・ポータル８８３は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理８８４は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割当てと管理を行う。サービス水準合意（ＳＬＡ：Service Level Agreement）計画および実行８８５は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、ＳＬＡに従って行う。
【００９８】
ワークロード・レイヤ８９０は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供され得るワークロードおよび機能の例としては、マッピングおよびナビゲーション８９１、ソフトウェア開発およびライフサイクル管理８９２、仮想クラスルーム教育の配信８９３、データ解析処理８９４、トランザクション処理８９５、および深層学習クラウド・コンピューティング・サービス処理８９６が挙げられる。深層学習クラウド・コンピューティング・サービス処理８９６は、説明された実施形態例のうちの１つまたは複数に関して前述したパイプラインおよびプライバシーが強化されたクラウド・コンピューティング・サービス・フレームワークを含んでよい。
【００９９】
前述したように、実施形態例が、完全にハードウェアである実施形態、完全にソフトウェアである実施形態、またはハードウェアとソフトウェアの両方の要素を含む実施形態の形態を取ってよいということが、理解されるべきである。１つの実施形態例では、実施形態例のメカニズムは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むが、これらに限定されない、ソフトウェアまたはプログラム・コードにおいて実装される。
【０１００】
プログラム・コードの格納または実行あるいはその両方を行うのに適したデータ処理システムは、例えばシステム・バスなどの通信バスを介して直接的または間接的にメモリ素子に結合された、少なくとも１つのプロセッサを含む。このメモリ素子は、プログラム・コードの実際の実行時に使用されるローカル・メモリと、バルク・ストレージと、実行時にバルク・ストレージからコードが取得されなければならない回数を減らすために少なくとも一部のプログラム・コードを一時的に格納するキャッシュ・メモリとを、含むことができる。このメモリは、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＳＲＡＭ、フラッシュ・メモリ、および半導体メモリなどを含むが、これらに限定されない、さまざまな種類であってよい。
【０１０１】
入出力デバイスまたはＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティング・デバイスなどを含むが、これらに限定されない）は、直接的に、あるいは介在する有線もしくは無線Ｉ／Ｏインターフェイスもしくはコントローまたはその両方などを介して、のいずれかで、システムに結合され得る。Ｉ／Ｏデバイスは、従来のキーボード、ディスプレイ、およびポインティング・デバイスなど以外の、例えば、スマートフォン、タブレット・コンピュータ、タッチ・スクリーン・デバイス、および音声認識デバイスなどを含むが、これらに限定されない、有線または無線接続を介して結合された通信デバイスなどの、多くの異なる形態を取ってよい。任意の既知のＩ／Ｏデバイスまたは今後開発されるＩ／Ｏデバイスが、実施形態例の範囲に含まれるよう意図されている。
【０１０２】
ネットワーク・アダプタがシステムに結合され、介在するプライベート・ネットワークまたはパブリック・ネットワークを介して、データ処理システムを、他のデータ処理システムまたはリモート・プリンタまたはストレージ・デバイスに結合できるようにしてもよい。モデム、ケーブル・モデム、およびイーサネット（Ｒ）・カードは、有線通信に現在使用可能なネットワーク・アダプタのうちの、ごくわずかの種類にすぎない。８０２．１１  ａ／ｂ／ｇ／ｎ無線通信アダプタ、およびＢｌｕｅｔｏｏｔｈ無線アダプタなどを含むが、これらに限定されない、無線通信に基づくネットワーク・アダプタが利用されてもよい。任意の既知のネットワーク・アダプタまたは今後開発されるネットワーク・アダプタが、本発明の思想および範囲に含まれるよう意図されている。
【０１０３】
本発明の説明は、例示および説明の目的で提示されており、網羅的であるよう意図されておらず、開示された形態での発明に限定されない。記載された実施形態の範囲および思想を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかであろう。本発明の原理、実際的な適用を最も適切に説明するため、およびその他の当業者が、企図された特定の用途に適するようなさまざまな変更を伴う多様な実施形態に関して、本発明を理解できるようにするために、実施形態が選択されて説明された。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。
【図１】
2021531533.tif 000010
【図２】
2021531533.tif 000011
【図３】
2021531533.tif 000012
【図４】
2021531533.tif 000013
【図５】
2021531533.tif 000014
【図６】
2021531533.tif 000015
【図７】
2021531533.tif 000016
【図８】
2021531533.tif 000017
【手続補正書】
【提出日】令和3年5月10日(2021.5.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサおよび少なくとも１つのメモリを備えているデータ処理システムにおける方法であって、前記少なくとも１つのメモリが、プライバシーが強化された深層学習システム・フレームワークを実装するように前記少なくとも１つのプロセッサを構成するために、前記少なくとも１つのプロセッサによって実行される命令を含んでおり、前記方法が、
前記プライバシーが強化された深層学習システム・フレームワークによって、ニューラル・ネットワークの暗号化された第１のサブネット・モデルをクライアント・コンピューティング・デバイスから受信することであって、前記第１のサブネット・モデルが、前記ニューラル・ネットワークの複数のパーティションのうちの１つのパーティションである、前記受信することと、
前記プライバシーが強化された深層学習システム・フレームワークによって、前記暗号化された第１のサブネット・モデルを前記プライバシーが強化された深層学習システム・フレームワークの信頼できる実行環境に読み込むことと、
前記プライバシーが強化された深層学習システム・フレームワークによって、前記信頼できる実行環境内の前記第１のサブネット・モデルを暗号解読し、前記信頼できる実行環境内の前記第１のサブネット・モデルを実行することと、
前記プライバシーが強化された深層学習システム・フレームワークによって、暗号化された入力データを前記クライアント・コンピューティング・デバイスから受信することと、
前記プライバシーが強化された深層学習システム・フレームワークによって、前記暗号化された入力データを前記信頼できる実行環境に読み込むことと、
前記プライバシーが強化された深層学習システム・フレームワークによって、前記信頼できる実行環境内で実行される前記第１のサブネット・モデルを使用して、前記信頼できる実行環境内の前記入力データを暗号解読して処理することと
を含む、方法。
【請求項２】
前記ニューラル・ネットワークが少なくとも前記第１のサブネット・モデルおよび第２のサブネット・モデルに分割され、前記第１のサブネット・モデルが、前記ニューラル・ネットワークの入力層およびニューラル・ネットワーク・モデルの１つまたは複数の中間層を含むＦｒｏｎｔＮｅｔサブネット・モデルであり、前記第２のサブネット・モデルが、前記ニューラル・ネットワークの出力層および前記ニューラル・ネットワーク・モデルの１つまたは複数の中間層を含むＢａｃｋＮｅｔサブネット・モデルである、請求項１に記載の方法。
【請求項３】
前記ＦｒｏｎｔＮｅｔサブネット・モデルに含まれる最後の中間層を示す前記ニューラル・ネットワーク内の分割点が、前記ニューラル・ネットワークへの入力に対応する機密情報を中間表現出力が含んでいない中間層として選択され、前記ニューラル・ネットワークのその後の中間層および前記出力層が前記ＢａｃｋＮｅｔサブネット・モデルに含まれる、請求項２に記載の方法。
【請求項４】
前記ニューラル・ネットワークを分割する前記ニューラル・ネットワーク内の最適な分割点を識別する自動分割ツールを使用して、前記ニューラル・ネットワークが自動的に分割され、前記最適な分割点が、前記ニューラル・ネットワークを分割する中間層を識別する、請求項２に記載の方法。
【請求項５】
前記信頼できる実行環境内で実行される前記第１のサブネット・モデルを使用する前記信頼できる実行環境内の前記入力データの前記処理が、前記入力データの処理の１つまたは複数の中間表現を生成し、前記方法が、
前記１つまたは複数の中間表現を前記ニューラル・ネットワークの第２のサブネット・モデルに入力することと、
前記１つまたは複数の中間表現を処理して結果データを生成することと、
前記結果データを出力することと
をさらに含む、請求項１に記載の方法。
【請求項６】
前記第２のサブネット・モデルが、前記信頼できる実行環境の外部で実行される、請求項５に記載の方法。
【請求項７】
前記結果データが、Ｎ個の異なる可能性のあるクラスにわたる確率分布を表すＮ次元実数値ベクトルであり、前記方法が、前記Ｎ次元実数値ベクトルから、対応する確率値を有する上位ｋ個のクラスを選択し、前記クライアント・コンピューティング・デバイスに返すことをさらに含む、請求項５に記載の方法。
【請求項８】
前記結果データに基づいて深層学習動作を実行するために、前記結果データが深層学習システムに出力される、請求項５に記載の方法。
【請求項９】
前記深層学習動作が深層学習画像認識動作であり、前記入力データが入力画像であり、前記結果データが、複数の事前に定義されたクラスのうちの１つへの前記入力画像の分類である、請求項８に記載の方法。
【請求項１０】
前記信頼できる実行環境が、前記信頼できる実行環境の外部からの前記暗号解読された第１のサブネット・モデルおよび暗号解読された入力データへのアクセスを防ぐ、請求項１に記載の方法。
【請求項１１】
請求項１〜１０の何れか1項に記載の方法を、コンピュータに実行させる、コンピュータ・プログラム。
【請求項１２】
請求項１１に記載の前記コンピュータ・プログラムをコンピュータ可読ストレージ媒体に記憶した、ストレージ媒体。
【請求項１３】
請求項１〜１０の何れか１項に記載の方法を、コンピュータ・ハードウェアによる手段として構成した、システム。
【国際調査報告】
2021531533.tif 000018
2021531533.tif 000019
2021531533.tif 000020