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

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

▶ 富士通株式会社の特許一覧

特許7332949評価方法、評価プログラム、および情報処理装置
<>
  • 特許-評価方法、評価プログラム、および情報処理装置 図1
  • 特許-評価方法、評価プログラム、および情報処理装置 図2
  • 特許-評価方法、評価プログラム、および情報処理装置 図3
  • 特許-評価方法、評価プログラム、および情報処理装置 図4
  • 特許-評価方法、評価プログラム、および情報処理装置 図5
  • 特許-評価方法、評価プログラム、および情報処理装置 図6
  • 特許-評価方法、評価プログラム、および情報処理装置 図7
  • 特許-評価方法、評価プログラム、および情報処理装置 図8
  • 特許-評価方法、評価プログラム、および情報処理装置 図9
  • 特許-評価方法、評価プログラム、および情報処理装置 図10
  • 特許-評価方法、評価プログラム、および情報処理装置 図11
  • 特許-評価方法、評価プログラム、および情報処理装置 図12
  • 特許-評価方法、評価プログラム、および情報処理装置 図13
  • 特許-評価方法、評価プログラム、および情報処理装置 図14
  • 特許-評価方法、評価プログラム、および情報処理装置 図15
  • 特許-評価方法、評価プログラム、および情報処理装置 図16
  • 特許-評価方法、評価プログラム、および情報処理装置 図17
  • 特許-評価方法、評価プログラム、および情報処理装置 図18
  • 特許-評価方法、評価プログラム、および情報処理装置 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-16
(45)【発行日】2023-08-24
(54)【発明の名称】評価方法、評価プログラム、および情報処理装置
(51)【国際特許分類】
   G06N 20/00 20190101AFI20230817BHJP
   G06F 21/57 20130101ALI20230817BHJP
