(57)【要約】  分類のための学習器を有効に推定する。本発明の学習器推定装置は、入力された観測データの種類をラベルデータとして出力する分類タスク用の学習器を攻撃対象とし、記録部、問い合わせ部、取り込み部、学習部を備える。記録部は、あらかじめ定めた複数の観測データを記録しておく。問い合わせ部は、攻撃対象の学習器に対して、記録部に記録された観測データごとに問い合わせを行ってラベルデータを取得し、記録部に観測データと対応つけて取得したラベルデータを記録する。取り込み部は、記録部に記録された観測データと、当該観測データに対応付けられたラベルデータとを、学習部に入力する。学習部は、分類予測結果を求める処理であらかじめ定めた曖昧な値を出力する活性化関数を用いることを特徴とし、入力された観測データとラベルデータとを用いて学習する。
2020075462.tif 000002
【特許請求の範囲】
【請求項１】
入力された観測データの種類をラベルデータとして出力する分類タスク用の学習器を攻撃対象とする学習器推定装置であって、
記録部と、問い合わせ部と、取り込み部と、学習部とを備え、
前記記録部は、あらかじめ定めた複数の観測データを記録し、
前記問い合わせ部は、前記の攻撃対象の学習器に対して、前記記録部に記録された観測データごとに問い合わせを行ってラベルデータを取得し、前記記録部に観測データと対応つけて取得したラベルデータを記録し、
前記取り込み部は、前記記録部に記録された観測データと、当該観測データに対応付けられたラベルデータとを、前記学習部に入力し、
前記学習部は、分類予測結果を求める処理では、あらかじめ定めた曖昧な値を出力する活性化関数を用いることを特徴とし、入力された観測データとラベルデータとを用いて学習する
学習器推定装置。
【請求項２】
記録部と、問い合わせ部と、取り込み部と、学習部とを備えた学習器推定装置を用いて、入力された観測データの種類をラベルデータとして出力する分類タスク用の学習器を攻撃対象とする学習器推定方法であって、
問い合わせステップと、取り込みステップと、学習ステップとを有し、
前記記録部は、あらかじめ定めた複数の観測データを記録しており、
前記問い合わせステップでは、前記問い合わせ部が、前記の攻撃対象の学習器に対して、前記記録部に記録された観測データごとに問い合わせを行ってラベルデータを取得し、
前記記録部に観測データと対応つけて取得したラベルデータを記録し、
前記取り込みステップでは、前記取り込み部が、前記記録部に記録された観測データと、当該観測データに対応付けられたラベルデータとを、前記学習部に入力し、
前記学習ステップでは、前記学習部が、分類予測結果を求める処理であらかじめ定めた曖昧な値を出力する活性化関数を用いることを特徴とし、入力された観測データとラベルデータとを用いて学習する
学習器推定方法。
【請求項３】
請求項２記載の学習器推定方法であって、
前記の曖昧な値を出力する活性化関数は、汎化誤差を低減する
ことを特徴とする学習器推定方法。
【請求項４】
請求項２記載の学習器推定方法であって、
分類する種類数をＤ（ただし、Ｄは２以上の整数）、Ｔを１以上のあらかじめ定めた値、ｃを１以上Ｄ以下の整数、ｕｃを活性化関数へ入力されるベクトルのｃ番目の要素、〜ｙｃを分類結果として出力されるベクトルのｃ番目の要素とし、
前記活性化関数は、
【数３】
2020075462.tif 000005
である
ことを特徴とする学習器推定方法。
【請求項５】
入力された観測データの種類をラベルデータとして出力する分類タスク用の学習器への攻撃のリスクを評価するリスク評価装置であって、
請求項１記載の学習器推定装置と、
あらかじめ定めた複数のテスト用の観測データとラベルデータの組を用いて、学習済の前記学習器の正解率である対象正解率と、学習済の前記学習部の正解率である推定正解率とを求める正解率取得部と、
前記対象正解率の方が前記推定正解率よりも大きいときは前記対象正解率と前記推定正解率の差が小さいほど、前記対象正解率の方が前記推定正解率よりも小さいときは前記対象正解率を前記推定正解率が上回るほど、リスクが高いと判断するリスク判断部と、
を備えるリスク評価装置。
【請求項６】
学習部を備えた学習器推定装置を用いて、入力された観測データの種類をラベルデータとして出力する分類タスク用の学習器への攻撃のリスクを評価するリスク評価方法であって、
学習済の前記学習器に複数の観測データを入力し、各観測データを入力した際の分類予測である予測ラベルデータを取得し、観測データと予測ラベルデータの組の集合である推定用データ集合を得る攻撃対象分類予測ステップと、
前記学習部を、前記推定用データ集合を用いて学習し、学習済の学習部を得る推定学習ステップと、
あらかじめ定めた複数のテスト用の観測データとラベルデータの組を用いて、学習済の前記学習器の正解率である対象正解率と、学習済の前記学習部の正解率である推定正解率とを求める正解率取得ステップと、
前記対象正解率の方が前記推定正解率よりも大きいときは前記対象正解率と前記推定正解率の差が小さいほど、前記対象正解率の方が前記推定正解率よりも小さいときは前記対象正解率を前記推定正解率が上回るほど、リスクが高いと判断するリスク判断ステップと、
を有し、
前記第１のデータの組の方が、前記第２のデータの組よりも数が多く、
前記学習部は、分類予測結果を求める処理では、あらかじめ定めた曖昧な値を出力する活性化関数を用いる
ことを特徴とするリスク評価方法。
【請求項７】
請求項６記載のリスク評価方法であって、
あらかじめ定めた複数の訓練用の観測データとラベルデータの組の集合を、第１データ集合と、第２データ集合に分割する分割ステップと、
前記第１データ集合を用いて前記の攻撃対象の学習器を学習させ、学習済の学習器を得る攻撃対象学習器学習ステップと、
も有し、
前記攻撃対象分類予測ステップで前記学習器に入力される複数の観測データは、前記第２データ集合内の観測データである
ことを特徴とするリスク評価方法。
【請求項８】
請求項２〜４のいずれかに記載の学習器推定方法、または請求項６もしくは７に記載のリスク評価方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分類のための学習器の推定を行う学習器推定装置、学習器推定方法と、学習器のリスク評価装置、リスク評価方法、およびこれらの方法を実行するためのプログラムに関する。
【背景技術】
【０００２】
分類のための学習器を、ＡＰＩ（Application Programming Interface）を介して様々な人が利用できるようなサービスを展開している企業が増えてきている。しかしながら、悪意のあるユーザがこのＡＰＩを利用することによって、その学習器を推定できる可能性があることが指摘されている（非特許文献１，２）。コンピュータセキュリティの分野では、この学習器の推定（抽出、複製、再構築）はModel Extraction攻撃あるいはModel Reconstruction攻撃として知られている。なお、非特許文献３は、本願明細書中で説明する温度付きsoftmax関数に関する文献である。【０００３】
非特許文献１は、二値分類学習器のModel Extraction攻撃に関する文献である。データの二値分類によく用いられるロジスティック回帰と呼ばれる学習器に対してModel Extraction攻撃をし、非常に高い正解率の攻撃結果を得ることが可能であることが示されている。これは、ロジスティック回帰の学習器は、シグモイド関数の逆関数を用いると多次元一次式で表現することができ、その次元数分の予測結果の取得によって、解くことができるためである。【０００４】
非特許文献２は、多値分類学習器のModel Extraction攻撃に関する文献である。対象の学習を騙すことのできるデータ(Adversarial Exampleと呼ばれている。)を作り出すための学習器を作成する方法が提案されている。また、手書き文字データセットであるMNIST用の偽物の学習器の正解率が記されている。具体的には、攻撃対象のディープニューラルネットを用いて9,600個の予測結果を取得し、偽物の学習器を作成していた。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Florian Tramer, Fan Zhang, Ari Juels, Michael K. Reiter, and Thomas Ristenpart, “Stealing machine learning models via prediction apis,” In 25th USENIX Security Symposium (USENIX Security 16), pages 601-618, Austin, TX, 2016. USENIX Association.
【非特許文献２】Nicolas Papernot, Patrick McDaniel, Ian Goodfellow, Somesh Jha, Z. Berkay Celik, and Ananthram Swami, “Practical black-box attacks against machine learning,” In Proceedings of the 2017 ACM on Asia Conference on Computer and Communications Security, ASIA CCS '17, pages 506-519, New York, NY, USA, 2017. ACM.
【非特許文献３】Geoffrey Hinton, Oriol Vinyals, and Jeffrey Dean, “Distilling the knowledge in a neural network,” In NIPS Deep Learning and Representation Learning Workshop, 2015.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、非特許文献１の場合、二値より多い多値分類によく用いられるsoftmax関数（ソフトマックス関数）を含む学習器に対して同様のModel Extraction攻撃を検討した場合は、学習器を一次式で表現することができない。また、非特許文献２の筆者らのモチベーションは、Adversarial Exampleを作り出すことであり、偽物の学習器の正解率はあまり重視されていなかったため、作成された偽物の学習器は、攻撃対象の学習器の正解率に比べて１０％以上の乖離があるものであった。【０００７】
つまり、攻撃対象となる分類を行う学習器の詳細を知らないユーザがその学習器の出力を見ただけでその学習器を推定することができる（偽物が作られてしまう）可能性については言及されていたが、その有効な推定方法はなかった。有効な学習器推定方法がなければ、対象となる学習器の偽物が作られてしまうリスクを評価することができない。【０００８】
そこで、本発明は、分類のための学習器を有効に推定できる学習器推定装置、学習器推定方法、および学習器のリスク評価方法を確立することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の学習器推定装置は、入力された観測データの種類をラベルデータとして出力する分類タスク用の学習器を攻撃対象とし、記録部、問い合わせ部、取り込み部、学習部を備える。記録部は、あらかじめ定めた複数の観測データを記録しておく。問い合わせ部は、攻撃対象の学習器に対して、記録部に記録された観測データごとに問い合わせを行ってラベルデータを取得し、記録部に観測データと対応つけて取得したラベルデータを記録する。取り込み部は、記録部に記録された観測データと、当該観測データに対応付けられたラベルデータとを、学習部に入力する。学習部は、分類予測結果を求める処理であらかじめ定めた曖昧な値を出力する活性化関数を用いることを特徴とし、入力された観測データとラベルデータとを用いて学習する。【００１０】
本発明のリスク評価方法は、学習部を備えた学習器推定装置を用いて、入力された観測データの種類をラベルデータとして出力する分類タスク用の学習器への攻撃のリスクを評価する。本発明のリスク評価方法は、攻撃対象分類予測ステップ、推定学習ステップ、正解率取得ステップ、リスク判断ステップを実行する。攻撃対象分類予測ステップでは、学習済の学習器に複数の観測データを入力し、各観測データを入力した際の分類予測である予測ラベルデータを取得し、観測データと予測ラベルデータの組の集合である推定用データ集合を得る。推定学習ステップでは、学習部を、推定用データ集合を用いて学習し、学習済の学習部を得る。なお、学習部は、分類予測結果を求める処理であらかじめ定めた曖昧な値を出力する活性化関数を用いる。正解率取得ステップでは、あらかじめ定めた複数のテスト用の観測データとラベルデータの組を用いて、学習済の学習器の正解率である対象正解率と、学習済の学習部の正解率である推定正解率とを求める。リスク判断ステップでは、対象正解率の方が推定正解率よりも大きいときは対象正解率と推定正解率の差が小さいほど、対象正解率の方が推定正解率よりも小さいときは対象正解率を推定正解率が上回るほど、リスクが高いと判断する。
【発明の効果】
【００１１】
本発明の学習器推定装置、学習器推定方法によれば、温度付きsoftmax関数のような曖昧な値を出力する活性化関数を用いるので、汎化誤差を低減できる。よって、少ないデータ量の学習で攻撃対象の学習器を有効に推定できる。また、本発明のリスク評価装置、リスク評価方法も、温度付きsoftmax関数のような曖昧な値を出力する活性化関数を用いるので、少ないデータ量の学習で攻撃対象の学習器を推定できるかを判断できる。よって、リスク評価方法を確立できる。
【図面の簡単な説明】
【００１２】
【図１】学習器推定装置の機能構成例を示す図。
【図２】学習器推定装置の処理フローを示す図。
【図３】温度付きsoftmax関数への入力がｕ＝（ｕ１，ｕ２）Ｔ＝（ｕ１，0.0）のときの温度付きsoftmax関数の特性を示す図。
【図４】リスク評価方法１の処理フローを示す図。
【図５】分割ステップのイメージを示す図。
【図６】リスク評価方法１の攻撃対象学習器学習ステップ、攻撃対象分類予測ステップ、推定学習ステップのイメージを示す図。
【図７】正解率取得ステップ、リスク判断ステップのイメージを示す図。
【図８】リスク評価方法２の処理フローを示す図。
【図９】用意するデータの集合のイメージを示す図。
【図１０】リスク評価方法２の攻撃対象分類予測ステップ、推定学習ステップのイメージを示す図。
【図１１】リスク評価装置の機能構成例を示す図。
【図１２】MINSTデータの例を示す図。
【図１３】実験に用いる学習器の設定を示す図。
【図１４】学習器の仕様を示す図。
【図１５】学習に用いたデータ数と正解率の関係を示す図。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。また、文中で使用する記号「~」，「＾」等は、本来直後の文字の真上に記載されるべきものであるが、テキスト記法の制限により、当該文字の直前に記載する。数式中においてはこれらの記号は本来の位置、すなわち文字の真上に記述している。
【実施例１】
【００１４】
＜前提：正解率＞
攻撃者は攻撃対象の分類のための学習器(分類タスク用の学習器)ｆの推定を行い、ｆの推定学習器ｇｆを作成する。攻撃者はｆを利用して、高い正解率を持つｇｆを作成することを目標とする。正解率は、式（１）とする。【００１５】
【数１】
2020075462.tif 000003
【００１６】
ただし、Ｘはｇｆへ入力するデータ（以降、観測データと呼ぶ）の集合、~ＹはＸ内の各観測データに対するｆによって分類予測された種類の結果（以降、分類予測されたラベルデータと呼ぶ）の集合、^ＹはＸ内の各観測データに対する真の種類（以降、真のラベルデータと呼ぶ）の集合、Ｎ[ａ，ｂ]はａ以上ｂ以下の整数の集合、~ｙｉはｉ番目の観測データのｆが分類予測されたラベルデータ、^ｙｉはｉ番目の観測データに対する真のラベルデータとする。観測データは、分類したいデータであり、例えば、画像データ、購買データ、音声データ、位置データ、ゲノムデータなど様々ある。攻撃者はｇｆを組み立てるにあたって、ｇｆの構造とｇｆ内の重みと呼ばれるパラメータを推定する必要がある。本発明は、そのうちの重みパラメータの推定に関する。【００１７】
＜前提：攻撃対象の学習器＞
任意正の整数個（Ｎ個）の要素を持ち、各要素は任意の実数Ｒであるベクトルｘ∈ＲＮを分類したい観測データとし、分類するための攻撃対象の学習器をｆとする。つまり、ｆへの入力はｘであり、これに対する出力ｆ（ｘ）はスカラまたはベクトルとする。スカラは分類される種類に相当し、ベクトルは各成分が分類される種類の確信度に相当するものとする。（なお、ベクトルの各成分の合計は１００％にならなくてもよい。１００％にならない場合は、「各成分を成分の合計値で割り、１００をかける」などして、合計で１００％にすればよい。）【００１８】
例えば、スカラの場合は、分類される種類｛いちご、みかん、ぶどう｝に対して、スカラ｛０，１，２｝が対応しているとする。このとき、ｆ（ｘ）＝１であればｆは観測データｘを“みかん”と分類したということである。【００１９】
例えば、ベクトルの場合は、分類される種類｛いちご、みかん、ぶどう｝に対して、ベクトルの各成分が対応しているとする。このとき、ｆ（ｘ）＝（１０，２０，７０）であればｆは観測データｘを１０％の確信度で“いちご”と分類しており、２０％の確信度で“みかん”と分類しており、７０％の確信度で“ぶどう”と分類しているとなる。つまり、“ぶどう”である可能性が高いと分類している。なお、ベクトルの場合、各成分の合計を１００としても１としても割合という意味では同じことであるため、以降では各成分の合計を１とする。【００２０】
＜学習器推定装置，学習器推定方法＞
図１に学習器推定装置の機能構成例を、図２に学習器推定装置の処理フローを示す。学習器推定装置１００は、入力された観測データの種類をラベルデータとして出力する分類タスク用の学習器９００を攻撃対象とし、記録部１９０、問い合わせ部１１０、取り込み部１２０、学習部１３０を備える。記録部１９０は、あらかじめ定めた複数の観測データを記録しておく。【００２１】
問い合わせ部１１０は、攻撃対象の学習器９００に対して、記録部１９０に記録された観測データごとに問い合わせを行ってラベルデータを取得し、記録部１９０に観測データと対応つけて取得したラベルデータを記録する（問い合わせステップＳ１１０）。【００２２】
取り込み部１２０は、記録部１９０に記録された観測データと、その観測データに対応付けられたラベルデータとを、学習部１３０に入力する（学習部１３０に取り込ませる）（取り込みステップＳ１２０）。【００２３】
学習部１３０は、入力された観測データとラベルデータとを用いて学習する（学習ステップＳ１３０）。学習部１３０は、分類予測結果を求める処理（最終段の処理）では、あらかじめ定めた曖昧な値を出力する活性化関数を用いることを特徴としている。より具体的には、分類する種類数をＤ（ただし、Ｄは２以上の整数）、Ｔを１以上のあらかじめ定めた値、ｃを１以上Ｄ以下の整数、ｕｃを活性化関数へ入力されるベクトルのｃ番目の要素、〜ｙｃを分類結果として出力されるベクトルのｃ番目の要素とすると、例えば、活性化関数は、【００２４】
【数２】
2020075462.tif 000004
【００２５】
とすればよい。この活性化関数は、Ｔを温度とする温度付きsoftmax関数（非特許文献３参照）である。温度付きsoftmax関数は、温度Ｔを大きくするほど曖昧な値を出力するようになる。このように、学習部１３０は、温度付きsoftmax関数のような曖昧な値を出力する活性化関数を最終出力関数として持てばよい。【００２６】
学習ステップＳ１３０では、学習部は、観測データｘと攻撃対象の学習器９００の出力であるラベルデータｆ（ｘ）とを入力として学習する。なお、ｆ（ｘ）がスカラのときは、分類される種類がＭ（２以上の整数）個であるとき、そのスカラｆ（ｘ）を長さＭのベクトルｖｆ（ｘ）に変換して、ｇｆの入力にする。変換方法は、長さＭ（要素の数がＭ個）のベクトルを用意し、そのベクトルｆ（ｘ）番目の要素のみ１、それ以外の要素は全て０のようにすればよい。ｆ（ｘ）がベクトルのときは、そのままｇｆの入力にする。【００２７】
学習部１３０は、入力を２つ以上の種類に分類する分類タスク用の学習器９００を推定する。攻撃対象の学習器９００は、出力が分類結果であるものであれば、構造はどのようなものでも構わない。学習部１３０は、最終出力関数が式（２）に示す温度付きsoftmax関数のような分類予測結果が出力されるものであれば、その他の構造はどのようなものでも動作する。最終出力関数以外の「その他の構造」としては、例えば、一般的なニューラルネット(全結合)、畳込みニューラルネットなどがある。ただし、構造により分類の正解率は異なるため、すべての構造で最適であるわけではない。学習部１３０は、温度付きsoftmax関数単体の学習器でもよい。また、学習部１３０の重みパラメータ更新方法も任意である。学習方法には、例えば、公知技術である確率的勾配降下法、最急降下法、AdaGrad法、Momentum法などがある。【００２８】
学習ステップＳ１３０終了後は、学習部１３０は、攻撃対象の学習器９００と同じ形式の観測データｘが入力されると、攻撃対象の学習器９００と同じ形式のラベルデータｇｆ（ｘ）を出力する。ｇｆ（ｘ）は、上述と同様にスカラまたはベクトルである。【００２９】
図３に、温度付きsoftmax関数への入力がｕ＝（ｕ１，ｕ２）Ｔ＝（ｕ１，0.0）のときの温度付きsoftmax関数の特性を示す。図３より、温度Ｔが大きくなるほど曖昧な値を出力する関数になることが分かる。例えば、この温度付きsoftmax関数を使うことで汎化誤差を低減させることができる。攻撃者はＡＰＩの使用をできる限り抑えたいため、少ないデータで学習を行うはずである。訓練データが少ないほど、汎化誤差は増加する。機械学習の目標は汎化誤差を低減させることであり、攻撃者の作成したいＤＮＮ（深層学習器：Deep Neural Network）も汎化誤差が低いほどよい。このことから、本発明では汎化誤差を低減するため、温度付きsoftmax関数のような曖昧な値を出力する活性化関数を用いることを示した。よって、本発明の学習器推定装置、学習器推定方法であれば、汎化誤差を低減できるので、少ないデータ量の学習で攻撃対象の学習器を推定できる。つまり、本発明の学習器推定装置、学習器推定方法であれば、分類のための学習器を有効に推定できる。【００３０】
＜リスク評価方法１＞
図４にリスク評価方法１の処理フローを示す。図５は分割ステップのイメージを示す図、図６は攻撃対象学習器学習ステップ、攻撃対象分類予測ステップ、推定学習ステップのイメージを示す図、図７は、正解率取得ステップ、リスク判断ステップのイメージを示す図である。【００３１】
本発明のリスク評価方法は、学習部１３０を備えた学習器推定装置１００を用いて、入力された観測データの種類をラベルデータとして出力する分類タスク用の学習器９００への攻撃のリスクを評価する。リスク評価方法では、訓練用の観測データとラベルデータの組の集合と、テスト用の観測データとラベルデータの組の集合を用いる。なお、テスト用の観測データとラベルデータの組の集合は、訓練用の観測データとラベルデータの組の集合とは、共通するデータを含まないようにすればよい。【００３２】
図５に示すように、まず、あらかじめ定めた複数の訓練用の観測データとラベルデータの組の集合を、第１データ集合と、第２データ集合に分割する（分割ステップＳ２１０）。分割ステップＳ２１０では、訓練用の観測データとラベルデータの組の集合を分割する際、第１データ集合の組数Ｎの方が、第２データ集合の組数Ｍよりも多くなるように分割する。例えば、第１データ集合の組数は、第２データ集合の組数の４倍などがある。【００３３】
第１データ集合を用いて攻撃対象の学習器９００を学習させ、学習済の学習器を得る（攻撃対象学習器学習ステップＳ２２０）。学習済の学習器９００に第２データ集合の観測データの集合Ｘ２内の観測データｘ２ｍ（ｍ＝１，…，Ｍ)を入力し、その観測データを入力した際の分類予測（出力）である予測ラベルデータ〜ｙ２ｍ（ｍ＝１，…，Ｍ)を取得することで、予測ラベルデータの集合〜Ｙ２を取得し、観測データの集合Ｘ２と予測ラベルデータの集合〜Ｙ２の組である推定用データ集合を得る（攻撃対象分類予測ステップＳ２３０）。そして、学習部１３０を、推定用データ集合を用いて学習し、学習済の学習部を得る（推定学習ステップＳ２４０）。これらのイメージが図６に示されている。なお、学習部１３０は、分類予測結果を求める処理では、あらかじめ定めた曖昧な値を出力する活性化関数を用いる。曖昧な値を出力する活性化関数の具体例は、上述の学習器推定装置、学習器推定方法の説明と同じである。【００３４】
攻撃対象分類予測ステップＳ２３０は、学習器推定方法の問い合わせステップＳ１１０に相当する。記録部１９０にあらかじめ観測データの集合Ｘ２を記録しておき、観測データｘ２ｍ（ｍ＝１，…，Ｍ)ごとに問い合わせを行って（予測）ラベルデータ〜ｙ２ｍ（ｍ＝１，…，Ｍ)を取得し、記録部１９０に観測データｘ２ｍと対応つけて取得した（予測）ラベルデータ〜ｙ２ｍを記録すれば、攻撃対象分類予測ステップＳ２３０と問い合わせステップＳ１１０は同じである。観測データｘ２ｍと（予測）ラベルデータ〜ｙ２ｍの組の集合が、推定用データ集合に相当する。また、推定学習ステップＳ２４０は、取り込みステップＳ１２０と学習ステップＳ１３０に相当する。つまり、記録部１９０に記録された観測データｘ２ｍと（予測）ラベルデータ〜ｙ２ｍ（推定用データ集合内の各組に相当）を学習部１３０に入力し、学習部１３０が学習すれば、同じである。このように、攻撃対象分類予測ステップＳ２３０と推定学習ステップＳ２４０は、学習器推定装置１００を利用して実行できる。【００３５】
そして、あらかじめ定めたＫ組のテスト用の観測データｘＴｋとラベルデータｙＴｋの組の集合を用いて（Ｋは２以上の整数、ｋは１以上Ｋ以下の整数）、学習済の学習器９００の正解率である対象正解率と、学習済の学習部１３０の正解率である推定正解率とを求める（正解率取得ステップＳ２５０）。より具体的には、ｋ＝１，…，Ｋについて、テスト用の観測データｘＴｋとラベルデータｙＴｋの組の、観測データｘＴｋを学習済の学習器９００に入力し、予測ラベルデータ〜ｙＴＴｋを得る。そして、テスト用の観測データｘＴｋとラベルデータｙＴｋの組のラベルデータｙＴｋと予測ラベルデータ〜ｙＴＴｋを比較し、対象正解率を求める。同様に、ｋ＝１，…，Ｋについて、テスト用の観測データｘＴｋとラベルデータｙＴｋの組の、観測データｘＴｋを学習済の学習部１３０に入力し、予測ラベルデータ〜ｙＥＴｋを得る。そして、テスト用の観測データｘＴｋとラベルデータｙＴｋの組のラベルデータｙＴｋと予測ラベルデータ〜ｙＥＴｋを比較し、推定正解率を求める。【００３６】
そして、対象正解率の方が推定正解率よりも大きいときは対象正解率と推定正解率の差が小さいほど、対象正解率の方が推定正解率よりも小さいときは対象正解率を推定正解率が上回るほど（差が大きいほど）、リスクが高いと判断する（リスク判断ステップＳ２６０）。対象正解率は、大量のデータである第１のデータの組を用いて学習した攻撃対象の学習器９００の正解率である。推定正解率は、第１のデータの組に比べれば少ない量のデータで学習した学習部１３０の正解率である。つまり、対象正解率の方が推定正解率よりも大きいときは対象正解率と推定正解率の差が小さいほど、対象正解率の方が推定正解率よりも小さいときは対象正解率を推定正解率が上回るほど（差が大きいほど）、推定攻撃が成功していると言える。【００３７】
ステップＳ２６０のリスク判断の具体例としては、以下のような方法がある。ただし、１つの例であり、この方法に限定されるものではない。
１．ユーザが閾値τを決める。
２．リスク値は次のように計算される。
（１）対象正解率≦推定正解率のとき、リスク値＝１００（％）とする。
（２）それ以外のとき、リスク値＝((対象正解率−推定正解率）／対象正解率)×１００（％）とする。
３．リスク判断は次のように行われる。
（１）τ≦リスク値のとき、リスク評価結果を「リスクが高い」とする。
（２）それ以外のとき、リスク評価結果を「リスクが低い」とする。【００３８】
リスク評価方法は、最初のリスク判断ステップＳ２６０で求めた１つめのリスク評価結果またはリスク値をそのまま出力して処理を終了してもよいし、繰り返し条件を満たすかを判断し（繰り返し判断ステップＳ２７０）、満たす場合は学習部１３０のパラメータなどを変更して（パラメータ変更ステップＳ２８０）、ステップＳ２４０〜Ｓ２６０の処理を繰り返してもよい。なお、処理を繰り返した場合は、複数回リスク判断を行うことになるので、複数のリスク評価結果が存在する。この場合は、最も悪いリスク評価結果またはリスク値を出力すればよい。【００３９】
繰り返し条件としては、「リスク評価結果が、リスクが低いである」、「推定用データ集合内に推定学習ステップＳ２４０での学習に使用していない観測データｘ２ｍと（予測）ラベルデータ〜ｙ２ｍの組が残っている」、「リスク評価結果を求めるために許容されている時間に余裕があり、処理を繰り返すことが許される」などが考えられる。これらの全てを満たすときに繰り返し条件を満たすとしてもよいし、さらに他の条件を付加したり、条件を変更したりしてもよい。パラメータ変更ステップＳ２８０では、学習部１３０の「活性化関数のパラメータ（例えばＴ）」、「重みパラメータ」、「構造」などをあらかじめ定めたルールで変更すればよい。【００４０】
＜リスク評価方法２＞
図８にリスク評価方法２の処理フローを示す。図９は用意するデータの集合のイメージを示す図、図１０は攻撃対象分類予測ステップ、推定学習ステップのイメージを示す図である。【００４１】
リスク評価方法１では、攻撃対象の学習器９００の学習も行ったが、既に学習済の攻撃対象の学習器９００に対してリスク評価を行う場合もあり得る。リスク評価方法２では、学習済の学習器９００を取得し（攻撃対象学習器取得ステップＳ３２０）、観測データ集合を生成する（観測データ集合生成ステップＳ３１０）。学習済の学習器９００は、リスク評価の対象として与えられることもあるので、必ずしも実行が必要なわけではない。また、観測データ集合は、学習器推定装置，学習器推定方法において記録部１９０にあらかじめ記録しておいた複数の観測データと同等である。観測データ集合は、学習器９００を推定するために使用する複数の観測データとしてあらかじめ用意しておいてもよい。つまり、ステップＳ３１０，Ｓ３２０は、リスク評価方法に必須の処理に含めなくてもよい。【００４２】
リスク評価方法２では、学習器９００に観測データ集合Ｘ２内の観測データｘ２ｍ（ｍ＝１，…，Ｍ)を入力し、その観測データを入力した際の分類予測（出力）である予測ラベルデータ〜ｙ２ｍ（ｍ＝１，…，Ｍ)を取得することで、予測ラベルデータの集合〜Ｙ２を取得し、観測データの集合Ｘ２と予測ラベルデータの集合〜Ｙ２の組である推定用データ集合を得る（攻撃対象分類予測ステップＳ２３１）。攻撃対象分類予測ステップＳ２３１は、第２データ集合の観測データ集合Ｘ２を用いるのではなく、ラベルデータと組みになっていない観測データ集合Ｘ２を使う点だけが、リスク評価方法１の攻撃対象分類予測ステップＳ２３０と異なっているだけであり、実質的には同じである。推定学習ステップＳ２４０はリスク評価方法１と同じである。これらのイメージが図１０に示されている。なお、学習部１３０は、分類予測結果を求める処理では、あらかじめ定めた曖昧な値を出力する活性化関数を用いる。曖昧な値を出力する活性化関数の具体例は、上述の学習器推定装置、学習器推定方法の説明と同じである。【００４３】
正解率取得ステップＳ２５０，リスク判断ステップＳ２６０は、リスク評価方法１と同じである。また、繰り返し判断ステップＳ２７０とパラメータ変更ステップＳ２８０を付加してもいい点、付加する場合の処理内容も同じである。リスク評価方法１，２は上述のように曖昧な値を出力する活性化関数を持つ学習部を利用するので、学習器のリスク評価方法を確立できる。【００４４】
リスク評価方法１で説明した通り、実質的に攻撃対象分類予測ステップＳ２３１と問い合わせステップＳ１１０が同じであり、推定学習ステップＳ２４０は取り込みステップＳ１２０と学習ステップＳ１３０と同じである。よって、攻撃対象分類予測ステップＳ２３１と推定学習ステップＳ２４０は、学習器推定装置１００を利用して実行できる。したがって、正解率取得ステップＳ２５０を実行する正解率取得部２５０とリスク判断ステップＳ２６０を実行するリスク判断部２６０を追加し、記録部１９０にテスト用の観測データとラベルデータの組の集合も記録すれば、リスク評価装置２００を構成できる（図１１参照）。リスク評価装置２００は、さらに、繰り返し判断ステップＳ２７０を実行する繰り返し判断部２７０、パラメータ変更ステップＳ２８０を実行するパラメータ変更部２８０も備えてもよい。【００４５】
＜実験＞
実験では、０から９の数字の手書き文字画像のMNISTデータ（参考文献：Yann LeCun and Corinna Cortes, “MNIST handwritten digit database,” 2010.）を用い、リスク評価方法１を実行した。図１２はMINSTデータの例を示している。MNISTデータセットは、２８×２８ピクセルの画像とその画像に対応する種類（数字）で構成されており、学習時に用いる55,000個の訓練データ（訓練用の観測データとラベルデータの組）と分類正解率の計測に用いる10,000個のテストデータ（テスト用の観測データとラベルデータの組）が含まれている。訓練データとテストデータは、それぞれ共通するデータを含まない。訓練データとテストデータにはそれぞれ、画像データ集合Ｘと種類集合（ラベルデータ集合）Ｙが含まれる。【００４６】
攻撃対象の学習器９００と偽物の学習器（学習部１３０に相当）を作成するために、MNISTデータを次のように分割し、実験に用いる。まず、訓練データ内の画像の格納順序をシャッフルする。次に、その訓練データを５分割し、そのうちの任意の４つのデータＤ１（第１データ集合に相当する44,000組のデータ）を用いて攻撃対象の学習器９００を学習させる（Ｓ２１０，Ｓ２２０に相当）。残りの１つのデータＤ２（第２データ集合に相当する11,000組のデータ）の観測データを攻撃対象の学習器９００に入力し、分類予測結果である予測ラベルデータを取得する（Ｓ２３０に相当）。そして、データＤ２の観測データと予測ラベルデータで偽物の学習器（学習部１３０に相当）を学習する（Ｓ２４０に相当）。実験では、クラウド上にある学習器の内、データＤ１を用いて学習した学習器を攻撃対象の学習器９００とみなし、データＤ２を用いてステップＳ２３０，Ｓ２４０の処理によって学習した学習器を攻撃者が作成する偽物の学習器とみなす。ここでは、攻撃対象の学習器から得られる分類結果〜Ｙｊは、式（２）の温度Ｔを１とした場合の温度付きsoftmax関数から得られるベクトルとする。以降で示す全ての結果は、MNISTデータセットをデータＤ１とデータＤ２に分割する５つのパターンでの平均を示す。【００４７】
図１３はこの実験に用いる学習器の設定を、図１４は学習器の仕様、図１５は学習に用いたデータ数と正解率の関係を示している。この実験では複数の構造を用いるが、全ての構造において学習に使うパラメータや各手法は、図１３の通りに設定する。この実験で示す学習器は図１４の通りとする。なお、fc、conv、poolはそれぞれ、ニューラルネットの全結合層、畳み込み層、プーリング層を表す。図１４の行は、上から下に行くほど、入力層から出力層へ向かうことを示している。攻撃対象の学習器は学習器Ａとした。偽物の学習器（学習部１３０に相当）には学習器Ａと学習器Ｂの両方を用いた。【００４８】
攻撃対象の学習器９００の正解率（対象正解率に相当）は、97.439％であった。この攻撃対象の学習器に対して、推定学習器の学習に用いるデータ数を変更させながら、学習器Ａと学習器Ｂでの正解率（推定正解率に相当）を計測した。図１５は、その結果を示している。ただし、温度付きsoftmax関数の温度Ｔは３２．０とした。【００４９】
一般的に、学習器は、学習に用いるデータ数が多いほど正解率は向上する。本結果では、攻撃者の用いるデータ数が６８７個でさえ攻撃対象の学習器９００と偽物の学習器（学習部１３０に相当）の正解率の差が、偽物の学習器が学習器Ａのときは97.439−90.817＝6.622（％）であり、偽物の学習器が学習器Ｂのときは97.439−93.391＝4.048（％）であり、１０％以下であった。また、偽物の学習器が学習器Ｂのときはデータ数11,000個のとき、98.311−97.439＝0.872（％）上回った。このことから、温度付きsoftmax関数を用いた学習部１３０を用いることで、分類のための学習器を有効に推定できることが分かる。また、本発明のリスク評価方法によって、学習器のリスク評価方法を確立できることが分かる。【００５０】
［プログラム、記録媒体］
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。【００５１】
また、上述の構成をコンピュータ（処理回路）によって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。【００５２】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。【００５３】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。【００５４】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。【００５５】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【００５６】
１００  学習器推定装置                １１０  問い合わせ部
１２０  取り込み部                    １３０  学習部
１９０  記録部                        ９００  学習器
【図１】
2020075462.tif 000006
【図２】
2020075462.tif 000007
【図３】
2020075462.tif 000008
【図４】
2020075462.tif 000009
【図５】
2020075462.tif 000010
【図６】
2020075462.tif 000011
【図７】
2020075462.tif 000012
【図８】
2020075462.tif 000013
【図９】
2020075462.tif 000014
【図１０】
2020075462.tif 000015
【図１１】
2020075462.tif 000016
【図１２】
2020075462.tif 000017
【図１３】
2020075462.tif 000018
【図１４】
2020075462.tif 000019
【図１５】
2020075462.tif 000020
【手続補正書】
【提出日】令和3年3月24日(2021.3.24)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
【図１】学習器推定装置の機能構成例を示す図。
【図２】学習器推定装置の処理フローを示す図。
【図３】温度付きsoftmax関数への入力がｕ＝（ｕ１，ｕ２）Ｔ＝（ｕ１，0.0）のときの温度付きsoftmax関数の特性を示す図。
【図４】リスク評価方法１の処理フローを示す図。
【図５】分割ステップのイメージを示す図。
【図６】リスク評価方法１の攻撃対象学習器学習ステップ、攻撃対象分類予測ステップ、推定学習ステップのイメージを示す図。
【図７】正解率取得ステップ、リスク判断ステップのイメージを示す図。
【図８】リスク評価方法２の処理フローを示す図。
【図９】用意するデータの集合のイメージを示す図。
【図１０】リスク評価方法２の攻撃対象分類予測ステップ、推定学習ステップのイメージを示す図。
【図１１】リスク評価装置の機能構成例を示す図。
【図１２】MNISTデータの例を示す図。
【図１３】実験に用いる学習器の設定を示す図。
【図１４】学習器の仕様を示す図。
【図１５】学習に用いたデータ数と正解率の関係を示す図。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
学習ステップＳ１３０では、学習部は、観測データｘと攻撃対象の学習器９００の出力であるラベルデータｆ（ｘ）とを入力として学習する。なお、ｆ（ｘ）がスカラのときは、分類される種類がＭ（２以上の整数）個であるとき、そのスカラｆ（ｘ）を長さＭのベクトルｖｆ（ｘ）に変換して、ｇｆの入力にする。変換方法は、長さＭ（要素の数がＭ個）のベクトルを用意し、そのベクトルのｆ（ｘ）番目の要素のみ１、それ以外の要素は全て０のようにすればよい。ｆ（ｘ）がベクトルのときは、そのままｇｆの入力にする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００４５
【補正方法】変更
【補正の内容】
【００４５】
＜実験＞
実験では、０から９の数字の手書き文字画像のMNISTデータ（参考文献：Yann LeCun and Corinna Cortes, “MNIST handwritten digit database,” 2010.）を用い、リスク評価方法１を実行した。図１２はMNISTデータの例を示している。MNISTデータセットは、２８×２８ピクセルの画像とその画像に対応する種類（数字）で構成されており、学習時に用いる55,000個の訓練データ（訓練用の観測データとラベルデータの組）と分類正解率の計測に用いる10,000個のテストデータ（テスト用の観測データとラベルデータの組）が含まれている。訓練データとテストデータは、それぞれ共通するデータを含まない。訓練データとテストデータにはそれぞれ、画像データ集合Ｘと種類集合（ラベルデータ集合）Ｙが含まれる。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入力された観測データの種類をラベルデータとして出力する分類タスク用の学習器を攻撃対象とする学習器推定装置であって、
記録部と、問い合わせ部と、取り込み部と、学習部とを備え、
前記記録部は、あらかじめ定めた複数の観測データを記録し、
前記問い合わせ部は、前記の攻撃対象の学習器に対して、前記記録部に記録された観測データごとに問い合わせを行ってラベルデータを取得し、前記記録部に観測データと対応つけて取得したラベルデータを記録し、
前記取り込み部は、前記記録部に記録された観測データと、当該観測データに対応付けられたラベルデータとを、前記学習部に入力し、
前記学習部は、分類予測結果を求める処理では、あらかじめ定めた曖昧な値を出力する活性化関数を用いることを特徴とし、入力された観測データとラベルデータとを用いて学習する
学習器推定装置。
【請求項２】
記録部と、問い合わせ部と、取り込み部と、学習部とを備えた学習器推定装置を用いて、入力された観測データの種類をラベルデータとして出力する分類タスク用の学習器を攻撃対象とする学習器推定方法であって、
問い合わせステップと、取り込みステップと、学習ステップとを有し、
前記記録部は、あらかじめ定めた複数の観測データを記録しており、
前記問い合わせステップでは、前記問い合わせ部が、前記の攻撃対象の学習器に対して、前記記録部に記録された観測データごとに問い合わせを行ってラベルデータを取得し、
前記記録部に観測データと対応つけて取得したラベルデータを記録し、
前記取り込みステップでは、前記取り込み部が、前記記録部に記録された観測データと、当該観測データに対応付けられたラベルデータとを、前記学習部に入力し、
前記学習ステップでは、前記学習部が、分類予測結果を求める処理であらかじめ定めた曖昧な値を出力する活性化関数を用いることを特徴とし、入力された観測データとラベルデータとを用いて学習する
学習器推定方法。
【請求項３】
請求項２記載の学習器推定方法であって、
前記の曖昧な値を出力する活性化関数は、汎化誤差を低減する
ことを特徴とする学習器推定方法。
【請求項４】
請求項２記載の学習器推定方法であって、
分類する種類数をＤ（ただし、Ｄは２以上の整数）、Ｔを１以上のあらかじめ定めた値、ｃを１以上Ｄ以下の整数、ｕｃを活性化関数へ入力されるベクトルのｃ番目の要素、〜ｙｃを分類結果として出力されるベクトルのｃ番目の要素とし、
前記活性化関数は、
【数３】
2020075462.tif 000021
である
ことを特徴とする学習器推定方法。
【請求項５】
入力された観測データの種類をラベルデータとして出力する分類タスク用の学習器への攻撃のリスクを評価するリスク評価装置であって、
請求項１記載の学習器推定装置と、
あらかじめ定めた複数のテスト用の観測データとラベルデータの組を用いて、学習済の前記学習器の正解率である対象正解率と、学習済の前記学習部の正解率である推定正解率とを求める正解率取得部と、
前記対象正解率の方が前記推定正解率よりも大きいときは前記対象正解率と前記推定正解率の差が小さいほど、前記対象正解率の方が前記推定正解率よりも小さいときは前記対象正解率を前記推定正解率が上回るほど、リスクが高いと判断するリスク判断部と、
を備えるリスク評価装置。
【請求項６】
学習部を備えた学習器推定装置を用いて、入力された観測データの種類をラベルデータとして出力する分類タスク用の学習器への攻撃のリスクを評価するリスク評価方法であって、
学習済の前記学習器に複数の観測データを入力し、各観測データを入力した際の分類予測である予測ラベルデータを取得し、観測データと予測ラベルデータの組の集合である推定用データ集合を得る攻撃対象分類予測ステップと、
前記学習部を、前記推定用データ集合を用いて学習し、学習済の学習部を得る推定学習ステップと、
あらかじめ定めた複数のテスト用の観測データとラベルデータの組を用いて、学習済の前記学習器の正解率である対象正解率と、学習済の前記学習部の正解率である推定正解率とを求める正解率取得ステップと、
前記対象正解率の方が前記推定正解率よりも大きいときは前記対象正解率と前記推定正解率の差が小さいほど、前記対象正解率の方が前記推定正解率よりも小さいときは前記対象正解率を前記推定正解率が上回るほど、リスクが高いと判断するリスク判断ステップと、
を有し、
前記学習部は、分類予測結果を求める処理では、あらかじめ定めた曖昧な値を出力する活性化関数を用いる
ことを特徴とするリスク評価方法。
【請求項７】
請求項６記載のリスク評価方法であって、
あらかじめ定めた複数の訓練用の観測データとラベルデータの組の集合を、第１データ集合と、第２データ集合に分割する分割ステップと、
前記第１データ集合を用いて前記の攻撃対象の学習器を学習させ、学習済の学習器を得る攻撃対象学習器学習ステップ
も有し、
前記第１のデータ集合の組の方が、前記第２のデータ集合の組よりも数が多く、
前記攻撃対象分類予測ステップで前記学習器に入力される複数の観測データは、前記第２データ集合内の観測データである
ことを特徴とするリスク評価方法。
【請求項８】
請求項２〜４のいずれかに記載の学習器推定方法、または請求項６もしくは７に記載のリスク評価方法をコンピュータに実行させるためのプログラム。
【国際調査報告】
2020075462.tif 000022
2020075462.tif 000023