(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-12
(45)【発行日】2022-12-20
(54)【発明の名称】情報処理プログラム、情報処理方法および学習装置
(51)【国際特許分類】
G06N 3/08 20060101AFI20221213BHJP
【FI】
G06N3/08
(21)【出願番号】P 2020551682
(86)(22)【出願日】2018-10-18
(86)【国際出願番号】 JP2018038883
(87)【国際公開番号】W WO2020079815
(87)【国際公開日】2020-04-23
【審査請求日】2021-04-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】上村 健人
(72)【発明者】
【氏名】安富 優
(72)【発明者】
【氏名】河東 孝
【審査官】杉浦 孝光
(56)【参考文献】
【文献】特許第6352512(JP,B1)
【文献】国際公開第2016/132468(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
学習データを用いて生成された学習モデルに前記学習データを入力し、前記学習モデルの各中間層から各特徴量を取得し、
前記学習モデルの各中間層と対応付けられる各復元器であって、前記学習データの入力に応じて前記各中間層から取得された前記各特徴量を用いて復元した復元データと前記学習データとの誤差が小さくなるように学習された前記各復元器に、前記学習データから取得された、対応する前記各特徴量を入力し、
前記各特徴量の入力に応じて前記各復元器から取得される各復元データと前記学習データとに基づき、前記各復元器による復元の度合いを評価し、
評価結果に基づき、前記各特徴量から保存対象の特徴量を選択する、
処理を実行させる
情報処理プログラム。
【請求項2】
請求項1に記載の
情報処理プログラムであって、
前記コンピュータに
ニューラルネットワークを含む学習モデル
に対して前記学習データを入力し、
前記ニューラルネットワークが有する各中間層
と対応付けられる前記
各復元器を用いて、前記各中間層から出力される前記
各特徴
量から複数の復元データを生成
し、
前記複数の復元データそれぞれと、前記学習データとの誤差が小さくなるように、前記ニューラルネットワークが有する各中間層と対応付けられる前記各復元器を学習する、
処理をさらに実行させることを特徴する情報処理プログラム。
【請求項3】
請求項
2に記載の
情報処理プログラムであって、
前記生成する処理は、前記
各復元器を用いて、前記
各復元器それぞれが対応付けられる中間層よりも前の中間層から出力される特徴量を復元対象とした復元データを生成し、
前記学習する処理は、前記
各復元器それぞれを、前記復元データと前記復元対象とする特徴量との誤差が小さくなるように学習
する、
情報処理プログラム。
【請求項4】
請求項1に記載の
情報処理プログラムであって、前記コンピュータに、
前記
各復元器それぞれについて、前記復元データを前記学習モデルに入力して、前記学習モデルにより生成される特徴量であって前記復元データの特徴量である復元特徴量を取得
し、
前記
各復元器それぞれを、前記復元データと前記
学習データとの誤差、および、復元対象の前記特徴量と前記復元特徴量との誤差のそれぞれが小さくなるように学習
する、
処理をさらに実行させることを特徴する情報処理プログラム。
【請求項5】
請求項1に記載の
情報処理プログラムであって、前記コンピュータに、
正解ラベルが付与される第1の
学習データを前記学習モデルに入力して、前記学習モデルからの出力結果と前記正解ラベルとの誤差に基づいて、前記学習モデルを学習
し、
前記第1の
学習データとは異なる第2の
学習データを学習済みの前記学習モデルに入力し、前記学習済みの学習モデルにより生成される複数の特徴量から、前記複数の特徴量それぞれに対応した
各復元器を用いて復元データを生成し、
前記
各復元器によりそれぞれ生成される複数の復元データそれぞれと、前記第2の
学習データとが近づくように、前記
各復元器を学習
する、
処理を
さらに実行させる
情報処理プログラム。
【請求項6】
請求項5に記載の
情報処理プログラムであって、前記コンピュータに、
前記第2の
学習データを用い学習された学習済みの前記
各復元器に、
前記第1の学習データを学習済みの前記学習モデルに入力して取得された前記複数の特徴量それぞれを入力して、前記
各復元器それぞれが生成する複数の復元データを取得し、
前記複数の復元データそれぞれと前記第1の
学習データとの誤差を算出し、
前記誤差に基づいて、前記複数の復元データそれぞれの生成元である複数の特徴量のうち、保持する特徴量を選択する、処理を実行させる
情報処理プログラム。
【請求項7】
コンピュータが、
学習データを用いて生成された学習モデルに前記学習データを入力し、前記学習モデルの各中間層から各特徴量を取得し、
前記学習モデルの各中間層と対応付けられる各復元器であって、前記学習データの入力に応じて前記各中間層から取得された前記各特徴量を用いて復元した復元データと前記学習データとの誤差が小さくなるように学習された前記各復元器に、前記学習データから取得された、対応する前記各特徴量を入力し、
前記各特徴量の入力に応じて前記各復元器から取得される各復元データと前記学習データとに基づき、前記各復元器による復元の度合いを評価し、
評価結果に基づき、前記各特徴量から保存対象の特徴量を選択する、
処理を実行する
情報処理方法。
【請求項8】
学習データを用いて生成された学習モデルに前記学習データを入力し、前記学習モデルの各中間層から各特徴量を取得し、
前記学習モデルの各中間層と対応付けられる各復元器であって、前記学習データの入力に応じて前記各中間層から取得された前記各特徴量を用いて復元した復元データと前記学習データとの誤差が小さくなるように学習された前記各復元器に、前記学習データから取得された、対応する前記各特徴量を入力し、
前記各特徴量の入力に応じて前記各復元器から取得される各復元データと前記学習データとに基づき、前記各復元器による復元の度合いを評価し、
評価結果に基づき、前記各特徴量から保存対象の特徴量を選択する、
制御部を有する学習装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習プログラム、学習方法および学習装置に関する。
【背景技術】
【0002】
逐次学習などの深層学習において、学習データをそのまま保存することが情報漏洩などのリスクを伴うことから、元の学習データを変換した形式である、学習モデルの特徴量で保持することが行われている。また、複数の学習モデルそれぞれを学習する学習データとして、取得元の異なるデータを利用する場合、先の学習において利用した学習データを特徴量の形式で保持することも行われている。
【0003】
このように、特徴量で保持する場合は、特徴量にどの程度の元の学習データの情報が残っているかを評価することが行われる。例えば、学習済みのニューラルネットワークにおいて特徴量が同じとなる入力データを求め、入力データに基づき特徴量により保持される情報を推定し、特徴量の保持の可否を判断する技術が知られている。
【先行技術文献】
【特許文献】
【0004】
【文献】国際公開第2016/132468号
【文献】特開2017-174298号公報
【文献】特開2016-126597号公報
【文献】特開2017-126112号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記技術により得られる入力データが、必ずしも、学習に利用した学習データを保持して良いかの判断に適したデータであるとは限らない。例えば、学習済みの学習モデルに入力データxを適用して得られた特徴量zを、元の入力データxの形式に変換するために、特徴量zがもっともよく得られるような入力データx´を勾配法で求める。ところが、ある特徴量zが得られる入力データは複数存在するので、勾配法で得られる入力データx´がリスク評価などの判断に有用なデータとは限らない。
【0006】
一つの側面では、データ保持の判断を適切に行うことができる学習プログラム、学習方法および学習装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
第1の案では、学習プログラムは、コンピュータに、学習モデルに入力される入力データごとに、各入力データに対応して前記学習モデルにより生成される複数の特徴量から、前記複数の特徴量それぞれに対応した複数の復元器を用いて復元データを生成する処理を実行させる。学習プログラムは、コンピュータに、前記複数の復元器によりそれぞれ生成される複数の復元データそれぞれと、前記入力データとが近づくように、前記複数の復元器を学習させる処理を実行させる。
【発明の効果】
【0008】
一実施形態によれば、データ保持の判断を適切に行うことができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施例1にかかる学習装置の全体例を説明する図である。
【
図3】
図3は、実施例1にかかる学習装置の機能構成を示す機能ブロック図である。
【
図4】
図4は、学習モデルの学習例を説明する図である。
【
図7】
図7は、評価手法の一例を説明する図である。
【
図8】
図8は、評価手法の別例を説明する図である。
【
図9】
図9は、処理の流れを示すフローチャートである。
【
図10】
図10は、実施例2にかかる学習例を説明する図である。
【
図11】
図11は、実施例3にかかる学習例を説明する図である。
【
図12】
図12は、実施例4にかかる学習例を説明する図である。
【発明を実施するための形態】
【0010】
以下に、本発明にかかる学習プログラム、学習方法および学習装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例1】
【0011】
[全体例]
図1は、実施例1にかかる学習装置の全体例を説明する図である。
図1に示す学習装置10は、車や人などの画像分類などを行う学習モデルを学習する。具体的には、学習装置10は、機械学習や深層学習(ディープラーニング(DL)・Deep Learning)などを用いた学習処理を実行して、学習データを事象ごとに正しく判別(分類)できるように、ニューラルネットワーク(NN:Neural Network)などを学習する。
【0012】
一般的に、深層学習などでは、学習データの量が多いほど学習モデルの向上が図れることから、学習データの量は多いほどよいが、その一方で、学習データを集めることは難しい。そのため、取得先が異なる学習データを用いて、複数の学習モデルの学習を行うことも考えられる。しかし、顧客データを用いたビジネスの場では、ある顧客データを学習終了後も保持し続けたり、別の顧客タスク(学習)などに使用したりすることは、契約上の問題や情報漏えいのリスクを伴う。このようなことから、元の学習データを変換した形式である特徴量で保持することが行われている。特徴量で保持することでリスクを低減することはできるが、特徴量にどの程度の元の学習データの情報が残っているかを正確に評価することが重要である。
【0013】
そこで、実施例1にかかる学習装置10は、学習モデルから生成される複数の特徴量から複数の復元データを生成する復元器を学習し、復号器による復号結果に基づいて、保持対象の特徴量を評価する。具体的には、学習装置10は、学習モデルに入力される学習データごとに、各学習データに対応して学習モデルにより生成される各特徴量から、各特徴量に対応した復元器を用いて復元データを生成する。そして、学習装置10は、複数の復元器によりそれぞれ生成される複数の復元データそれぞれと、学習データとが近づくように、複数の復元器を学習させる。
【0014】
図1を例にして説明すると、学習装置10は、複数の学習データそれぞれを用いて、NNを用いた学習モデルを学習する。その後、学習装置10は、学習モデルに使用した元の学習データを学習済みの学習モデルに入力し、NNの各中間層から特徴量A、特徴量B、特徴量Cを取得する。そして、学習装置10は、特徴量Aを復元器Aに入力して復元データAを生成し、復元データAと元の学習データとの誤差が小さくなるように、復元器Aを学習する。同様に、学習装置10は、特徴量Bを復元器Bに入力して復元データBを生成し、復元データBと元の学習データとの誤差が小さくなるように、復元器Bを学習する。同様に、学習装置10は、特徴量Cを復元器Cに入力して復元データCを生成し、復元データCと元の学習データとの誤差が小さくなるように、復元器Cを学習する。
【0015】
このようにして、学習装置10は、元の学習データを学習済みの学習モデルに入力して得られる各特徴量を用いて、各復元器を学習する。そして、学習装置10は、各復元器の学習完了後、各学習データを学習済みの学習モデルに入力して各特徴量を取得し、各特徴量を学習済みの各復元器に入力して各復元データを生成する。その後、学習装置10は、各復元データの復元度合いに基づいて、保持可能な特徴量を決定する。
【0016】
すなわち、学習装置10は、深層学習において元の学習データの代替として保存する特徴量を選択する際、各特徴量から復号される復号データの復号度合いによって、保持する特徴量を選択することができるので、特徴量保持の判断を適切に行うことができる。
【0017】
[参考技術]
ここで、保持対象の特徴量を評価する技術として、一般的に利用される参考技術について説明する。まず、参考技術にも実施例1にも共通する、ニューラルネットワークに対する深層学習について説明する。
【0018】
深層学習は、入力xを微分可能なパラメータを持つ関数で変換して出力yを得る学習モデルを、訓練データxに対して所望のyを得るように、勾配法でパラメータを学習する手法である。深層学習の学習モデルとは、線形変換f(x)=Ax+bと非線形活性化関数gからなるモデルy=gN(fN(・・・g1(f1(x)))に限らず、任意の微分可能な演算hからなるモデルh=hN(・・・h2(h1(x)))も含まれる。
【0019】
次に、参考技術を具体的に説明する。
図2は、参考技術を説明する図である。
図2に示すように、参考技術では、学習モデルに学習に利用した元の学習データを、学習済みの学習モデルに入力して特徴量を生成する。続いて、特徴量となる入力データを勾配法で推定する。例えば、特徴量をz、入力の学習データをxとした場合、推定データx
※=argmin
x d(f(x),z)を勾配法で算出する。ここで、fは、xからzまでの変換を示す微分可能な学習モデルの式であり、dは、微分可能な距離関数または誤差関数(二乗誤差)である。
【0020】
その後、推定データを学習済みの学習モデルに入力して、推定データに対応する推定特徴量を取得し、この推定特徴量と元の学習データから得られる特徴量との誤差が小さくなるような推定データを推定する。このような参考技術は、特徴量から元の学習データを推定する技術であり、1つの特徴量から複数の学習データが推定できることから、特徴量そのものが保持してよいレベルの特徴量か否かを判断することができない。そこで、実施例1では、特徴量そのものが保持してよいレベルの特徴量か否かを判断するための指標を生成することで、参考技術の問題を改善する。
【0021】
[機能構成]
図3は、実施例1にかかる学習装置10の機能構成を示す機能ブロック図である。
図3に示すように、学習装置10は、通信部11、記憶部12、制御部20を有する。
【0022】
通信部11は、他の装置の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部11は、管理者の端末から、処理開始指示を受信する。また、通信部11は、管理者の端末等から、学習対象である学習データ(入力データ)を受信して学習データDB13に格納する。
【0023】
記憶部12は、プログラムやデータを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部12は、学習データDB13、学習結果DB14を記憶する。
【0024】
学習データDB13は、学習モデルの学習に使用される学習データを記憶するデータベースである。ここで記憶される学習データは、管理者等により正解ラベルが付与されたラベル有りデータであってもよく、正解ラベルが付与されていないラベル無しデータであってもよい。なお、学習データには、画像、動画、文書、グラフなど様々なデータを採用することができる。
【0025】
学習結果DB14は、学習結果を記憶するデータベースである。例えば、学習結果DB14は、制御部20による学習データの判別結果(分類結果)、機械学習やディープラーニングによって学習された各種パラメータを記憶する。
【0026】
制御部20は、学習装置10全体の処理を司る処理部であり、例えばプロセッサなどである。この制御部20は、モデル学習部21、復号器学習部22、評価部23を有する。なお、モデル学習部21、復号器学習部22、評価部23は、プロセッサなどが有する電子回路やプロセッサなどが実行するプロセスの一例である。
【0027】
モデル学習部21は、NNなどを用いた学習モデルの学習を実行する処理部である。具体的には、モデル学習部21は、学習データDB13に記憶される学習データを用いてNNの学習を実行し、学習結果を学習結果DB14に格納する。
【0028】
図4は、学習モデルの学習例を説明する図である。
図4に示すように、モデル学習部21は、学習データDB13に記憶される正解ラベル付きの学習データを読み出す。そして、モデル学習部21は、学習データをNNに入力して出力結果を得る。その後、モデル学習部21は、出力結果と正解ラベルとの誤差が小さくなるように、NNを学習する。なお、学習方法は、勾配法や誤差逆伝搬法などの公知の手法を採用することができる。また、モデル学習部21は、NNの判定精度が閾値以上となるまで学習処理を継続することもでき、予め定めた回数や全学習データによる学習が完了するまでなど、任意のタイミングで終了することができる。
【0029】
復号器学習部22は、NNを用いた学習モデルである復号器であって特徴量からデータを復元する復号器ごとに学習部を有し、元の学習データを用いて各復号器を学習する処理部である。具体的には、復号器学習部22は、学習結果DB14から各種パラメータを読み出し、各種パラメータを設定したニューラルネットワーク等を含む学習モデルを構築する。そして、復号器学習部22は、学習モデルであるNNが有する中間層ごとに復号器を設定する。そして、復号器学習部22は、各復号器によって各特徴量から復元データを生成し、各復元データと元の学習データとが近づくように、各復号器を学習する。
【0030】
ここで、
図5と
図6を用いて具体的に説明する。
図5は、特徴量を説明する図であり、
図6は、復号器の学習を説明する図である。ここでは、
図5に示すように、NNが、入力xを入力する入力層と、3つの中間層と、yを出力する出力層とを有する場合で説明する。この場合、1つ目の中間層で得られる情報が特徴量A、2つ目の中間層で得られる情報が特徴量B、3つ目の中間層で得られる情報が特徴量Cとなる。したがって、復号器学習部22は、特徴量Aに対応する復号器A、特徴量Bに対応する復号器B、特徴量Cに対応する復号器Cを用意し、各復号器の学習を実行する。
【0031】
具体的には、
図6に示すように、復号器学習部22の復号器A学習部22aは、元の学習データを学習済みの学習モデル(NN)に入力し、特徴量Aを取得する。そして、復号器A学習部22aは、特徴量Aを復号器Aに入力して、復元データAを生成する。その後、復号器A学習部22aは、復元データAと元の学習データとの誤差(以下では復元誤差と記載する場合がある)を算出し、この誤差が小さくなるように、復号器Aを学習する。
【0032】
同様に、復号器学習部22の復号器B学習部22bは、元の学習データを学習済みの学習モデル(NN)に入力し、特徴量Bを取得する。そして、復号器B学習部22bは、特徴量Bを復号器Bに入力して、復元データBを生成する。その後、復号器B学習部22bは、復元データBと元の学習データとの誤差を算出し、この誤差が小さくなるように、復号器Bを学習する。
【0033】
同様に、復号器学習部22の復号器C学習部22cは、元の学習データを学習済みの学習モデル(NN)に入力し、特徴量Cを取得する。そして、復号器C学習部22cは、特徴量Cを復号器Cに入力して、復元データCを生成する。その後、復号器C学習部22cは、復元データCと元の学習データとの誤差を算出し、この誤差が小さくなるように、復号器Cを学習する。
【0034】
なお、各学習部は、復号器の学習結果を学習結果DB14に格納する。また、誤差は、例えば二乗誤差などを採用することができ、復号器の学習には、勾配法や誤差逆伝搬法などを採用することができる。また、復号器の学習は、NNの判定精度が閾値以上となるまで学習処理を継続することもでき、予め定めた回数など任意のタイミングで終了することができる。また、学習器の数は一例であり、任意に設定変更することができる。
【0035】
評価部23は、学習データそれぞれについて、学習済みの各復号器を用いて各特徴量の復元の度合いを評価する処理部である。具体的には、評価部23は、学習結果DB14から学習モデルに対応する各種パラメータを読み出し、各種パラメータを設定したニューラルネットワーク等を含む学習モデルを構築するとともに、学習結果DB14から各復号器に対応する各種パラメータを読み出し、各種パラメータを設定したニューラルネットワーク等を含む各復号器を構築する。そして、評価部23は、保持対象の学習データを学習済みの学習モデルに入力して、各特徴量を取得する。続いて、評価部23は、各特徴量を、対応する学習済みの復号器に入力して、各復号データを生成する。そして、評価部23は、各復号データの復元状況を判定し、保持する特徴量を決定する。
【0036】
図7は、評価手法の一例を説明する図である。
図7に示すように、評価部23は、元の学習データを学習済みの学習モデルに入力する。そして、評価部23は、学習済みの学習モデルから得られる特徴量A、特徴量B、特徴量Cのそれぞれを、学習済みの復号器A、学習済みの復号器B、学習済みの復号器Cそれぞれに入力して、復元データA、復号データB、復号データCを生成する。
【0037】
その後、評価部23は、復元データAと元の学習データの二乗誤差A、復元データBと元の学習データの二乗誤差B、復元データBと元の学習データの二乗誤差Cを算出する。そして、評価部23は、二乗誤差A、二乗誤差B、二乗誤差Cのうち、保持が許される予め設定した閾値未満かつ閾値に最も近い二乗誤差Bを特定する。この結果、評価部23は、二乗誤差Bの復元元となった特徴量Bを保持すると決定する。
【0038】
また、評価部23は、復元データそのものを、元の学習データの提供元であるユーザに提示して評価させることもできる。
図8は、評価手法の別例を説明する図である。
図8に示すように、評価部23は、
図7と同様の手法で、元の学習データおよび各復元器を用いて、復元データA、復号データB、復号データCを生成する。そして、評価部23は、復元データA、復号データB、復号データCをユーザに提示する。ここで、ユーザが、復元データAおよび復元データCは復元でき過ぎていると判断し、復元データBは元の学習データがわからない程度で復元できていると判断したとする。この場合、評価部23は、復元データBに対応する特徴量Bを保持すると決定する。なお、
図8の手法は、学習データが画像データなどである場合に特に有効である。
【0039】
[処理の流れ]
図9は、処理の流れを示すフローチャートである。
図9に示すように、モデル学習部21は、処理開始が指示されると(S101:Yes)、学習モデルを初期化する(S102)。
【0040】
続いて、モデル学習部21は、学習データDB13に記憶される学習データを読み込み(S103)、学習データを用いて学習モデルを学習する(S104)。そして、モデル学習部21は、精度が閾値以上ではない場合(S105:No)、S103に戻って学習を繰り返する。一方、モデル学習部21は、精度が閾値以上となると(S105:Yes)、学習結果を学習結果DB14に出力する(S106)。
【0041】
その後、復号器学習部22は、各復号器を初期化すると(S107)、学習データDB13に記憶される学習データを読み込み(S108)、学習データおよび学習済みの学習モデルを用いて各復号器を学習する(S109)。
【0042】
続いて、復号器学習部22は、精度が閾値以上ではない場合(S110:No)、S108に戻って学習を繰り返する。一方、復号器学習部22は、精度が閾値以上となると(S110:Yes)、学習結果を学習結果DB14に出力する(S111)。
【0043】
その後、評価部23は、保持対象の学習データそれぞれについて、学習済みの学習モデルから各特徴量を生成し、各特徴量を学習済みの各復号器に入力して各復号データを生成し、各特徴量を評価する(S112)。
【0044】
[効果]
上述したように、学習装置10は、逆変換器を学習させて特徴量から元データへの復元器を得ることができ、復元データと元の学習データとの誤差を直接最小化するように学習させることができる。また、学習装置10は、保持対象の特徴量と元の学習データとを比較可能な形式にするために、特徴量をできるだけ元データに復元した形式に変換することができる。この結果、学習装置10は、各特徴量から生成される復元データにより、複数の特徴量それぞれの評価を適切に行うことができる。
【実施例2】
【0045】
ところで、学習装置10の各復号器は、元の学習データではなく、自身が用いる特徴量より前の別の特徴量への復元を学習することもできる。これにより、各々の復元器の学習の難しさのばらつきを低減することができる。そこで、実施例2では、元の学習データではなく、前の特徴量への復元を学習させる例を説明する。なお、ここでは1つ前の中間層から出力される特徴量に復元する例を説明するが、復元対象はこれに限定されるものではなく、自身と対応する中間層よりも前の中間層であればよい。
【0046】
図10は、実施例2にかかる学習例を説明する図である。
図10に示すように、復号器学習部22は、元の学習データを学習済みの学習モデルに入力する。すると、復号器A学習部22aは、学習済みの学習モデルから出力される特徴量Aを復号器Aに入力して復元データAを生成し、復元データAと元の学習データとの誤差である復元誤差が小さくなるように、復号器Aを学習する。
【0047】
一方、復号器B学習部22bは、学習済みの学習モデルから得られる特徴量Bを復号器Bに入力して、1つ前の中間層から得られる特徴量Aに復元した復元データBを生成する。そして、復号器B学習部22bは、1つ前の中間層から得られる特徴量Aと復元データBとの誤差である復元誤差が小さくなるように、復号器Bを学習する。また、復号器Cについても同様に、復号器C学習部22cは、学習済みの学習モデルから得られる特徴量Cを復号器Cに入力して、1つ前の中間層から得られる特徴量Bに復元した復元データCを生成する。そして、復号器C学習部22cは、1つ前の中間層から得られる特徴量Bと復元データCとの誤差である復元誤差が小さくなるように、復号器Cを学習する。
【0048】
なお、各復号器の学習後に実行される特徴量の評価については、実施例1と同様の手法を採用することができる。例えば、評価部23は、復元データAと元の学習データの二乗誤差A、復元データBと特徴量Aの二乗誤差B、復元データCと特徴量Bの二乗誤差Cを算出し、閾値に基づいて、保持する特徴量を決定する。
【実施例3】
【0049】
ところで、学習装置10は、復元器の学習にあたり、復元データと元の学習データとのの誤差ではなく、特徴量に再度変換した時の誤差を用いて学習することもできる。これにより、特徴量変換の方法まで考慮して、復元器を学習することができ、復元データの復元精度が向上する結果、特徴量の評価精度も向上させることができる。
【0050】
図11は、実施例3にかかる学習例を説明する図である。
図11に示すように、復号器学習部22は、元の学習データを学習済みの学習モデルに入力する。すると、復号器A学習部22aは、出力される特徴量(元特徴量A)を復号器Aに入力して復元データAを生成し、復元データAと元の学習データとの誤差である復元誤差A1を算出する。
【0051】
さらに続いて、復号器学習部22は、復元データAを学習済みの学習モデルに入力する。そして、復号器A学習部22aは、学習済みの学習モデルから出力される特徴量(復元特徴量A)を取得し、元特徴量Aと復元特徴量Aとの誤差である復元誤差A2を算出する。その後、復号器A学習部22aは、復元誤差A1および復元誤差A2が小さくなるように、復号器Aを学習する。なお、復元誤差A2だけを用いて学習を実行することもできる。また、他の復号器についても同様に、2つの復元誤差を用いて学習が実行される。
【実施例4】
【0052】
ところで、実施例1-3では、学習モデルの学習が終了した後に、各復号器の学習を実行する例を説明したが、これに限定されるものではない。例えば、学習モデルと各復号器とを並行に学習することもできる。
【0053】
図12は、実施例4にかかる学習例を説明する図である。
図12に示すように、学習装置10は、正解ラベルが付与された学習データを学習モデルに入力すると、学習モデルと各復号器の学習を並行して実行する。
【0054】
具体的には、モデル学習部21は、学習データが入力されると、正解ラベルと出力ラベルとの誤差が小さくなるように、学習モデルを学習する。これと並行して、復号器A学習部22aは、学習モデルから取得される特徴量Aを復号器Aに入力して復元データAを生成し、復元データAと元の学習データとの復元誤差が小さくなるように、復号器Aを学習する。同様に、復号器B学習部22bは、学習モデルから取得される特徴量Bを復号器Bに入力して復元データBを生成し、復元データBと元の学習データとの復元誤差が小さくなるように、復号器Bを学習する。
【0055】
このように、学習装置10は、各学習データを用いて、学習モデルと各復号器を同時に平行して学習することができるので、総学習時間を短縮することができる。
【実施例5】
【0056】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【0057】
[復号器の学習データ]
上記実施例では、学習モデルの学習に使用する学習データを、復号器の学習にも使用する例を説明したが、これに限定されるものではなく、学習モデルの学習と復号器の学習とを、異なる学習データを用いて学習することもできる。
【0058】
例えば、学習装置10は、データXを用いて学習モデルを学習し、学習済みの学習モデルMを生成する。続いて、学習装置10は、学習モデルMにデータXを入力して、データXの特徴量Xを取得する。その後、学習装置10は、別のデータであるデータYを学習モデルMに入力して、データYの特徴量Yを取得する。そして、学習装置10は、実施例1と同様の手法で、データYと特徴量Yとを用いて復元器Rを学習する。
【0059】
その後、学習装置10は、学習済みの復元器Rに、特徴量Xを入力して復元データX´を生成する。そして、学習装置10は、元のデータXと復元データX´を、実施例1と同様の手法で比較して、特徴量Xを評価する。
【0060】
このようにすることで、学習装置10は、データXで学習した学習済みモデルおよびデータXの特徴量が漏洩した際に、それらを入手した第三者がデータX自体をどの程度復元できるかを評価することができる。例えば、第三者によるデータ復元を考えると、第三者は、学習データXの特徴量を保持するが、学習データX自体は持たないので、手持ちの別のデータYとデータYを学習モデルに通して得られたデータYの特徴量とから復元器を学習しようとする。その後、第三者は、学習した復元器にデータXの特徴量を入力し、元のデータXの復元を試みることが考えられる。
【0061】
これに対して、学習装置10は、学習モデルMの学習データとは異なるデータを用いて復元された復元器によって特徴量から復元される学習データの復元度合いを評価することができる。したがって、学習装置10は、情報漏洩時の危険性も加味した評価を実行することができる。
【0062】
[学習モデル、復号器]
上記実施例では、学習モデルおよび復号器にNNを適用した場合を例にして説明したが、これに限定されるものではなく、他の一般的な深層学習や機械学習を採用することもできる。また、NNの学習手法は、逆誤差伝搬法など公知の様々な手法を採用することができる。また、NNの学習時に算出する誤差については、二乗誤差などのように、深層学習の学習時に利用される公知の様々な誤差算出手法を採用することができる。また、各NNの中間層の数、特徴量の数、復元器の数などは、あくまで一例であり、任意に設定変更することができる。また、NNの中間層ごとに復元器を設けるだけでなく、NNの複数の中間層のうち指定した中間層のみに対して復元器を設けることもできる。また、上述した特徴量の一例としては、学習対象が画像の場合は、画像内のエッジ、コントラスト、画像内の目や鼻の位置などが挙げられる。
【0063】
[評価対象]
上記実施例では、各学習データについて、特徴量の評価を行う例を説明したが、これに限定されるものではなく、管理者等が指定した学習データについてのみ、上記特徴量の評価を行って、保持の可否を判定することもできる。
【0064】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、実施例で説明した具体例、分布、数値などは、あくまで一例であり、任意に変更することができる。
【0065】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0066】
[ハードウェア]
図13は、ハードウェア構成例を説明する図である。
図13に示すように、学習装置10は、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、
図13に示した各部は、バス等で相互に接続される。
【0067】
通信装置10aは、ネットワークインタフェースカードなどであり、他の装置との通信を行う。HDD10bは、
図3に示した機能を動作させるプログラムやDBを記憶する。
【0068】
プロセッサ10dは、
図3に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、
図3等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、学習装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、モデル学習部21、復号器学習部22、評価部23等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、モデル学習部21、復号器学習部22、評価部23等と同様の処理を実行するプロセスを実行する。
【0069】
このように学習装置10は、プログラムを読み出して実行することで学習方法を実行する情報処理装置として動作する。また、学習装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、学習装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【0070】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【符号の説明】
【0071】
10 学習装置
11 通信部
12 記憶部
13 学習データDB
14 学習結果DB
20 制御部
21 モデル学習部
22 復号器学習部
22a 復号器A学習部
22b 復号器B学習部
22c 復号器C学習部
23 評価部