(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-30
(45)【発行日】2024-10-08
(54)【発明の名称】データ提示プログラム、データ提示方法および情報処理装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20241001BHJP
【FI】
G06N20/00
(21)【出願番号】P 2020149885
(22)【出願日】2020-09-07
【審査請求日】2023-06-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】河東 孝
(72)【発明者】
【氏名】上村 健人
(72)【発明者】
【氏名】安富 優
(72)【発明者】
【氏名】早瀬 友裕
【審査官】新井 則和
(56)【参考文献】
【文献】国際公開第2018/079020(WO,A1)
【文献】Gregory Canal et al.,Generative causal explanations of black-box classifiers, [online],2020年06月24日, [retrieved on 2024.05.17], Retrieved from the Internet: <URL: https://arxiv.org/pdf/2006.13913v1>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
推定モデルを用いた推定対象データセットに対する推定結果に基づき、前記推定対象データセットから
、前記推定モデルが推定を間違った特定のデータを取得し、
前記推定対象データセットから得られる特徴量に関する特徴空間において、前記推定モデルの損失が変動する方向と直交する方向に前記特定のデータを変化させたデータを提示する、
処理を実行させることを特徴とするデータ提示プログラム。
【請求項2】
前記推定モデルを用いて前記特定のデータの第1の特徴量を取得し、
前記特徴空間上で、前記損失が変動する方向に、前記第1の特徴量を変化させた第2の特徴量を生成し、
前記推定モデルを用いて、前記特定のデータを除く前記推定対象データセットの各推定データの各特徴量を取得し、
前記特徴空間上で、前記第2の特徴量との距離が閾値未満である近傍の特徴量を、前記各推定データの特徴量から特定する処理を、前記コンピュータに実行させ、
前記提示する処理は、前記特定のデータとともに、前記近傍の特徴量に該当する前記推定データを提示する、ことを特徴とする請求項1に記載のデータ提示プログラム。
【請求項3】
前記取得する処理は、前記推定モデルを用いて、前記特定のデータを除く前記推定対象データセットの各推定データの各特徴量と、前記推定モデルの機械学習に利用された各訓練データの各特徴量とを取得し、
前記特定する処理は、前記各推定データの特徴量または前記各訓練データの特徴量から、前記近傍の特徴量を特定し、
前記提示する処理は、前記特定のデータとともに、前記近傍の特徴量に該当する前記推定データまたは前記訓練データを提示する、ことを特徴とする請求項2に記載のデータ提示プログラム。
【請求項4】
前記提示する処理は、前記特徴空間として、前記推定対象データセットの入力に応じて自己符号化器が生成する特徴量に関する特徴空間を用いて、前記特定のデータを変化させた前記データを特定して提示する、ことを特徴とする請求項1から3のいずれか一つに記載のデータ提示プログラム。
【請求項5】
複数の訓練データを含む訓練データセットを用いて前記推定モデルの機械学習を実行し、前記訓練データセットを用いて前記自己符号化器の機械学習を実行する処理を前記コンピュータに実行させ、
前記取得する処理は、前記推定対象データセットに含まれる各推定データのうち、前記推定モデルが推定を間違った前記特定のデータを取得し、
前記提示する処理は、前記特徴空間を用いて、前記特定のデータを変化させた前記データを特定して提示する、ことを特徴とする請求項4に記載のデータ提示プログラム。
【請求項6】
前記自己符号化器を用いて前記特定のデータの第1の特徴量を取得し、
前記特徴空間上で、前記損失が変動する方向に、前記第1の特徴量を変化させた第2の特徴量を生成し、
前記自己符号化器を用いて、前記特定のデータを除く前記推定対象データセットの各推定データの各特徴量を取得し、
前記特徴空間上で、前記第2の特徴量との距離が閾値未満である近傍の特徴量を、前記各推定データの特徴量から特定する処理を、前記コンピュータに実行させ、
前記提示する処理は、前記特定のデータとともに、前記近傍の特徴量に該当する前記推定データを提示する、ことを特徴とする請求項5に記載のデータ提示プログラム。
【請求項7】
前記提示する処理は、前記第1の特徴量と前記第2の特徴量とを用いた線形補間により、前記第1の特徴量と前記第2の特徴量と間の第3の特徴量を生成し、前記第3の特徴量を前記自己符号化器に入力して得られる疑似データを生成し、前記疑似データをさらに提示する、ことを特徴とする請求項6に記載のデータ提示プログラム。
【請求項8】
前記機械学習を実行する処理は、
データとラベルとを含む前記複数の訓練データそれぞれについて、前記訓練データの前記データを前記推定モデルに入力して、前記推定モデルから第1の出力結果を取得し、
前記訓練データの前記データを前記自己符号化器に入力して前記自己符号化器から取得された再構成データを前記推定モデルに入力して、前記推定モデルから第2の出力結果を取得し、
前記第1の出力結果と前記第2の出力結果との誤差が小さくなるように、前記自己符号化器の機械学習を実行する、ことを特徴とする請求項5に記載のデータ提示プログラム。
【請求項9】
コンピュータが、
推定モデルを用いた推定対象データセットに対する推定結果に基づき、前記推定対象データセットから
、前記推定モデルが推定を間違った特定のデータを取得し、
前記推定対象データセットから得られる特徴量に関する特徴空間において、前記推定モデルの損失が変動する方向と直交する方向に前記特定のデータを変化させたデータを提示する、
処理を実行することを特徴とするデータ提示方法。
【請求項10】
推定モデルを用いた推定対象データセットに対する推定結果に基づき、前記推定対象データセットから
、前記推定モデルが推定を間違った特定のデータを取得する取得部と、
前記推定対象データセットから得られる特徴量に関する特徴空間において、前記推定モデルの損失が変動する方向と直交する方向に前記特定のデータを変化させたデータを提示する提示部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ提示プログラム、データ提示方法および情報処理装置に関する。
【背景技術】
【0002】
深層学習などの機械学習により学習されたモデルは、訓練時と異なる性質のデータが入力されるドメインシフトなどにより判断の間違いが発生し、精度が劣化することがある。近年では、モデルが間違った出力したときに、なぜ間違ったかを分析することが行われている。例えば、モデルが間違えたデータを提示する技術や、発生したドメインシフトを可視化する技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記技術では、モデルの精度劣化の原因を特定することが難しい。例えば、間違ったデータの提示では、間違った原因を特定できず、ドメインシフトの提示では、精度劣化と関係がある原因まで特定することができない。
【0005】
一つの側面では、モデルの精度劣化の原因を特定することができるデータ提示プログラム、データ提示方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
第1の案では、データ提示プログラムは、コンピュータに、推定モデルを用いた推定対象データセットに対する推定結果に基づき、前記推定対象データセットから特定のデータを取得し、前記推定対象データセットから得られる特徴量に関する特徴空間において、前記推定モデルの損失が変動する方向と直交する方向に前記特定のデータを変化させたデータを提示する処理を実行させる。
【発明の効果】
【0007】
一実施形態によれば、モデルの精度劣化の原因を特定することができる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、実施例1にかかる情報処理装置を説明する図である。
【
図2】
図2は、参考技術の問題点を説明する図である。
【
図3】
図3は、参考技術の問題点を説明する図である。
【
図4】
図4は、実施例1にかかる情報処理装置の機能構成を示す機能ブロック図である。
【
図5】
図5は、実施例1にかかる情報処理装置による分析を説明する図である。
【
図6】
図6は、実施例1にかかる処理の流れを示すフローチャートである。
【
図7】
図7は、分析対象のモデルを説明する図である。
【
図8】
図8は、分析対象のモデルへの適用を説明する図である。
【
図9】
図9は、特徴空間へのマッピングを説明する図である。
【
図10】
図10は、対象データの損失を減少させる方向の計算を説明する図である。
【
図11】
図11は、微小変化させた特徴量のマッピングを説明する図である。
【
図12】
図12は、対象データの損失を減少させる方向の計算を説明する図である。
【
図13】
図13は、対象データの損失を増加させる方向の計算を説明する図である。
【
図14】
図14は、他の訓練データおよび適用先データの特徴量の計算を説明する図である。
【
図15】
図15は、実データの特徴量の検索を説明する図である。
【
図20】
図20は、オートエンコーダを適用した例を説明する図である。
【
図21】
図21は、オートエンコーダを用いた分析を説明する図である。
【発明を実施するための形態】
【0009】
以下に、本願の開示するデータ提示プログラム、データ提示方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例1】
【0010】
[情報処理装置の説明]
図1は、実施例1にかかる情報処理装置10を説明する図である。近年、機械学習により学習されたモデルに対して、判断根拠が知りたいという要望が存在する。モデルが間違える要因の一つには、訓練時と異なる性質のデータが入力されるドメインシフトが知られており、このドメインシフトによりモデルが劣化する。
図1に示す情報処理装置10は、上記要望に応えるために、モデルが間違えたデータに対してその原因を示唆する情報を出力することで、モデルの精度劣化の原因を特定するコンピュータ装置の一例である。
【0011】
まず、モデルの精度劣化の手法として行われている参考技術の問題点について説明する。
図2と
図3は、参考技術の問題点を説明する図である。参考技術では、モデルが間違えたデータの提示を実行する。
図2の(a)に示すように、参考技術では、ドメインシフト前の特徴量の分布における正誤判定の決定平面に対して、間違えたデータの特徴量を特定し、その特徴量に対応する入力データ(間違ったデータ)を提示する。また、
図2の(b)に示すように、参考技術では、ドメインシフト後の特徴量の分布における正誤判定の決定平面に対して、ドメインシフト後により新たに間違えたデータの特徴量を特定し、その特徴量に対応する入力データ(間違ったデータ)を提示する。
【0012】
このように、間違ったデータだけを提示する参考技術では、間違った原因を特定することができないので、モデルの再学習などの対策を実行することができない。
【0013】
また、
図3に示すように、間違った原因がドメインシフトである場合に、発生したドメインシフトを可視化する参考技術も知られている。しかし、ドメインシフトの発生を提示するだけでは、入力データである画像の色の変化に原因があるのか、入力データである画像の傾きに原因があるのかを特定することができず、モデルの再学習などの対策を検討することが難しい。
【0014】
そこで、実施例1にかかる情報処理装置10は、モデルを用いた推定対象データセットである適用先データに含まれる間違ったデータを取得する。そして、情報処理装置10は、モデルの特徴空間において、モデルの損失が変動する方向と直交する方向に間違ったデータをシフトさせたデータを、ドメインシフトによるモデル劣化に関連するデータとして提示する。
【0015】
つまり、ドメインシフトには、着目したデータに対する劣化したモデルの損失の勾配と平行な方向と直交する方向が存在すると仮定する。そして、情報処理装置10は、着目するデータに対して、特徴空間におけるそのデータの特徴量から始めて、そのモデルの損失と直交する方向に曲線を引き、その曲線の近傍に特徴量が存在するデータを曲線が通る順に出力する。
【0016】
図1の例では、情報処理装置10は、着目するデータxと、勾配方向の曲線から所定距離内にある近傍データx1、x2、x3、x4とをユーザに出力する。このように、情報処理装置10は、勾配と直交する方向のドメインシフトを可視化して出力することで、モデルの精度劣化の原因を特定する。
【0017】
[機能構成]
図4は、実施例1にかかる情報処理装置10の機能構成を示す機能ブロック図である。
図4に示すように、情報処理装置10は、通信部11、表示部12、記憶部13、制御部20を有する。
【0018】
通信部11は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどにより実現される。例えば、通信部11は、管理者端末から、訓練データ、適用先データ、各種指示などを受信する。また、通信部11は、管理者端末に、分析結果などを送信する。
【0019】
表示部12は、各種情報を表示する処理部であり、例えばディスプレイやタッチパネルなどにより実現される。例えば、表示部12は、分析結果などを表示する。
【0020】
記憶部13は、各種データや制御部20が実行するプログラムなどを記憶する処理部であり、例えばメモリやハードディスクなどにより実現される。この記憶部13は、訓練データベース14、モデル15、適用先データベース16を記憶する。
【0021】
訓練データベース14は、モデル15の機械学習訓練に利用される複数の訓練データから構成されるデータ群である。例えば、訓練データベース14に記憶される訓練データは、「ラベル」と「データ」とが対応付けられた教師データである。データの例としては、人物、動物、乗り物などが写っている画像データであり、画像データに限らず、波形データ、音声データなどを採用することもできる。
【0022】
モデル15は、訓練データベース14を用いた機械学習により生成される、ニューラルネットワーク(以下では、NNと記載する場合がある)を用いた推定モデルの一例である。例えば、モデル15は、画像データが入力された場合に、当該画像データに人物が写っているか否かを推定する。なお、モデル15は、機械学習により生成されたモデル15そのものであってもよく、機械学習により生成されたモデル15のパラメータであってもよい。
【0023】
適用先データベース16は、機械学習により生成されたモデル15に適用する適用先データから構成されるデータ群である。具体的には、適用先データベース16は、モデル15による分類対象のデータである。
【0024】
制御部20は、情報処理装置10全体を司る処理部であり、例えばプロセッサなどにより実現される。この制御部20は、機械学習部21と分析部22とを有する。なお、機械学習部21と分析部22は、プロセッサが有する電子回路やプロセッサが実行するプロセスなどにより実現される。
【0025】
機械学習部21は、訓練データベース14を用いてモデル15の機械学習を実行する処理部である。例えば、機械学習部21は、訓練データベース14の訓練データの「ラベル、データ」のうち、データをモデル15に入力し、モデル15の出力を取得する。そして、機械学習部21は、モデルの出力とラベルとの誤差(例えば二乗誤差)が小さくなるように、モデル15のNNの各種パラメータの最適化を実行する。
【0026】
例えば、機械学習部21は、訓練データ(データx、ラベルy)のうちデータxをモデル15に入力し、モデル15から出力データy´を取得する。そして、機械学習部21は、ラベルyと出力データy´との誤差が小さくなるようにモデル15のNNの最適化を実行する。そして、機械学習部21は、すべての訓練データを用いた機械学習が完了した場合、または、誤差が閾値未満となった場合など、任意のタイミングで機械学習を終了し、モデル15の生成を完了する。なお、機械学習の手法は、公知の手法を採用することができる。
【0027】
分析部22は、データ選択部23、勾配計算部24、特徴量生成部25、データ表示部26を有し、モデル15の精度劣化の原因を分析する処理部である。
図5は、実施例1にかかる情報処理装置10による分析を説明する図である。
図5に示すように、分析部22は、ドメインシフトには、着目したデータに対する劣化したモデル15の損失の勾配と平行な方向と直交する方向が存在すると仮定する。つまり、分析部22は、2段階でドメインシフトが発生すると仮定し、勾配と直交する方向のドメインシフトを可視化して提示する。
【0028】
より詳細には、分析部22は、着目するデータに対して、特徴空間におけるそのデータの特徴量から始めて、そのモデル15の損失と直交する方向に曲線を引き、その曲線の近傍に特徴量が存在するデータを曲線が通る順に提示する。
【0029】
データ選択部23は、着目するデータを選択する処理部である。例えば、データ選択部23は、機械学習が完了したモデル15に、訓練データベース14を適用させて間違った訓練データを着目するデータとして選択する。また、データ選択部23は、機械学習が完了したモデル15に、適用先データベース16を適用させて間違った適用先データを着目するデータとして選択する。そして、データ選択部23は、選択した着目するデータ(以下では、特定データまたは対象データと記載する場合がある)を勾配計算部24に出力する。
【0030】
勾配計算部24は、特定データの特徴量およびモデル15の損失を計算する処理部である。具体的には、勾配計算部24は、モデル15に特定データを入力し、モデル15のNNの任意の層から特定データの特徴量を取得する。そして、勾配計算部24は、特徴空間において、特定データの損失を減少させる方向(勾配)と特定データの損失を増大させる方向(勾配)とを計算する。
【0031】
例えば、勾配計算部24は、モデル15の機械学習に用いる損失関数を微分することにより、勾配を計算する。また、勾配計算部24は、特定データの特徴量を微小に変化させた複数の特徴量を生成して特徴空間にプロットし、それらの特徴量の変化量を用いて勾配を計算することもできる。そして、勾配計算部24は、特定データ、特定データの特徴量、各勾配を特徴量生成部25に出力する。
【0032】
また、勾配計算部24は、後述する特徴量生成部25からの要求に応じて、各勾配の計算を計算して、特徴量生成部25に出力する。つまり、勾配計算部24は、特徴量生成部25によって微小変化された特徴量が生成されるたびに、当該特徴量の損失を減少させる方向と損失を増大させる方向とを計算する。
【0033】
特徴量生成部25は、損失が減少する方向よび損失が増加する方向に、特定データの特徴量を微小変化させた各特徴量を生成する処理部である。具体的には、特徴量生成部25は、特徴空間上で、特定データの特徴量をプロットし、勾配計算部24により計算された特定データの損失を増大させる方向に当該特徴量を微小変化させた第1特徴量を生成してプロットする。次に、特徴量生成部25は、第1特徴量の損失を増大させる方向を勾配計算部24により生成させ、特徴空間上で、損失を増大させる方向に第1特徴量を微小変化させた第2特徴量を生成してプロットする。このようにして、特徴量生成部25は、損失を増大させる方向に複数の特徴量を生成する。
【0034】
また、特徴量生成部25は、勾配計算部24により計算された損失を減少させる方向についても同様の処理を実行する。なお、変化させる量は、任意に設定することができる。
【0035】
データ表示部26は、特定データ以外の他の訓練データや適用先データの中から、特徴量生成部25により生成された各特徴量に近い実データを特定して、ユーザに提示する処理部である。例えば、データ表示部26は、特定データ以外の他の各訓練データや各適用先データである可視化候補データをモデル15に入力する。続いて、データ表示部26は、モデル15の任意の層から、各可視化候補データに対応する各特徴量を取得し、特徴空間上にマッピングする。
【0036】
そして、データ表示部26は、特徴空間上で、各可視化候補データの特徴量のうち、特徴量生成部25により生成された各特徴量との距離が最も近い各最近傍の可視化候補データの特徴量を特定する。そして、データ表示部26は、各最近傍の可視化候補データの特徴量に対応する訓練データまたは適用先データをユーザに提示する。
【0037】
このようにして、データ表示部26は、ドメインシフトの傾向を示すデータを選択して、ユーザに提示することができる。
【0038】
[処理の流れ]
図6は、実施例1にかかる処理の流れを示すフローチャートである。
図6に示すように、機械学習部21は、訓練データベース14を用いて、分析対象のモデル15の機械学習を実行する(S101)。
【0039】
機械学習が終了すると、分析部22は、訓練データベース14および適用先データベース16から、分析対象のデータである特定データを選択し(S102)、機械学習済みのモデル15を用いて、当該特定データの特徴量を計算する(S103)。
【0040】
そして、分析部22は、特徴空間で特定データに対する損失を増加させる向きベクトルを計算し(S104)、特定データの特徴量に向きベクトルを加算して新しい特徴量を生成する(S105)。ここで、分析部22は、所定数の特徴量がすべて生成されるまで(S106:No)、S104以降を繰り返す。
【0041】
その後、分析部22は、所定数の特徴量がすべて生成されると(S106:Yes)、特徴空間で特定データに対する損失を減少させる向きベクトルを計算し(S107)、特定データの特徴量に向きベクトルを加算して新しい特徴量をする(S108)。ここで、分析部22は、所定数の特徴量がすべて生成されるまで(S109:No)、S107以降を繰り返す。
【0042】
その後、分析部22は、所定数の特徴量がすべて生成されると(S109:Yes)、可視化候補のデータの特徴量を計算する(S110)。そして、分析部22は、生成された特徴量の近傍にある可視化候補のデータの特徴量を検索し(S111)、近傍の特徴量に対応するデータと分析対象である特定データを表示する(S112)。
【0043】
[具体例]
次に、
図7から
図17を用いて、上述した処理の具体例を説明する。
図7は、分析対象のモデル15を説明する図である。
図7に示すように、まず、訓練データベース14を用いて機械学習された分析対象の推定モデル(モデル15)を準備する。
【0044】
モデル15は、入力データxから2つの特徴量(z1,z2)を生成し、2つの特徴量を用いて出力データy´を出力するモデルである。このため、ここでは、
図7に示すように、2つの特徴量(z1,z2)を用いた2次元の特徴空間を例にして説明し、一例として、特徴空間では、右上にいくほどモデル15の性能が高くなり、左下ほどモデル15の性能が低くなるとする。
【0045】
なお、ここでは、機械学習部21によって、モデル15の機械学習が完了しているとする。すなわち、モデル15は、訓練データ(データx、ラベルy)のうちデータxが入力されると、データy´を出力し、ラベルyとデータy´との誤差が小さくなるようにNNの最適化が実行されている。
【0046】
次に、分析部22は、モデル15が分類できないことが分かっているデータを選択し、ラベルを付ける。
図8は、分析対象のモデル15への適用を説明する図である。
図8に示すように、分析部22は、適用先データベース16の適用先データのうちドメインシフトによりモデル15が新たに間違えた対象データ(特定データ)を選択し、対象データに対して正解ラベルを設定する。
【0047】
続いて、分析部22は、対象データの特徴量と損失を計算する。
図9は、特徴空間へのマッピングを説明する図である。
図9に示すように、分析部22は、選択した対象データをモデル15に入力し、モデル15が生成する第1の特徴量の一例である特徴量(z1,z2)を取得する。そして、分析部22は、特徴空間上に、取得した特徴量に対応する特徴量ztをプロットする。
【0048】
そして、分析部22は、特徴空間において、対象データの損失を減少させる方向を計算する。
図10は、対象データの損失を減少させる方向の計算を説明する図である。
図10に示すように、分析部22は、損失関数を微分することにより、損失を減少させる向きのベクトルv1を生成し、特徴空間にマッピングする。
【0049】
続いて、分析部22は、損失を減少させる方向に少し変化させた特徴量を生成し、再度損失を計算する。
図11は、微小変化させた特徴量のマッピングを説明する図である。
図11に示すように、分析部22は、ベクトルv1の向きに、特徴量ztを微小変化させた第2の特徴量の一例である特徴量zt1を生成してマッピングする。
【0050】
その後、分析部22は、
図8から
図11を一定数繰り返す。
図12は、対象データの損失を減少させる方向の計算を説明する図である。
図12に示すように、分析部22は、損失関数を微分することにより、損失を減少させる向きのベクトルv2を生成し、ベクトルv2の向きに、特徴量zt1を微小変化させた特徴量zt2を生成してマッピングする。
【0051】
また、分析部22は、損失を増加させる方向についても、
図8から
図11と同様の処理を実行する。
図13は、対象データの損失を増加させる方向の計算を説明する図である。例えば、
図13に示すように、分析部22は、損失関数を微分することにより、特徴量ztから損失を増加させる向きのベクトルv3を生成し、ベクトルv3の向きに、特徴量ztを微小変化させた特徴量zt3を生成してマッピングする。
【0052】
その後、分析部22は、微小に変化させた特徴量の生成が完了すると、特徴量ztに対応する対象データ以外の他の適用先データまたは訓練データの特徴量を計算する。
図14は、他の訓練データおよび適用先データの特徴量の計算を説明する図である。
図14に示すように、分析部22は、対象データ以外の各訓練データおよび各適用先データをモデル15に入力し、モデル15が生成する各特徴量を取得し、特徴空間上に、取得した各特徴量に対応する特徴量zsをプロットする。
【0053】
そして、分析部22は、対象データに基づき生成した各特徴量に最も近い実データの特徴量を検索する。
図15は、実データの特徴量の検索を説明する図である。
図15に示すように、分析部22は、特徴量zt、zt1、zt2、zt3のうち、元々存在するデータの特徴量zt以外の作り出した特徴量zt1、zt2、zt3を特定する。そして、分析部22は、最近傍の特徴量として、特徴量zt1の最も近くに位置する特徴量zs1、特徴量zt2の最も近くに位置する特徴量zs2、特徴量zt3の最も近くに位置する特徴量zs3を特定する。
【0054】
その後、分析部22は、対象データと最近傍の特徴量に対応する各データを表示する。
図16は、データ表示を説明する図である。
図16に示すように、分析部22は、特徴量ztに対応する対象データについては、適用先データベース16から取得する。また、分析部22は、最近傍の特徴量zs1、zs2、zs3それぞれに対応するデータを、訓練データベース14や適用先データベース16から取得する。そして、分析部22は、対象データおよび最近傍の特徴量に対応する各データを表示部12に出力する。
【0055】
この結果、分析部22は、ユーザが性能劣化を分析するための情報を出力することができる。
図17は、分析結果と対策を説明する図である。
図17に示すように、分析部22は、データである文字の傾きによって性能が劣化していることを可視化することができる。この場合、ユーザは、訓練データベース14について傾き方向のデータ拡張を行ってモデル15の再学習を実行することができる。
【0056】
[効果]
上述したように、情報処理装置10は、ドメインシフトなどにより、モデル15が間違えたデータに対して、その原因を示唆する情報を特定して、ユーザに提示することができる。
図18は、参考技術との比較を説明する図である。
図19は、効果を説明する図である。
【0057】
例えば、
図18の(a)に示すように、参考技術では、モデル15が間違った、問題のあるデータの画像Aのみを表示する。この手法では、画像Aの何に問題の原因を特定することができない。また、
図18の(b)に示すように、参考技術では、問題のないデータの画像Aと問題のあるデータの画像Aとを表示して、発生したドメインシフトを表示する。この手法では、色の変化と太さの変化が存在しているように見えるが、どちらが性能劣化に影響しているかを特定することができない。
【0058】
これらに対して、
図19に示すように、情報処理装置10は、問題のあるデータの画像Aとともに、当該問題のあるデータから損失が増大する方向および損失が減少する方向それぞれについて微小に変化させた各データを抽出して表示することができる。この結果、性能劣化の原因として、太さの変化が本質的であることを特定することができる。
【実施例2】
【0059】
ところで、上記実施例1では、NNを用いたモデル15を例にして説明したが、モデル15には様々な機械学習モデルを用いることができる。そこで、実施例2では、オートエンコーダと分析対象のモデル15とを組み合わせた例を説明する。
【0060】
図20は、オートエンコーダを適用した例を説明する図である。
図20に示すように、オートエンコーダの特徴空間におけるLOSS方向の曲線を得るための手段として、分析対象モデルの前段にオートエンコーダを挿入する。つまり、特徴空間として、データ全体に対して学習されたオートエンコーダの出力をモデル15の入力とした場合のオートエンコーダの潜在空間を使用する。
【0061】
このような構成において、機械学習部21は、訓練データベース14を用いて、オートエンコーダの機械学習と分析対象のモデル15の機械学習とを実行する。具体的には、機械学習部21は、オートエンコーダの機械学習が完了した後、分析対象のモデル15の機械学習を実行することもでき、オートエンコーダと分析対象のモデル15とを並行して機械学習を実行することもできる。
【0062】
例えば、機械学習部21は、ラベルyが付与された入力データxをエンコーダに入力して特徴量zを取得し、特徴量zをデコーダに入力して再構成データx´を生成する。そして、機械学習部21は、入力データxと再構成データx´との誤差が小さくなるように、オートエンコーダの機械学習を実行する。同様に、機械学習部21は、分析対象のモデル15のNNに、ラベルyが付与された入力データxを入力して出力結果y´を取得する。そして、機械学習部21は、ラベルyと出力結果y´との誤差が小さくなるように、分析対象のモデル15の機械学習を実行する。
【0063】
別例としては、機械学習部21は、オートエンコーダの学習時に入力データと再構成データの間の分析対象のモデル15の振る舞いの変化を小さくする制約を加えても良い。
【0064】
例えば、機械学習部21は、分析対象のモデル15のNNに、ラベルyが付与された入力データxを入力して出力結果y´を取得する。
【0065】
また、機械学習部21は、ラベルyが付与された入力データxをエンコーダに入力して特徴量zを取得し、特徴量zをデコーダに入力して再構成データx´を生成する。その後、機械学習部21は、オートエンコーダの再構成データx´を分析対象のモデル15のNNに入力して出力結果y´´を取得する。
【0066】
このとき、機械学習部21は、入力データxと再構成データx´との誤差が小さくなるとともに、入力データxに基づいて得られた出力結果y´と入力データxの再構成データx´に基づいて得られた出力結果y´´との誤差が小さくなるように、オートエンコーダの機械学習を実行することもできる。
【0067】
次に、機械学習済みのオートエンコーダを用いた分析について説明する。
図21は、オートエンコーダを用いた分析を説明する図である。
図21に示すように、分析部22は、モデル15が間違った訓練データまたは適用先データを選択し、オートエンコーダのエンコーダに入力して特徴量za(z1,z2)を取得する。
【0068】
そして、分析部22は、実施例1と同様の手法により、損失が減少する方向に特徴量zaを微小変化させた特徴量を生成するとともに、損失が増加する方向に特徴量zaを微小変化させた特徴量を生成して、勾配の方向を特定する。その後、分析部22は、生成した各特徴量について、最も近い距離に位置する最近傍の実データの特徴量z1、z2、z3、z4を特定する。この結果、分析部22は、特徴量za、z1、z2、z3、z4のそれぞれに対応する実データ(訓練データまたは適用先データ)を、勾配方向の順番でユーザに提示する。
【0069】
ここで、分析部22は、使用したオートエンコーダ等で生成されたデータを、さらにユーザに提示することもできる。例えば、分析部22は、特徴空間上で、特徴量za、z1、z2、z3、z4を線形補間した直線上に位置する4つの特徴量(
図21では白丸)を取得する。続いて、分析部22は、これら4つの特徴量それぞれをオートエンコーダのデコーダに入力し、それぞれに対応する再構成データ(疑似データ)を生成する。そして、分析部22は、上記特徴量に対応する実データと各再構成データとを、線形補間した直線上に位置する順で、ユーザに提示する。
【0070】
このように、オートエンコーダが、特徴空間内である程度均一に分散していてデータが連続しており、所望の特徴量を持つ疑似データを生成することができる機能を利用して、情報処理装置10は、提示するデータの特徴が類似したものになりやすく、分析しやすいデータをユーザに提示することができる。また、情報処理装置10は、データを補間できるためデータが存在しない空間も滑らかにつなげて提示することができる。なお、オートエンコーダは、自己符号化器の一例であり、他にもVAE(Variational Autoencoder)やBidirectiona GAN(Generative Adversarial Networks)などの生成モデルを採用することもできる。
【実施例3】
【0071】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【0072】
[データや数値等]
上記実施例で用いたデータ例、数値例、閾値、表示例、モデル15のNN層の数、特徴空間の次元数等は、あくまで一例であり、任意に変更することができる。また、モデル15として、訓練データとして画像データを用いた画像分類以外にも、音声や時系列データの分析などにも用いることができる。
【0073】
また、勾配方向に生成した特徴量の最近傍データに限らず、当該特徴量から所定距離の範囲内にあるデータを可視化することもできる。また、分析には、訓練データと適用先データの両方を用いる場合に限らず、いずれか一方のみを用いることもできる。
【0074】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。なお、データ選択部23は、取得部の一例であり、勾配計算部24と特徴量生成部25とデータ表示部26は、提示部の一例である。
【0075】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0076】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0077】
[ハードウェア]
図22は、ハードウェア構成例を説明する図である。
図22に示すように、情報処理装置10は、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、
図4に示した各部は、バス等で相互に接続される。
【0078】
通信装置10aは、ネットワークインタフェースカードなどであり、他の装置との通信を行う。HDD10bは、
図4に示した機能を動作させるプログラムやDBを記憶する。
【0079】
プロセッサ10dは、
図4に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、
図4等で説明した各機能を実行するプロセスを動作させる。例えば、このプロセスは、情報処理装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、機械学習部21、分析部22等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、機械学習部21、分析部22等と同様の処理を実行するプロセスを実行する。
【0080】
このように、情報処理装置10は、プログラムを読み出して実行することで分析方法を実行する情報処理装置として動作する。また、情報処理装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、情報処理装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【0081】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【符号の説明】
【0082】
10 情報処理装置
11 通信部
12 表示部
13 記憶部
14 訓練データベース
15 モデル
16 適用先データベース
20 制御部
21 機械学習部
22 分析部
23 データ選択部
24 勾配計算部
25 特徴量生成部
26 データ表示部