(57)【要約】  学習装置は、学習済みの学習モデルに学習対象である入力データを入力する。そして、学習装置は、学習モデルに入力される入力データごとに、各入力データに対応して学習モデルにより生成される複数の特徴量から、複数の特徴量それぞれに対応した複数の復元器を用いて復元データを生成する。その後、学習装置は、複数の復元器によりそれぞれ生成される複数の復元データそれぞれと、入力データとが近づくように、複数の復元器を学習させる。
2020079815.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
学習モデルに入力される入力データごとに、各入力データに対応して前記学習モデルにより生成される複数の特徴量から、前記複数の特徴量それぞれに対応した複数の復元器を用いて復元データを生成し、
前記複数の復元器によりそれぞれ生成される複数の復元データそれぞれと、前記入力データとが近づくように、前記複数の復元器を学習させる、
処理を実行させる学習プログラム。
【請求項２】
請求項１に記載の学習プログラムであって、前記コンピュータに、
学習済みの前記複数の復元器に前記入力データを入力し、前記複数の復元器それぞれにより複数の復元データを生成し、
前記複数の復元データそれぞれと前記入力データとの誤差を算出し、
前記誤差に基づいて、前記複数の復元データそれぞれの生成元である前記複数の特徴量のうち、保持する特徴量を選択する、処理を実行させる学習プログラム。
【請求項３】
請求項１に記載の学習プログラムであって、
前記学習モデルは、ニューラルネットワークを含む学習モデルであり、
前記生成する処理は、前記ニューラルネットワークが有する各中間層に対応付けられる前記複数の復元器を用いて、前記各中間層から出力される前記複数の特徴量それぞれから前記複数の復元データを生成する、学習プログラム。
【請求項４】
請求項３に記載の学習プログラムであって、
前記生成する処理は、前記複数の復元器を用いて、前記複数の復元器それぞれが対応付けられる中間層よりも前の中間層から出力される特徴量を復元対象とした復元データを生成し、
前記学習する処理は、前記複数の復元器それぞれを、前記復元データと前記復元対象とする特徴量との誤差が小さくなるように学習させる、学習プログラム。
【請求項５】
請求項１に記載の学習プログラムであって、前記コンピュータに、
前記複数の復元器それぞれについて、前記復元データを前記学習モデルに入力して、前記学習モデルにより生成される特徴量であって前記復元データの特徴量である復元特徴量を取得する、処理を実行させ、
前記学習させる処理は、前記複数の復元器それぞれを、前記復元データと前記入力データとの誤差、および、復元対象の前記特徴量と前記復元特徴量との誤差のそれぞれが小さくなるように学習させる、学習プログラム。
【請求項６】
請求項１に記載の学習プログラムであって、前記コンピュータに、
正解ラベルが付与される第１の入力データを前記学習モデルに入力して、前記学習モデルからの出力結果と前記正解ラベルとの誤差に基づいて、前記学習モデルを学習させ、
前記第１の入力データとは異なる第２の入力データを学習済みの前記学習モデルに入力し、前記学習済みの学習モデルにより生成される複数の特徴量から、前記複数の特徴量それぞれに対応した複数の復元器を用いて復元データを生成し、
前記複数の復元器によりそれぞれ生成される複数の復元データそれぞれと、前記第２の入力データとが近づくように、前記複数の復元器を学習させる、処理を実行させる学習プログラム。
【請求項７】
請求項６に記載の学習プログラムであって、前記コンピュータに、
前記第２の入力データを用い学習された学習済みの前記複数の復元器に、前記第１の入力データを入力して、前記複数の復元器それぞれが生成する複数の復元データを取得し、
前記複数の復元データそれぞれと前記第１の入力データとの誤差を算出し、
前記誤差に基づいて、前記複数の復元データそれぞれの生成元である複数の特徴量のうち、保持する特徴量を選択する、処理を実行させる学習プログラム。
【請求項８】
コンピュータが、
学習モデルに入力される入力データごとに、各入力データに対応して前記学習モデルにより生成される複数の特徴量から、前記複数の特徴量それぞれに対応した複数の復元器を用いて復元データを生成し、
前記複数の復元器によりそれぞれ生成される複数の復元データそれぞれと、前記入力データとが近づくように、前記複数の復元器を学習させる、
処理を実行する学習方法。
【請求項９】
学習モデルに入力される入力データごとに、各入力データに対応して前記学習モデルにより生成される複数の特徴量から、前記複数の特徴量それぞれに対応した複数の復元器を用いて復元データを生成する生成部と、
前記複数の復元器によりそれぞれ生成される複数の復元データそれぞれと、前記入力データとが近づくように、前記複数の復元器を学習させる学習部と
を有する学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習プログラム、学習方法および学習装置に関する。
【背景技術】
【０００２】
逐次学習などの深層学習において、学習データをそのまま保存することが情報漏洩などのリスクを伴うことから、元の学習データを変換した形式である、学習モデルの特徴量で保持することが行われている。また、複数の学習モデルそれぞれを学習する学習データとして、取得元の異なるデータを利用する場合、先の学習において利用した学習データを特徴量の形式で保持することも行われている。【０００３】
このように、特徴量で保持する場合は、特徴量にどの程度の元の学習データの情報が残っているかを評価することが行われる。例えば、学習済みのニューラルネットワークにおいて特徴量が同じとなる入力データを求め、入力データに基づき特徴量により保持される情報を推定し、特徴量の保持の可否を判断する技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１６／１３２４６８号
【特許文献２】特開２０１７−１７４２９８号公報
【特許文献３】特開２０１６−１２６５９７号公報
【特許文献４】特開２０１７−１２６１１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記技術により得られる入力データが、必ずしも、学習に利用した学習データを保持して良いかの判断に適したデータであるとは限らない。例えば、学習済みの学習モデルに入力データｘを適用して得られた特徴量ｚを、元の入力データｘの形式に変換するために、特徴量ｚがもっともよく得られるような入力データｘ´を勾配法で求める。ところが、ある特徴量ｚが得られる入力データは複数存在するので、勾配法で得られる入力データｘ´がリスク評価などの判断に有用なデータとは限らない。【０００６】
一つの側面では、データ保持の判断を適切に行うことができる学習プログラム、学習方法および学習装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
第１の案では、学習プログラムは、コンピュータに、学習モデルに入力される入力データごとに、各入力データに対応して前記学習モデルにより生成される複数の特徴量から、前記複数の特徴量それぞれに対応した複数の復元器を用いて復元データを生成する処理を実行させる。学習プログラムは、コンピュータに、前記複数の復元器によりそれぞれ生成される複数の復元データそれぞれと、前記入力データとが近づくように、前記複数の復元器を学習させる処理を実行させる。
【発明の効果】
【０００８】
一実施形態によれば、データ保持の判断を適切に行うことができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例１にかかる学習装置の全体例を説明する図である。
【図２】図２は、参考技術を説明する図である。
【図３】図３は、実施例１にかかる学習装置の機能構成を示す機能ブロック図である。
【図４】図４は、学習モデルの学習例を説明する図である。
【図５】図５は、特徴量を説明する図である。
【図６】図６は、復号器の学習を説明する図である。
【図７】図７は、評価手法の一例を説明する図である。
【図８】図８は、評価手法の別例を説明する図である。
【図９】図９は、処理の流れを示すフローチャートである。
【図１０】図１０は、実施例２にかかる学習例を説明する図である。
【図１１】図１１は、実施例３にかかる学習例を説明する図である。
【図１２】図１２は、実施例４にかかる学習例を説明する図である。
【図１３】図１３は、ハードウェア構成例を説明する図である。
【発明を実施するための形態】
【００１０】
以下に、本発明にかかる学習プログラム、学習方法および学習装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例１】
【００１１】
［全体例］
図１は、実施例１にかかる学習装置の全体例を説明する図である。図１に示す学習装置１０は、車や人などの画像分類などを行う学習モデルを学習する。具体的には、学習装置１０は、機械学習や深層学習（ディープラーニング（ＤＬ）・Deep  Learning）などを用いた学習処理を実行して、学習データを事象ごとに正しく判別（分類）できるように、ニューラルネットワーク（ＮＮ：Neural  Network）などを学習する。【００１２】
一般的に、深層学習などでは、学習データの量が多いほど学習モデルの向上が図れることから、学習データの量は多いほどよいが、その一方で、学習データを集めることは難しい。そのため、取得先が異なる学習データを用いて、複数の学習モデルの学習を行うことも考えられる。しかし、顧客データを用いたビジネスの場では、ある顧客データを学習終了後も保持し続けたり、別の顧客タスク（学習）などに使用したりすることは、契約上の問題や情報漏えいのリスクを伴う。このようなことから、元の学習データを変換した形式である特徴量で保持することが行われている。特徴量で保持することでリスクを低減することはできるが、特徴量にどの程度の元の学習データの情報が残っているかを正確に評価することが重要である。【００１３】
そこで、実施例１にかかる学習装置１０は、学習モデルから生成される複数の特徴量から複数の復元データを生成する復元器を学習し、復号器による復号結果に基づいて、保持対象の特徴量を評価する。具体的には、学習装置１０は、学習モデルに入力される学習データごとに、各学習データに対応して学習モデルにより生成される各特徴量から、各特徴量に対応した復元器を用いて復元データを生成する。そして、学習装置１０は、複数の復元器によりそれぞれ生成される複数の復元データそれぞれと、学習データとが近づくように、複数の復元器を学習させる。【００１４】
図１を例にして説明すると、学習装置１０は、複数の学習データそれぞれを用いて、ＮＮを用いた学習モデルを学習する。その後、学習装置１０は、学習モデルに使用した元の学習データを学習済みの学習モデルに入力し、ＮＮの各中間層から特徴量Ａ、特徴量Ｂ、特徴量Ｃを取得する。そして、学習装置１０は、特徴量Ａを復元器Ａに入力して復元データＡを生成し、復元データＡと元の学習データとの誤差が小さくなるように、復元器Ａを学習する。同様に、学習装置１０は、特徴量Ｂを復元器Ｂに入力して復元データＢを生成し、復元データＢと元の学習データとの誤差が小さくなるように、復元器Ｂを学習する。同様に、学習装置１０は、特徴量Ｃを復元器Ｃに入力して復元データＣを生成し、復元データＣと元の学習データとの誤差が小さくなるように、復元器Ｃを学習する。【００１５】
このようにして、学習装置１０は、元の学習データを学習済みの学習モデルに入力して得られる各特徴量を用いて、各復元器を学習する。そして、学習装置１０は、各復元器の学習完了後、各学習データを学習済みの学習モデルに入力して各特徴量を取得し、各特徴量を学習済みの各復元器に入力して各復元データを生成する。その後、学習装置１０は、各復元データの復元度合いに基づいて、保持可能な特徴量を決定する。【００１６】
すなわち、学習装置１０は、深層学習において元の学習データの代替として保存する特徴量を選択する際、各特徴量から復号される復号データの復号度合いによって、保持する特徴量を選択することができるので、特徴量保持の判断を適切に行うことができる。【００１７】
［参考技術］
ここで、保持対象の特徴量を評価する技術として、一般的に利用される参考技術について説明する。まず、参考技術にも実施例１にも共通する、ニューラルネットワークに対する深層学習について説明する。【００１８】
深層学習は、入力ｘを微分可能なパラメータを持つ関数で変換して出力ｙを得る学習モデルを、訓練データｘに対して所望のｙを得るように、勾配法でパラメータを学習する手法である。深層学習の学習モデルとは、線形変換ｆ（ｘ）＝Ａｘ＋ｂと非線形活性化関数ｇからなるモデルｙ＝ｇＮ（ｆＮ（・・・ｇ１（ｆ１（ｘ）））に限らず、任意の微分可能な演算ｈからなるモデルｈ＝ｈＮ（・・・ｈ２（ｈ１（ｘ）））も含まれる。【００１９】
次に、参考技術を具体的に説明する。図２は、参考技術を説明する図である。図２に示すように、参考技術では、学習モデルに学習に利用した元の学習データを、学習済みの学習モデルに入力して特徴量を生成する。続いて、特徴量となる入力データを勾配法で推定する。例えば、特徴量をｚ、入力の学習データをｘとした場合、推定データｘ※＝ａｒｇｍｉｎｘ  ｄ（ｆ（ｘ），ｚ）を勾配法で算出する。ここで、ｆは、ｘからｚまでの変換を示す微分可能な学習モデルの式であり、ｄは、微分可能な距離関数または誤差関数（二乗誤差）である。【００２０】
その後、推定データを学習済みの学習モデルに入力して、推定データに対応する推定特徴量を取得し、この推定特徴量と元の学習データから得られる特徴量との誤差が小さくなるような推定データを推定する。このような参考技術は、特徴量から元の学習データを推定する技術であり、１つの特徴量から複数の学習データが推定できることから、特徴量そのものが保持してよいレベルの特徴量か否かを判断することができない。そこで、実施例１では、特徴量そのものが保持してよいレベルの特徴量か否かを判断するための指標を生成することで、参考技術の問題を改善する。【００２１】
［機能構成］
図３は、実施例１にかかる学習装置１０の機能構成を示す機能ブロック図である。図３に示すように、学習装置１０は、通信部１１、記憶部１２、制御部２０を有する。【００２２】
通信部１１は、他の装置の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部１１は、管理者の端末から、処理開始指示を受信する。また、通信部１１は、管理者の端末等から、学習対象である学習データ（入力データ）を受信して学習データＤＢ１３に格納する。【００２３】
記憶部１２は、プログラムやデータを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部１２は、学習データＤＢ１３、学習結果ＤＢ１４を記憶する。【００２４】
学習データＤＢ１３は、学習モデルの学習に使用される学習データを記憶するデータベースである。ここで記憶される学習データは、管理者等により正解ラベルが付与されたラベル有りデータであってもよく、正解ラベルが付与されていないラベル無しデータであってもよい。なお、学習データには、画像、動画、文書、グラフなど様々なデータを採用することができる。【００２５】
学習結果ＤＢ１４は、学習結果を記憶するデータベースである。例えば、学習結果ＤＢ１４は、制御部２０による学習データの判別結果（分類結果）、機械学習やディープラーニングによって学習された各種パラメータを記憶する。【００２６】
制御部２０は、学習装置１０全体の処理を司る処理部であり、例えばプロセッサなどである。この制御部２０は、モデル学習部２１、復号器学習部２２、評価部２３を有する。なお、モデル学習部２１、復号器学習部２２、評価部２３は、プロセッサなどが有する電子回路やプロセッサなどが実行するプロセスの一例である。【００２７】
モデル学習部２１は、ＮＮなどを用いた学習モデルの学習を実行する処理部である。具体的には、モデル学習部２１は、学習データＤＢ１３に記憶される学習データを用いてＮＮの学習を実行し、学習結果を学習結果ＤＢ１４に格納する。【００２８】
図４は、学習モデルの学習例を説明する図である。図４に示すように、モデル学習部２１は、学習データＤＢ１３に記憶される正解ラベル付きの学習データを読み出す。そして、モデル学習部２１は、学習データをＮＮに入力して出力結果を得る。その後、モデル学習部２１は、出力結果と正解ラベルとの誤差が小さくなるように、ＮＮを学習する。なお、学習方法は、勾配法や誤差逆伝搬法などの公知の手法を採用することができる。また、モデル学習部２１は、ＮＮの判定精度が閾値以上となるまで学習処理を継続することもでき、予め定めた回数や全学習データによる学習が完了するまでなど、任意のタイミングで終了することができる。【００２９】
復号器学習部２２は、ＮＮを用いた学習モデルである復号器であって特徴量からデータを復元する復号器ごとに学習部を有し、元の学習データを用いて各復号器を学習する処理部である。具体的には、復号器学習部２２は、学習結果ＤＢ１４から各種パラメータを読み出し、各種パラメータを設定したニューラルネットワーク等を含む学習モデルを構築する。そして、復号器学習部２２は、学習モデルであるＮＮが有する中間層ごとに復号器を設定する。そして、復号器学習部２２は、各復号器によって各特徴量から復元データを生成し、各復元データと元の学習データとが近づくように、各復号器を学習する。【００３０】
ここで、図５と図６を用いて具体的に説明する。図５は、特徴量を説明する図であり、図６は、復号器の学習を説明する図である。ここでは、図５に示すように、ＮＮが、入力ｘを入力する入力層と、３つの中間層と、ｙを出力する出力層とを有する場合で説明する。この場合、１つ目の中間層で得られる情報が特徴量Ａ、２つ目の中間層で得られる情報が特徴量Ｂ、３つ目の中間層で得られる情報が特徴量Ｃとなる。したがって、復号器学習部２２は、特徴量Ａに対応する復号器Ａ、特徴量Ｂに対応する復号器Ｂ、特徴量Ｃに対応する復号器Ｃを用意し、各復号器の学習を実行する。【００３１】
具体的には、図６に示すように、復号器学習部２２の復号器Ａ学習部２２ａは、元の学習データを学習済みの学習モデル（ＮＮ）に入力し、特徴量Ａを取得する。そして、復号器Ａ学習部２２ａは、特徴量Ａを復号器Ａに入力して、復元データＡを生成する。その後、復号器Ａ学習部２２ａは、復元データＡと元の学習データとの誤差（以下では復元誤差と記載する場合がある）を算出し、この誤差が小さくなるように、復号器Ａを学習する。【００３２】
同様に、復号器学習部２２の復号器Ｂ学習部２２ｂは、元の学習データを学習済みの学習モデル（ＮＮ）に入力し、特徴量Ｂを取得する。そして、復号器Ｂ学習部２２ｂは、特徴量Ｂを復号器Ｂに入力して、復元データＢを生成する。その後、復号器Ｂ学習部２２ｂは、復元データＢと元の学習データとの誤差を算出し、この誤差が小さくなるように、復号器Ｂを学習する。【００３３】
同様に、復号器学習部２２の復号器Ｃ学習部２２ｃは、元の学習データを学習済みの学習モデル（ＮＮ）に入力し、特徴量Ｃを取得する。そして、復号器Ｃ学習部２２ｃは、特徴量Ｃを復号器Ｃに入力して、復元データＣを生成する。その後、復号器Ｃ学習部２２ｃは、復元データＣと元の学習データとの誤差を算出し、この誤差が小さくなるように、復号器Ｃを学習する。【００３４】
なお、各学習部は、復号器の学習結果を学習結果ＤＢ１４に格納する。また、誤差は、例えば二乗誤差などを採用することができ、復号器の学習には、勾配法や誤差逆伝搬法などを採用することができる。また、復号器の学習は、ＮＮの判定精度が閾値以上となるまで学習処理を継続することもでき、予め定めた回数など任意のタイミングで終了することができる。また、学習器の数は一例であり、任意に設定変更することができる。【００３５】
評価部２３は、学習データそれぞれについて、学習済みの各復号器を用いて各特徴量の復元の度合いを評価する処理部である。具体的には、評価部２３は、学習結果ＤＢ１４から学習モデルに対応する各種パラメータを読み出し、各種パラメータを設定したニューラルネットワーク等を含む学習モデルを構築するとともに、学習結果ＤＢ１４から各復号器に対応する各種パラメータを読み出し、各種パラメータを設定したニューラルネットワーク等を含む各復号器を構築する。そして、評価部２３は、保持対象の学習データを学習済みの学習モデルに入力して、各特徴量を取得する。続いて、評価部２３は、各特徴量を、対応する学習済みの復号器に入力して、各復号データを生成する。そして、評価部２３は、各復号データの復元状況を判定し、保持する特徴量を決定する。【００３６】
図７は、評価手法の一例を説明する図である。図７に示すように、評価部２３は、元の学習データを学習済みの学習モデルに入力する。そして、評価部２３は、学習済みの学習モデルから得られる特徴量Ａ、特徴量Ｂ、特徴量Ｃのそれぞれを、学習済みの復号器Ａ、学習済みの復号器Ｂ、学習済みの復号器Ｃそれぞれに入力して、復元データＡ、復号データＢ、復号データＣを生成する。【００３７】
その後、評価部２３は、復元データＡと元の学習データの二乗誤差Ａ、復元データＢと元の学習データの二乗誤差Ｂ、復元データＢと元の学習データの二乗誤差Ｃを算出する。そして、評価部２３は、二乗誤差Ａ、二乗誤差Ｂ、二乗誤差Ｃのうち、保持が許される予め設定した閾値未満かつ閾値に最も近い二乗誤差Ｂを特定する。この結果、評価部２３は、二乗誤差Ｂの復元元となった特徴量Ｂを保持すると決定する。【００３８】
また、評価部２３は、復元データそのものを、元の学習データの提供元であるユーザに提示して評価させることもできる。図８は、評価手法の別例を説明する図である。図８に示すように、評価部２３は、図７と同様の手法で、元の学習データおよび各復元器を用いて、復元データＡ、復号データＢ、復号データＣを生成する。そして、評価部２３は、復元データＡ、復号データＢ、復号データＣをユーザに提示する。ここで、ユーザが、復元データＡおよび復元データＣは復元でき過ぎていると判断し、復元データＢは元の学習データがわからない程度で復元できていると判断したとする。この場合、評価部２３は、復元データＢに対応する特徴量Ｂを保持すると決定する。なお、図８の手法は、学習データが画像データなどである場合に特に有効である。【００３９】
［処理の流れ］
図９は、処理の流れを示すフローチャートである。図９に示すように、モデル学習部２１は、処理開始が指示されると（Ｓ１０１：Ｙｅｓ）、学習モデルを初期化する（Ｓ１０２）。【００４０】
続いて、モデル学習部２１は、学習データＤＢ１３に記憶される学習データを読み込み（Ｓ１０３）、学習データを用いて学習モデルを学習する（Ｓ１０４）。そして、モデル学習部２１は、精度が閾値以上ではない場合（Ｓ１０５：Ｎｏ）、Ｓ１０３に戻って学習を繰り返する。一方、モデル学習部２１は、精度が閾値以上となると（Ｓ１０５：Ｙｅｓ）、学習結果を学習結果ＤＢ１４に出力する（Ｓ１０６）。【００４１】
その後、復号器学習部２２は、各復号器を初期化すると（Ｓ１０７）、学習データＤＢ１３に記憶される学習データを読み込み（Ｓ１０８）、学習データおよび学習済みの学習モデルを用いて各復号器を学習する（Ｓ１０９）。【００４２】
続いて、復号器学習部２２は、精度が閾値以上ではない場合（Ｓ１１０：Ｎｏ）、Ｓ１０８に戻って学習を繰り返する。一方、復号器学習部２２は、精度が閾値以上となると（Ｓ１１０：Ｙｅｓ）、学習結果を学習結果ＤＢ１４に出力する（Ｓ１１１）。【００４３】
その後、評価部２３は、保持対象の学習データそれぞれについて、学習済みの学習モデルから各特徴量を生成し、各特徴量を学習済みの各復号器に入力して各復号データを生成し、各特徴量を評価する（Ｓ１１２）。【００４４】
［効果］
上述したように、学習装置１０は、逆変換器を学習させて特徴量から元データへの復元器を得ることができ、復元データと元の学習データとの誤差を直接最小化するように学習させることができる。また、学習装置１０は、保持対象の特徴量と元の学習データとを比較可能な形式にするために、特徴量をできるだけ元データに復元した形式に変換することができる。この結果、学習装置１０は、各特徴量から生成される復元データにより、複数の特徴量それぞれの評価を適切に行うことができる。
【実施例２】
【００４５】
ところで、学習装置１０の各復号器は、元の学習データではなく、自身が用いる特徴量より前の別の特徴量への復元を学習することもできる。これにより、各々の復元器の学習の難しさのばらつきを低減することができる。そこで、実施例２では、元の学習データではなく、前の特徴量への復元を学習させる例を説明する。なお、ここでは１つ前の中間層から出力される特徴量に復元する例を説明するが、復元対象はこれに限定されるものではなく、自身と対応する中間層よりも前の中間層であればよい。【００４６】
図１０は、実施例２にかかる学習例を説明する図である。図１０に示すように、復号器学習部２２は、元の学習データを学習済みの学習モデルに入力する。すると、復号器Ａ学習部２２ａは、学習済みの学習モデルから出力される特徴量Ａを復号器Ａに入力して復元データＡを生成し、復元データＡと元の学習データとの誤差である復元誤差が小さくなるように、復号器Ａを学習する。【００４７】
一方、復号器Ｂ学習部２２ｂは、学習済みの学習モデルから得られる特徴量Ｂを復号器Ｂに入力して、１つ前の中間層から得られる特徴量Ａに復元した復元データＢを生成する。そして、復号器Ｂ学習部２２ｂは、１つ前の中間層から得られる特徴量Ａと復元データＢとの誤差である復元誤差が小さくなるように、復号器Ｂを学習する。また、復号器Ｃについても同様に、復号器Ｃ学習部２２ｃは、学習済みの学習モデルから得られる特徴量Ｃを復号器Ｃに入力して、１つ前の中間層から得られる特徴量Ｂに復元した復元データＣを生成する。そして、復号器Ｃ学習部２２ｃは、１つ前の中間層から得られる特徴量Ｂと復元データＣとの誤差である復元誤差が小さくなるように、復号器Ｃを学習する。【００４８】
なお、各復号器の学習後に実行される特徴量の評価については、実施例１と同様の手法を採用することができる。例えば、評価部２３は、復元データＡと元の学習データの二乗誤差Ａ、復元データＢと特徴量Ａの二乗誤差Ｂ、復元データＣと特徴量Ｂの二乗誤差Ｃを算出し、閾値に基づいて、保持する特徴量を決定する。
【実施例３】
【００４９】
ところで、学習装置１０は、復元器の学習にあたり、復元データと元の学習データとのの誤差ではなく、特徴量に再度変換した時の誤差を用いて学習することもできる。これにより、特徴量変換の方法まで考慮して、復元器を学習することができ、復元データの復元精度が向上する結果、特徴量の評価精度も向上させることができる。【００５０】
図１１は、実施例３にかかる学習例を説明する図である。図１１に示すように、復号器学習部２２は、元の学習データを学習済みの学習モデルに入力する。すると、復号器Ａ学習部２２ａは、出力される特徴量（元特徴量Ａ）を復号器Ａに入力して復元データＡを生成し、復元データＡと元の学習データとの誤差である復元誤差Ａ１を算出する。【００５１】
さらに続いて、復号器学習部２２は、復元データＡを学習済みの学習モデルに入力する。そして、復号器Ａ学習部２２ａは、学習済みの学習モデルから出力される特徴量（復元特徴量Ａ）を取得し、元特徴量Ａと復元特徴量Ａとの誤差である復元誤差Ａ２を算出する。その後、復号器Ａ学習部２２ａは、復元誤差Ａ１および復元誤差Ａ２が小さくなるように、復号器Ａを学習する。なお、復元誤差Ａ２だけを用いて学習を実行することもできる。また、他の復号器についても同様に、２つの復元誤差を用いて学習が実行される。
【実施例４】
【００５２】
ところで、実施例１−３では、学習モデルの学習が終了した後に、各復号器の学習を実行する例を説明したが、これに限定されるものではない。例えば、学習モデルと各復号器とを並行に学習することもできる。【００５３】
図１２は、実施例４にかかる学習例を説明する図である。図１２に示すように、学習装置１０は、正解ラベルが付与された学習データを学習モデルに入力すると、学習モデルと各復号器の学習を並行して実行する。【００５４】
具体的には、モデル学習部２１は、学習データが入力されると、正解ラベルと出力ラベルとの誤差が小さくなるように、学習モデルを学習する。これと並行して、復号器Ａ学習部２２ａは、学習モデルから取得される特徴量Ａを復号器Ａに入力して復元データＡを生成し、復元データＡと元の学習データとの復元誤差が小さくなるように、復号器Ａを学習する。同様に、復号器Ｂ学習部２２ｂは、学習モデルから取得される特徴量Ｂを復号器Ｂに入力して復元データＢを生成し、復元データＢと元の学習データとの復元誤差が小さくなるように、復号器Ｂを学習する。【００５５】
このように、学習装置１０は、各学習データを用いて、学習モデルと各復号器を同時に平行して学習することができるので、総学習時間を短縮することができる。
【実施例５】
【００５６】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。【００５７】
［復号器の学習データ］
上記実施例では、学習モデルの学習に使用する学習データを、復号器の学習にも使用する例を説明したが、これに限定されるものではなく、学習モデルの学習と復号器の学習とを、異なる学習データを用いて学習することもできる。【００５８】
例えば、学習装置１０は、データＸを用いて学習モデルを学習し、学習済みの学習モデルＭを生成する。続いて、学習装置１０は、学習モデルＭにデータＸを入力して、データＸの特徴量Ｘを取得する。その後、学習装置１０は、別のデータであるデータＹを学習モデルＭに入力して、データＹの特徴量Ｙを取得する。そして、学習装置１０は、実施例１と同様の手法で、データＹと特徴量Ｙとを用いて復元器Ｒを学習する。【００５９】
その後、学習装置１０は、学習済みの復元器Ｒに、特徴量Ｘを入力して復元データＸ´を生成する。そして、学習装置１０は、元のデータＸと復元データＸ´を、実施例１と同様の手法で比較して、特徴量Ｘを評価する。【００６０】
このようにすることで、学習装置１０は、データＸで学習した学習済みモデルおよびデータＸの特徴量が漏洩した際に、それらを入手した第三者がデータＸ自体をどの程度復元できるかを評価することができる。例えば、第三者によるデータ復元を考えると、第三者は、学習データＸの特徴量を保持するが、学習データＸ自体は持たないので、手持ちの別のデータＹとデータＹを学習モデルに通して得られたデータＹの特徴量とから復元器を学習しようとする。その後、第三者は、学習した復元器にデータＸの特徴量を入力し、元のデータＸの復元を試みることが考えられる。【００６１】
これに対して、学習装置１０は、学習モデルＭの学習データとは異なるデータを用いて復元された復元器によって特徴量から復元される学習データの復元度合いを評価することができる。したがって、学習装置１０は、情報漏洩時の危険性も加味した評価を実行することができる。【００６２】
［学習モデル、復号器］
上記実施例では、学習モデルおよび復号器にＮＮを適用した場合を例にして説明したが、これに限定されるものではなく、他の一般的な深層学習や機械学習を採用することもできる。また、ＮＮの学習手法は、逆誤差伝搬法など公知の様々な手法を採用することができる。また、ＮＮの学習時に算出する誤差については、二乗誤差などのように、深層学習の学習時に利用される公知の様々な誤差算出手法を採用することができる。また、各ＮＮの中間層の数、特徴量の数、復元器の数などは、あくまで一例であり、任意に設定変更することができる。また、ＮＮの中間層ごとに復元器を設けるだけでなく、ＮＮの複数の中間層のうち指定した中間層のみに対して復元器を設けることもできる。また、上述した特徴量の一例としては、学習対象が画像の場合は、画像内のエッジ、コントラスト、画像内の目や鼻の位置などが挙げられる。【００６３】
［評価対象］
上記実施例では、各学習データについて、特徴量の評価を行う例を説明したが、これに限定されるものではなく、管理者等が指定した学習データについてのみ、上記特徴量の評価を行って、保持の可否を判定することもできる。【００６４】
［システム］
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、実施例で説明した具体例、分布、数値などは、あくまで一例であり、任意に変更することができる。【００６５】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。【００６６】
［ハードウェア］
図１３は、ハードウェア構成例を説明する図である。図１３に示すように、学習装置１０は、通信装置１０ａ、ＨＤＤ（Hard  Disk  Drive）１０ｂ、メモリ１０ｃ、プロセッサ１０ｄを有する。また、図１３に示した各部は、バス等で相互に接続される。【００６７】
通信装置１０ａは、ネットワークインタフェースカードなどであり、他の装置との通信を行う。ＨＤＤ１０ｂは、図３に示した機能を動作させるプログラムやＤＢを記憶する。【００６８】
プロセッサ１０ｄは、図３に示した各処理部と同様の処理を実行するプログラムをＨＤＤ１０ｂ等から読み出してメモリ１０ｃに展開することで、図３等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、学習装置１０が有する各処理部と同様の機能を実行する。具体的には、プロセッサ１０ｄは、モデル学習部２１、復号器学習部２２、評価部２３等と同様の機能を有するプログラムをＨＤＤ１０ｂ等から読み出す。そして、プロセッサ１０ｄは、モデル学習部２１、復号器学習部２２、評価部２３等と同様の処理を実行するプロセスを実行する。【００６９】
このように学習装置１０は、プログラムを読み出して実行することで学習方法を実行する情報処理装置として動作する。また、学習装置１０は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、学習装置１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。【００７０】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ（Magneto−Optical  disk）、ＤＶＤ（Digital  Versatile  Disc）などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【符号の説明】
【００７１】
１０  学習装置
１１  通信部
１２  記憶部
１３  学習データＤＢ
１４  学習結果ＤＢ
２０  制御部
２１  モデル学習部
２２  復号器学習部
２２ａ  復号器Ａ学習部
２２ｂ  復号器Ｂ学習部
２２ｃ  復号器Ｃ学習部
２３  評価部
【図１】
2020079815.tif 000003
【図２】
2020079815.tif 000004
【図３】
2020079815.tif 000005
【図４】
2020079815.tif 000006
【図５】
2020079815.tif 000007
【図６】
2020079815.tif 000008
【図７】
2020079815.tif 000009
【図８】
2020079815.tif 000010
【図９】
2020079815.tif 000011
【図１０】
2020079815.tif 000012
【図１１】
2020079815.tif 000013
【図１２】
2020079815.tif 000014
【図１３】
2020079815.tif 000015
【国際調査報告】
2020079815.tif 000016
2020079815.tif 000017