(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-30
(45)【発行日】2024-05-10
(54)【発明の名称】機械学習システム、機械学習方法、推論装置、及びプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20240501BHJP
【FI】
G06N20/00 130
(21)【出願番号】P 2023507534
(86)(22)【出願日】2020-08-19
(86)【国際出願番号】 JP2020031237
(87)【国際公開番号】W WO2022038704
(87)【国際公開日】2022-02-24
【審査請求日】2023-02-02
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】寺西 勇
【審査官】牛丸 太希
(56)【参考文献】
【文献】米国特許出願公開第2020/0143079(US,A1)
【文献】米国特許第10225277(US,B1)
【文献】Milad Nasr ほか,Machine Learning with Membership Privacy using Adversarial Regularization,ACM DIGITAL LIBRARY [online],2018年,頁634-646,[検索日 2023.12.25], インターネット<URL:https://dl.acm.org/doi/10.1145/3243734.3243855>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
正解ラベル付きの第1のデータ集合を訓練データとして用いて機械学習を行うことで、
学習モデルのパラメータθを学習する第1学習フェーズと、
前記第1のデータ集合に含まれるメンバデータ、及び第2のデータ集合に含まれるノン
メンバデータを用いて機械学習を行うことで、防御器のパラメータτと、識別器のパラメ
ータωを学習する第2学習フェーズとを備え、
前記第2学習フェーズにおいて、
前記メンバデータ又は前記ノンメンバデータがランダムに入力データとして選択され、
前記メンバデータ又は前記ノンメンバデータが前記入力データとして前記学習モデルに
入力されたときに、前記学習モデルは第1出力結果を出力し、
前記防御器は前記第1出力結果を修正して、第2出力結果を出力し、
前記識別器は、前記第1出力結果又は前記第2出力結果に基づいて、前記入力データが
メンバデータであるか前記ノンメンバデータであるかを識別した識別結果を出力し、
前記第2学習フェーズは、
前記第1出力結果と前記第2出力結果を前記識別器に入力した時の前記識別結果とを用
いて、前記識別器の前記パラメータωを更新する第1ステップと、
前記第1出力結果と前記第2出力結果と前記識別結果とを用いて、前記防御器uの前記
パラメータτを更新する第2ステップと、
を交互に行う、機械学習方法。
【請求項2】
前記第1ステップでは、
前記入力データが前記ノンメンバデータであるときに、前記入力データ、前記正解ラベ
ル、及び前記第1出力結果に基づいて、前記識別器が前記識別結果を出力し、
前記入力データが前記メンバデータであるときに、前記入力データ、前記正解ラベル、
及び前記第2出力結果に基づいて、前記識別器が前記識別結果を出力する請求項1に記載
の機械学習方法。
【請求項3】
前記第1ステップでは、前記識別器が、前記入力データが前記ノンメンバデータである
ときの前記第1出力結果及び前記入力データが前記メンバデータであるときの前記第2出
力結果から正しい識別結果を出力するように前記パラメータωが更新され、
前記第2ステップでは、前記入力データが前記ノンメンバデータである時の前記第1出
力結果と前記第2出力結果との損失関数に基づいて、前記パラメータτが更新される請求
項1、又は2に記載の機械学習方法。
【請求項4】
前記第2ステップでは、前記入力データが前記メンバデータである時に、前記識別器が
、前記入力データが前記ノンメンバデータであると識別するように、前記パラメータτを
更新する請求項3に記載の機械学習方法。
【請求項5】
第1学習フェーズにおいて、
正解ラベル付きの第1のデータ集合を訓練データとして用
いて機械学習を行うことで、学習モデルのパラメータθを学習するパラメータ学習部と、
第2学習フェーズにおいて、前記第1のデータ集合に含まれるメンバデータ、及び第2
のデータ集合に含まれるノンメンバデータを用いて機械学習を行うことで、防御器uのパ
ラメータτの第1パラメータ更新部と、
前記第2学習フェーズにおいて、前記第1のデータ集合に含まれるメンバデータ、及び
第2のデータ集合に含まれるノンメンバデータを用いて機械学習を行うことで、識別器の
パラメータωを学習する第2パラメータ更新部と、を備え、
前記第2学習フェーズにおいて、
前記メンバデータ又は前記ノンメンバデータがランダムに入力データとして選択され、
前記メンバデータ又は前記ノンメンバデータが前記入力データとして前記学習モデルに
入力されたときに、前記学習モデルは第1出力結果を出力し、
前記防御器は前記第1出力結果を修正して、第2出力結果を出力し、
前記識別器は、前記第1出力結果又は前記第2出力結果に基づいて、前記入力データが
メンバデータであるか前記ノンメンバデータであるかを識別した識別結果を出力し、
前記第2学習フェーズは、
前記第1出力結果と前記第2出力結果を前記識別器に入力した時の前記識別結果とを用
いて、前記識別器の前記パラメータωを更新する第1ステップと、
前記第1出力結果と前記第2出力結果と前記識別結果とを用いて、前記防御器uの前記
パラメータτを更新する第2ステップと、
を交互に行う、機械学習システム。
【請求項6】
前記第1ステップでは、
前記入力データが前記ノンメンバデータであるときに、前記入力データ、前記正解ラベ
ル、及び前記第1出力結果に基づいて、前記識別器が前記識別結果を出力し、
前記入力データが前記メンバデータであるときに、前記入力データ、前記正解ラベル、
及び前記第2出力結果に基づいて、前記識別器が前記識別結果を出力する請求項5に記載
の機械学習システム。
【請求項7】
前記第1ステップでは、前記識別器が、前記入力データが前記ノンメンバデータである
ときの前記第1出力結果及び前記入力データが前記メンバデータであるときの前記第2出
力結果から正しい識別結果を出力するように前記パラメータωが更新され、
前記第2ステップでは、前記入力データが前記ノンメンバデータである時の前記第1出
力結果と前記第2出力結果との損失関数に基づいて、前記パラメータτが更新される請求
項5、又は6に記載の機械学習システム。
【請求項8】
前記第2ステップでは、前記入力データが前記メンバデータである時に、前記識別器が
、前記入力データが前記ノンメンバデータであると識別するように、前記パラメータτを
更新する請求項7に記載の機械学習システム。
【請求項9】
コンピュータに対して機械学習方法を実行させるためのプログラムであって、
前記機械学習方法は、
正解ラベル付きの第1のデータ集合を訓練データとして用いて機械学習を行うことで、
学習モデルのパラメータθを学習する第1学習フェーズと、
前記第1のデータ集合に含まれるメンバデータ、及び第2のデータ集合に含まれるノン
メンバデータを用いて機械学習を行うことで、防御器のパラメータτと、識別器のパラメ
ータωを学習する第2学習フェーズとを備え、
前記第2学習フェーズにおいて、
前記メンバデータ又は前記ノンメンバデータがランダムに入力データとして選択され、
前記メンバデータ又は前記ノンメンバデータが前記入力データとして前記学習モデルに
入力されたときに、前記学習モデルは第1出力結果を出力し、
前記防御器は前記第1出力結果を修正して、第2出力結果を出力し、
前記識別器は、前記第1出力結果又は前記第2出力結果に基づいて、前記入力データが
メンバデータであるか前記ノンメンバデータであるかを識別した識別結果を出力し、
前記第2学習フェーズは、
前記第1出力結果と前記第2出力結果を前記識別器に入力した時の前記識別結果とを用
いて、前記識別器の前記パラメータωを更新する第1ステップと、
前記第1出力結果と前記第2出力結果と前記識別結果とを用いて、前記防御器uの前記
パラメータτを更新する第2ステップと、
を交互に行う、プログラム。
【請求項10】
パラメータθを用いて推論を行う機械学習モデルである推論器と、
パラメータτを用いて、前記推論器の推論結果を示す第1出力結果を修正して、第2出
力結果を出力する機械学習モデルである防御器と、を備えた推論装置であって、
前記推論器のパラメータは、正解ラベル付きの第1のデータ集合を訓練データとして用
いて機械学習を行う第1学習フェーズで学習されており、
前記防御器uのパラメータτと識別器hのパラメータωは、前記第1のデータ集合に含
まれるメンバデータ、及び第2のデータ集合に含まれるノンメンバデータを用いて機械学
習を行う第2学習フェーズで学習されており、
前記第2学習フェーズにおいて、
前記メンバデータ又は前記ノンメンバデータがランダム
に入力データとして選択され、
前記メンバデータ又は前記ノンメンバデータが前記入力データとして前記学習モデルに
入力されたときに、前記学習モデルは第1出力結果を出力し、
前記防御器は前記第1出力結果を修正して、第2出力結果を出力し、
前記識別器は、前記第1出力結果又は前記第2出力結果に基づいて、前記入力データが
メンバデータであるか前記ノンメンバデータであるかを識別した識別結果を出力し、
前記第2学習フェーズでは、
前記第1出力結果と前記第2出力結果を前記識別器に入力した時の前記識別結果とを用
いて、前記識別器の前記パラメータωを更新する第1ステップと、
前記第1出力結果と前記第2出力結果と前記識別結果とを用いて、前記防御器uの前記
パラメータτを更新する第2ステップと、
が交互に行われている、推論装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、機械学習に関する。
【背景技術】
【0002】
非特許文献1、2には、機械学習の学習済みパラメータから学習に用いた秘密情報(例:顧客情報、企業秘密など)を漏洩させるMembership Inference攻撃(MI攻撃)が知られている。例えば、非特許文献1には、推論アルゴリズムへのアクセスが可能であるとの条件下で、MI攻撃の方法が開示されている。MI攻撃は、機械学習の「過学習」という現象を利用して実行する。過学習とは学習に用いたデータに対して機械学習が過剰に適合してしまう現象の事である。過学習が原因となり推論アルゴリズムの入力に学習に用いたデータを入力した場合とそうでないデータを入力した場合の出力の傾向が異なってしまう。MI攻撃の攻撃者はこの傾向の違いを悪用する事で、手元にあるデータが学習に用いられたものなのかそうでないのかを判別する。
【0003】
非特許文献3は、MI攻撃に耐性のある学習アルゴリズムを開示している。具体的には、非特許文献3では、任意の既知の機械学習の推論アルゴリズムfと、fに入力されたデータがfの学習に用いられたデータか否かを識別する識別器hを用いている。そして、それぞれのパラメータを敵対的に学習させ、推論アルゴリズムfの推論精度と、MI攻撃に対する耐性を引き上げている。
【0004】
非特許文献4には、MemGuardという方法が開示されている。この方法では、攻撃対象の推論アルゴリズムの学習済みパラメータが知られていないとの条件下でのブラックボックス攻撃に対する対策として、攻撃者の分類器を誤解させる処理を行う。
【先行技術文献】
【非特許文献】
【0005】
【文献】Reza Shokri, Marco Stronati, Congzheng Song, Vitaly Shmatikov: “Membership Inference Attacks Against Machine Learning Models ” 、IEEE Symposium on Security and Privacy 2017: 3-18、[online]、[令和2年4月9日検索]、インターネット〈URL:https://arxiv.org/pdf/1610.05820.pdf〉
【文献】Ahmed Salem, Yang Zhang, Mathias Humbert, Pascal Berrang, Mario Fritz, Michael Backes: “ML-Leaks: Model and Data Independent Membership Inference Attacks and Defenses on Machine Learning Models”、[online]、[令和2年4月9日検索]、インターネット〈URL:https://arxiv.org/abs/1806.01246〉
【文献】Milad Nasr, Reza Shokri, Amir Houmansadr、“Machine Learning with Membership Privacy using Adversarial Regularization”、[online]、[令和2年4月9日検索]、インターネット〈URL:https://arxiv.org/pdf/1807.05852.pdf〉
【文献】Jinyuan Jia, Ahmed Salem, Michael Backes, Yang Zhang, Neil Zhenqiang Gong、“MemGuard: Defending against Black-Box Membership Inference Attacks via Adversarial Examples”、[online]、[令和2年4月9日検索]、インターネット〈URL:https://arxiv.org/pdf/1909.10594.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【0006】
機械学習では、学習に用いられるデータ(訓練データともいう)が顧客情報や企業秘密などの秘密情報を含んでいる場合がある。MI攻撃により、機械学習の学習済みパラメータから学習に用いた秘密情報が漏洩してしまうおそれがある。例えば、学習済みパラメータを不正に入手した攻撃者が、学習データを推測してしまうおそれがある。あるいは、学習済みパラメータが漏洩していない場合でも、攻撃者が推論アルゴリズムに何度もアクセスすることで、学習済みパラメータが予想できてしまう。そして、予想された学習済みパラメータから学習データが予測されてしまうことがある。
【0007】
非特許文献3では、精度と攻撃耐性がトレードオフとなっている。具体的には、精度と攻撃耐性のトレードオフ度合いを決めるパラメータが設定されている。したがって、精度と攻撃耐性の両方を向上することが困難であるという問題点がある。
【0008】
また、非特許文献4の方式は、推論結果にノイズを載せることで防御している。このため、防御性能に関係なく、推論結果にノイズの影響が及んでしまうという問題点がある。
【0009】
本開示の目的は、MI攻撃に対する耐性が高く、かつ精度の高い機械学習システム、機械学習方法、及び記録媒体を提供することである。
【課題を解決するための手段】
【0010】
本開示にかかる機械学習方法は、正解ラベル付きの第1のデータ集合を訓練データとして用いて機械学習を行うことで、学習モデルのパラメータθを学習する第1学習フェーズと、前記第1のデータ集合に含まれるメンバデータ、及び第2のデータ集合に含まれるノンメンバデータを用いて機械学習を行うことで、防御器のパラメータτと、識別器のパラメータωを学習する第2学習フェーズとを備え、前記第2学習フェーズにおいて、前記メンバデータ又は前記ノンメンバデータがランダムに前記入力データとして選択され、前記メンバデータ又は前記ノンメンバデータが前記入力データとして前記学習モデルに入力されたときに、前記学習モデルは第1出力結果を出力し、前記防御器は前記第1出力結果を修正して、第2出力結果を出力し、前記識別器は、前記第1出力結果又は前記第2出力結果に基づいて、前記入力データがメンバデータであるか前記ノンメンバデータであるかを識別した識別結果を出力し、前記第2学習フェーズは、前記第1出力結果と前記第2出力結果を前記識別器に入力した時の前記識別結果とを用いて、前記識別器の前記パラメータωを更新する第1ステップと、前記第1出力結果と前記第2出力結果と前記識別結果とを用いて、前記防御器uの前記パラメータτを更新する第2ステップと、を交互に行う。
【0011】
本開示にかかる機械学習システムは、第1学習フェーズにおいて、第1のデータ集合を訓練データとして用いて機械学習を行うことで、学習モデルのパラメータθを学習するパラメータ学習部と、第2学習フェーズにおいて、前記第1のデータ集合に含まれるメンバデータ、及び第2のデータ集合に含まれるノンメンバデータを用いて機械学習を行うことで、防御器uのパラメータτの第1パラメータ更新部と、前記第2学習フェーズにおいて、前記第1のデータ集合に含まれるメンバデータ、及び第2のデータ集合に含まれるノンメンバデータを用いて機械学習を行うことで、識別器のパラメータωを学習する第2パラメータ更新部と、を備え、前記第2学習フェーズにおいて、前記メンバデータ又は前記ノンメンバデータがランダムに前記入力データとして選択され、前記メンバデータ又は前記ノンメンバデータが前記入力データとして前記学習モデルに入力されたときに、前記学習モデルは第1出力結果を出力し、前記防御器は前記第1出力結果を修正して、第2出力結果を出力し、前記識別器は、前記第1出力結果又は前記第2出力結果に基づいて、前記入力データがメンバデータであるか前記ノンメンバデータであるかを識別した識別結果を出力し、前記第2学習フェーズは、前記第1出力結果と前記第2出力結果を前記識別器に入力した時の前記識別結果とを用いて、前記識別器の前記パラメータωを更新する第1ステップと、前記第1出力結果と前記第2出力結果と前記識別結果とを用いて、前記防御器uの前記パラメータτを更新する第2ステップと、を交互に行う。
【0012】
本開示にかかるコンピュータ可読媒体は、コンピュータに対して機械学習方法を実行させるためのプログラムが格納された非一時的なコンピュータ可読媒体であって、前記機械学習方法は、正解ラベル付きの第1のデータ集合を訓練データとして用いて機械学習を行うことで、学習モデルのパラメータθを学習する第1学習フェーズと、前記第1のデータ集合に含まれるメンバデータ、及び第2のデータ集合に含まれるノンメンバデータを用いて機械学習を行うことで、防御器のパラメータτと、識別器のパラメータωを学習する第2学習フェーズとを備え、前記第2学習フェーズにおいて、前記メンバデータ又は前記ノンメンバデータがランダムに前記入力データとして選択され、前記メンバデータ又は前記ノンメンバデータが前記入力データとして前記学習モデルに入力されたときに、前記学習モデルは第1出力結果を出力し、前記防御器は前記第1出力結果を修正して、第2出力結果を出力し、前記識別器は、前記第1出力結果又は前記第2出力結果に基づいて、前記入力データがメンバデータであるか前記ノンメンバデータであるかを識別した識別結果を出力し、前記第2学習フェーズは、前記第1出力結果と前記第2出力結果を前記識別器に入力した時の前記識別結果とを用いて、前記識別器の前記パラメータωを更新する第1ステップと、前記第1出力結果と前記第2出力結果と前記識別結果とを用いて、前記防御器uの前記パラメータτを更新する第2ステップと、を交互に行う。
【0013】
本開示にかかる推論装置は、パラメータθを用いて推論を行う機械学習モデルである推論器と、パラメータτを用いて、前記推論器の推論結果を示す第1出力結果を修正して、第2出力結果を出力する機械学習モデルである防御器と、を備えた推論装置であって、前記推論器のパラメータは、正解ラベル付きの第1のデータ集合を訓練データとして用いて機械学習を行う第1学習フェーズで学習されており、前記防御器uのパラメータτと識別器hのパラメータωは、前記第1のデータ集合に含まれるメンバデータ、及び第2のデータ集合に含まれるノンメンバデータを用いて機械学習を行う第2学習フェーズで学習されており、前記第2学習フェーズにおいて、前記メンバデータ又は前記ノンメンバデータがランダムに前記入力データとして選択され、前記メンバデータ又は前記ノンメンバデータが前記入力データとして前記学習モデルに入力されたときに、前記学習モデルは第1出力結果を出力し、前記防御器は前記第1出力結果を修正して、第2出力結果を出力し、前記識別器は、前記第1出力結果又は前記第2出力結果に基づいて、前記入力データがメンバデータであるか前記ノンメンバデータであるかを識別した識別結果を出力し、前記第2学習フェーズでは、前記第1出力結果と前記第2出力結果を前記識別器に入力した時の前記識別結果とを用いて、前記識別器の前記パラメータωを更新する第1ステップと、前記第1出力結果と前記第2出力結果と前記識別結果とを用いて、前記防御器uの前記パラメータτを更新する第2ステップと、が交互に行われている。
【発明の効果】
【0014】
本開示によれば、MI攻撃に対する耐性が高く、かつ精度の高い機械学習システム、機械学習方法、機械学習モデル、及び記録媒体を提供できる。
【図面の簡単な説明】
【0015】
【
図1】本開示にかかる機械学習方法を示すフローチャートである。
【
図2】本開示にかかる機械学習方法の第2学習フェーズを示すフローチャートである。
【
図3】本実施の形態1にかかる機械学習システムでの推論時の処理を説明するための図である。
【
図4】本実施の形態1にかかる機械学習方法の学習時の処理を説明するための図である。
【
図5】推論器による推論精度を説明するための図である。
【
図6】防御器処理が行われた場合の推論精度を説明するための図である。
【
図7】本実施の形態にかかる装置のハードウェア構成を示す図である。
【発明を実施するための形態】
【0016】
本実施の形態にかかる機械学習方法について、
図1、
図2を参照して説明する。
図1は機械学習方法を示すフローチャートである。
図2は、機械学習方法の第2学習フェーズを示すフローチャートである。
【0017】
まず、第1の学習フェーズとして、正解ラベル付きの第1のデータ集合を学習用データとして用いて機械学習を行うことで、学習モデルfのパラメータθを学習する(S101)。次に、第2の学習フェーズとして、第1のデータ集合に含まれるメンバデータ、及び第2のデータ集合に含まれるノンメンバデータを用いて機械学習を行うことで、防御器uのパラメータτと、識別器hのパラメータωを学習する(S102)。
【0018】
第2学習フェーズにおいて、前記メンバデータ又は前記ノンメンバデータを入力データとして前記学習モデルfに入力したときに、前記学習モデルfは第1出力結果を出力する。前記防御器uは前記第1出力結果を修正して、第2出力結果を出力する。前記識別器hは、前記第1出力結果又は前記第2出力結果に基づいて、前記入力データがメンバデータであるか前記ノンメンバデータであるかを識別した識別結果を出力する。
【0019】
前記第2学習フェーズは、第1ステップS201と第2ステップS202とを有している。第2学習フェーズでは、機械学習が完了するまで、第1ステップS201と第2ステップS202、を交互に行う(S203)。
【0020】
第1ステップS201では、前記第1出力結果と前記第2出力結果を前記識別器hに入力した時の前記識別結果とを用いて、前記識別器の前記パラメータωが更新される。第2ステップS202では、前記第1出力結果と前記第2出力結果と前記識別結果とを用いて、前記防御器uの前記パラメータτが更新される。
【0021】
上記の方法によれば、MI攻撃に対する耐性が高く、かつ精度の高い機械学習を実現することができる。
【0022】
実施の形態1.
実施の形態1にかかる機械学習について、
図3を参照して説明する。
図3は、学習モデルf、及び防御器uを用いた推論フェーズを示す図である。学習モデルf,及び防御器uは、本実施の形態にかかる機械学習により生成された機械学習モデルである。学習モデルf,及び防御器uは、機械学習モデルを用いた推論装置として機能する。
【0023】
推論フェーズに先立って、学習モデルfのパラメータθ、及び防御器uのパラメータτが,機械学習により学習されている。学習モデルfの訓練に用いられた訓練データをメンバデータとする。学習モデルfの訓練に用いられていないデータをノンメンバデータとする。学習モデルfのパラメータθ、及び防御器uのパラメータτの機械学習については後述する。
【0024】
学習モデルfは対象データに基づいて推論を行う推論器である。学習モデルfには、推論の対象データが入力されると、対象データに関する推論結果を出力する。学習モデルfの推論結果を第1出力結果Fともいう。学習モデルfは例えば、画像分類を行う分類器とすることができる。この場合、学習モデルfが各クラスに該当する確率を示すスコアベクトルを出力する。学習モデルfから出力された第1出力結果Fは、防御器uに入力される。また、防御器uには、対象データが入力されていてもよい。
【0025】
防御器uは、第1出力結果Fを修正して、修正結果を第2出力結果Pとして出力する。防御器uは、メンバデータに対する学習モデルfの第1出力結果Fと、ノンメンバデータに対する学習モデルfの第1出力結果Fと、の区別がつかないように、第1出力結果Fを修正する。つまり、防御器uは第1出力結果Fに対して、防御処理を施す。防御器uは防御処理済みの推論結果を第2出力結果Pとして出力する。
【0026】
上記の通り、防御器uから出力される第2出力結果Pは、防御処理が施された推論結果となっている。MI攻撃の攻撃者が学習モデルfに任意のデータを入力したとしても、秘密情報が漏洩することを防ぐことができる。学習モデルfのパラメータθを推測する形態の攻撃を行う攻撃者にとって、任意データから訓練データに関する有意な情報を取り出すことは困難となる。最終的には、攻撃者による学習モデルfのパラメータθやメンバデータ(訓練データ)の推測を困難化させることができる。よって、MI攻撃に対する耐性を向上することができる。
【0027】
図4を参照して、機械学習システムにより機械学習方法について説明する。
図4は、機械学習システム400による機械学習方法を説明するための図である。機械学習システム400は、学習モデルfのパラメータθ、防御器uのパラメータτ、識別器hのパラメータωを学習する。機械学習システム400は、学習モデルf、パラメータ学習部401、データ選択部402,防御器u更新部403,及び識別器h更新部404を備えている。
【0028】
学習モデルfは、畳み込みニューラルネットワーク(CNN)などを用いた機械学習アルゴリズムである。学習モデルfのパラメータθは、CNNの畳み込み層、プーリング層、及び全結合層の重み又はバイアス値に対応している。同様に、防御器u、識別器hは、それぞれ畳み込みニューラルネットワーク(CNN)などを用いた機械学習アルゴリズムである。防御器uのパラメータτ、識別器hのパラメータωは、CNNの畳み込み層、プーリング層、及び全結合層の重み又はバイアス値に対応している。
【0029】
機械学習方法は、第1学習フェーズと、第2学習フェーズとを有している。第1学習フェーズは、
図1に示すステップS101に対応し、第2学習フェーズが
図1に示すステップS102に対応する。
【0030】
[第1学習フェーズ]
第1学習フェーズでは、
図4に示すように、パラメータ学習部401が、訓練データS1を用いて、学習モデルfのパラメータθの機械学習を行う。上記の通り、訓練データS1が学習モデルfの訓練に用いられたメンバデータとなる。
【0031】
ここでは、パラメータ学習部401が、学習モデルfに対して教師有り学習を行っている。訓練データS1には、正解ラベル(教師ラベル、教師信号、教師データともいう)が対応付けられている。つまり、訓練データS1には、事前に正解ラベル(以下単に、ラベルともいう)が付されている。例えば、学習モデルfが画像分類を行う分類器の場合、ラベルは分類結果を示すデータとなる。ここでの学習モデルfのパラメータθの学習では、MI攻撃に対する防御性能は考慮しなくてよい。このため、訓練データS1を用いた精度を追求することができる。よって、推論精度を向上することができる。
【0032】
具体的には、第1学習フェーズにおいては、ラベルを用いて、学習モデルfに教師有り学習が施される。学習モデルfの推論結果がラベルに一致するように、パラメータ学習部401がパラメータθを最適化する。例えば、推論結果を示す第1出力結果Fと、ラベルyとの損失関数を小さくするように機械学習が行われる。学習モデルfの学習が終了すると、パラメータ学習部401は、学習モデルfのパラメータθをメモリなどに格納する。
【0033】
[第2学習フェーズ]
学習第2フェーズでは、データ選択部402が、訓練データS1と、訓練データS0とのいずれかからランダムな選択を行う。訓練データS0は訓練データS1とは異なるデータである。訓練データS1は、学習モデルfの訓練に用いられたメンバデータとなる。訓練データS0は、学習モデルfの訓練に用いられていないノンメンバデータとなる。
【0034】
複数の訓練データS1のデータ集合を第1データ集合Mとし、複数の訓練データS0のデータ集合を第2データ集合Nとする。第1データ集合Mは,複数の訓練データS1を含んでいる。第2データ集合Nは、複数の訓練データS0を含んでいる。データ選択部402は、第1データ集合M、及び第2データ集合Nの中から、データをランダムに選択する。データ選択部402で選択されたデータx(以下、選択データxともいう)が第2学習フェーズでの学習に用いられる。つまり、第2学習フェーズにおいて、選択データxが学習モデルfに入力される入力データとなる。
【0035】
機械学習システム400は2つの学習モデルfを備えている。学習モデルfは、第1学習フェーズで生成された機械学習モデルである。学習モデルfには、第1学習フェーズで学習されたパラメータθが設定されている。したがって、2つの学習モデルfは、同一の機械学習モデルであり、同じパラメータθを有している。
【0036】
2つの学習モデルfには、選択データxが入力される。それぞれの学習モデルfは選択データxに基づいて推論を行う。それぞれの学習モデルfは推論結果を第1出力結果として出力する。選択データxを学習モデルfに入力した時のそれぞれの学習モデルfの出力を第1出力結果F(x)と示す。
【0037】
一方の学習モデルfからの第1出力結果F(x)が防御器u更新部403に入力される。防御器u更新部403は、防御器uのパラメータτを更新する。また、防御器u更新部403は、第2出力結果を識別器h更新部404に出力する。選択データx、及び第1出力結果F(x)を防御器uに入力した時の防御器uの出力を第2出力結果P(x,F(x))として示す。防御器uは、選択データxに基づいて第1出力結果F(x)を修正して、第2出力結果P(x,F(x))を算出する。第2出力結果P(x,F(x))は防御器uによる防御処理済みの推論結果である。
【0038】
他方の学習モデルfからの第1出力結果F(x)は、識別器h更新部404に入力される。識別器h更新部404は、識別器hのパラメータωを更新する。データ選択部402は、選択データx、及びラベルyを識別器h更新部404に出力する。ラベルyは上記の通り、選択データxに付された正解ラベルで有る。
【0039】
識別器h更新部404は、識別器hの識別結果Dを防御器u更新部403に出力する。識別結果Dは、選択データx、ラベルy、第1出力結果F(x)、及び第2出力結果P(x,F(x))に基づいて算出される。識別結果Dは選択データxが訓練データS1か訓練データS0かを示すデータであり、0~1の値を取る。例えば、選択データxが訓練データS1の場合、識別結果Dは0に近くなり、選択データxが訓練データS0の場合、識別結果Dは1に近くなる。
【0040】
識別器h更新部404は、選択データx、ラベルy、第1出力結果F(x)、第2出力結果P(x,F(x))、識別結果Dに基づいて、識別器hのパラメータωを更新する。防御器u更新部403は、識別結果D、選択データx、第1出力結果F(x)、第2出力結果P(x,F(x))に基づいて、防御器uのパラメータτを更新する。
【0041】
第2学習フェーズでは以下の第1ステップST1と第2ステップST2とが交互に実行される。なお、第1ステップST1、及び第2ステップST2において、データ選択部402は、訓練データS1又は訓練データS0がランダムに選択データxを選択する。選択データxが学習モデルfに入力される。
【0042】
(第1ステップST1)
第1ステップST1は
図2の第1ステップS201に対応している。データ選択部402が、第2データ集合Nの中からm(mは1以上の整数)個の選択データxとそのラベルyの組(x
1’,y
1’),・・・(x
m’,y
m’)をランダムに選択する。
【0043】
次に、データ選択部402が第1データ集合Mからm個の選択データとそのラベルyの組(x1,y1),・・・(xm,ym)をランダム選択する。第1ステップST1では、データ選択部402が、第1データ集合M、及び第2データ集合Nの中から同数のデータを選択する。
【0044】
以下の式(1)が大きくなる方向に、識別器h更新部404が識別器hのパラメータωを更新する。識別器h更新部404が確率的勾配を上昇させることで、パラメータωを更新する。なお、以下の式(1)、及び式(2)の∇(ナブラ)は成分毎の微分を表す。
【数1】
【0045】
このように、識別器h更新部404が、選択データxが訓練データS1である場合の識別結果Dと選択データxが訓練データS1である場合の識別結果Dとの違いが大きくなるように、識別器hのパラメータωを更新する。識別器h更新部404は、識別器hが正しい識別結果Dを出力するように、パラメータωを更新する。
【0046】
具体的には、識別器h更新部404は第1出力結果と第2出力結果と正解ラベルyとを用いて、識別器hのパラメータωを更新する。選択データxが訓練データS0であるときの第1出力結果F(xi’)、及び、選択データxが訓練データS1であるときの第2出力結果P(xi,F(xi))から識別器hが正しい識別結果を出力するように、識別器h更新部404はパラメータωを更新する。
【0047】
(第2ステップST1)
第2ステップST2は
図2の第2ステップS202に対応している。データ選択部402が、第2データ集合Nの中からn(nは1以上の整数)個の選択データxとそのラベルyの組(x
1’,y
1’),・・・(x
n’,y
n’)をランダムに選択する。
【0048】
次に、データ選択部402が第1データ集合Mからt(tは1以上の整数)個の選択データとそのラベルyの組(x1,y1),・・・(xt,yt)をランダム選択する。ここで、tとnは等しい値であってもよく、異なる値であってもよい。
【0049】
以下の式(2)が小さくなる方向に、防御器u更新部403が防御器uのパラメータτを更新する。防御器u更新部403が確率的勾配を下降させることで、パラメータτを更新する。
【数2】
【0050】
なお、Lは第2出力結果P(xj’,F(xj’)と第1出力結果F(xj’)との間の損失関数である。ξは事前に設定されたパラメータであるが、非特許文献3のλと異なり精度及び安全性のトレードオフではない。
【0051】
選択データxが訓練データS0である場合に、第2出力結果P(xj’,F(xj’)と第1出力結果F(xj’)との違いが小さくなるように、防御器u更新部403がパラメータτを更新する。具体的には、選択データxが訓練データS0である時の第2出力結果P(xj’,F(xj’))と第1出力結果F(xj’)との損失関数Lに基づいて、防御器u更新部403がパラメータτを更新する。
【0052】
防御器u更新部403は、識別器hが誤った識別結果を出力するように、パラメータτを更新する。具体的には、選択データxが訓練データS1である時に、識別器hが、選択データxが訓練データS0であると識別するように、防御器u更新部403がパラメータτを更新する。
【0053】
そして、第1ステップST1と第2ステップST2とが繰り返し行われる。つまり、機械学習システム400は、第1ステップST1と第2ステップST2とを交互に実行する。ここでは、第1ステップST1と第2ステップST2がバッチ処理となっている。機械学習システム400は、第1ステップST1と第2ステップST2とをそれぞれ所定の回数だけ繰り返し行って、パラメータωとパラメータτを交互に更新する。
【0054】
防御器u更新部403と識別器h更新部404とは、パラメータτ、及びパラメータωを交互に更新する。パラメータωとパラメータτのそれぞれの更新が収束すると機械学習が終了する。そして、機械学習が終了すると、識別器hと防御器uが生成される。このようにして生成された防御器uが
図3に示す防御器uとなり、推論フェーズで用いられる。
【0055】
実施の形態では、防御器u更新部403と識別器h更新部404とは、いわゆる敵対的学習を行って、それぞれパラメータτ、及びパラメータωを更新する。ステップST1とステップST2を繰り返し交互に行うことで、識別器hの識別性能と防御器uの防御性能が徐々に向上していく。防御器u経由の第2出力結果Pと、防御器uを経由しない第1出力結果Fとの区別を困難とするような高い防御性能を持つ防御器uが得られる。すなわち、識別器hが、選択データxが訓練データS1か訓練データS0かを識別することが困難になるように、防御器uが第1出力結果Fに対して防御処理を行う。よって、MI攻撃に対する耐性を向上することができる。
【0056】
さらに、防御器uを設けた場合でも、高い推論精度を維持することができる。この点について
図5,
図6を用いて説明する.
図5は、学習モデルfでの推論結果の推論精度を示す図である。
図6は防御器u経由の推論結果の推論精度を示す図である。
【0057】
第1学習フェーズでは、学習モデルfが教師有り学習で構築されている。よって、
図5に示すように、訓練データS1に対する推論精度を高くすることができる。換言すると、過学習により、入力データが訓練データS1の時の推論精度は、入力データが訓練データS1以外のデータの時の推論精度に比べて極めて高くなる。したがって、学習モデルfでは、推論精度とMI攻撃に対する耐性がトレードオフの関係となる。
【0058】
第2学習フェーズでは、訓練データS0に対する推論精度は維持したまま、訓練データS1に対する推論精度を下げるように、防御器uのパラメータτが更新される。従って、
図6に示すように、過学習により極めて高くなった推論精度を下げることができる。また、訓練データS0は訓練データS1とは異なるデータであるため、推論精度とMI攻撃に対する耐性がトレードオフの関係とならない。
【0059】
第1ステップでは、入力データがノンメンバデータである場合、識別器hが入力データ、正解ラベル、及び第1出力結果に基づいて、識別結果を出力する。第1ステップでは、入力データがメンバデータである場合、識別器hが入力データ、正解ラベル、及び第2出力結果に基づいて、識別結果を出力する。従って、効率よく機械学習を実行することができる。
【0060】
第1ステップでは、入力データがノンメンバデータであるとき、識別器hが第1出力結果から正しい識別結果を出力し、かつ、入力データがメンバデータであるとき、第2の結果から識別結果を出力するように、パラメータωが更新される。第2ステップでは、入力データがノンメンバデータであるとき、パラメータτが、第1出力結果と第2出力結果との間の損失関数に基づいて更新される。従って、効率よく機械学習を実行することができる。
【0061】
第2ステップでは、入力データがメンバデータであるとき、識別器が入力データをノンメンバデータと識別するように、パラメータτが更新される。従って、効率よく機械学習を実行することができる。
【0062】
防御器uを敵対的学習により生成している。防御器u付きの学習モデルfを機械学習モデルとしても用いることができる。推論精度が高く、かつMI攻撃に対する耐性の高い機械学習モデルを実現することができる。
【0063】
上記の実施形態において、機械学習システムのそれぞれの要素はそれぞれコンピュータプログラムで実現可能である。つまり、学習モデルf、防御器u、識別器h、更新部等はそれぞれコンピュータプログラムで実現可能である。また、学習モデルf、防御器u、識別器h、更新部は、物理的に単一な装置となっていなくてもよく、複数のコンピュータに分散されていてもよい。
【0064】
次に、実施の形態にかかる機械学習システムのハードウェア構成について説明する。
図7は、機械学習システム700のハードウェア構成の一例を示すブロック図である。
図6に示すように、機械学習システム700は例えば、少なくとも一つのメモリ701、少なくとも一つのプロセッサ702,及びネットワークインタフェース703を含む。
【0065】
ネットワークインタフェース703は、有線又は無線のネットワークを介して他の装置と通信するために使用される。ネットワークインタフェース703は、例えば、ネットワークインタフェースカード(NIC)を含んでもよい。機械学習システム700は、ネットワークインタフェース703を介して、データの送受信を行う。機械学習システム700は、ネットワークインタフェースを介して、選択データx及びラベルyを取得してもよい。
【0066】
メモリ701は、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリ701は、プロセッサ702から離れて配置されたストレージを含んでもよい。この場合、プロセッサ702は、図示されていない入出力インタフェースを介してメモリ701にアクセスしてもよい。
【0067】
メモリ701は、プロセッサ702により実行される、1以上の命令を含むソフトウェア(コンピュータプログラム)などを格納するために使用される。メモリ701は、学習モデルfや防御器uを格納していてもよい。つまり、メモリ701は学習モデルfと防御器uとを備えた機械学習モデルを格納していてもよい。
【0068】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0069】
なお、本開示は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0070】
f 学習モデル
u 防御器
h 識別器
401 パラメータ学習部
402 データ選択部
403 防御器u更新部
404 識別器h更新部
701 メモリ
702 プロセッサ
703 ネットワークインタフェース