【FI】
G06N20/00
G06F21/57
【請求項の数】 7
(21)【出願番号】P 2021562247
(86)(22)【出願日】2019-12-04
(86)【国際出願番号】 JP2019047358
(87)【国際公開番号】W WO2021111540
(87)【国際公開日】2021-06-10
【審査請求日】2021-12-23
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】清水 俊也
【審査官】三坂 敏夫
(56)【参考文献】
【文献】特開2018-155522(JP,A)
【文献】BIGGIO, Battista et al.,Poisoning Attacks against Support Vector Machines,Proceedings of the 29th International Conference on Machine Learning,v3,米国,arXiv.org,2013年03月25日,p. 1-8,[retrieved on 2020.2.26],Retrieved from the Internet:<URL:https://arxiv.org/pdf/1206.6389.pdf>
【文献】先崎 佑弥 他,深層学習におけるAdversarial Trainingによる副作用とその緩和策,コンピュータセキュリティシンポジウム2017 論文集,日本,一般社団法人情報処理学会,2017年10月16日,第2017巻 第2号,第385頁-第392頁,ISSN:1882-0840
【文献】吉岡 信和,機械学習応用システムのセキュリティとプライバシ,情報処理,日本,一般社団法人情報処理学会,2018年12月15日,第60巻 第1号,p. 34-39,ISSN:0447-8053
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00- 3/12
10/00-20/20
G06F 21/57
(57)【特許請求の範囲】
【請求項1】
コンピュータが、
機械学習用の入力データとラベルとの組を含む複数の訓練データの集合を分割することで、1以上の訓練データを含む部分集合を複数生成し、
前記部分集合ごとに、前記部分集合に含まれる訓練データを用いた機械学習を行うことで、入力データからラベルを推定するための訓練済みモデルを生成し、
前記部分集合ごとに、前記部分集合に含まれる訓練データを用いて生成した前記訓練済みモデルによる推定精度に基づいて、前記部分集合に含まれる訓練データの機械学習への攻撃性に関する評価を行う、
評価方法。
【請求項2】
前記評価では、前記部分集合に基づいて生成された前記訓練済みモデルの推定精度が低いほど、前記部分集合に含まれる訓練データの機械学習への攻撃性を高く評価する、
請求項1記載の評価方法。
【請求項3】
コンピュータが、
機械学習用の入力データとラベルとの組を含む複数の訓練データの集合に基づいて、1以上の訓練データを含む部分集合を複数生成し、
前記部分集合ごとに、前記部分集合に含まれる訓練データを用いた機械学習を行うことで、入力データからラベルを推定するための訓練済みモデルを生成し、
前記部分集合ごとに、前記部分集合に含まれる訓練データを用いて生成した前記訓練済みモデルによる推定精度に基づいて、前記部分集合に含まれる訓練データの機械学習への攻撃性に関する評価を行
前記評価に示される攻撃性が高い方から所定数の前記部分集合に含まれる訓練データの集合に基づく他の部分集合の生成、前記訓練済みモデルの生成、前記評価を繰り返す、
評価方法。
【請求項4】
コンピュータが、
機械学習用の入力データとラベルとの組を含む複数の訓練データの集合に基づいて、訓練データ間の類似性に基づいて訓練データを複数のクラスタのいずれかに分類するクラスタリングを行い、属する訓練データ数が少ない方から所定数のクラスタそれぞれに分類された訓練データについて、属するクラスタが同じ訓練データ同士を共通の部分集合に含めることで、1以上の訓練データを含む前記部分集合を複数生成し、
前記部分集合ごとに、前記部分集合に含まれる訓練データを用いた機械学習を行うことで、入力データからラベルを推定するための訓練済みモデルを生成し、
前記部分集合ごとに、前記部分集合に含まれる訓練データを用いて生成した前記訓練済みモデルによる推定精度に基づいて、前記部分集合に含まれる訓練データの機械学習への攻撃性に関する評価を行う、
評価方法。
【請求項5】
コンピュータが、
機械学習用の入力データとラベルとの組を含む複数の訓練データの集合に基づいて、1以上の訓練データを含む部分集合を複数生成する処理と、前記部分集合ごとに、前記部分集合に含まれる訓練データを用いた機械学習を行うことで、入力データからラベルを推定するための訓練済みモデルを生成する処理と、前記部分集合ごとに、前記部分集合に含まれる訓練データを用いて生成した前記訓練済みモデルによる推定精度に基づいて、前記部分集合に含まれる訓練データの機械学習への攻撃性に関する評価を行う処理と、を繰り返し実行し、
前記評価を行う処理を実行するごとに、前記評価に示される攻撃性が高い方から所定数の前記部分集合に含まれる訓練データに対して汚染候補点を加点し、前記汚染候補点が高い方から所定数の訓練データを汚染データとして検出する
評価方法。
【請求項6】
コンピュータに、
機械学習用の入力データとラベルとの組を含む複数の訓練データの集合を分割することで、1以上の訓練データを含む部分集合を複数生成し、
前記部分集合ごとに、前記部分集合に含まれる訓練データを用いた機械学習を行うことで、入力データからラベルを推定するための訓練済みモデルを生成し、
前記部分集合ごとに、前記部分集合に含まれる訓練データを用いて生成した前記訓練済みモデルによる推定精度に基づいて、前記部分集合に含まれる訓練データの機械学習への攻撃性に関する評価を行う、
処理を実行させる評価プログラム。
【請求項7】
機械学習用の入力データとラベルとの組を含む複数の訓練データの集合を分割することで、1以上の訓練データを含む部分集合を複数生成し、前記部分集合ごとに、前記部分集合に含まれる訓練データを用いた機械学習を行うことで、入力データからラベルを推定するための訓練済みモデルを生成し、前記部分集合ごとに、前記部分集合に含まれる訓練データを用いて生成した前記訓練済みモデルによる推定精度に基づいて、前記部分集合に含まれる訓練データの機械学習への攻撃性に関する評価を行う処理部、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、評価方法、評価プログラム、および情報処理装置に関する。
【背景技術】
【0002】
コンピュータシステムには、収集した情報に基づいて機械学習を行う機械学習システムがある。機械学習システムは、機械学習により、例えば情報を分析するための訓練済みモデルを生成する。そして機械学習システムは、生成した訓練済みモデルを用いて情報分析などのサービスを提供することができる。
【0003】
なお、機械学習システムに対して悪意のある第三者から攻撃が仕掛けられることがある。機械学習に対する攻撃の1つに、ポイズニングと呼ばれる攻撃がある。ポイズニングは、訓練データに通常と違ったデータ(汚染データ)を混入させることで、訓練済みモデルを意図的に改変する攻撃である。
【0004】
ポイズニング攻撃に対抗する技術としては、例えば、教師付き機械学習によって申請書類の審査や査定を行う処理において、悪意で作成された偽合格のデータを高精度で検出することができる情報識別方法が提案されている。この情報識別方法では、時刻を含む学習データと時刻を含むテストデータとを用いて計算した統計的データの値が所定の閾値を超えることに応答して、不正なデータによる攻撃の可能性が警報される。この方法は、学習データが時刻を含む場合にしか適用できず汎用性が低い。
【0005】
時刻を含まないデータのポイズニング攻撃に対向可能な技術としては、正常なデータが明確にわかっている場合に、正常なデータの分布を用いて汚染データを検知する手法も提案されている。この手法では、例えば、所定の指標でのデータの分布において、正常なデータの中心点から一定の距離以上離れているデータが汚染データとみなして検知される。
【先行技術文献】
【特許文献】
【0006】
【文献】国際公開第2013/014987号
【非特許文献】
【0007】
【文献】Jacob Steinhardt, Pang Wei W. Koh, Percy S. Liang, "Certified Defenses for Data Poisoning Attacks", Advances in Neural Information Processing Systems 30 (NIPS 2017), 2017年12月
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、正常なデータの分布を用いて汚染データを検知する技術では、正常なデータが不明な場合には適用できず、正常であるものとして取り扱ったデータに汚染データが混入していれば、汚染データを正しく検出することはできない。しかも、この技術では、正常なデータと近い範囲に分布するような汚染データの検知は困難である。このように従来は汚染データの検出が困難な場合があり、汚染データの検出精度が十分ではない。すなわち訓練データ内に機械学習への攻撃を目的とした汚染データが混入していても、その汚染データの検知が難しく、訓練データが機械学習に対して攻撃性を有しているのかどうかを適切に判断するのが困難となっている。
【0009】
1つの側面では、本発明は、訓練データの機械学習への攻撃性を適切に評価できるようにすることを目的とする。
【課題を解決するための手段】
【0010】
1つの案では、コンピュータが以下の処理を実行する評価方法が提供される。
コンピュータは、機械学習用の入力データとラベルとの組を含む複数の訓練データの集合に基づいて、1以上の訓練データを含む部分集合を複数生成する。次にコンピュータは、部分集合ごとに、部分集合に含まれる訓練データを用いた機械学習を行うことで、入力データからラベルを推定するための訓練済みモデルを生成する。そしてコンピュータは、部分集合ごとに、部分集合に含まれる訓練データを用いて生成した訓練済みモデルによる推定精度に基づいて、部分集合に含まれる訓練データの機械学習への攻撃性に関する評価を行う。
【発明の効果】
【0011】
1態様によれば、訓練データの機械学習への攻撃性を適切に評価できる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【0012】
図1】第1の実施の形態に係る評価方法の一例を示す図である。
図2】機械学習システムを含むコンピュータシステムの一例を示す図である。
図3】機械学習システムのハードウェアの一例を示す図である。
図4】機械学習を模式的に示す図である。
図5】ポイズニングの攻撃を説明する図である。
図6】機械学習システムにおいて汚染データの検知に用いられる機能を示すブロック図である。
図7】記憶部に格納されるデータの一例を示す図である。
図8】汚染データ検知処理の一例を示す図である。
図9】精度の評価処理の一例を示す図である。
図10】汚染データ検知処理の手順の一例を示すフローチャートである。
図11】汚染データ候補リストの一例を示す図である。
図12】クラスタリングを用いた訓練データセットの分割例を示す図である。
図13】分割後の部分データセットごとの訓練済みモデルの生成例を示す図である。
図14】第3の実施の形態における汚染データ検知処理の手順の一例を示すフローチャートである。
図15】クラスタリングを利用した訓練データセット分割処理の手順の一例を示すフローチャートである。
図16】汚染候補点の第1の加点例を示す図である。
図17】汚染候補点の第2の加点例を示す図である。
図18】第4の実施の形態における汚染データ検知処理の手順の一例を示すフローチャートである。
図19】第5の実施の形態における汚染データ検知処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず第1の実施の形態について説明する。第1の実施の形態は、機械学習に用いる訓練データの集合から生成した部分集合ごとに、その部分集合に含まれる訓練データによる機械学習への攻撃性を評価する評価方法である。部分集合ごとに攻撃性を適正に評価することができれば、ポイズニング攻撃などの機械学習への攻撃用に生成された訓練データ(汚染データ)の検知精度を向上させることができる。
【0014】
図1は、第1の実施の形態に係る評価方法の一例を示す図である。図1には、訓練データによる機械学習への攻撃性を評価する評価方法を、情報処理装置10を用いて実施した場合の例を示している。情報処理装置10は、例えば所定の処理手順が記述された評価プログラムを実行することにより、評価方法を実施することができる。
【0015】
情報処理装置10は、記憶部11と処理部12とを有する。記憶部11は、例えば情報処理装置10が有するメモリ、またはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサ、または演算回路である。
【0016】
記憶部11は、機械学習に用いる複数の訓練データ1a,1b,・・・を記憶する。訓練データ1a,1b,・・・それぞれは、機械学習用の入力データとラベルとの組を含む。ラベルは、入力データを分類した場合の正解を示す情報(正解データ)である。例えば入力データが電子メールであり、機械学習によってスパムメールか否かを推定する場合、入力データがスパムメールか否かがラベルに示されている。
【0017】
処理部12は、記憶部11に格納された訓練データ1a,1b,・・・の中から、機械学習への攻撃性を有する可能性が高い訓練データを検出する。例えば処理部12は、ポイズニング攻撃用に生成された訓練データを検出する。具体的には、処理部12は、以下の処理を行う。
【0018】
処理部12は、訓練データ1a,1b,・・・の集合1に基づいて、1以上の訓練データを含む部分集合3a,3bを複数生成する。次に処理部12は、部分集合3a,3bごとに、部分集合3a,3bに含まれる訓練データを用いた機械学習を行うことで、入力データからラベルを推定するための訓練済みモデル4a,4bを生成する。そして処理部12は、部分集合3a,3bごとに、部分集合3a,3bに含まれる訓練データを用いて生成した訓練済みモデル4a,4bによる推定精度に基づいて、部分集合3a,3bに含まれる訓練データの機械学習への攻撃性に関する評価を行う。例えば処理部12は、部分集合3a,3bに基づいて生成された複数の訓練済みモデル4a,4bの推定精度が低いほど、部分集合3a,3bに含まれる訓練データの機械学習への攻撃性を高く評価する。
【0019】
例えば訓練データ1a,1b,・・・内に汚染データ2が混入していた場合、生成された部分集合3a,3bのうちの一方に汚染データ2が含まれる。汚染データ2を含む部分集合3aの訓練データを用いて生成した訓練済みモデル4aは、汚染データ2を含まない部分集合3bの訓練データを用いて生成した訓練済みモデル4bよりも、ラベルの推定精度が低くなる。これは汚染データ2が、訓練済みモデルの精度劣化を目的として作成されているためである。
【0020】
処理部12は、訓練済みモデル4a,4bの精度比較結果に基づいて、訓練済みモデル4bの生成に使用した訓練データよりも訓練済みモデル4aの生成に使用した訓練データの方を、機械学習への攻撃性を高く評価する。これにより、部分集合3a内に汚染データ2が混入していることを正しく推定することができる。すなわち訓練データの機械学習への攻撃性が適切に評価される。
【0021】
なお部分集合3a内にまだ大量の訓練データが含まれている場合、それらの訓練データから汚染データ2を特定するのは困難である。その場合、処理部12は、例えば、評価に示される攻撃性が高い方から所定数の部分集合3aに含まれる訓練データの集合に基づいて、部分集合3a,3bの生成、訓練済みモデル4a,4bの生成、評価を繰り返す。これらの一連の処理を繰り返し実行することにより、汚染データを含む部分集合の訓練データ数も少なくなる。処理部12は、汚染データを含む部分集合の訓練データ数が所定数以下になったら、一連の処理の繰り返しを終了する。そして処理部12は、例えば最後の評価で攻撃性が最も高い部分集合に含まれる訓練データのリストを、汚染データ候補として出力する。
【0022】
繰り返し処理により汚染データ候補が絞り込まれているため、汚染データ候補の内容を人手で確認し、汚染データ2を特定することが容易となる。また処理部12は、汚染データ候補の数が少なければ、該当する訓練データを記憶部11から削除し、汚染データ2が機械学習に用いられることを抑止することもできる。
【0023】
また処理部12は、部分集合3a,3bの生成において、訓練データ1a,1b,・・・間の類似性に基づいて訓練データを複数のクラスタのいずれかに分類するクラスタリングを利用して部分集合を生成することもできる。例えば処理部12は、訓練データ1a,1b,・・・についてクラスタリングを行い、属する訓練データ数が少ない方から所定数のクラスタそれぞれに分類された訓練データについて、属するクラスタが同じ訓練データ同士を共通の部分集合に含める。
【0024】
これにより、訓練データ1a,1b,・・・内に汚染データ2が複数混入している場合、複数の汚染データ2を同じ部分集合に含めることができる。すなわち複数の汚染データ2は共通の特徴を有していることが多く、クラスタリングにおいて同じクラスタに分類される。また攻撃者は、攻撃をしていることを機械学習システムの管理者に気づかれないようにするため、訓練データ1a,1b,・・・に混入させる汚染データ2の量は、多すぎない量にするものと考えられる。そのため汚染データ2を含むクラスタは、他のクラスタに比べて、属する訓練データの数が少なくなる。すなわち、属する訓練データ数が少ない方から所定数のクラスタそれぞれに分類された訓練データについて、属するクラスタが同じ訓練データ同士を共通の部分集合に含めることにより、複数の汚染データ2が共通の部分集合に含められる。
【0025】
複数の汚染データ2が共通の部分集合に含められることで、複数の汚染データ2が複数の部分集合3a,3bに分散されることにより部分集合3a,3b間の精度の差がなくなることが抑止される。すなわち複数の汚染データ2を含む部分集合に基づいて生成された訓練済みモデルのラベル推定の精度が低くなり、処理部12は、その部分集合内に汚染データ2が含まれることを正しく判定できる。
【0026】
さらに、処理部12は、部分集合3a,3bの生成、訓練済みモデル4a,4bの生成、訓練済みモデル4a,4bの評価を繰り返し行ってもよい。この場合、処理部12は、評価を行うごとに、評価に示される攻撃性が高い方から所定数の部分集合(例えば攻撃性が最も高い部分集合3a)に含まれる訓練データに対して汚染候補点を加点する。そして処理部12は、汚染候補点が高い方から所定数の訓練データを出力する。
【0027】
このように攻撃性が高いと評価された部分集合に含まれる訓練データに対して汚染候補点を加点していくことで、例えば汚染データ2が複数存在し、それらの汚染データ2が複数の部分集合3a,3bに分散することがあっても、汚染データ2の検知が可能となる。すなわち、部分集合3a,3bの生成、訓練、評価、および攻撃性が高いと評価された部分集合内の訓練データへの汚染候補点の加点を繰り返すことで、汚染データ2の汚染候補点が大きくなる。その結果、処理部12は、汚染候補点が高い方から所定数の訓練データを汚染データ2として検出することができる。
【0028】
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、訓練データセットの中から、ポイズニング攻撃に用いられた汚染データを含む可能性がある1以上の訓練データを検出し、管理者に通知する機械学習システムである。
【0029】
図2は、機械学習システムを含むコンピュータシステムの一例を示す図である。機械学習システム100は、例えばネットワーク20を介して複数の利用者端末31,32,・・・に接続されている。機械学習システム100は、例えば利用者端末31,32,・・・から送られたクエリについて訓練済みのモデルを用いて解析し、解析結果を利用者端末31,32,・・・に送信する。利用者端末31,32,・・・は、機械学習によって生成されたモデルを用いたサービスの提供を受けるユーザが使用するコンピュータである。
【0030】
図3は、機械学習システムのハードウェアの一例を示す図である。機械学習システム100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
【0031】
メモリ102は、機械学習システム100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
【0032】
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
【0033】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0034】
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
【0035】
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0036】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
【0037】
機器接続インタフェース107は、機械学習システム100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
【0038】
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【0039】
機械学習システム100は、以上のようなハードウェアによって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した装置も、図3に示した機械学習システム100と同様のハードウェアにより実現することができる。
【0040】
機械学習システム100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。機械学習システム100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、機械学習システム100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また機械学習システム100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0041】
このような機械学習システム100に対する攻撃は、機械学習の特性を利用して行われる。以下、図4を参照して、機械学習について説明する。
図4は、機械学習を模式的に示す図である。図4に示すように、機械学習システム100で行う機械学習は、訓練フェイズ40と推論フェイズ50とに分かれる。機械学習システム100は、訓練フェイズ40において、空のモデル41に訓練データセット42を適用することによって、空のモデル41に対する訓練を行う。空のモデル41は、転移学習のように、ある訓練データで訓練されたパラメータをすべて、あるいは部分的に反映したモデルであってもよい。
【0042】
訓練データセット42には、例えば入力データ42aと正解の出力データ(教師データ)を示すラベル42bとの組からなる複数のデータが含まれる。入力データ42aとラベル42bとは、いずれも数値列で表現される。例えば画像を用いた機械学習の場合、入力データ42aとして、該当画像の特徴を表す数値列が用いられる。
【0043】
機械学習システム100は、訓練データセット42内の入力データ42aを空のモデル41に適用して解析を行い、出力データを得る。機械学習システム100は、出力データとラベル42bとを比較し、不一致であれば、空のモデル41を修正する。空のモデル41の修正とは、例えば空のモデル41を用いた解析に用いるパラメータ(ニューラルネットワークであればユニットへの入力データの重みパラメータ及びバイアス)を、出力データが正解に近づくように修正することである。
【0044】
機械学習システム100は、大量の訓練データセット42を用いて訓練を行うことで、多くの入力データ42aに対してラベル42bと同じ出力データが得られる訓練済みモデル43を生成することができる。訓練済みモデル43は、例えば空のモデル41と、訓練によって適切な値が設定されたモデルのパラメータ44で表される。
【0045】
このように生成される訓練済みモデルは、「y=f(x)」の形の関数と捉えることができる(x、yは、それぞれベクトル、あるいはテンソルなどの構造つきの数値データ)。すなわち機械学習における訓練は、大量のxとyの組から、それに合った関数fを決める作業である。
【0046】
機械学習システム100は、訓練済みモデル43を生成後、その訓練済みモデル43を用いて推論フェイズ50を実施する。例えば機械学習システム100は、クエリ51の入力を受け付け、訓練済みモデル43を用いて、クエリ51に応じた出力データ52を得る。例えばクエリ51がメールの文章であるとき、機械学習システム100は、そのメールがスパムか否かの推定結果を出力データとして出力する。また入力データが画像のとき、機械学習システム100は、例えばその画像に写っている動物の種類を出力データとして出力する。
【0047】
機械学習システム100に対する攻撃は、訓練フェイズまたは推論フェイズが攻撃対象となる。ポイズニングは、訓練フェイズが攻撃対象である。
図5は、ポイズニングの攻撃を説明する図である。例えば機械学習システム100は、訓練フェイズ40において、訓練データセット42を用いて、決定境界45によってデータを3つのグループに分類する訓練済みモデル43を生成したものとする。攻撃者60は、利用者端末31を用い、ポイズニング用に操作した訓練データセット61を用いて、機械学習システム100に訓練を実施させる。ポイズニング用に操作した訓練データセット61には、正しい訓練済みモデル43では、正しく推定されないような汚染データ62が含まれる。汚染データ62は、入力データに対して誤ったラベルが設定されている。機械学習システム100は、汚染データ62に応じて、決定境界45を変更する。
【0048】
変更された決定境界45aは、汚染データ62に適応させるために、誤った方向への変更が行われている。その結果、ポイズニングの攻撃を受けた後の訓練済みモデル43aを推論フェイズ50で用いると、誤った出力データを出力する。
【0049】
攻撃者60は、機械学習システム100に対してポイズニングの攻撃を行うことで、推論での推定精度を劣化させることができる。例えば機械学習システム100が訓練済みモデル43aを用いて、サーバに入力されるファイルのフィルタリングを行っている場合、推定精度が劣化することで、ウィルスなどの危険性を有するファイルの入力がフィルタリングされずに許可される可能性がある。
【0050】
例えば機械学習システム100が、スパムメールか否かの分類を行うための訓練済みモデルを生成する場合を想定する。この場合、訓練データには、メールとラベルとが含まれる。メールは、社内における電子メールに含まれるテキストデータ、および添付ファイルである。ラベルは、教師データであり、メールがスパムか否かを二値で表している。例えばメールが非スパムの場合にはラベルの値は「0」であり、スパムの場合にはラベルの値は「1」である。
【0051】
なおメールにラベル付けをする際には、スパムか否かがルールベース、人手、または他の機械学習の結果によって推定される。例えば機械学習システム100は、ルールベースのフィルタリングによって、メールがスパムである可能性の有無を推定する。機械学習システム100は、スパムである可能性があるメールをモニタに表示し、管理者によるスパムか否かの推定を促す。管理者は、表示されたメールの内容を確認し、該当メールがスパムか否かを判断して、判断結果を機械学習システム100に入力する。機械学習システム100は、入力されたラベルを、推定対象のメールに付与し、ラベルとメールとの組を訓練データとする。
【0052】
このような訓練データに対するポイズニング攻撃としては、例えば一般のメールデータに、特定の言葉を入れるなどのポイズニングが考えられる。このポイズニングが行われた汚染データは、その特定の言葉がラベリングを行う人に違和感を与えない限り、通常のラベリング(非スパムのラベル「0」の付与)がなされる。その一方で、機械学習システム100では、推定フェイズにおいて、推論時に、スパムメールに混入された特定の言葉を含むメールについて誤った推論をしてしまうおそれがある。
【0053】
そこで機械学習システム100は、訓練データセットを複数の部分データセットに分割し、部分データセットごとに機械学習のモデルの訓練を行う。なお部分データセットは、第1の実施の形態に示す部分集合3a,3bの一例である。そして機械学習システム100は、部分データセットごとの訓練済みモデルによる推論の精度を比較し、精度が悪い訓練済みモデルが生成された部分データセットに汚染データが含まれていると推定する。このように、訓練済みモデルの精度への汚染データの影響を考慮して、汚染データの検知を行うことで、訓練精度に影響を及ぼす汚染データの検出が可能となる。
【0054】
図6は、機械学習システムにおいて汚染データの検知に用いられる機能を示すブロック図である。機械学習システム100は、訓練データ取得部110、記憶部120、分割部130、訓練部140、評価部150、および絞り込み部160を有する。
【0055】
訓練データ取得部110は、訓練データを取得する。例えば訓練データ取得部110は、メールがスパムか否かを推定するためのモデルを訓練する場合、メールサーバから電子メールを取得する。そして訓練データ取得部110は、取得した電子メールがスパムか否かを示すラベルの値の入力を受け付ける。例えば機械学習システム100の管理者がラベルの値を入力すると、訓練データ取得部110は、電子メールとラベルとの組を、記憶部120に格納する。
【0056】
記憶部120は、訓練データセット121と評価データセット122とを記憶する。訓練データは、モデルに入力する入力データと、出力結果の正解値を示すラベルとを含む。評価データセット122は、訓練済みモデルの評価に使用する評価データの集合である。評価データは、モデルに入力する入力データと、出力結果の正解値を示すラベルとを含む。記憶部120としては、例えばメモリ102またはストレージ装置103の記憶領域の一部が使用される。
【0057】
分割部130は、訓練データセット121を複数の部分データセットに分割する。分割部130は、例えば訓練データセット121に含まれる訓練データのラベルの値の比率と、分割後の各部分データセットに含まれる訓練データのラベルの値の比率とが同程度になるように、各部分データセットに含まれる訓練データを決定する。
【0058】
訓練部140は、分割によって生成された部分データセットごとに、その部分データセットに含まれる訓練データを用いた機械学習を行う。これにより、部分データセットごとの訓練済みモデルが生成される。
【0059】
評価部150は、部分データセットごとに生成された訓練済みモデルそれぞれによるラベル推定の精度を、評価データセット122を用いて評価する。例えば評価部150は、訓練済みモデルを用いて評価データセット122に含まれる評価データの入力データを訓練済みモデルに入力して得られる出力データが、その評価データのラベルと一致する割合を計算する。評価部150は、出力データがラベルと一致する割合が高い訓練済みモデルほど、ラベル推定の精度が高いと評価する。なお評価部150は、評価データセット122として、分割によって生成された部分データセットを用いてもよい。
【0060】
絞り込み部160は、評価結果に基づいて、汚染データを含む可能性が高い訓練データの評価データセットを特定し、該当する評価データセットに含まれる訓練データのリストを表示する。例えば絞り込み部160は、評価結果が最も低い訓練済みモデルの生成に使用された評価データセットを、汚染データを含む可能性が高い訓練データの集合として特定する。
【0061】
なお、図6に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図6に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【0062】
次に、記憶部120に格納される訓練データセット121と評価データセット122とについて詳細に説明する。
図7は、記憶部に格納されるデータの一例を示す図である。訓練データセット121には、訓練データごとのレコードが含まれている。各訓練データは、訓練データを識別するためのデータ番号と入力データとラベルとを有する。入力データは、機械学習におけるラベルの推定対象となるデータである。例えば電子メールからスパムを検出するための機械学習を行う場合、電子メールに記述された内容が入力データとなる。ラベルは、入力データについての教師データ(正解データ)である。例えば電子メールからスパムを検出するための機械学習を行う場合、対応する電子メールがスパムか否かを示す値が、ラベルとして設定される。
【0063】
評価データセット122には、評価データごとのレコードが含まれている。各評価データは、訓練データと同様に、評価データを識別するためのデータ番号と入力データとラベルとを有する。
【0064】
図7に示す訓練データセット121に含まれる訓練データに汚染データが混在すると、正確な機械学習が困難となる。そこで機械学習システム100は、訓練データセット121に含まれる訓練データから汚染データの検知処理を行う。
【0065】
図8は、汚染データ検知処理の一例を示す図である。図8では、訓練データセット121に含まれる複数の訓練データ121a,121b,・・・を丸印で示している。複数の訓練データ121a,121b,・・・には、攻撃者60により生成された汚染データ121xが含まれている。
【0066】
機械学習システム100は、訓練データセット121を、1以上の訓練データを含む部分データセット71~73に分割する。汚染データ121xは、いずれかの評価データセットに含まれる。図8の例では、部分データセット71に汚染データ121xが含まれている。
【0067】
機械学習システム100は、部分データセット71~73ごとに、該当する集合に含まれる訓練データを用いて空のモデル41の訓練(機械学習の訓練フェイズ)を行う。これにより部分データセット71~73ごとに訓練済みモデル43a,43b,43cが生成される。
【0068】
機械学習システム100は、生成された訓練済みモデル43a,43b,43cによるラベル推定の精度を、評価データセット122を用いて評価する。
図9は、精度の評価処理の一例を示す図である。機械学習システム100は、例えば訓練済みモデル43aを用いて、評価データセット122の入力データのラベルの推論を行う。推論の結果が出力データ53として出力される。機械学習システム100は、評価データセット122内の評価データごとに、その評価データに教師データとして含まれるラベルの値と出力データの値とを比較し、一致するか否かを判定する。機械学習システム100は、例えば評価データのラベルの一致率を、訓練済みモデル43aの精度の評価結果とする。一致率は、教師データであるラベルと出力データで示されたラベルとが一致した評価データの数を、評価データセット122内の評価データ数で除算した値である。この場合、一致率が高いほど、訓練済みモデル43aの精度がよいことを示す。
【0069】
訓練済みモデル43aの精度がよいほど、その訓練済みモデル43aの生成に用いた部分データセット71の攻撃性は低く評価できる。換言すると、訓練済みモデル43aの精度が悪いほど、その訓練済みモデル43aの生成に用いた部分データセット71の攻撃性は高い。攻撃性が高いことは、汚染データ121xを含む可能性が高いことを意味する。
【0070】
機械学習システム100は、他の訓練済みモデル43b,43cについても同様に、評価データセット122を用いた評価を実施する。以下、図8の説明に戻る。
訓練データセット121に含まれる汚染データ121xは、生成される訓練済みモデルの精度を劣化させるものである。すると汚染データ121xを含む部分データセット71を用いた訓練で得られた訓練済みモデル43aは、他の訓練済みモデル43b,43cよりもラベル推定精度が劣る。すなわち訓練済みモデル43aの精度の評価結果が低くなる。
【0071】
機械学習システム100は、精度の評価結果が最も低い訓練済みモデル43aの訓練に用いられた部分データセット71を取得し、訓練データセット121を部分データセット71に置き換えて、分割、訓練、精度評価を行う。機械学習システム100は、以後同様に、精度の評価が最も低い訓練済みモデルの生成に用いられた集合に対する、分割、訓練、精度評価を繰り返す。
【0072】
機械学習システム100は、精度評価後に所定の終了条件が満たされたとき、その精度評価において評価が最も低い訓練済みモデルの生成に用いられた集合に含まれる訓練データの中に汚染データが含まれると判定する。例えば機械学習システム100は、精度の評価が最も低い訓練済みモデルの生成に用いられた集合に含まれる訓練データの数が所定数以下になった場合、終了条件が満たされたと判定する。また機械学習システム100は、分割、訓練、精度評価の繰り返し回数が所定の回数に達した場合に、終了条件が満たされたと判定してもよい。
【0073】
なお評価データセット122が汚染データを含んでいても、汚染データが少量である限り、評価データセット122を用いて適切な評価が可能である。すなわち評価データセット122に少量の汚染データが含まれていても、その汚染データの影響は複数の訓練済みモデル43a,43b,43cそれぞれに等しく作用する。そのため評価データセット122に少量の汚染データが含まれていても、複数の訓練済みモデル43a,43b,43c間で評価結果を相対的に比較することで、精度が最も悪い訓練済みモデルを正しく特定できる。従って評価データセット122として、完全に汚染されていない正常なデータを用意せずに済む。
【0074】
次に、汚染データ検知処理の手順について詳細に説明する。
図10は、汚染データ検知処理の手順の一例を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
【0075】
[ステップS101]分割部130は、記憶部120から訓練データセット121と評価データセット122とを取得する。そして分割部130は、取得した訓練データセット121内の訓練データを、訓練対象とするデータセット(訓練データセットXt)に設定する。また分割部130は、取得した評価データセット122を、訓練済みモデルの評価に用いるデータセット(評価データセットXv)に設定する。また分割部130は、予め指定されている値を、汚染データ検知処理の終了条件を示すデータ数の閾値Tに設定する。
【0076】
[ステップS102]分割部130は、訓練データセットXtを複数の部分データセットに分割し、部分データセットX1,・・・,Xnを生成する。例えば分割部130は、訓練データセットXt=[(x1,y1),(x2,y2),・・・,(xm,ym)](mは1以上の整数)が与えられているものとする。ここでxi,yi(i=1,・・・,m)は、それぞれ入力データとラベルである。この場合、分割部130は、訓練データセットXtを、例えばXt=X1∪X2∪X3のように複数の部分データセットに分割する。分割により生成する部分データセットの数が予め決められている場合、分割部130は、訓練データそれぞれについて、複数の部分データセットのいずれかにランダムに振り分ける。分割して得られた部分データセットそれぞれが、個別の訓練データセットXi(i=1,・・・,n)となる(nは1以上の整数)。
【0077】
なお分割部130は、訓練データセットXtに含まれる訓練データそれぞれが、少なくとも1つの部分データセットに含まれるようにする。なお、各訓練データは、複数の部分データセットに含まれていてもよい。
【0078】
[ステップS103]訓練部140は、訓練データセットXi(i=1,・・・,n)それぞれにより機械学習を行い、n個の訓練済みモデルMiを生成する。
[ステップS104]評価部150は、評価データセットXvを用いて、訓練済みモデルMiそれぞれの精度を評価する。
【0079】
[ステップS105]絞り込み部160は、最も精度が悪い訓練済みモデルMj(jは1以上n以下の整数)の訓練に用いた訓練データセットXjに含まれる訓練データ数N(Nは1以上の整数)を求める。
【0080】
[ステップS106]絞り込み部160は、訓練データ数Nが閾値T以下か否かを判断する。絞り込み部160は、訓練データ数Nが閾値T以下であれば、処理をステップS108に進める。また絞り込み部160は、訓練データ数Nが閾値Tを超えていれば、処理をステップS107に進める。
【0081】
[ステップS107]絞り込み部160は、訓練データセットXjを、訓練対象とする訓練データセットXtに新たに設定する。そして絞り込み部160は、処理をステップS102に進める。以後、分割部130、訓練部140、評価部150、および絞り込み部160により、更新後の訓練データセットXtを用いてステップS102~S106の処理が繰り返される。
【0082】
[ステップS108]絞り込み部160は、訓練データセットXjを、汚染データを含む可能性が高い訓練データの集合として出力する。例えば絞り込み部160は、訓練データセットXjに含まれる訓練データのリストを、汚染データ候補リストとしてモニタ21に表示する。
【0083】
このようにして、汚染データの可能性が高い訓練データを適確に検出できる。例えば正常な訓練データの近くに汚染データがある場合であっても、その汚染データは訓練済みモデルに悪影響を及ぼす。なお正常な訓練データの近くの汚染データとは、正常な訓練データとの類似度が高い汚染データである。訓練データの入力データが電子メールであれば、例えば、一般の人には汚染データとは気づかれないような特定の語句が意図的に挿入された電子メールが、汚染データとして訓練データセットに混入している場合がある。この汚染データは、特定の語句が含まれていること以外は、スパムではない正常な電子メールと区別が付かず、ラベルも非スパムを示す値「0」が設定されている。
【0084】
このような汚染データを用いて訓練された訓練済みモデルは、意図的に挿入された特定の語句があることで、正常な訓練データで訓練された訓練済みモデルよりも精度が悪くなる。すなわち、汚染データを用いて訓練された訓練済みモデルを用いて、特定の語句を有する電子メールがスパムか否かの推論を行うと、その電子メールがスパムであっても、スパムではないと推定する確率が高くなる。その結果、その訓練済みモデルの推定精度は、他の訓練済みモデルよりも低くなる。そのため、機械学習システム100は、精度が悪い訓練済みモデルの訓練に使用した訓練データセットには汚染データが含まれる可能性が高いと判断することができる。そして機械学習システム100が汚染データを含む訓練データセットの絞り込みを繰り返すことで、正常な訓練データの近くの汚染データであっても、その汚染データの検知が可能となる。
【0085】
絞り込み部160は、汚染データを含む可能性が高い訓練データの絞り込みが完了すると、汚染データ候補リストをモニタ21に表示する。機械学習システム100の管理者は、その汚染データ候補リストに基づいて、例えば汚染データの調査または訓練データセット121からの汚染データの除去を行う。
【0086】
図11は、汚染データ候補リストの一例を示す図である。汚染データ候補リスト77には、絞り込み部160による絞り込み後の訓練データセットに含まれる訓練データのリストが表示される。機械学習システム100の管理者は、汚染データ候補リスト77を参照し、ポイズニングの攻撃に用いられている訓練データ(汚染データ)を特定する。例えば管理者は、汚染データ候補リスト77に含まれる訓練データの内容を詳細に確認し、不自然な情報の有無などにより汚染データを特定する。管理者は、例えば特定した汚染データを記憶部120から削除する。また管理者は、汚染データ候補リスト77に含まれているすべての訓練データについて、汚染データである可能性が高いとして、記憶部120から削除することもできる。汚染データであることが確認できた訓練データ、または汚染データの可能性が高い訓練データを記憶部120から削除することで、記憶部120内の訓練データセット121を用いて、高精度の訓練済みモデルの生成が可能となる。
【0087】
このようにして、汚染データを容易に検知することが可能となる。すなわち機械学習システム100が、汚染データが訓練済みモデルに与える影響を考慮に入れて汚染データを検知するようにしたことにより、従来のポイズニング検知では検出が困難な汚染データも検知することができる。
【0088】
〔第3の実施の形態〕
次に第3の実施の形態について説明する。第3の実施の形態は、訓練データセット121を複数の部分データセットに分割する際に、クラスタリング技術を利用する点が第2の実施の形態と異なる。以下、第3の実施の形態における第2の実施の形態との相違点について説明する。
【0089】
第2の実施の形態では、分割部130は、訓練データを含む部分データセットをランダムに決定している。汚染データが1つの場合、訓練データの部分データセットへの振り分けをランダムにすれば、汚染データを含む1つの部分データセットと汚染データを含まない他の部分データセットとが生成される。その結果、各部分データセットの訓練データを用いて生成された部分データセットごとの訓練済みモデルの間には、汚染データの有無に基づいて、推定精度の優劣が生じる。その結果、汚染データを含む部分データセットを特定できる。
【0090】
それに対して、訓練データセット内に複数の汚染データが混入した場合、訓練データを複数の部分データセットのいずれかにランダムに割り当てると、複数の部分データセットそれぞれに均等に汚染データが割り当てられてしまう。各部分データセットが同程度の数の汚染データを含んでいると、各部分データセットの訓練データを用いて生成された部分データセットごとの訓練済みモデルの間に、推定精度の優劣が生じない。この場合、汚染データを含む可能性がある部分データセットをいずれか1つに決定してしまうと、それ以外の部分データセットに含まれた汚染データが検出できなくなる。
【0091】
そこで第3の実施の形態では、機械学習システム100は、訓練データセットに含まれる訓練データのクラスタリングを行い、類似する訓練データを1つのクラスタに纏める。クラスタリングにより、汚染データが汚染データではないデータと異なったクラスタに纏められる。機械学習システム100が汚染データを含むクラスタ内の訓練データを同じ部分データセットに含めることで、汚染データの多くが1つの部分データセット内に纏められる。
【0092】
図12は、クラスタリングを用いた訓練データセットの分割例を示す図である。図12では、訓練データセット80に含まれる複数の訓練データ81a,81b,・・・を、ラベルの値別に表記している。ラベルが「0」の訓練データは白丸で表され、ラベルが「1」の訓練データは黒丸で表されている。複数の訓練データ81a,81b,・・・の中には汚染データ82,83が混入している。
【0093】
機械学習システム100は、このような訓練データセット80内の訓練データをクラスタリングにより複数のクラスタ84a~84eに分類する。この場合、汚染データ82,83は、同じクラスタ84aに分類される。その後、機械学習システム100は、複数のクラスタ84a~84eそれぞれの訓練データを、複数の部分データセット84,85のいずれかに振り分ける。
【0094】
例えば機械学習システム100は、複数のクラスタ84a~84eのうち、訓練データ数が最も少ないクラスタに属する訓練データは、同じ部分データセットに振り分ける。図12の例では、クラスタ84a,84b,84cは、共に訓練データ数が2つであり、訓練データ数が最も少ない。そこで機械学習システム100は、クラスタ84a内の訓練データを同じ部分データセット84に振り分ける。同様に機械学習システム100は、クラスタ84b内の訓練データを同じ部分データセット84に振り分け、クラスタ84c内の訓練データを同じ部分データセット85に振り分ける。
【0095】
その後、機械学習システム100は、残ったクラスタ84d,84e内の訓練データを、部分データセット84,85のいずれかに振り分ける。この際、機械学習システム100は、元の訓練データセット80における訓練データのラベルの比率と、分割後に生成される部分データセットにおける訓練データのラベルの比率とが同程度になるように、クラスタ84d,84e内の訓練データを振り分ける。
【0096】
図12の例では、訓練データセット80において、ラベル「0」の訓練データが12個であり、ラベル「1」の訓練データが10個である。すると訓練データセット80におけるラベル「0」の訓練データとラベル「1」の訓練データとの比は6対5である。そこで機械学習システム100は、部分データセット84,85のそれぞれにおいて、ラベル「0」の訓練データとラベル「1」の訓練データとの比が6対5となるように、クラスタ84d,84e内の訓練データを部分データセット84,85に振り分ける。
【0097】
このようにして、訓練データセット80を複数の部分データセット84,85に分割することができる。クラスタリングを用いて分割したことで、訓練データのうちの汚染データ82,83は、1つの部分データセット84に集約される。分割処理により部分データセット84,85を生成後、機械学習システム100は、第2の実施の形態と同様に、部分データセット84,85ごとに訓練済みモデルを生成し、精度を評価する。
【0098】
図13は、分割後の部分データセットごとの訓練済みモデルの生成例を示す図である。機械学習システム100は、部分データセット84に含まれる訓練データに基づいてモデルの訓練を行い、訓練済みモデル43dを生成する。同様に機械学習システム100は、部分データセット85に含まれる訓練データに基づいてモデルの訓練を行い、訓練済みモデル43eを生成する。そして機械学習システム100は、訓練済みモデル43d,43eそれぞれの精度を評価する。
【0099】
汚染データ82,83は部分データセット84にのみ含まれているため、部分データセット84内の訓練データを用いて生成した訓練済みモデル43dは、部分データセット85内の訓練データを用いて生成した訓練済みモデル43eよりも、推定の精度が悪くなる。すなわち、部分データセット84内に汚染データ82,83が含まれていると正しく判断できる。
【0100】
そこで機械学習システム100は、部分データセット84に含まれる訓練データを新たな訓練データセットとして、クラスタリングを用いた訓練データセットの分割処理などの処理を繰り返す。その結果、複数の汚染データ82,83が存在する場合であっても、それらの汚染データ82,83を含む部分データセットを、汚染データ候補リストとして出力することが可能となる。
【0101】
また訓練データのラベルの出現比率が分割後も保たれることで、分割後の部分データセット84,85を用いた訓練を正しく行うことができる。しかも分割後の部分データセット84,85同士でラベルの出現比率が同じであれば、ラベルの出現比率の違いにより生成される訓練済みモデルの精度に違いが出ることを抑止できる。すなわち、ラベルの出現比率の違いが訓練済みモデルの精度に影響を及ぼすと、汚染データを含む部分データセットよりも、汚染データを含まない部分データセットの方が、生成される訓練済みモデルの精度が低くなるおそれがある。そこで機械学習システム100は、分割後の部分データセット84,85同士でラベルの出現比率を同じにすることで、ラベルの出現比率の違いが訓練済みモデルの精度に影響を及ぼすことを抑止する。
【0102】
図14は、第3の実施の形態における汚染データ検知処理の手順の一例を示すフローチャートである。なお図14に示すステップS201,S203~S208の処理は、図10に示す第2の実施の形態におけるステップS101,S103~S108の処理と同様である。従って、第2の実施の形態と異なるのは以下のステップS202の処理のみである。
【0103】
[ステップS202]分割部130は、クラスタリングを利用した訓練データセット分割処理を行う。
図15は、クラスタリングを利用した訓練データセット分割処理の手順の一例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
【0104】
[ステップS211]分割部130は、訓練データセットXtに対して非教師型、もしくは半教師型のクラスタリングを行い、訓練データセットXtの含まれる訓練データを含む複数のクラスタを生成する。なお分割部130は、クラスタリングのアルゴリズムとしては、例えばk平均法(k-means)、kd木(k-d tree)などを用いることができる。これらのクラスタリングアルゴリズムは、予めクラスタ数を決めておき、決められた数のクラスタにクラスタリングする際に有用である。生成するクラスタ数を不定とする場合には、分割部130は、例えばx-meansまたはDBSCANをクラスタリングアルゴリズムとして用いることができる。
【0105】
また、データの次元が大きい場合には、分割部130は、次元削減(もしくは特徴量抽出)を行ってからクラスタリングを行うこともできる。このようなアルゴリズムとして、PCA(主成分分析)、自己符号化器(Autoencoder)を用いた潜在変数抽出、LDA(LatentDirichlet Allocation)などがある。
【0106】
[ステップS212]分割部130は、生成されたクラスタを、属する訓練データ数が少ない順に、部分データセットX1,・・・,Xnとする。例えば分割部130は、生成されたクラスタそれぞれについて、属する訓練データ数を計数する。次に分割部130は、生成されたクラスタを訓練データ数が少ない順に並べる。そして分割部130は、i番目のクラスタに属する訓練データの集合を、部分データセットXiとする。
【0107】
[ステップS213]分割部130は、部分データセットX1からXkまでの訓練データの合計が訓練データの総数に占める割合が、予め設定された閾値t(0<t<1)を超えない最大のkを求める(kは1以上n以下の整数)。例えば分割部130は、部分データセットX1の訓練データ数に対して、添字の値が小さい部分データセットから順に、訓練データ数を加算する。分割部130は、加算する毎に、加算結果を訓練データの総数で除算し、除算結果と閾値tとを比較する。分割部130は、除算結果が閾値tより大きい場合、最後に加算した部分データセットの添字の数字から1を減算した値をkとする。
【0108】
[ステップS214]分割部130は、クラスタC1からクラスタCkまでの各クラスタについて、そのクラスタに属する訓練データを同じ部分データセットに振り分ける。例えば分割部130は、複数の部分データセットXi(i=1,・・・,n)を生成し、クラスタC1からクラスタCkまでのクラスタごとに、振り分け先の部分データセットをランダムに決定する。そして分割部130は、各クラスタに属する訓練データを、そのクラスタの振り分け先として決定された部分データセットに振り分ける。例えば訓練データセットXtを2つの部分データセットX1,X2に分割する場合、X1=C1∪C3∪C5・・・、X2=C2∪C4∪C6・・・となる。
【0109】
[ステップS215]分割部130は、クラスタCk+1からクラスタCnまでの各クラスタそれぞれに属する訓練データについて、その訓練データを部分データセットに振り分ける。この際、分割部130は、訓練データセットXtにおける訓練データのラベルの比率と、分割後に生成される部分データセットにおける訓練データのラベルの比率とが同程度になるように訓練データを振り分ける。
【0110】
このようにして、クラスタリングを用いた訓練データセットの分割を行うことができる。以下、訓練データセットの分割の一例を示す。
1000個の訓練データを有する訓練データセットXt{(xi,yi)}(i=1,・・・,1000)を分割する場合を想定する。閾値t=0.1が設定されているものとする。すなわち、訓練データの総数「1000」の10%「100」が、閾値で指定されている。また、500個の訓練データのラベル「yi」(i=1,・・・,500)は「0」であり、残りの500個の訓練データのラベル「yi」(i=501,・・・,1000)は「1」である。
【0111】
クラスタリングした結果、次のように5つのクラスタに分割されたものとする。
1={(xi,yi)}(i=1,・・・,10),訓練データ数「10」
2={(xi,yi)}(i=11,・・・,30),訓練データ数「20」
3={(xi,yi)}(i=31,・・・,500),訓練データ数「470」
4={(xi,yi)}(i=501,・・・,510),訓練データ数「10」
5={(xi,yi)}(i=511,・・・,1000),訓練データ数「490」
クラスタを訓練データ数の少ない順番に並べるとC1,C4,C2,C3,C5となる。クラスタに属する訓練データ数を、訓練データ数が少ないクラスタから順に加算していくと、クラスタC1,C4,C2の訓練データの合計は40であるが、クラスタC1,C4,C2,C3の訓練データの合計は510となる。すなわち訓練データの合計が全体の10%(t=0.1)を超えないクラスタはC1,C4,C2までである。
【0112】
そこで分割部130は、クラスタC1,C4,C2については、クラスタ単位で、属する訓練データの振り分け先の部分データセットを決定する。例えば分割部130は、C1とC4の訓練データセットの振り分け先を部分データセットX1とし、C2の訓練データの振り分け先を別の部分データセットX2とする。
【0113】
さらに、訓練データセットXtのラベルの比率は1:1なので、分割部130は、分割先の部分データセットでもラベルの比率は1:1となるように、クラスタC3とクラスタC5の訓練データの振り分け先を決定する。例えば分割部130は、クラスタC3を以下のようにクラスタC31とクラスタC32とに分割する。
31={(xi,yi)}(i=31,・・・,265)
32=C3-C31={(xi,yi)}(i=266,・・・,500)
クラスタC31とC32との訓練データ数は共に「235」である。また分割部130は、クラスタC5を、以下のようにクラスタC51とC52とに分割する。
51={(xi,yi)} (i=511,・・・,745)
52=C5-C51={(xi,yi)}(i=746,・・・,1000)
クラスタC51の訓練データ数は「235」であり、クラスタC52の訓練データ数は「255」である。そして分割部130は、以下のような部分データセットX1,X2を生成する。
1=C1∪C4∪C31∪C51
2=C2∪C32∪C52
部分データセットX1は、ラベル「0」の訓練データ数が「245」(C1∪C31)となり、ラベル「1」の訓練データ数が「245」(C4∪C51)となる。従って、部分データセットX1におけるラベルの比率は1:1である。同様に、部分データセットX2におけるラベルの比率も1:1となる。
【0114】
このように第3の実施の形態では、クラスタリングにより、複数の汚染データを同じクラスタに纏めることができる。そして汚染データを含むクラスタ内の訓練データを同じ部分データセットに振り分けることで、複数の汚染データが1つの部分データセットに纏められる。その結果、複数の汚染データが複数の部分データセットに均等に分散してしまうことが抑止され、複数の汚染データが存在する場合であってもそれらの汚染データの検出が可能となる。
【0115】
〔第4の実施の形態〕
次に第4の実施の形態について説明する。第4の実施の形態では、機械学習システム100は、訓練データセットを異なる分割パターンで繰り返し分割する。そして機械学習システム100は、分割するごとに、機械学習による訓練済みモデルの生成と精度の評価とを行い、精度が悪い訓練済みモデルの生成に使用した訓練データに汚染候補点を加算する。汚染データを用いて生成された訓練済みモデルは精度が悪いため、分割、訓練済みモデルの生成、評価、汚染候補点の加算を繰り返すと、汚染データの汚染候補点が他よりも大きくなる。そこで機械学習システム100は、汚染候補点が高い訓練データを汚染データ候補として出力する。
【0116】
図16は、汚染候補点の第1の加点例を示す図である。図16の例では、訓練データセット121内の訓練データ121a,121b,・・・に、左から順に昇順のデータ番号が付与されている。機械学習システム100は、訓練データセット121を複数の部分データセット71~73に分割し、部分データセットごとの訓練済みモデル43a,43b,43cを生成する。そして機械学習システム100は、訓練済みモデル43a,43b,43cそれぞれの精度を評価する。
【0117】
図16の例では、部分データセット71に汚染データ121xが含まれており、部分データセット71を用いた訓練済みモデル43aの精度は、他の訓練済みモデル43b,43cの精度よりも低い。そこで機械学習システム100は、部分データセット71に含まれる訓練データそれぞれについて、汚染候補点を1点ずつ加点する。
【0118】
例えば機械学習システム100は、汚染候補点管理テーブル91を有している。汚染候補点管理テーブル91は、訓練データごとの汚染候補点を管理するためのデータテーブルである。汚染候補点管理テーブル91には、訓練データのデータ番号に対応付けて、その訓練データの汚染候補点が設定されている。
【0119】
図16の例では、部分データセット71には、データ番号「1」から「8」の訓練データが含まれている。従って機械学習システム100は、汚染候補点管理テーブル91におけるデータ番号「1」~「8」のそれぞれに対して、汚染候補点を「1」点ずつ加点する。
【0120】
図17は、汚染候補点の第2の加点例を示す図である。機械学習システム100は、図16とは別の分割パターンで訓練データセット121を複数の部分データセット74~76に分割し、部分データセットごとの訓練済みモデル43f,43g,43hを生成する。そして機械学習システム100は、訓練済みモデル43f,43g,43hそれぞれの精度を評価する。
【0121】
図17の例では、部分データセット74に汚染データ121xが含まれており、部分データセット74を用いた訓練済みモデル43fの精度は、他の訓練済みモデル43g,43hの精度よりも低い。そこで機械学習システム100は、部分データセット74に含まれる訓練データそれぞれについて、汚染候補点を1点ずつ加算する。すなわち機械学習システム100は、汚染候補点管理テーブル91における部分データセット74に含まれる訓練データのデータ番号に対応する汚染候補点を、1点ずつ加点する。
【0122】
このような処理を繰り返すことで、汚染データ121x(データ番号「4」)の汚染候補点が他の訓練データの汚染候補点よりも高くなっていく。機械学習システム100は、汚染候補点の加算を所定回数繰り返したときに汚染候補点が大きい方から所定数の訓練データを、汚染データ候補として出力する。
【0123】
図18は、第4の実施の形態における汚染データ検知処理の手順の一例を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。
[ステップS301]分割部130は、記憶部120から訓練データセット121と評価データセット122とを取得する。そして分割部130は、取得した訓練データセット121内の訓練データを、訓練対象とするデータセット(訓練データセットXt)に設定する。また分割部130は、取得した評価データセット122を、訓練済みモデルの評価に用いるデータセット(評価データセットXv)に設定する。また分割部130は、予め指定されている値を、繰り返し回数I(Iは1以上の整数)に設定する。
【0124】
[ステップS302]分割部130は、何回目の繰り返し処理なのかを示す変数pに1を設定する(p=1)。
[ステップS303]分割部130は、訓練データセットXtを複数の部分データセットに分割し、部分データセットX1,・・・,Xnを生成する。この際、分割部130は、分割するごとに異なる部分データセットが生成されるような分割処理を行う。例えば分割部130は、複数の訓練データそれぞれの振り分け先となる部分データセットをランダムに決定する。
【0125】
[ステップS304]訓練部140は、訓練データセットXi(i=1,・・・,n)それぞれにより機械学習を行い、n個の訓練済みモデルMiを生成する。
[ステップS305]評価部150は、評価データセットXvを用いて、訓練済みモデルMiそれぞれの精度を評価する。
【0126】
[ステップS306]絞り込み部160は、最も精度が悪い訓練済みモデルMj(jは1以上n以下の整数)の訓練に用いた訓練データセットXjに含まれる訓練データに対して、汚染候補点を1点ずつ加点する。
【0127】
[ステップS307]絞り込み部160は、変数pの値が繰り返し回数Iに達したか否かを判断する(p=I?)。絞り込み部160は、繰り返し回数Iに達していなければ、処理をステップS308に進める。また絞り込み部160は、繰り返し回数Iに達した場合、処理をステップS309に進める。
【0128】
[ステップS308]絞り込み部160は変数pに1を加算(p=p+1)し、処理をステップS303に進める。
[ステップS309]絞り込み部160は、汚染候補点が高い方から所定数の訓練データのデータ番号を出力する。
【0129】
このように第4の実施の形態では、訓練候補点に基づいて汚染データ候補を検出するため、複数の汚染データが混入した場合でも、それらの汚染データを検出できる。また最初の訓練データセットの分割において、複数の汚染データが異なる部分データセットに分散された場合であっても各汚染データを検出することができ、検出精度が向上する。
【0130】
以下、第4の実施の形態による汚染データの検出例について説明する。
手書きの「0」と「1」を識別するための訓練済みモデルを生成する機械学習において、訓練データセットに混入した汚染データを検出する場合を想定する。この場合、正常な訓練データとして、手書きで「0」または「1」が書かれた画像データを合わせて約2000個用意した。また100個の汚染データを用意した。この場合、汚染データは、全体の約5%となる。分割部130は、訓練データセットの分割は、ランダムに2分割する。訓練部140は、訓練済みモデルとして、ロジスティック回帰による2値分類モデルを生成する。処理の繰り返し回数Iは「100」とする。
【0131】
以上の条件で機械学習システム100が図18に示した処理手順を実行し、汚染候補点が高い100個の訓練データを汚染データとして抽出したところ、汚染データと推定された上位100個の訓練データに、27個の汚染データが含まれていた。すなわち、混入率5%の汚染データを27%の検知精度で検知できている。
【0132】
〔第5の実施の形態〕
次に第5の実施の形態について説明する。第5の実施の形態は、第3の実施の形態と第4の実施の形態とを組み合わせたものである。
【0133】
図19は、第5の実施の形態における汚染データ検知処理の手順の一例を示すフローチャートである。図19に示す処理のうち、ステップS401,S402,S404~S409の処理は、それぞれ図18に示した第4の実施の形態のステップS301,S302,S304~S309の処理と同様である。またステップS403の処理は、図14に示した第3の実施の形態のステップS202の処理と同様である。
【0134】
なお第5の実施の形態では、分割部130は、クラスタリングごとに異なるクラスタが生成されるようなクラスタリングのアルゴリズムを採用する。例えば分割部130は、クラスタリングを行うごとに、クラスタリングで使用するパラメータを変更する。例えば分割部130は、特徴量抽出を行ってから特徴量の類似度に基づくクラスタリングを行う。この際、分割部130は、クラスタリングを行うごとに抽出する特徴量を変更する。これにより、同じ訓練データセットに対してクラスタリングを利用した分割を繰り返し行っても、分割処理ごとに、異なる部分データセットが生成される。
【0135】
このようにクラスタリングを利用した訓練データセットの分割処理と、訓練データへの汚染候補点の加点による汚染データの抽出とを組み合わせることで、汚染データの抽出精度が向上する。
【0136】
例えば第3の実施の形態のようにクラスタリングを利用した訓練データセットの分割処理のみだと、複数種の汚染データが混入していた場合、汚染データが複数のクラスタに分散され、汚染データが異なる部分データセットに分散するおそれがある。すると、一部の汚染データが検出できないことがあり得る。それに対して、第5の実施の形態では、機械学習システム100は、繰り返しクラスタリングを利用した分割処理を行い、その都度、精度が低い訓練済みモデルの生成に利用された訓練データに汚染候補点を加点する。これにより、クラスタリングにおいて異なるクラスタに属するような複数種の汚染データが混入していても、それらの汚染データの汚染候補点は他の訓練データよりも高くなる。その結果、汚染データの検出漏れを抑止することができる。
【0137】
しかもクラスタリングによって汚染データが1つの部分データセットに纏まるようにしているため、精度評価の際に、汚染データを含む部分データセットから生成した訓練済みモデルとそれ以外の訓練済みモデルとの精度の差が際立つ。その結果、汚染データを含む部分データセットを適確に判断することができる。
【0138】
〔その他の実施の形態〕
第2~第5の実施の形態では、機械学習システム100は、訓練データセット121と評価データセット122とを分けているが、例えば訓練データセット121の少なくとも一部を評価データセット122として用いることもできる。
【0139】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【0140】
1 集合
1a,1b,・・・ 訓練データ
2 汚染データ
3a,3b 部分集合
4a,4b 訓練済みモデル
10 情報処理装置
11 記憶部
12 処理部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19