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

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

▶ 日本電気株式会社の特許一覧

特開2024-17375情報処理装置、脆弱性判定方法、および脆弱性判定プログラム
<>
  • 特開-情報処理装置、脆弱性判定方法、および脆弱性判定プログラム 図1
  • 特開-情報処理装置、脆弱性判定方法、および脆弱性判定プログラム 図2
  • 特開-情報処理装置、脆弱性判定方法、および脆弱性判定プログラム 図3
  • 特開-情報処理装置、脆弱性判定方法、および脆弱性判定プログラム 図4
  • 特開-情報処理装置、脆弱性判定方法、および脆弱性判定プログラム 図5
  • 特開-情報処理装置、脆弱性判定方法、および脆弱性判定プログラム 図6
  • 特開-情報処理装置、脆弱性判定方法、および脆弱性判定プログラム 図7
  • 特開-情報処理装置、脆弱性判定方法、および脆弱性判定プログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024017375
(43)【公開日】2024-02-08
(54)【発明の名称】情報処理装置、脆弱性判定方法、および脆弱性判定プログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240201BHJP
   G06F 21/57 20130101ALI20240201BHJP
【FI】
G06N20/00
G06F21/57 370
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022119964
(22)【出願日】2022-07-27
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】伊東 邦大
(72)【発明者】
【氏名】エンケタイワン バトニヤマ
(72)【発明者】
【氏名】寺西 勇
(57)【要約】
【課題】連合学習されるモデルに対する属性推定攻撃を防ぐことを可能にする。
【解決手段】情報処理装置(2)は、連合学習中の決定木の出力値のうち、値の大きさが正常範囲外である出力値を異常値として検出する検出部(21)と、異常値が検出された場合に、前記決定木には、当該決定木の学習に用いた訓練データに含まれる属性値を推定する攻撃に対する脆弱性があると判定する判定部(22)と、を備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
複数の装置による連合学習済であるかまたは連合学習中の決定木の出力値のうち、値の大きさが正常範囲外である出力値を異常値として検出する検出手段と、
前記異常値が検出された場合に、前記決定木には、当該決定木の学習に用いた訓練データに含まれる属性値を推定する攻撃に対する脆弱性があると判定する判定手段と、を備える情報処理装置。
【請求項2】
連合学習中の前記決定木に、仮想標的データが入力されたときに当該仮想標的データに含まれる仮想標的属性の属性値に対応する出力値が異常値となるように下工作された仮想下工作決定木を追加した決定木に基づいた学習により生成された訓練後決定木から前記属性値を推定するシミュレーションの結果に基づいて前記正常範囲を決定する範囲決定手段を備える、請求項1に記載の情報処理装置。
【請求項3】
前記仮想下工作決定木を生成する下工作手段を備え、
前記仮想下工作決定木は、前記仮想標的属性の候補値に対応する実現候補データがそれぞれ単独で割り振られる葉ノードである候補ノードを含み、
前記候補ノードの出力値は、
前記候補ノードに対応する前記訓練後決定木の葉ノードの出力値が、当該訓練後決定木の出力値の中で絶対値が最大の出力値となり、かつ、
絶対値が最大の前記出力値が前記候補値の何れに対応するかを識別できる程度に相互に差のある値となるような操作値となっている、請求項2に記載の情報処理装置。
【請求項4】
前記下工作手段は、複数の前記装置のうち直近に前記決定木の学習を行った装置が学習した部分を前記仮想下工作決定木に置換する、請求項3に記載の情報処理装置。
【請求項5】
前記訓練後決定木の出力値の中で絶対値が最大の出力値を検出し、当該出力値に対応する前記候補値を、前記仮想標的属性の属性値と推定する推定手段を備え、
前記下工作手段は、それぞれ異なる数値範囲から選択した前記操作値を用いて複数の前記仮想下工作決定木を生成し、
前記範囲決定手段は、複数の前記仮想下工作決定木のそれぞれを用いて生成された複数の前記訓練後決定木のうち、前記推定手段が前記仮想標的属性の属性値を正しく推定できなかった訓練後決定木であって、前記操作値を選択したときの前記数値範囲が最も広かった訓練後決定木に対応する前記数値範囲を、前記正常範囲と決定する、請求項3に記載の情報処理装置。
【請求項6】
複数の装置による連合学習中の決定木を取得する取得手段と、
標的属性を含む標的データを用いて、前記標的属性の候補値に対応する実現候補データがそれぞれ単独で割り振られる葉ノードである候補ノードを含む下工作決定木を生成し、生成した下工作決定木を前記決定木に追加する下工作手段と、を備え、
前記候補ノードの出力値は、
前記下工作決定木を追加した前記決定木から生成された訓練後決定木における前記候補ノードに対応する葉ノードの出力値が、当該訓練後決定木の出力値の中で絶対値が最大の出力値となり、かつ、
絶対値が最大の前記出力値が前記候補値の何れに対応するかを識別できる程度に相互に差のある値となるような操作値となっている、情報処理装置。
【請求項7】
複数の装置による連合学習済であるかまたは連合学習中の決定木を取得する取得手段と、
前記決定木の出力値の中で絶対値が最大の出力値を検出し、標的データに含まれる標的属性について予め設定された候補値のうち、検出した前記出力値に対応する候補値を、前記標的属性の属性値と推定する推定手段と、を備える情報処理装置。
【請求項8】
少なくとも1つのプロセッサが、
複数の装置による連合学習済であるかまたは連合学習中の決定木の出力値のうち、値の大きさが正常範囲外である出力値を異常値として検出することと、
前記異常値が検出された場合に、前記決定木には、当該決定木の学習に用いた訓練データに含まれる属性値を推定する攻撃に対する脆弱性があると判定することと、を含む脆弱性判定方法。
【請求項9】
コンピュータを、
複数の装置による連合学習済であるかまたは連合学習中の決定木の出力値のうち、値の大きさが正常範囲外である出力値を異常値として検出する検出手段、および
前記異常値が検出された場合に、前記決定木には、当該決定木の学習に用いた訓練データに含まれる属性値を推定する攻撃に対する脆弱性があると判定する判定手段、として機能させる脆弱性判定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
機械学習モデルの学習に用いられた訓練データの属性値を推定する攻撃に対抗するための技術に関する。
【背景技術】
【0002】
機械学習モデルの挙動を観察することにより、当該機械学習モデルの学習に用いた訓練データに含まれていた属性値を推定する技術が従来から知られている。例えば、下記の非特許文献1には、遺伝子型等に基づいて治療法をガイドするように学習された機械学習モデルすなわち治療法の予測モデルと、ある患者に関するいくらかの情報があれば、その患者の遺伝子マーカーを予測することが可能である旨記載されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Fredrikson et. al.,Privacy in Pharmacogenetics: An End-to-End Case Study of Personalized Warfarin Dosing,Proceedings of the 23rd USENIX Security Symposium, p. 17- 32,2014
【発明の概要】
【発明が解決しようとする課題】
【0004】
他方、近年では、連合学習と呼ばれる学習手法が注目を集めている。連合学習では、多数のクライアント間で学習中のモデルを受け渡しながら1つのモデルの学習を進めていく。このような連合学習においては、学習に関与するクライアントの中に悪意のある攻撃者が含まれ得る。そして、当該攻撃者は、学習中のモデルに対し、標的とする属性値の推定を容易にするための下工作を行うことが可能である。
【0005】
しかしながら、従来は、上記のような下工作を行った上で訓練データの属性値を推定する、という攻撃態様は想定されておらず、そのような攻撃を防ぐ手立ても存在しなかった。
【0006】
本発明の一態様は、上記の問題に鑑みてなされたものであり、連合学習済みまたは連合学習中のモデルに対する、そのモデルの学習に用いられた訓練データの属性値を推定する攻撃を防ぐことを可能にする情報処理装置等を提供することを一目的とする。
【課題を解決するための手段】
【0007】
本発明の一態様に係る情報処理装置は、複数の装置による連合学習済であるかまたは連合学習中の決定木の出力値のうち、値の大きさが正常範囲外である出力値を異常値として検出する検出手段と、前記異常値が検出された場合に、前記決定木には、当該決定木の学習に用いた訓練データに含まれる属性値を推定する攻撃に対する脆弱性があると判定する判定手段と、を備える。
【0008】
本発明の一態様に係る脆弱性判定方法は、少なくとも1つのプロセッサが、複数の装置による連合学習済であるかまたは連合学習中の決定木の出力値のうち、値の大きさが正常範囲外である出力値を異常値として検出することと、前記異常値が検出された場合に、前記決定木には、当該決定木の学習に用いた訓練データに含まれる属性値を推定する攻撃に対する脆弱性があると判定することと、を含む。
【0009】
本発明の一態様に係る脆弱性判定プログラムは、コンピュータを、複数の装置による連合学習済であるかまたは連合学習中の決定木の出力値のうち、値の大きさが正常範囲外である出力値を異常値として検出する検出手段、および前記異常値が検出された場合に、前記決定木には、当該決定木の学習に用いた訓練データに含まれる属性値を推定する攻撃に対する脆弱性があると判定する判定手段、として機能させる。
【発明の効果】
【0010】
本発明の一態様によれば、連合学習済みまたは連合学習中のモデルに対する、そのモデルの学習に用いられた訓練データの属性値を推定する攻撃を防ぐことが可能になる。
【図面の簡単な説明】
【0011】
図1】本発明の実施形態1に係る学習システムの構成を示すブロック図である。
図2】本発明の実施形態1に係る下工作方法、脆弱性判定方法、および属性値推定方法の流れを示すフロー図である。
図3】本発明の実施形態2に係る学習システムの構成を示すブロック図である。
図4】訓練データセットの例を示す図である。
図5】下工作決定木の例を示す図である。
図6】訓練後決定木の例を示す図である。
図7】本発明の実施形態2に係る情報処理装置が実行する処理の流れを示すフロー図である。
図8】本発明の各例示的実施形態に係る情報処理装置の各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【0012】
〔例示的実施形態1〕
本発明の第1の例示的実施形態について、図面を参照して詳細に説明する。本例示的実施形態は、後述する例示的実施形態の基本となる形態である。
【0013】
(システム構成)
本例示的実施形態に係る学習システム100の構成について、図1を参照して説明する。図1は、学習システム100の構成を示すブロック図である。学習システム100は、決定木の連合学習を行うシステムである。なお、連合学習とは、学習に用いる訓練データを集約せず、分散した状態で機械学習を行う学習手法である。連合学習に参加する者(装置)は、クライアントと呼ばれる。
【0014】
図示のように、学習システム100は、情報処理装置1、2、および3を含んでいる。情報処理装置1、2、および3は何れも連合学習のクライアントである。ここでは、情報処理装置1、2、および3がこの順番で連合学習を行うものとして説明するが、情報処理装置1の前、情報処理装置1と2の間、情報処理装置2と3の間、および情報処理装置3の後に連合学習を行う1または複数のクライアントが含まれていてもよい。
【0015】
情報処理装置1は、連合学習中の決定木に対し、標的とする属性値の推定を容易にするための下工作を行う。このように、連合学習においては、連合学習に参加するクライアントに悪意の攻撃者やその補助者が含まれ得る。
【0016】
図示のように、情報処理装置1は、複数の装置による連合学習中の決定木を取得する取得部11と、標的属性を含む標的データを用いて、前記標的属性の候補値に対応する実現候補データがそれぞれ単独で割り振られる葉ノードである候補ノードを含む下工作決定木を生成し、生成した下工作決定木を前記決定木に追加する下工作部12とを備える。
【0017】
なお、前記候補ノードの出力値は、前記下工作決定木を追加した前記決定木から生成された訓練後決定木における前記候補ノードに対応する葉ノードの出力値が、当該訓練後決定木の出力値の中で絶対値が最大の出力値となり、かつ、絶対値が最大の前記出力値が前記候補値の何れに対応するかを識別できる程度に相互に差のある値となるような操作値となっている。
【0018】
情報処理装置2は、前記標的データを含む訓練データを保有している。情報処理装置2が、当該訓練データを用いて、上記のような下工作が行われた決定木の学習を行った場合、当該学習後の決定木である訓練後決定木を受け取った情報処理装置3により、標的データの標的属性が推定されてしまう。
【0019】
このような事態を避けるため、情報処理装置2は、複数の装置による連合学習中の決定木の出力値のうち、値の大きさが正常範囲外である出力値を異常値として検出する検出部21と、前記異常値が検出された場合に、前記決定木には、当該決定木の学習に用いた訓練データに含まれる属性値を推定する攻撃に対する脆弱性があると判定する判定部22とを備えている。なお、情報処理装置2は、連合学習済の決定木の脆弱性についても同様に判定することが可能である。
【0020】
情報処理装置3は、情報処理装置1による下工作を利用して標的属性の属性値を推定する。もし情報処理装置2が検出部21と判定部22とを備えていなかったとすれば、情報処理装置2が連合学習に用いた訓練データに含まれる標的データの標的属性の属性値は情報処理装置3により推定されてしまう。
【0021】
図示のように、情報処理装置3は、複数の装置による連合学習中の決定木を取得する取得部31と、前記決定木の出力値の中で絶対値が最大の出力値を検出し、標的データに含まれる標的属性について予め設定された候補値のうち、検出した前記出力値に対応する候補値を、前記標的属性の属性値と推定する推定部32と、を備える。なお、出力値と候補値との対応関係については、予め情報処理装置1と情報共有しておけばよい。また、取得部31は、連合学習済の決定木を取得してもよい。この場合、情報処理装置3では連合学習は行われない。
【0022】
以上のように、本例示的実施形態に係る情報処理装置1は、複数の装置による連合学習中の決定木を取得する取得部11と、標的属性を含む標的データを用いて、前記標的属性の候補値に対応する実現候補データがそれぞれ単独で割り振られる葉ノードである候補ノードを含む下工作決定木を生成し、生成した下工作決定木を前記決定木に追加する下工作部12とを備える。
【0023】
また、前記候補ノードの出力値は、前記下工作決定木を追加した前記決定木から生成された訓練後決定木における前記候補ノードに対応する葉ノードの出力値が、当該訓練後決定木の出力値の中で絶対値が最大の出力値となり、かつ、絶対値が最大の前記出力値が前記候補値の何れに対応するかを識別できる程度に相互に差のある値となるような操作値となっている。
【0024】
候補ノードの出力値を上記のような操作値とした決定木を、標的データを用いて訓練した場合、訓練後決定木の葉ノードのうち、出力値の絶対値が最大の葉ノードが候補ノードの何れかに対応するノードとなる。そして、当該ノードの値から、当該ノードが何れの候補ノードに対応しているかを特定し、特定した候補ノードに対応する候補値を、標的属性の値と推定することが可能になる。つまり、情報処理装置1によれば、標的属性に対する属性推定攻撃に対して脆弱な決定木を生成させることができる。
【0025】
また、以上のように、本例示的実施形態に係る情報処理装置3は、複数の装置による連合学習済であるかまたは連合学習中の決定木を取得する取得部31と、前記決定木の出力値の中で絶対値が最大の出力値を検出し、標的データに含まれる標的属性について予め設定された候補値のうち、検出した前記出力値に対応する候補値を、前記標的属性の属性値と推定する推定部32と、を備える。
【0026】
取得した決定木に対して上述のような下工作が行われたのち、標的データを用いた訓練が行われていれば、上記の構成により、標的属性の属性値を正しく推定することが可能である。
【0027】
また、以上のように、本例示的実施形態に係る情報処理装置2は、複数の装置による連合学習済であるかまたは連合学習中の決定木の出力値のうち、値の大きさが正常範囲外である出力値を異常値として検出する検出部21と、前記異常値が検出された場合に、前記決定木には、当該決定木の学習に用いた訓練データに含まれる属性値を推定する攻撃に対する脆弱性があると判定する判定部22とを備えている。
【0028】
上述のように、決定木を連合学習する場合、属性推定の標的とする標的属性を含む標的データを用いて学習を行ったときに、当該標的属性の属性値に反応して1つの出力値が異常値となるような下工作を行うことにより、標的データの値を容易に推定できるようにすることが可能である。
【0029】
つまり、連合学習済であるかまたは連合学習中の決定木の出力値に上述のような異常値が含まれている場合、その決定木には下工作がなされている可能性がある。よって、決定木から異常値が検出されたときに、当該決定木に脆弱性があると判定する情報処理装置2によれば、属性値を推定する攻撃を防ぐことが可能になる。
【0030】
(プログラム)
上述の情報処理装置1の機能は、プログラムによって実現することもできる。本例示的実施形態に係る下工作プログラムは、コンピュータを、複数の装置による連合学習中の決定木を取得する取得手段、および、標的属性を含む標的データを用いて、前記標的属性の候補値に対応する実現候補データがそれぞれ単独で割り振られる葉ノードである候補ノードを含む下工作決定木を生成し、生成した下工作決定木を前記決定木に追加する下工作手段として機能させる。なお、前記候補ノードの出力値は、前記下工作決定木を追加した前記決定木から生成された訓練後決定木における前記候補ノードに対応する葉ノードの出力値が、当該訓練後決定木の出力値の中で絶対値が最大の出力値となり、かつ、絶対値が最大の前記出力値が前記候補値の何れに対応するかを識別できる程度に相互に差のある値となるような操作値となっている。この下工作プログラムによれば、標的属性に対する属性推定攻撃に対して脆弱な決定木を生成させることができる。
【0031】
また、上述の情報処理装置2の機能もプログラムによって実現することができる。本例示的実施形態に係る脆弱性判定プログラムは、コンピュータを、複数の装置による連合学習済であるかまたは連合学習中の決定木の出力値のうち、値の大きさが正常範囲外である出力値を異常値として検出する検出手段、および、前記異常値が検出された場合に、前記決定木には、当該決定木の学習に用いた訓練データに含まれる属性値を推定する攻撃に対する脆弱性があると判定する判定手段として機能させる。
【0032】
この脆弱性判定プログラムによれば、連合学習済みまたは連合学習中のモデルに対する、そのモデルの学習に用いられた訓練データの属性値を推定する攻撃を防ぐことが可能になるという効果が得られる。
【0033】
同様に、上述の情報処理装置3の機能もプログラムによって実現することができる。本例示的実施形態に係る属性値推定プログラムは、コンピュータを、複数の装置による連合学習済であるかまたは連合学習中の決定木を取得する取得手段、および、前記決定木の出力値の中で絶対値が最大の出力値を検出し、標的データに含まれる標的属性について予め設定された候補値のうち、検出した前記出力値に対応する候補値を、前記標的属性の属性値と推定する推定手段として機能させる。
【0034】
この属性値推定プログラムによれば、取得した決定木に対して上述のような下工作が行われたのち、標的データを用いた訓練が行われていれば、標的属性の属性値を正しく推定することができる。
【0035】
(処理の流れ)
本例示的実施形態に係る下工作方法、脆弱性判定方法、および属性値推定方法の流れについて、図2を参照して説明する。図2は、下工作方法M1、脆弱性判定方法M2、および属性値推定方法M3の流れを示すフロー図である。なお、これらの各方法における各ステップの実行主体は、情報処理装置1、2、または3が備えるプロセッサであってもよいし、他の装置が備えるプロセッサであってもよく、各ステップの実行主体がそれぞれ異なる装置に設けられたプロセッサであってもよい。
【0036】
図2に示す下工作方法M1では、S11において、少なくとも1つのプロセッサが、複数の装置による連合学習中の決定木を取得する。
【0037】
S12では、少なくとも1つのプロセッサが、標的属性を含む標的データを用いて、前記標的属性の候補値に対応する実現候補データがそれぞれ単独で割り振られる葉ノードである候補ノードを含む下工作決定木を生成し、生成した下工作決定木を前記決定木に追加する。なお、前記候補ノードの出力値は、前記下工作決定木を追加した前記決定木から生成された訓練後決定木における前記候補ノードに対応する葉ノードの出力値が、当該訓練後決定木の出力値の中で絶対値が最大の出力値となり、かつ、絶対値が最大の前記出力値が前記候補値の何れに対応するかを識別できる程度に相互に差のある値となるような操作値となっている。
【0038】
以上のように、本例示的実施形態に係る下工作方法M1は、少なくとも1つのプロセッサが、複数の装置による連合学習中の決定木を取得すること(S11)と、少なくとも1つのプロセッサが、標的属性を含む標的データを用いて、前記標的属性の候補値に対応する実現候補データがそれぞれ単独で割り振られる葉ノードである候補ノードを含む下工作決定木を生成し、生成した下工作決定木を前記決定木に追加すること(S12)とを含む。この下工作方法M1によれば、標的属性に対する属性推定攻撃に対して脆弱な決定木を生成させることができる。
【0039】
一方、図2に示す脆弱性判定方法M2では、S21において、少なくとも1つのプロセッサが、複数の装置による連合学習済であるかまたは連合学習中の決定木の出力値のうち、値の大きさが正常範囲外である出力値を異常値として検出する。
【0040】
S22では、少なくとも1つのプロセッサが、前記異常値が検出された場合に、前記決定木には、当該決定木の学習に用いた訓練データに含まれる属性値を推定する攻撃に対する脆弱性があると判定する。
【0041】
以上のように、本例示的実施形態に係る脆弱性判定方法M2は、少なくとも1つのプロセッサが、複数の装置による連合学習済であるかまたは連合学習中の決定木の出力値のうち、値の大きさが正常範囲外である出力値を異常値として検出すること(S21)と、少なくとも1つのプロセッサが、前記異常値が検出された場合に、前記決定木には、当該決定木の学習に用いた訓練データに含まれる属性値を推定する攻撃に対する脆弱性があると判定すること(S22)とを含む。この脆弱性判定方法M2によれば、取得した連合学習中の決定木に対して上述のような下工作が行われていた場合、当該決定木に脆弱性があると判定することができる。よって、脆弱性判定方法M2によれば、訓練データの属性値を推定する攻撃を防ぐことが可能になるという効果が得られる。
【0042】
一方、図2に示す属性値推定方法M3では、S31において、少なくとも1つのプロセッサが、複数の装置による連合学習済であるかまたは連合学習中の決定木を取得する。
【0043】
S32では、少なくとも1つのプロセッサが、前記決定木の出力値の中で絶対値が最大の出力値を検出し、標的データに含まれる標的属性について予め設定された候補値のうち、検出した前記出力値に対応する候補値を、前記標的属性の属性値と推定する。
【0044】
以上のように、本例示的実施形態に係る属性値推定方法M3は、少なくとも1つのプロセッサが、複数の装置による連合学習済であるかまたは連合学習中の決定木を取得すること(S31)と、少なくとも1つのプロセッサが、前記決定木の出力値の中で絶対値が最大の出力値を検出し、標的データに含まれる標的属性について予め設定された候補値のうち、検出した前記出力値に対応する候補値を、前記標的属性の属性値と推定すること(S32)とを含む。この属性値推定方法M3によれば、S31で取得した決定木に対して上述のような下工作が行われたのち、標的データを用いた訓練が行われていれば、標的属性の属性値を正しく推定することができる。
【0045】
〔例示的実施形態2〕
(システム構成)
本例示的実施形態に係る学習システム100Aの構成について、図3を参照して説明する。図3は、学習システム100Aの構成を示すブロック図である。学習システム100Aは、学習システム100と同様に、決定木の連合学習を行うシステムである。
【0046】
図示のように、学習システム100Aは、情報処理装置1A、2A、および3Aを含んでいる。情報処理装置1A、2A、および3Aは何れも連合学習のクライアントである。ここでは、情報処理装置1A、2A、および3Aがその順番で連合学習を行うものとして説明する。ただし、情報処理装置1Aの前、情報処理装置1Aと2Aの間、情報処理装置2Aと3Aの間、および情報処理装置3Aの後に連合学習を行う1または複数のクライアントが含まれていてもよい。
【0047】
なお、情報処理装置1Aおよび3Aの機能は、例示的実施形態1の情報処理装置1および3と概ね同様であるため、これらの装置の詳細は後述することとし、以下では主に情報処理装置2Aについて説明する。
【0048】
情報処理装置2Aは、情報処理装置2Aの各部を統括して制御する制御部20Aと、情報処理装置2Aが使用する各種データを記憶する記憶部21Aを備えている。また、情報処理装置2Aは、情報処理装置2Aが他の装置と通信するための通信部22A、情報処理装置2Aに対する各種データの入力を受け付ける入力部23A、および情報処理装置2Aが各種データを出力するための出力部24Aを備えている。なお、図3では図示を省略しているが情報処理装置1Aおよび3Aも制御部、記憶部、通信部、入力部、および出力部等の構成を備えていてもよい。
【0049】
また、制御部20Aには、取得部201A、検出部202A、判定部203A、学習部204A、下工作部205A、推定部206A、および範囲決定部207Aが含まれている。そして、記憶部21Aには、訓練データセット211Aが記憶されている。
【0050】
取得部201Aは、情報処理装置2Aの直前のクライアントから連合学習中の決定木を取得する。典型的には、取得部201Aは、通信部22Aを介した通信により連合学習中の決定木を取得する。当該決定木は例えば情報処理装置1Aから送信されたものである。なお、取得部201Aは、連合学習済の決定木を取得してもよい。
【0051】
検出部202Aは、取得部201Aにより取得された、複数の装置による連合学習済であるかまたは連合学習中の決定木の出力値のうち、値の大きさが正常範囲外である出力値を異常値として検出する。
【0052】
判定部203Aは、検出部202Aにより異常値が検出された場合に、取得部201Aにより取得された決定木には、当該決定木の学習に用いた訓練データに含まれる属性値を推定する攻撃に対する脆弱性があると判定する。
【0053】
学習部204Aは、訓練データセット211Aを用いて取得部201Aが取得する決定木(連合学習中のもの)の学習を行い、訓練後決定木を生成する。また、学習部204Aは、生成した訓練後決定木を後続のクライアント(例えば情報処理装置3A)に、通信部22Aを介した通信により送信する。
【0054】
下工作部205Aは、仮想標的データが入力されたときに当該仮想標的データに含まれる仮想標的属性の属性値に対応する出力値が異常値となるように下工作された仮想下工作決定木を生成する。詳細は後述するが、仮想下工作決定木は、属性値推定のシミュレーションに用いられる。
【0055】
推定部206Aは、上記のシミュレーションを行う。より詳細には、推定部206Aは、連合学習中の決定木に下工作部205Aが生成する仮想下工作決定木を追加した決定木に基づいた学習により生成された訓練後決定木の出力値の中で絶対値が最大の出力値を検出し、当該出力値に対応する候補値を、仮想標的属性の属性値と推定する。
【0056】
範囲決定部207Aは、推定部206Aによって行われる訓練後決定木から仮想標的属性の属性値を推定するシミュレーションの結果に基づいて、検出部202Aが異常値検出の基準とする正常範囲を決定する。
【0057】
訓練データセット211Aは、学習部204Aが決定木の学習に用いるデータセットである。また、訓練データセット211Aは、上記のシミュレーションにも用いられる。訓練データセット211Aの詳細は後述する。
【0058】
(訓練データセットの例)
図4は、訓練データセットの例を示す図である。より詳細には、図4には、情報処理装置1Aが連合学習に用いる訓練データセットDの例と、情報処理装置2Aが連合学習に用いる訓練データセット211Aの例を示している。これらは何れも同じ決定木の連合学習に用いられるものであり、ユーザのID(Identification:識別情報)、体重、身長、年齢、および消費カロリーという共通の属性を含んでいる。
【0059】
このようなデータセットを用いて学習することにより、一つの属性の属性値(目的変数)を、他の属性の属性値(説明変数)から推定する決定木を生成することができる。例えば、ある人の体重、身長、および年齢から、その人の一日の消費カロリーを推定する決定木を生成することもできる。無論、どのような属性を含む訓練データセットを用いるかは任意である。また、訓練データセットに含まれる何れの属性の属性値を目的変数とし、何れの属性の属性値を説明変数とするかも任意である。
【0060】
(下工作決定木を生成する前提)
下工作決定木の生成の前提について説明する。ここでは回帰決定木に対して勾配ブースティングを直列に行う連合学習(例えばInPrivate Digging等)を例に説明を行う。決定木は、データをその属性(説明変数)により振り分ける二分木を複数組み合わせたものである。回帰決定木では、葉ノードに割り振られたデータレコードの目的変数の平均値を出力値とする。決定木の学習は、訓練データを用いて、目的変数に対する出力値による説明性能が十分良くなる条件分岐を求める作業である。
【0061】
回帰決定木の勾配ブースティングでは、決定木の出力値と当該出力がフィッティングする目的変数の真の値との残差を、後続の決定木でフィッティングする、という学習を繰り返す。これにより高精度な推論が可能な決定木が生成される。
【0062】
決定木の勾配ブースティングを連合学習で行う場合、各クライアントは、前のクライアントから学習中の決定木(正確には決定木のモデルパラメータ)を受け取り、各クライアントが有する訓練データを用いて決定木の学習を行う。そして、当該クライアントは、更新した決定木(正確には決定木のモデルパラメータ)を次のクライアントに送信する。決定木のモデルパラメータには、決定木のグラフ構造、各分岐で参照する特徴量と分岐閾値、訓練時に各葉ノードに割り振られた訓練データの個数の記録(訓練時ノード内データ数)、などが含まれる。
【0063】
なお、分類決定木の勾配ブースティングでは、分類クラスごとに回帰決定木の勾配ブースティングをオラクルとして実施することでデータレコードが各クラスである蓋然性を出力し、当該出力値が最も大きくなるクラスを出力クラスとする実装が多い。したがって、本明細書に記載の内容は、回帰のみならず分類決定木の勾配ブースティングに対しても適用可能である。また、本明細書に記載の内容は、後述のように下工作による操作値が異常値として伝搬する事実に基づくので、勾配ブースティングのみならずモデルパラメータの送受信により進行する一般の決定木連合学習にも適用可能である。
【0064】
情報処理装置1A~3Aもクライアントである。このうち、情報処理装置1Aは属性推定攻撃を容易にするための下工作を行う下工作者であり、情報処理装置3Aは属性推定攻撃を行う攻撃者である。一方、情報処理装置2Aは、属性推定攻撃の対象となっている被害者である。2以上の整数iを用いて、下工作者はi番目、被害者はi+1番目、攻撃者はi+2番目のクライアントと表すことができる。
【0065】
ここで、j番目(j=0,…,m、mは0以上の整数)のクライアントまでの決定木の列を
【0066】
【数1】
【0067】
とする。jは添え字としての定数である。
【0068】
i番目のクライアントである下工作者は、その直前のクライアントである(i-1)番目のクライアントにより生成された決定木の出力と、当該出力がフィッティングする目的変数の真の値との残差である
【0069】
【数2】
【0070】
をフィッティングする。
【0071】
また、下工作者は訓練データセットDを有し、被害者は標的データを含む訓練データセットDvictim図3図4の訓練データセット211Aに対応)を有しているとする。
【0072】
また、下工作者の標的とするデータレコード、すなわち属性値の推定対象となる標的データは、
【0073】
【数3】
【0074】
であるとする。なお、
【0075】
【数4】
【0076】
は決定木の説明変数の属性であり、yは目的変数の属性である。
【0077】
ここで、下工作者は、
【0078】
【数5】
【0079】
とwの値は知っているが、
【0080】
【数6】
【0081】
の値は知らず、その取り得る値の候補
【0082】
【数7】
【0083】
のみを知っている。
【0084】
下工作の目的は、標的属性
【0085】
【数8】
【0086】
の真の値を推定できるようにすることである。
【0087】
例えば、図4の訓練データセット211Aに含まれるデータのうち、IDが106であるユーザのデータレコードが標的データであり、標的属性が「体重」であるとする。この場合、下工作者は、IDが106であるユーザの「身長」、「年齢」、および「消費カロリー」の値は知っている。一方、下工作者は、「体重」についてはその候補(例えば、「体重」が45、50、55、および60の何れかであること)を知っているものの、「体重」の値が50であることは知らない。
【0088】
また、下工作者は、|Dvictim|すなわちDvictimに含まれるデータレコード数と、Dvictimにおける目的変数の値の最大値についても知っていることが好ましい。例えば、図4の訓練データセット211Aであれば、データレコード数は7であるから|Dvictim|=7である。また、目的変数を「消費カロリー」とした場合、目的変数の値の最大値は2100となる。なお、下工作者は、これらの正確な値が分からない場合、訓練データセットDとDvictimが同様のデータセットであるとみなして、訓練データセットDにおけるデータレコード数と目的変数の値の最大値から、Dvictimにおけるデータレコード数と目的変数の値の最大値を推定してもよい。
【0089】
下工作者は、これらの値から、Dvictimに含まれる各データに対する決定木の出力と、当該各データの目的変数の真の値との残差の最大絶対値である
【0090】
【数9】
【0091】
を計算することができる。この値は、下工作決定木MalTの生成時における出力値の置き換えに利用することができる。なお、以下では、
【0092】
【数10】
【0093】
以上である任意の定数を
【0094】
【数11】
【0095】
とする。
【0096】
(下工作決定木の生成)
情報処理装置1Aは、図3に示すように、取得部11Aと下工作部12Aとを備える。取得部11Aは、複数の装置による連合学習中の決定木を取得する。そして、下工作部12Aは、標的属性を含む標的データを用いて、標的属性の候補値に対応する実現候補データがそれぞれ単独で割り振られる葉ノードである候補ノードを含む下工作決定木MalTを生成する。そして、下工作部12Aは、生成した下工作決定木MalTを取得部11Aが取得する決定木に追加する。以下、下工作部12Aによる下工作決定木MalTの生成について詳細に説明する。
【0097】
標的属性の真の値を推定できるようにするため、下工作部12Aは、下工作者が有する訓練データセットDに標的データzを加えたデータセットD∪{z}を用いて下工作決定木MalTを生成する。
【0098】
下工作決定木MalTは、下記の2つの条件を満たすように生成される。
【0099】
(A)標的データzにおける標的属性の候補値Cに対応する実現候補データ
【0100】
【数12】
【0101】
がそれぞれ単独の葉ノードleafに割り振られる。
【0102】
(B)各leafに割り振られるデータレコードの個数が予め定めた閾値sより少ない。
【0103】
なお、上記閾値sは任意の自然数とすることが可能であるが、sの値が大きいほど標的属性の真の値を推定できなくなる可能性が高くなるため、基本的にはs=1とすればよい。
【0104】
上記の条件に基づく下工作決定木の生成例を図5に基づいて説明する。図5は、下工作決定木の例を示す図である。より詳細には、図5には、図4に示した訓練データセットDと、下工作者が入力した標的データz106とを用いて生成された下工作決定木MalTを示している。下工作者は、標的データz106において、標的属性である「体重」の属性値の真の値を知らないため、図示のように、標的データz106には「体重」の値は示されていない。なお、「体重」の候補値C={45,50,55,60}であるとする。また、1つ目の候補の添え字としての定数j=1とし、2つ目以降の候補の添え字はそれぞれ2、3、4とする。また、上記条件(B)のs=1とする。
【0105】
この場合、上記条件(A)(B)は、下記のようになる。
C=45に対応する実現候補データz106 (1)=(「体重」=45,「身長」=165,「年齢」=30,「消費カロリー」=1700)が単独の葉ノードleafに割り振られ、
C=50に対応する実現候補データz106 (2)=(「体重」=50,「身長」=165,「年齢」=30,「消費カロリー」=1700)が単独の葉ノードleafに割り振られ、
C=55に対応する実現候補データz106 (3)=(「体重」=55,「身長」=165,「年齢」=30,「消費カロリー」=1700)が単独の葉ノードleafに割り振られ、
C=60に対応する実現候補データz106 (4)=(「体重」=60,「身長」=165,「年齢」=30,「消費カロリー」=1700)が単独の葉ノードleafに割り振られ、かつleaf~leafに割り振られるデータレコードの個数が1つである。
【0106】
例えば、下工作部12Aは、以下のような手順により上記の条件を満たす下工作決定木を生成することができる。
【0107】
まず、下工作部12Aは、データセットD∪{z}における既知属性、つまり、「身長」および「年齢」についての条件分岐を生成し、標的データzが割り振られる葉ノードに他のデータレコードが割り振られないようにする。図5の例では、ノードN1に標的データzのみが割り振られるようにしている。なお、s≠1の場合には当該葉ノードに割り振られるデータレコードの数をs以下とすればよい。
【0108】
次に、下工作部12Aは、ノードN1の下位に標的属性である「体重」の条件分岐を生成し、各実現候補データがそれぞれ異なる葉ノードに割り振られるようにする。図5の例では、「体重」の候補値C={45,50,55,60}であるから、下工作部12Aは、ノードN1の直下に、「体重」が47.5より少ないか否かで分岐するノードN11と、「体重」が57.5より少ないか否かで分岐するノードN21を生成している。
【0109】
そして、下工作部12Aは、ノードN11の直下に、実現候補データz106 (1)が単独で割り振られるノードN111と、実現候補データz106 (2)が単独で割り振られるノードN112を生成している。同様に、下工作部12Aは、ノードN21の直下に、実現候補データz106 (3)が単独で割り振られるノードN121と、実現候補データz106 (4)が単独で割り振られるノードN122を生成している。
【0110】
ノードN111、N112、N121、およびN122は、それぞれ上述のleaf~leafに対応するノードであり、各実現候補データがそれぞれ単独で割り振られる候補ノードである。なお、上述の生成手順は一例にすぎず、上記の条件(A)(B)を満たす下工作決定木を作成可能な任意の手順を適用することができる。
【0111】
(出力値の置き換え)
次に、下工作部12Aは、以上のようにして生成した下工作決定木における候補ノードであるleafの出力値cを、絶対値が十分大きく、かつ、互いの差が十分大きくなるように置き換える。以下、置き換え後の出力値cを操作値と呼ぶ。操作値の条件を数式で表すと下記のようになる。
【0112】
【数13】
【0113】
ここで、操作値cをその絶対値が十分に大きい値にするのは、候補ノードに対応する訓練後決定木の葉ノードの出力値が、訓練後決定木の出力値の中で絶対値が最大の出力値となるようにするためである。
【0114】
また、操作値cを互いの差が十分大きくなるようにするのは、訓練後決定木の出力値の中で絶対値が最大の出力値が候補値の何れに対応するかを識別できるようにするためである。
【0115】
例えば、図5の例では、ノードN111、N112、N121、およびN122の出力値は何れも1700であるが、下工作部12Aは、これらの出力値をそれぞれ10、10、10、および10という操作値に置き換えている。これらの操作値は、何れも絶対値が十分大きく、かつ、互いの差が十分大きい。このような下工作決定木MalTを含む決定木を取得した情報処理装置2Aが、図4に示した訓練データセット211Aを用いて当該決定木の学習を行った場合、情報処理装置3Aは、当該学習により生成された訓練後決定木から、IDが106のユーザの「体重」を推定することが可能である。
【0116】
下工作者は、|Dvictim|すなわちDvictimに含まれるデータレコード数と、Dvictimにおける目的変数の値の最大値についての情報から、適切な大きさの操作値を設定することができる。
【0117】
例えば、下工作部12Aは、下記の数式(1)を用いて操作値cを決定すればよい。
【0118】
【数14】
【0119】
(属性値の推定方法)
情報処理装置3Aは、図3に示すように、取得部31Aと推定部32Aとを備える。取得部31Aは、複数の装置による連合学習済であるかまたは連合学習中の決定木を取得する。この決定木は標的属性の属性値の推定対象となる決定木であり、例えば情報処理装置2Aから取得される。そして、推定部32Aは、取得部31Aが取得する決定木の出力値の中で絶対値が最大の出力値を検出し、標的データに含まれる標的属性について予め設定された候補値のうち、検出した前記出力値に対応する候補値を、標的属性の属性値と推定する。以下では、推定部32Aによる標的属性の属性値の推定方法を説明する。なお、推定部206Aによる仮想標的属性の属性値の推定も同様の方法で実現できる。
【0120】
ここでは、上述の下工作決定木MalTが追加された連合学習中の決定木を情報処理装置1Aから取得した情報処理装置2Aが、標的データを含む訓練データセットDvictimを用いた学習により、訓練後決定木Tvictimを生成し、これを情報処理装置3Aに送信したとする。
【0121】
取得部31Aは、上記の訓練後決定木Tvictimを取得する。続いて、推定部32Aは、取得された訓練後決定木Tvictimの出力値の中で絶対値が最大の出力値Mを検出する。そして、推定部32Aは、標的データに含まれる標的属性について予め設定された候補値のうち、検出した出力値Mに対応する候補値を、標的属性の属性値と推定する。
【0122】
具体的には、推定部32Aは、|M|と、適切に補正された操作値(補正操作値)
【0123】
【数15】
【0124】
との差が最小になるj(以下j’と記載)を特定し、標的属性の値を
【0125】
【数16】
【0126】
と推定する。
【0127】
補正操作値は、例えばcを、訓練後決定木Tvictimにおいて標的データが割り振られた葉ノードへ訓練時に割り振られたデータ数(訓練時ノード内データ数)nで割った数
【0128】
【数17】
【0129】
とすればよい。
【0130】
(属性値推定の具体例)
属性値推定の具体例を図6に基づいて説明する。図6は、訓練後決定木Tvictimの例を示す図である。より詳細には、図6には、図4に示した訓練データセット211Aを用いて、図5に示した下工作決定木MalTを追加した決定木の学習を行うことにより生成された訓練後決定木Tvictimを示している。
【0131】
図6に示される訓練後決定木Tvictimの各葉ノードにおける出力値は概ね2000前後であるが、葉ノードN2の出力値は、10に近い値となっている。この値は、他の葉ノードと比べて著しく大きい。よって、推定部32Aは、当該値を絶対値が最大の出力値Mとして検出する。
【0132】
ここで、図5に示したように、j=1~4に対応する操作値は、それぞれ10、10、10、および10である。訓練時ノードN2内データ数は1であるから、補正操作値は、10、10、10、および10である。よって、推定部32Aは、出力値Mとの差が最小になるj=2であると特定し、標的属性である「体重」の属性値をj=2に対応する50と推定する。
【0133】
なお、式(2)に基づいて補正操作値を計算するためには、訓練時ノード内データ数が必要であるが、仮に訓練時ノード内データ数が非公開であった場合でも、訓練データセットサイズに応じて操作値cとcとの差の絶対値を十分大きく取っておけば属性特定に問題は生じない。例えば図5の例において、操作値10、10、10、および10の比は10であり、訓練データセットサイズ=7に対して十分に大きい。このため、図6のノードN2の出力値に対しては訓練時ノード内データ数による変換を行わなくても、問題なく属性値の特定が可能である。
【0134】
(脆弱性の判定)
情報処理装置2Aの取得部201Aが取得する決定木には、上述のような下工作決定木MalTが含まれている可能性がある。ここで、上述のように、下工作決定木MalTにおいては、実現候補データが単独で割り振られる候補ノードであるleafの出力値が、その絶対値が十分に大きい操作値に置き換えられている。
【0135】
このため、連合学習中の決定木に絶対値が異常に大きい出力値、つまり異常値が含まれていれば、当該決定木には上記のような下工作が行われている可能性が高いといえる。そこで、情報処理装置2Aにおいては、検出部202Aが、取得部201Aにより取得された決定木の出力値のうち、値の大きさが正常範囲外である出力値を異常値として検出する。例えば、検出部202Aは、絶対値が所定の閾値以上の出力値を検出してもよい。そして、判定部203Aは、検出部202Aにより異常値が検出された場合に、当該決定木には脆弱性があると判定する。これにより、属性値を推定する攻撃を防ぐことが可能になる。
【0136】
(脆弱性があると判定した場合の処理)
脆弱性があると判定した場合の処理は、属性値を推定する攻撃を防ぐことが可能な処理であればよく、特に限定されない。例えば、判定部203Aは、脆弱性があるとの判定結果を出力部24Aまたは情報処理装置2Aの外部の出力装置に出力させてもよい。これにより、情報処理装置2Aのユーザ等に脆弱性を認識させて、属性値を推定する攻撃を防ぐための措置(例えば、学習部204Aによる学習の停止等)をとらせることができる。
【0137】
また、例えば、判定部203Aは、取得部201Aにより取得された決定木に脆弱性があると判定したときには、連合学習を行うクライアントのうち、情報処理装置2Aよりも先に学習を行った各クライアントに対し、学習のやり直しを要求する通知を送信してもよい。無論、この場合には脆弱性があると判定された決定木の学習を行うことはなく、当該決定木を他のクライアントに送信することもない。これにより、属性値を推定する攻撃を防ぐことができる。
【0138】
また、学習スキームが複数存在する場合、判定部203Aは、取得部201Aにより取得された決定木には脆弱性があると判定したときには、学習スキームの変更を要求する通知を送信してもよい。当該通知の送信先は、連合学習を行う他のクライアントであり、例えば、最初に学習を行うクライアントまたは情報処理装置2Aよりも先に学習を行う全てのクライアントである。例えば、InPrivate DiggingとSimFLの2つの学習スキームが存在する場合に、InPrivate Diggingにより生成された決定木に脆弱性があると判定されたとする。この場合、判定部203Aは、変更要請部はSimFLへの変更を要求する通知、あるいは単に学習スキームの変更を要求する通知を他のクライアントに送信すればよい。
【0139】
学習スキームが変更されれば、脆弱性があると判定された決定木は破棄されて、属性値を推定する攻撃は失敗に終わる。よって、上記の構成によれば属性値を推定する攻撃を防ぐことができる。また、変更後の学習スキームにより生成された決定木についても、検出部202Aおよび判定部203Aにより脆弱性が判定されるから、属性値を推定する攻撃を防ぐことが可能である。なお、脆弱性の判定は連合学習を行う全てのクライアントに実行させることが好ましい。
【0140】
(異常値検出の基準となる正常範囲の決定)
上述のように、情報処理装置2Aは、検出部202Aによる異常値の検出の基準となる正常範囲を決定する範囲決定部207Aを備える。詳細は以下説明するが、範囲決定部207Aは、取得部201Aが取得する連合学習中の決定木に、仮想標的データが入力されたときに当該仮想標的データに含まれる仮想標的属性の属性値に対応する出力値が異常値となるように下工作された仮想下工作決定木MalTを追加した決定木に基づいた学習により生成された訓練後決定木から属性値を推定するシミュレーションの結果に基づいて正常範囲を決定する。これにより、仮想標的属性の属性値を推定する攻撃が成功する確率を下げることができるような正常範囲を決定することが可能になる。
【0141】
なお、以下では正常範囲が1つの閾値Lにより規定されているとする。つまり、以下では範囲決定部207Aが、仮想標的属性の属性値を推定する攻撃が成功する確率を下げることができるような閾値Lを決定する例を説明する。
【0142】
閾値Lの決定方法には、以下のステップが含まれている。
【0143】
(a)下工作部205Aが、取得部201Aにより取得された決定木T(i)を用いて、出力値が閾値L未満の仮想下工作決定木MalTを生成する。
【0144】
(b)学習部204Aが、決定木T(i)と仮想下工作決定木MalTに基づいた学習により訓練後決定木Ti+1を生成する。
【0145】
(c)推定部206Aが、訓練後決定木Ti+1から仮想標的属性の属性値を推定する。
【0146】
上記ステップ(c)において推定した属性値が、仮想標的属性の属性値の真の値と一致した場合、すなわち推定が成功した場合には、範囲決定部207Aは、閾値Lをより小さい値に更新する。例えば、範囲決定部207Aは、閾値Lに0より大きく1より小さい所定の係数を乗じることにより当該閾値Lを更新してもよい。その後、ステップ(a)の処理に戻る。これらの処理をステップ(c)で推定に失敗するまで繰り返し、範囲決定部207Aは、推定部206Aが推定に失敗したときの閾値Lを、正常範囲を規定する閾値に決定する。
【0147】
ステップ(a)において生成される仮想下工作決定木MalTは、仮想標的データが入力されたときに当該仮想標的データに含まれる仮想標的属性の属性値に反応して、当該属性値に対応する1つの出力値が異常値となるように下工作されたものである。以下説明するように、仮想下工作決定木MalTは、取得部201Aにより取得される連合学習中の決定木に基づいて生成される。
【0148】
なお、ここでは取得部201Aにより取得された決定木が
【0149】
【数18】
【0150】
であるとする(i=0,…,m、mは0以上の整数)。
【0151】
仮想下工作決定木MalTを生成するにあたり、まず、下工作部205Aは、仮想標的データと仮想標的属性を決定する。なお、仮想標的データと仮想標的属性の決定方法は任意である。例えば、下工作部205Aは、訓練データセット211Aに含まれるデータレコードの中からランダムに選択したデータレコードおよび属性を、それぞれ仮想標的データおよび仮想標的属性としてもよい。また、例えば、情報処理装置2Aのユーザが入力部23Aを介して入力したデータレコードおよび属性を、それぞれ仮想標的データおよび仮想標的属性としてもよい。
【0152】
また、下工作部205Aは、仮想標的データの候補値についても適宜設定する。具体的には、下工作部205Aは、仮想標的データの候補値の1つとして、仮想標的属性の属性値を設定してもよいし、仮想標的データの他の候補値として、当該属性値に近い値を適宜設定してもよい。なお、情報処理装置2Aのユーザに候補値を入力させてもよい。
【0153】
仮想下工作決定木MalTは、「下工作決定木の生成」の項目で説明した方法により生成することができる。つまり、下工作部205Aは、訓練データセット211Aに含まれる各データを入力したときに、(A)仮想標的データの候補値に対応する実現候補データがそれぞれ単独の葉ノード(候補ノード)に割り振られ、かつ(B)各葉ノード(候補ノード)に割り振られるデータレコードの個数が予め定めた閾値sより少なくなるように仮想下工作決定木MalTを生成すればよい。
【0154】
なお、情報処理装置1Aでは、訓練データセットDを用いて下工作決定木を生成するが、情報処理装置2Aでは訓練データセットDを入手することが難しい。このため、上記のように、下工作部205Aは、訓練データセットDの代わりに訓練データセット211Aを用いて仮想下工作決定木MalTを生成すればよい。なお、下工作部205Aは、訓練データセット211Aを2つに分割し、一方を訓練データセットDの代替として使用し、他方は仮想標的データの抽出に用いるようにしてもよい。
【0155】
次に、下工作部205Aは、以上のようにして生成した仮想下工作決定木MalTの候補ノードの出力値を、絶対値が十分大きく、かつ、互いの差が十分大きい操作値に置き換える。ここで、当該操作値は、仮想下工作決定木MalTを用いて生成される訓練後決定木Ti+1の出力値の中で絶対値が最大の出力値となり、かつ、絶対値が最大の出力値が候補値の何れに対応するかを識別できる程度に相互に差のある値となるような値とすることが好ましい。
【0156】
候補ノードの出力値を上記のような操作値とすることにより、訓練後決定木Ti+1の葉ノードのうち、出力値の絶対値が最大の葉ノードに対応する1つの候補値を特定し、仮想標的属性の属性値が当該候補値であると推定することができる。よって妥当なシミュレーション結果を得て、妥当な正常範囲を決定することが可能になる。このような推定が成立する理由は以下のとおりである。
【0157】
下工作部205Aにより生成される仮想下工作決定木MalTに仮想標的データが入力されると、その仮想標的データに含まれる仮想標的属性の属性値に対応する実現候補データが候補ノードの何れかに割り振られる。このため、仮想下工作決定木MalTに仮想標的データが入力された場合の出力値は、仮想下工作決定木MalTに含まれる複数の操作値の何れかとなる。
【0158】
また、この仮想下工作決定木MalTを用いて生成された訓練後決定木Ti+1には、候補ノードに対応する葉ノードが含まれることになる。そして、当該葉ノードの出力値は、当該候補ノードに対応する操作値を用いて算出されるから、操作値の影響を受けた値となる。
【0159】
他方、下工作部205Aにより生成される仮想下工作決定木MalTに仮想標的データでないデータが入力された場合は、下工作の構成から、データは候補ノードの何れにも割り振られることはなく、したがって、訓練後決定木Ti+1において対応する葉ノードの出力値は、候補ノードの影響を受けない正常な値となる。
【0160】
このため、候補ノードに対応する訓練後決定木Ti+1の葉ノードの出力値が、訓練後決定木Ti+1の出力値の中で絶対値が最大の出力値となるように操作値を設定することにより、訓練後決定木Ti+1の出力値の中から、候補ノードに対応する出力値を特定することができる。
【0161】
さらに、各候補値に対応する上記の操作値を、絶対値が最大の出力値が、複数の候補値の何れに対応するかを識別できる程度に相互に差のある値となるように設定することにより、上記のようにして特定した、候補ノードに対応する出力値が、何れの候補値に対応するかを一意に識別することが可能になる。
【0162】
このように、上記の構成によれば、訓練後決定木Ti+1の出力値の中から、候補ノードに対応する出力値を特定することができると共に、当該出力値が何れの候補値に対応するかを識別することができる。そして、仮想標的属性の属性値が当該候補値であると推定することができる。
【0163】
ただし、下工作部205Aは、仮想下工作決定木MalTの出力値が閾値Lを超えないようにするため、操作値を閾値L以下の値に設定する。
【0164】
最後に、下工作部205Aは、取得部201Aが取得した決定木に、上述のようにして生成した仮想下工作決定木MalTを組み合わせて決定木Tを生成する。ここで、下工作部205Aは、直近のクライアントすなわち情報処理装置1Aが学習した部分を仮想下工作決定木MalTに置換してもよい。つまり、下工作部205Aは、情報処理装置1Aによる学習前の決定木T(i-1)に仮想下工作決定木MalTを組み合わせた決定木Tを生成してもよい。
【0165】
このように、直近に学習された部分を仮想下工作決定木MalTに置換することにより、直近の学習を行った情報処理装置1Aが下工作を行ったと仮定したシミュレーションを行うことができる。よって、直近の学習を行った情報処理装置1Aが下工作を行った可能性が高いか否かを的確に判定することが可能になる。
【0166】
次に、学習部204Aは、訓練データセット211Aを用いて決定木Tの学習を行い、訓練後決定木Ti+1を生成する。そして、推定部206Aは、生成された訓練後決定木Ti+1の出力値の中で絶対値が最大の出力値を検出し、当該出力値に対応する候補値を、仮想標的属性の属性値と推定する。
【0167】
以上のように、情報処理装置2Aは、訓練後決定木Ti+1の出力値の中で絶対値が最大の出力値を検出し、当該出力値に対応する候補値を、仮想標的属性の属性値と推定する推定部206Aを備える。また、下工作部205Aは、上述のステップ(a)~(c)を繰り返すことにより、それぞれ異なる数値範囲から選択した操作値を用いて複数の仮想下工作決定木MalTを生成する。そして、範囲決定部207Aは、複数の仮想下工作決定木MalTのそれぞれを用いて生成された複数の訓練後決定木Ti+1のうち、推定部206Aが仮想標的属性の属性値を正しく推定できなかった訓練後決定木Ti+1であって、操作値を選択したときの数値範囲が最も広かった訓練後決定木Ti+1に対応する数値範囲を、正常範囲と決定してもよい。言い換えれば、範囲決定部207Aは、シミュレーションにおいて攻撃が失敗したときの閾値Lの最大値を、正常範囲を規定する閾値として決定してもよい。
【0168】
上記の構成によれば、必要最小限の広さの数値範囲を正常範囲とすることができるから、異常値の検出漏れや、異常値でない出力値を異常値として誤検出する可能性を低減することが可能になる。
【0169】
なお、仮想標的データを複数選択してもよい。この場合、範囲決定部207Aは、それら複数の仮想標的データに対する属性推定攻撃が何れも失敗するような閾値(正常範囲)、あるいは複数の仮想標的データに対する属性推定攻撃の成功割合が所定値以下となるような閾値(正常範囲)を決定することができる。
【0170】
(処理の流れ)
情報処理装置2Aが実行する処理の流れを図7に基づいて説明する。図7は、情報処理装置2Aが実行する処理の流れを示すフロー図である。
【0171】
S201では、取得部201Aが、連合学習中の決定木を取得する。取得部201Aは、情報処理装置1Aから上記決定木を取得してもよいし、情報処理装置1Aの後続のクライアントから上記決定木を取得してもよい。取得される決定木が下工作されたものであるか否かはS201の時点では不明である。情報処理装置2Aでは、この決定木の脆弱性の有無を判定する前に、以下のS202~S207の処理により脆弱性の有無の判定閾値を決定する。
【0172】
S202では、下工作部205Aが、仮想下工作決定木を生成する。より詳細には、下工作部205Aは、仮想標的データ、仮想標的属性、および候補値を決定した上で、訓練データセット211を用いて仮想下工作決定木を生成し、生成した仮想下工作決定木の候補ノードの値を操作値に置き換える。このとき下工作部205Aは、脆弱性の有無の判定閾値を超えない範囲で操作値を設定する。そして、下工作部205Aは、S201で取得された決定木に上記のようにして生成した仮想下工作決定木を組み合わせる。
【0173】
S203では、学習部204Aが、S202で生成された決定木の学習を行う。より詳細には、学習部204Aは、訓練データセット211を用いて、S202で生成された仮想下工作決定木を含む決定木の学習を行う。この学習により訓練後決定木が生成される。
【0174】
S204では、推定部206Aが、S203で生成された訓練後決定木から、仮想標的属性の属性値を推定する。より詳細には、推定部206Aは、S203で生成された訓練後決定木の出力値の中で絶対値が最大の出力値を検出し、当該出力値に対応する候補値を、仮想標的属性の属性値と推定する。
【0175】
S205では、範囲決定部207Aが、S204の推定が成功したか否かを判定する。具体的には、範囲決定部207Aは、S204で推定された属性値と、S202において決定された仮想標的データの仮想標的属性の属性値とが一致するか否かを判定する。
【0176】
S205でYESと判定された場合にはS206の処理に進み、範囲決定部207Aは脆弱性の有無の判定閾値をより小さい値に更新する。この後、処理はS202に戻る。一方、S205でNOと判定された場合にはS207の処理に進み、範囲決定部207Aは脆弱性の有無の判定閾値を現行の値で決定する。なお、範囲決定部207Aは、判定閾値の決定前に、当該判定閾値を出力部24A等に出力させてもよい。この場合、範囲決定部207Aは、出力させた判定閾値を採用する旨の入力が入力部23Aに対して行われたことを条件として判定閾値を決定してもよい。
【0177】
S208では、検出部202Aが、S201で取得された決定木から異常値の検出を試みる。具体的には、検出部202Aは、S201で取得された決定木の出力値のうち、値の大きさが、S207で決定された閾値により規定される正常範囲外である出力値を異常値として検出する。
【0178】
S208で異常値が検出された場合(S208でYES)にはS209の処理に進む。S209では、判定部203Aが、S201で取得された決定木には、当該決定木の学習に用いた訓練データに含まれる属性値を推定する攻撃に対する脆弱性があると判定し、これにより図7の処理は終了する。なお、上述のように、判定部203Aは、取得された決定木に脆弱性があると判定した場合には、情報処理装置2Aよりも先に学習を行ったクライアントに対して学習のやり直しを要求する処理、あるいは学習スキームの変更を要求する処理等を行ってもよい。
【0179】
一方、S208で異常値が検出されなかった場合(S208でNO)にはS210の処理に進む。S210では、判定部203Aは、S201で取得された決定木には脆弱性がないと判定する。なお、図示していないが、取得された決定木に脆弱性がないと判定された場合には、学習部204Aが訓練データセット211Aを用いて当該決定木の学習を行い、訓練後決定木を次のクライアント(例えば情報処理装置3A)に送信する。
【0180】
〔変形例〕
上述の各実施形態で説明した各処理の実行主体は任意であり、上述の例に限られない。つまり、相互に通信可能な複数の装置により、情報処理装置1~3、1A~3Aと同様の機能を有する情報処理システムを構築することができる。例えば、図3に示す情報処理装置2Aから、下工作部205A、推定部206A、および範囲決定部207Aの機能を除き、これらの機能を他の情報処理装置に持たせてもよい。この場合、情報処理装置2Aは、他の情報処理装置が決定した正常範囲に基づいて異常値の検出を行なえばよい。このように、図3に示す各ブロックを複数の装置に分散して設けた場合であっても、情報処理装置2Aと同様の機能を有する情報処理システムを構築することができる。
【0181】
〔ソフトウェアによる実現例〕
情報処理装置1~3、1A~3Aの一部又は全部の機能は、集積回路(ICチップ)等のハードウェアによって実現してもよいし、ソフトウェアによって実現してもよい。
【0182】
後者の場合、情報処理装置1~3、1A~3Aは、例えば、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータによって実現される。このようなコンピュータの一例(以下、コンピュータComと記載する)を図8に示す。コンピュータComは、少なくとも1つのプロセッサc1と、少なくとも1つのメモリc2と、を備えている。メモリc2には、コンピュータComを情報処理装置1~3、1A~3Aとして動作させるためのプログラムPが記録されている。コンピュータComにおいて、プロセッサc1は、プログラムPをメモリc2から読み取って実行することにより、情報処理装置1~3、1A~3Aの各機能が実現される。
【0183】
プロセッサc1としては、例えば、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、TPU(Tensor Processing Unit)、量子プロセッサ、マイクロコントローラ、又は、これらの組み合わせなどを用いることができる。メモリc2としては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、又は、これらの組み合わせなどを用いることができる。
【0184】
なお、コンピュータComは、プログラムPを実行時に展開したり、各種データを一時的に記憶したりするためのRAM(Random Access Memory)を更に備えていてもよい。また、コンピュータComは、他の装置との間でデータを送受信するための通信インタフェースを更に備えていてもよい。また、コンピュータComは、キーボードやマウス、ディスプレイやプリンタなどの入出力機器を接続するための入出力インタフェースを更に備えていてもよい。
【0185】
また、プログラムPは、コンピュータComが読み取り可能な、一時的でない有形の記録媒体Medに記録することができる。このような記録媒体Medとしては、例えば、テープ、ディスク、カード、半導体メモリ、又はプログラマブルな論理回路などを用いることができる。コンピュータComは、このような記録媒体Mを介してプログラムPを取得することができる。また、プログラムPは、伝送媒体を介して伝送することができる。このような伝送媒体としては、例えば、通信ネットワーク、又は放送波などを用いることができる。コンピュータComは、このような伝送媒体を介してプログラムPを取得することもできる。
【0186】
〔付記事項1〕
本発明は、上述した実施形態に限定されるものでなく、請求項に示した範囲で種々の変更が可能である。例えば、上述した実施形態に開示された技術的手段を適宜組み合わせて得られる実施形態についても、本発明の技術的範囲に含まれる。
【0187】
〔付記事項2〕
上述した実施形態の一部又は全部は、以下のようにも記載され得る。ただし、本発明は、以下の記載する態様に限定されるものではない。
【0188】
(付記1)
複数の装置による連合学習済であるかまたは連合学習中の決定木の出力値のうち、値の大きさが正常範囲外である出力値を異常値として検出する検出手段と、前記異常値が検出された場合に、前記決定木には、当該決定木の学習に用いた訓練データに含まれる属性値を推定する攻撃に対する脆弱性があると判定する判定手段と、を備える情報処理装置。
【0189】
(付記2)
連合学習中の前記決定木に、仮想標的データが入力されたときに当該仮想標的データに含まれる仮想標的属性の属性値に対応する出力値が異常値となるように下工作された仮想下工作決定木を追加した決定木に基づいた学習により生成された訓練後決定木から前記属性値を推定するシミュレーションの結果に基づいて前記正常範囲を決定する範囲決定手段を備える、付記1に記載の情報処理装置。
【0190】
(付記3)
前記仮想下工作決定木を生成する下工作手段を備え、前記仮想下工作決定木は、前記仮想標的属性の候補値に対応する実現候補データがそれぞれ単独で割り振られる葉ノードである候補ノードを含み、前記候補ノードの出力値は、前記候補ノードに対応する前記訓練後決定木の葉ノードの出力値が、当該訓練後決定木の出力値の中で絶対値が最大の出力値となり、かつ、絶対値が最大の前記出力値が前記候補値の何れに対応するかを識別できる程度に相互に差のある値となるような操作値となっている、付記2に記載の情報処理装置。
【0191】
(付記4)
前記下工作手段は、複数の前記装置のうち直近に前記決定木の学習を行った装置が学習した部分を前記仮想下工作決定木に置換する、付記3に記載の情報処理装置。
【0192】
(付記5)
前記訓練後決定木の出力値の中で絶対値が最大の出力値を検出し、当該出力値に対応する前記候補値を、前記仮想標的属性の属性値と推定する推定手段を備え、前記下工作手段は、それぞれ異なる数値範囲から選択した前記操作値を用いて複数の前記仮想下工作決定木を生成し、前記範囲決定手段は、複数の前記仮想下工作決定木のそれぞれを用いて生成された複数の前記訓練後決定木のうち、前記推定手段が前記仮想標的属性の属性値を正しく推定できなかった訓練後決定木であって、前記操作値を選択したときの前記数値範囲が最も広かった訓練後決定木に対応する前記数値範囲を、前記正常範囲と決定する、付記3から5の何れかに記載の情報処理装置。
【0193】
(付記6)
複数の装置による連合学習中の決定木を取得する取得手段と、標的属性を含む標的データを用いて、前記標的属性の候補値に対応する実現候補データがそれぞれ単独で割り振られる葉ノードである候補ノードを含む下工作決定木を生成し、生成した下工作決定木を前記決定木に追加する下工作手段と、を備え、前記候補ノードの出力値は、前記下工作決定木を追加した前記決定木から生成された訓練後決定木における前記候補ノードに対応する葉ノードの出力値が、当該訓練後決定木の出力値の中で絶対値が最大の出力値となり、かつ、絶対値が最大の前記出力値が前記候補値の何れに対応するかを識別できる程度に相互に差のある値となるような操作値となっている、情報処理装置。
【0194】
(付記7)
複数の装置による連合学習済であるかまたは連合学習中の決定木を取得する取得手段と、前記決定木の出力値の中で絶対値が最大の出力値を検出し、標的データに含まれる標的属性について予め設定された候補値のうち、検出した前記出力値に対応する候補値を、前記標的属性の属性値と推定する推定手段と、を備える情報処理装置。
【0195】
(付記8)
少なくとも1つのプロセッサが、複数の装置による連合学習済であるかまたは連合学習中の決定木の出力値のうち、値の大きさが正常範囲外である出力値を異常値として検出することと、前記異常値が検出された場合に、前記決定木には、当該決定木の学習に用いた訓練データに含まれる属性値を推定する攻撃に対する脆弱性があると判定することと、を含む脆弱性判定方法。
【0196】
(付記9)
コンピュータを、複数の装置による連合学習済であるかまたは連合学習中の決定木の出力値のうち、値の大きさが正常範囲外である出力値を異常値として検出する検出手段、および前記異常値が検出された場合に、前記決定木には、当該決定木の学習に用いた訓練データに含まれる属性値を推定する攻撃に対する脆弱性があると判定する判定手段、として機能させる脆弱性判定プログラム。
【0197】
(付記8)
少なくとも1つのプロセッサを備え、前記プロセッサは、複数の装置による連合学習済であるかまたは連合学習中の決定木の出力値のうち、値の大きさが正常範囲外である出力値を異常値として検出する処理と、前記異常値が検出された場合に、前記決定木には、当該決定木の学習に用いた訓練データに含まれる属性値を推定する攻撃に対する脆弱性があると判定する処理と、を実行する情報処理装置。
【0198】
なお、この情報処理装置は、更にメモリを備えていてもよく、このメモリには、値の大きさが正常範囲外である出力値を異常値として検出する前記処理と、前記異常値が検出された場合に、前記決定木には、当該決定木の学習に用いた訓練データに含まれる属性値を推定する攻撃に対する脆弱性があると判定する前記処理と、を前記プロセッサに実行させるためのプログラムが記憶されていてもよい。また、このプログラムは、コンピュータ読み取り可能な一時的でない有形の記録媒体に記録されていてもよい。
【符号の説明】
【0199】
1,1A 情報処理装置
11,11A 取得部(取得手段)
12,12A 下工作部(下工作手段)
2,2A 情報処理装置
21,202A 検出部(検出手段)
22,203A 判定部(判定手段)
205A 下工作部(下工作手段)
206A 推定部(推定手段)
207A 範囲決定部(範囲決定手段)
3,3A 情報処理装置
31,31A 取得部(取得手段)
32,32A 推定部(推定手段)
図1
図2
図3
図4
図5
図6
図7
図8