(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-08-05
(45)【発行日】2024-08-14
(54)【発明の名称】情報処理方法、プログラムおよび情報処理装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20240806BHJP
G06F 18/27 20230101ALI20240806BHJP
【FI】
G06N20/00
G06F18/27
(21)【出願番号】P 2023184980
(22)【出願日】2023-10-27
【審査請求日】2024-01-22
(32)【優先日】2023-07-31
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】523409751
【氏名又は名称】合同会社EigenBeats
(74)【代理人】
【識別番号】100114557
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】中西 崇文
【審査官】佐藤 直樹
(56)【参考文献】
【文献】特開2023-104701(JP,A)
【文献】特開2022-010749(JP,A)
【文献】特開2019-096247(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06F 18/27
(57)【特許請求の範囲】
【請求項1】
既存の機械学習モデルに入力された説明データベクトルと、前記機械学習モデルから出力された目的データベクトルとを関連づけて複数組記録し、
前記説明データベクトルを複数組配列した説明行列と、前記目的データベクトルを前記説明データベクトルと対応する順番で配列した目的行列の一般化逆行列とのベクトル積である解釈行列を算出し、
前記解釈行列に関する図表を出力する
処理をコンピュータが実行する情報処理方法。
【請求項2】
前記目的行列の一般化逆行列は、前記目的行列のムーア・ペンローズの一般化逆行列である
請求項1に記載の情報処理方法。
【請求項3】
前記図表は、前記説明データベクトルの個々の要素に対応する項目名を第1軸に、前記解釈行列を構成する列ごとの要素の値を第2軸に使用したグラフである
請求項1に記載の情報処理方法。
【請求項4】
説明データベクトルを取得し、
前記目的データベクトルのうち、局所的特徴重要度を表示する対象である一つの要素が1、他の要素が0である単位目的ベクトルを生成し、
前記図表は、前記説明データベクトルの個々の要素に対応する項目名を第1軸に、(1)式により算出される局所的特徴重要度ベクトルを構成する要素の値を第2軸に使用して表示したグラフである
請求項1に記載の情報処理方法。
【数1】
【請求項5】
前記解釈行列と、前記目的データベクトルの一つの要素が1、他の要素が0である第1単位ベクトルとのベクトル積である第1典型例ベクトルを算出し、
前記解釈行列と、前記目的データベクトルの他の要素が1、他の要素が0である第2単位ベクトルとのベクトル積である第2典型例ベクトルを算出し、
前記図表は、前記説明行列から選択されたそれぞれの前記説明データベクトルについて、前記第1典型例ベクトルとの類似度を横軸に、前記第2典型例ベクトルとの類似度を縦軸にプロットした後にカーネル密度推定を行なった分布図である
請求項1に記載の情報処理方法。
【請求項6】
前記説明データベクトルは、前記機械学習モデルの機械学習に使用した訓練データにおける説明データと同一であり、
前記図表は、
前記訓練データにおける正解データが前記第1典型例ベクトルを算出した際の一つの要素に対応する説明データを使用して作成した第1分布図と、前記訓練データにおける正解データが前記第2典型例ベクトルを算出した際の一つの要素に対応する説明データを使用して作成した第2分布図とを、重畳表示した図である
請求項5に記載の情報処理方法。
【請求項7】
前記説明データベクトルは、前記機械学習モデルの機械学習に使用した訓練データにおける説明データと同一である
請求項1から請求項5のいずれか一つに記載の情報処理方法。
【請求項8】
既存の機械学習モデルに入力された説明データベクトルと、前記機械学習モデルから出力された目的データベクトルとを関連づけて複数組記録し、
前記説明データベクトルを複数組配列した説明行列と、前記目的データベクトルを前記説明データベクトルと対応する順番で配列した目的行列の一般化逆行列とのベクトル積である解釈行列を算出し、
前記解釈行列に関する図表を出力する
処理をコンピュータに実行させるプログラム。
【請求項9】
制御部を備える情報処理装置であって、
前記制御部は、
既存の機械学習モデルに入力された説明データベクトルと、前記機械学習モデルから出力された目的データベクトルとを関連づけて複数組記録し、
前記説明データベクトルを複数組配列した説明行列と、前記目的データベクトルを前記説明データベクトルと対応する順番で配列した目的行列の一般化逆行列とのベクトル積である解釈行列を算出し、
前記解釈行列に関する図表を出力する
情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理方法、プログラムおよび情報処理装置に関する。
【背景技術】
【0002】
機械学習モデルを用いて画像を分類するとともに、分類に寄与した領域がどこであるかをヒートマップにより表示するシステムが提案されている(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
機械学習により生成された機械学習モデルはブラックボックスになっており、ユーザが振る舞いを解釈することは難しい。
【0005】
一つの側面では、生成済の機械学習モデルの振る舞いをユーザが解釈することを支援する情報処理方法等の提供を目的とする。
【課題を解決するための手段】
【0006】
情報処理方法は、既存の機械学習モデルに入力された説明データベクトルと、前記機械学習モデルから出力された目的データベクトルとを関連づけて複数組記録し、前記説明データベクトルを複数組配列した説明行列と、前記目的データベクトルを前記説明データベクトルと対応する順番で配列した目的行列の一般化逆行列とのベクトル積である解釈行列を算出し、前記解釈行列に関する図表を出力する処理をコンピュータが実行する。
【発明の効果】
【0007】
一つの側面では、生成済の機械学習モデルの振る舞いをユーザが解釈することを支援する情報処理方法等を提供できる。
【図面の簡単な説明】
【0008】
【
図2】解釈行列A†の算出方法を説明する説明図である。
【
図3】情報処理装置の構成を説明する説明図である。
【
図4】解釈行列A†を算出するプログラムの処理の流れを説明するフローチャートである。
【
図5】類似性分布図の作成方法の概要を説明する説明図である。
【
図6】類似性分布図を生成するプログラムの処理の流れを説明するフローチャートである。
【
図7】説明-目的DBのレコードレイアウトを説明する説明図である。
【
図8】大局的特徴重要度グラフを説明する説明図である。
【
図13】既存モデルに関する局所的特徴重要度を説明する説明図である。
【
図14】既存モデルに関する類似度分布図の例である。
【発明を実施するための形態】
【0009】
[実施の形態1]
様々な機械学習アルゴリズムを利用して、説明データの入力を受け付けて目的データを出力する機械学習モデルが生成されている。生成された機械学習モデルは通常はブラックボックスであり、説明データの入力から目的データの出力に至る判断過程を人間が解釈することは困難である。
【0010】
しかしながら、機械学習モデルを実社会での意思決定に活用するにあたっては、機械学習モデルの判断過程を人間が解釈できることが重要である。たとえば、出力された目的データが人間の常識とは大きく乖離しているように見える場合、機械学習モデルの判断過程を人間が適切に解釈できれば、その目的データおよび機械学習モデルをどのように扱うべきであるかも人間が適切に判断できる。
【0011】
機械学習モデルから出力された目的データに関して、出力された理由を説明する技術はXAI(Explainable AI:説明可能なAI)と呼ばれている。たとえば機械学習モデルの局所的な挙動の説明に適したLIME(Local Interpretable Model Agnostic Explanations)、および、説明変数の重要度の評価に適したSHAP(Shapley Additive Explanation)等のXAI技術が知られている。
【0012】
本実施の形態においては、機械学習モデルの振る舞いを様々な観点で解釈できるようにユーザを支援する情報処理方法を説明する。以下に説明する情報処理方法を、AIME(Approximate Inverse Model Explanations)と称する。
【0013】
図1は、AIMEの概要を説明する説明図である。
図1を使用して、生成済の機械学習モデルである既存モデル21の振る舞いを、AIMEを用いて解釈する手順を説明する。既存モデル21は、説明データベクトルxnの入力を受け付けて、目的データベクトルynを出力する機械学習モデルである。
【0014】
既存モデル21は、たとえばCNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)または、ランダムフォレスト等の任意の教師あり機械学習アルゴリズムを用いて生成された機械学習モデルである。既存モデル21は、たとえば強化学習またはGAN(Generative Adversarial Network)等の任意の教師無し機械学習アルゴリズムを用いて生成された機械学習モデルであってもよい。
【0015】
説明データベクトルxnを既存モデル21に入力して、目的データベクトルynを取得する手順が複数回繰り返される。既存モデル21が教師あり機械学習により生成された場合、説明データベクトルxnには機械学習に使用された訓練データの一部または全部が使用されてもよい。説明データベクトルxnは、ランダムに、または所定のルールに基づいて生成されてもよい。
【0016】
複数の説明データベクトルxnを行方向に並べることにより、二次元行列である説明行列Xが生成される。同様に、複数の目的データベクトルynを行方向に並べることにより、二次元行列である目的行列Yが生成される。ここで、説明データベクトルxnの配列順序と、対応する目的データベクトルynの配列順序とは、同一である。
【0017】
なお、以後のプロセスを実行するためには、目的データベクトルynは線形独立である必要がある。すなわち、目的行列Yと、目的行列Yの転置行列とのベクトル積は、正則行列である必要がある。
【0018】
説明行列Xと目的行列Yとに基づいて、(1)式に示す様に目的行列Yとのベクトル積が説明行列Xに等しい行列である解釈行列A†が算出される。解釈行列A†を算出する方法の詳細については後述する。
X = A† Y ‥‥‥ (1)
【0019】
解釈行列A†を図表化することにより、既存モデル21の全般的な振る舞いを示す大局的特徴重要度グラフ41、個々の目的データベクトルynの解釈を示す局所的特徴重要度グラフ42、および、説明データベクトルxn同士の類似度の分布を示す類似性分布
図43等の図表が作成される。ユーザは、これらの図表を用いることにより、既存モデル21の振る舞いを解釈できる。大局的特徴重要度グラフ41、局所的特徴重要度グラフ42および類似性分布
図43の詳細については、後述する。
【0020】
図2は、解釈行列A†の算出方法を説明する説明図である。以下の説明において、Nは、既存モデル21に説明データベクトルxnを入力して目的データベクトルynを取得する処理を繰り返した回数を示す自然数である。nは何回目に既存モデル21に入力、または既存モデル21から出力されたベクトルであるかを示す自然数である。
【0021】
説明データベクトルxnは、Ex1nからExLnまでのL個の要素を有する。目的データベクトルynは、Ob1nからObMnまでのM個の要素を有する。ここで、LおよびMは自然数である。
図2においては、n=2である説明データベクトルxnおよび目的データベクトルynを破線で囲んで示す。
【0022】
前述の通り、N回の処理で得られたN個の説明データベクトルxnを行方向に並べることにより、二次元行列である説明行列Xが作成される。説明行列Xは、L行N列の二次元行列である。同様に、N個の目的データベクトルynを行方向に並べることにより、二次元行列である目的行列Yが生成される。目的行列Y†は、M行N列の二次元行列である。
【0023】
目的行列Yに関しては、ムーア・ペンローズの一般化逆行列であるY†が算出される。以下の説明ではY†を目的逆行列Y†と記載する場合がある。目的逆行列Y†は、(2)式により算出される。目的逆行列Y†は、N行M列の行列である。
Y†=YT(Y YT)-1 ‥‥‥ (2)
【0024】
解釈行列A†は、説明行列Xと目的逆行列Y†とのベクトル積である。解釈行列A†を算出する式を(3)式に示す。
A† = X Y† ‥‥‥ (3)
【0025】
解釈行列A†は、L行M列、すなわち説明データベクトルxnの要素数と同一の行数と、目的データベクトルynの要素数と同一の列数を有する二次元行列である。解釈行列A†のa行b列の要素は、目的データベクトルynのb番目の要素に対する説明データベクトルxnのa番目の要素の影響力を示す。
【0026】
以上により、既存モデル21を生成したアルゴリズムおよび訓練データ等の情報が無くても、既存モデル21を利用できる環境があれば解釈行列A†を生成できる。すなわち、第3者が生成したブラックボックス状態の既存モデル21であっても、解釈行列A†を生成できる。
【0027】
参考のため、(1)式および(2)式から(3)式を導出する式変形の概要を下記に示す。まず、(1)式の両辺に目的行列Yの転置行列を右から掛けて(4)式を得る。
X YT = A† Y YT ‥‥‥ (4)
【0028】
前述のとおり、目的行列Yと、目的行列Yの転置行列とのベクトル積は、正則行列であるため、逆行列を算出できる。この逆行列を(4)式の両辺に右から掛けて(5)式を得る。
X YT(Y YT)-1 = A†(Y YT)(Y YT)-1 = A† ‥‥‥ (5)
【0029】
(5)式の左辺と右辺とを入れ替えた後に、右辺に(2)式を代入すると、(6)式が得られる。(6)式の両端より、(2)式が導出されている。
A† = X YT(Y YT)-1 = X Y† ‥‥‥ (6)
【0030】
図3は、情報処理装置10の構成を説明する説明図である。情報処理装置10は、制御部11、主記憶装置12、補助記憶装置13、通信部14、表示部15、入力部16、読取部19およびバスを備える。
【0031】
制御部11は、本実施の形態のプログラムを実行する演算制御装置である。制御部11には、一または複数のCPU(Central Processing Unit)、GPU(Graphics Processing Unit)、TPU(Tensor Processing Unit)またはマルチコアCPU等が使用される。制御部11は、バスを介して情報処理装置10を構成するハードウェア各部と接続されている。
【0032】
主記憶装置12は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等の記憶装置である。主記憶装置12には、制御部11が行なう処理の途中で必要な情報および制御部11で実行中のプログラムが一時的に保存される。
【0033】
補助記憶装置13は、SRAM、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置13には、既存モデル21、制御部11に実行させるプログラム、およびプログラムの実行に必要な各種データが保存される。既存モデル21は、ネットワークを介して接続された外部の記憶装置に保存されていてもよい。
【0034】
通信部14は、情報処理装置10とネットワークとの間の通信を行なうインターフェイスである。表示部15は、たとえば液晶表示装置または有機EL(Electro Luminescence)表示装置である。入力部16は、たとえばキーボード、マウス、トラックボールまたはマイク等の入力デバイスである。
【0035】
可搬型記録媒体96は、たとえばUSB(Universal Serial Bus)メモリ、CD-ROM(Compact Disc Read only memory)、光磁気ディスク媒体、その他の光ディスク媒体またはSDメモリカード等である。可搬型記録媒体96には、AIMEを実現するプログラム97が記憶されている。
【0036】
読取部19は、たとえばUSBコネクタ、CD-ROMドライブまたはSDメモリリーダ等の、可搬型記録媒体96を接続可能なインターフェイスである。半導体メモリ98は、プログラム97を記憶しており、情報処理装置10の内部に取り付け可能なメモリである。
【0037】
情報処理装置10は、汎用のパソコン、タブレット、大型計算機、大型計算機上で動作する仮想マシン、または、量子コンピュータである。情報処理装置10は、分散処理を行なう複数のパソコン、または大型計算機等のハードウェアにより構成されても良い。情報処理装置10は、クラウドコンピューティングシステムにより構成されても良い。情報処理装置10は、連携して動作する複数のパソコン、または大型計算機等のハードウェアにより構成されてもよい。
【0038】
プログラム97は、可搬型記録媒体96に記録されている。制御部11は、読取部19を介してプログラム97を読み込み、補助記憶装置13に保存する。また制御部11は、半導体メモリ98に記憶されたプログラム97を読出してもよい。さらに、制御部11は、通信部14および図示しないネットワークを介して接続される図示しない他のサーバコンピュータからプログラム97をダウンロードして補助記憶装置13に保存してもよい。
【0039】
プログラム97は、情報処理装置10の制御プログラムとしてインストールされ、主記憶装置12にロードして実行される。本実施の形態のプログラム97は、プログラム製品の例示である。
【0040】
図4は、解釈行列A†を算出するプログラムの処理の流れを説明するフローチャートである。制御部11は、n番目に既存モデル21に入力する説明データベクトルxnを決定する(ステップS501)。既存モデル21の機械学習に使用された訓練データを入手できる場合、既存モデル21は訓練データから説明データベクトルxnを抽出してもよい。
【0041】
制御部11は、ランダムに、または所定のルールに基づいて説明データベクトルxnを生成してもよい。制御部11が説明データベクトルxnを生成する場合には、既存モデル21の利用が想定されている範囲で説明データベクトルxnを生成することが望ましい。たとえば、「人間の年齢が200歳」などの、想定外の要素を含む説明データベクトルxnを生成した場合には、既存モデル21の振る舞いを正しく解釈することはできなくなる。
【0042】
同様に複数の説明データベクトルxnの分布は、既存モデル21の利用が想定されている範囲と一致させることが望ましい。たとえば一般的な成人の行動を予測する既存モデル21である場合、「人間の年齢」の要素は人口動態などのデータの分布に近付けることが望ましい。
【0043】
制御部11は、ステップS501で取得した説明データベクトルxnを既存モデル21に入力して、目的データベクトルynを取得する(ステップS502)。制御部11は、説明データベクトルxnと目的データベクトルynとを関連づけて、主記憶装置12または補助記憶装置13に記録する(ステップS503)。
【0044】
制御部11は、説明データベクトルxnと目的データベクトルynとの組の生成を終了するか否かを判定する(ステップS504)。たとえば制御部11は、訓練データに記録された説明データベクトルxnの処理を終了した場合に、ステップS504で終了すると判定する。制御部11は、あらかじめ定められた所定の数の組を生成した場合に、処理を終了すると判定してもよい。
【0045】
終了しないと判定した場合(ステップS504でNO)、制御部11はステップS501に戻る。終了すると判定した場合(ステップS504でYES)、制御部11は、ステップS503で記録したデータに基づいて説明行列Xを生成する(ステップS505)。制御部11は、ステップS503で記録したデータに基づいて目的行列Yを生成する(ステップS506)。制御部11は、目的行列Yに基づいてムーア・ペンローズの一般化逆行列である目的逆行列Y†を算出する(ステップS507)。制御部11は、説明行列Xと目的逆行列Y†とのベクトル積である解釈行列A†を算出する(ステップS508)。制御部11は処理を終了する。
【0046】
生成した解釈行列A†を図表化して、既存モデル21の振る舞いを解釈する方法の概要を以下に説明する。
【0047】
[大局的特徴重要度]
大局的特徴重要度は、既存モデル21から出力される特定の予測結果に対して、説明データベクトルxnを構成する各要素が寄与する程度を意味する。ユーザは、可視化された大局的特徴重要度に基づいて、既存モデル21の全般的な振る舞いを把握できる。
【0048】
前述の通り解釈行列A†のa行b列の要素は、目的データベクトルynのb番目の要素に対する説明データベクトルxnのa番目の要素の影響力を示す。たとえば説明データベクトルxnを構成する各要素に対応する項目名を第1の軸に、解釈行列A†の任意の列の値を第2の軸にそれぞれ使用した棒グラフまたは折れ線グラフ等により、説明データベクトルxnを構成する各要素が目的データベクトルynのうちの特定の項目に与える影響の度合いを可視化できる。大局的特徴重要度を可視化する図表の具体例については後述する。
【0049】
[代表推定インスタンス]
代表推定インスタンスx*は、既存モデル21から出力される目的データベクトルynが特定の状態になる理想的な、または、典型的な説明データベクトルxnを意味する。代表推定インスタンスx*は、説明データベクトルxnと同一の要素数を有するベクトルである。
【0050】
代表推定インスタンスx*は、解釈行列A†と目的データベクトルynとのベクトル積により算出される。代表推定インスタンスx*を算出する式を(7)式に示す。
x* = A† yn ‥‥‥ (7)
【0051】
以下の説明においては、目的データベクトルynが、k番目の要素は1、他の要素は0である単位目的ベクトルyukである場合を例にして説明する。kは、目的データベクトルynの要素数以下の自然数である。目的データベクトルynが単位目的ベクトルyukである場合の代表推定インスタンスx*を算出する式を(8)式に、単位目的ベクトルyukのi番目の要素yuk(i)の定義を(9)式にそれぞれ示す。
【0052】
【0053】
ユーザは、代表推定インスタンスx*に基づいて、特定の目的データベクトルynが出力される場合の説明データベクトルxnの各項目の重要度を把握できる。さらにユーザは、代表推定インスタンスx*に基づいて、既存モデル21の振る舞いを解釈するための手がかりを得ることができる。代表推定インスタンスx*の具体例については、後述する。
【0054】
[局所的特徴重要度]
局所的特徴重要度ベクトルLは、特定の説明データベクトルxnを構成する各要素が、既存モデル21から出力された目的データベクトルynに寄与する程度を意味する。局所的特徴重要度ベクトルLは、説明データベクトルxnと同一の要素数を有するベクトルである。
【0055】
以下の説明では、特定の説明データベクトルxnを対象説明ベクトルxoと記載する。対象説明ベクトルxoは、訓練データに含まれているデータであっても、訓練データとは別に創作されたデータであってもよい。目的データベクトルynが単位目的ベクトルyukである場合を例にして説明する。局所的特徴重要度ベクトルLは、(10)式により算出される。
【0056】
【0057】
たとえば局所的特徴重要度ベクトルLを構成する各要素に対応する項目名、すなわち、説明データベクトルxnを構成する各要素に対応する項目名を第1の軸に、局所的特徴重要度ベクトルLを構成する各要素の値を第2の軸にそれぞれ使用した棒グラフまたは折れ線グラフ等により、局所的特徴重要度ベクトルLを可視化できる。局所的特徴重要度ベクトルLを可視化する図表の具体例については後述する。
【0058】
ユーザは局所的特徴重要度ベクトルLに基づいて説明データベクトルxnの入力を受け付けた既存モデル21から目的データベクトルynが出力された理由を解釈できる。ユーザは、局所的特徴重要度ベクトルLに基づいて目的データベクトルynに影響を与える説明データベクトルxnの要素を把握することもできる。局所的特徴重要度ベクトルLの具体例については、後述する。
【0059】
[類似性分布図]
図5は、類似性分布
図43の作成方法の概要を説明する説明図である。最初に、(8)式に基づいて、第1典型例ベクトルと第2典型例ベクトルとの2つの代表推定インスタンスx*が算出される。第1典型例ベクトルを算出する際と、第2典型例ベクトルを算出する際とでは、異なるkが用いられる。
【0060】
説明行列Xから特定の条件を満たす説明データベクトルxnが選択される。たとえば、説明データベクトルxnに機械学習に使用された訓練データが使用されている場合、正解データが第1典型例ベクトルを算出した際の単位目的ベクトルyukに対応する説明データベクトルxnが選択されることが望ましい。既存モデル21から出力される目的データベクトルynのうち、k番目の要素が所定の閾値よりも大きくなるような説明データベクトルxnが選択されてもよい。
【0061】
選択された説明データベクトルxnについて、第1典型例ベクトルとの類似度である第1類似度が算出される。類似度には、たとえば説明データベクトルxnと第1典型例ベクトルとのユークリッド距離、マンハッタン距離またはハミング距離等の任意の定義によるベクトル間距離の逆数を使用できる。類似度には、たとえばコサイン類似度が使用されてもよい。
【0062】
同様にして、選択された説明データベクトルxnと、第2典型例ベクトルとの類似度である第2類似度とが算出される。第1類似度の値をx軸に、第2類似度の値をy軸に使用して、それぞれの説明データベクトルxnが二次元のグラフ上にプロットされる。
【0063】
プロットされたデータに対してたとえばRBFカーネルを適用するカーネル密度推定が行なわれ、滑らかな類似性分布
図43が生成される。ユーザは類似性分布
図43により、選択された説明データベクトルxnに関する既存モデル21の振る舞いを直感的に認識できる。なお、カーネル密度推定は行なわれず、個々のプロットが直接表示されてもよい。
【0064】
個々の説明データベクトルxnのプロットを行なう際に、カーネル密度推定が行なわれてもよい。それぞれのプロットを重ね合わせることにより、滑らかな類似性分布
図43が生成される。
【0065】
複数の条件でそれぞれ選択された説明データベクトルxnを用いて作成された類似性分布
図43が重畳表示されてもよい。3つの代表推定インスタンスx*を使用して、立体的な類似性分布
図43が生成されてもよい。類似性分布
図43の具体例については、後述する。
【0066】
図6は、類似性分布
図43を生成するプログラムの処理の流れを説明するフローチャートである。制御部11は、第1の説明データベクトルxnに関する指定を受け付ける(ステップS521)。たとえば制御部11は、kの指定を受け付けて、単位目的ベクトルyukを第1の説明データベクトルxnに使用する。この単位目的ベクトルyukは、第1単位ベクトルの例示である。制御部11は、(7)式に基づいて代表推定インスタンスx*を算出する。制御部11は、算出した代表推定インスタンスx*を第1典型例ベクトルに使用する(ステップS522)。
【0067】
制御部11は、第2の説明データベクトルxnに関する指定を受け付ける(ステップS523)。たとえば制御部11は、kの指定を受け付けて、単位目的ベクトルyukを第2の説明データベクトルxnに使用する。この単位目的ベクトルyukは、第2単位ベクトルの例示である。制御部11は、(7)式に基づいて代表推定インスタンスx*を算出する。制御部11は、算出した代表推定インスタンスx*を第2典型例ベクトルに使用する(ステップS524)。
【0068】
制御部11は、説明行列Xから所定の条件に合う説明データベクトルxnを一つ選択する(ステップS525)。制御部11は、ステップS525で選択した説明データベクトルxnと、ステップS522で算出した第1典型例ベクトルとの類似度を算出する(ステップS526)。制御部11は、ステップS525で選択した説明データベクトルxnと、ステップS524で算出した第2典型例ベクトルとの類似度を算出する(ステップS527)。制御部11は、ステップS526で算出した類似度と、ステップS527で算出した類似度とを関連づけて、主記憶装置12または補助記憶装置13に記録する(ステップS528)。
【0069】
制御部11は、類似度の算出を終了するか否かを判定する(ステップS529)。具体的には、たとえば制御部11は説明行列Xのうち、所定の条件を満たす説明データベクトルxnの処理を終了した場合に、類似度の算出を終了すると判定する。制御部11は、類似度の算出を所定の回数繰り返した場合に、類似度の算出を終了すると判定してもよい。
【0070】
終了しないと判定した場合(ステップS529でNO)、制御部11はステップS525に戻る。終了すると判定した場合(ステップS529でYES)、制御部11は、ステップS528で記録したそれぞれのデータについて、第1典型例ベクトルとの類似度を第1軸に、第2典型例ベクトルとの類似度を第2軸に使用した散布図を作成する(ステップS530)。
【0071】
制御部11は、ステップS530で作成した散布図に対してカーネル密度推定を行ない、散布図の各プロットの分布を滑らかにする(ステップS531)。以上により、類似性分布
図43が完成する。制御部11は、完成した類似性分布
図43を表示する(ステップS532)。その後、制御部11は処理を終了する。
【0072】
[具体例1:タイタニックデータセット]
「1912年に北大西洋で氷山に沈没したタイタニック号への乗客者の生存状況」をまとめた、タイタニックデータセットを訓練データに使用して生成された既存モデル21を解釈する例を説明する。
【0073】
既存モデル21は、乗客に関する12要素の説明データベクトルxnを入力した場合に、その乗客の生存確率および非生存確率をそれぞれ出力するように訓練された学習モデルである。教師あり機械学習による機械学習モデルの生成手法は公知であるため、生成方法については説明を省略する。説明データベクトルxnの要素を表1に示す。
【0074】
【0075】
表1において、一等船室からS港発までの八項目は、YESが1、NOが0の二値で表現されている。
【0076】
図7は、説明-目的DB31のレコードレイアウトを説明する説明図である。説明-目的DB31は、No.フィールド、説明データベクトルフィールド、および、目的データベクトルフィールドを有する。説明データベクトルフィールドは、Ageフィールド、SibSpフィールドおよびParchフィールド等、表1に示す説明データベクトルxnの各要素に対応するサブフィールドを有する。目的データベクトルフィールドは、生存確率フィールドおよび非生存確率フィールドを有する。
【0077】
No.フィールドには、1からNまでの連番が記録されている。説明データフィールドの各サブフィールドには、説明データベクトルxnの要素が記録されている。生存確率フィールドには、説明データベクトルxnの属性を有する乗客が生存する確率が記録されている。非生存確率フィールドには、説明データベクトルxnの属性を有する乗客が生存しない確率が記録されている。それぞれのレコードについて、生存確率フィールドに記録された値と、非生存確率フィールドに記録された値の合計は1である。
【0078】
制御部11は、
図4を使用して説明したプログラムのステップS503において、説明-目的DB31に一つのレコードを追加する。
図7の破線で囲んだ部分は、
図2に示す説明行列Xの転置行列になっている。
図7の実線で囲んだ部分は、
図2に示す目的行列Yの転置行列になっている。
【0079】
図8は、大局的特徴重要度グラフ41を説明する説明図である。
図8の上側に、
図4を使用して説明したプログラムのステップS508で算出された解釈行列A†を模式的に示す。解釈行列A†は、12行2列の行列である。解釈行列A†の要素の縦方向の番号、すなわち3文字目は、16進数で示す。すなわちAは10を、Bは11を、Cは12を示す。
【0080】
前述の通り解釈行列A†のa行b列の要素は、目的データベクトルynのb番目の要素に対する説明データベクトルxnのa番目の要素の影響力を示す。したがって、AD11は乗客が生存することに対する乗客の年齢の影響力を示し、AD12は乗客が生存しないことに対する乗客の年齢の影響力を示す。
【0081】
図8の下側は、大局的特徴重要度グラフ41を示す。縦軸は、説明データベクトルxnの項目名を示す。横軸は、解釈行列A†のそれぞれの要素の値を示す。左下がりのハッチングは、解釈行列A†の左側の列の値、すなわち乗客が生存することに対する各要素の影響力を示す。右下がりのハッチングは、解釈行列A†の右側の列の値、すなわち乗客が生存しないことに対する各要素の影響力を示す。
【0082】
図8より、同乗者数Aは乗客の生存可否に殆ど影響していない。したがって、乗客が生存するか否かを予測するためには、同乗者数Aのデータは不要であることがわかる。ユーザは、たとえば説明変数から同乗者数Aを削除することにより、予測精度に影響を与えることなく既存モデル21の計算量を削減できる。
【0083】
同じく
図8より、乗客が生存することに大きく影響する要素は、乗客が女性であることであり、乗客が生存しないことに大きく影響する要素は、乗客が男性であることである。乗客の性別は、それ以外の要素にくらべて生存するか否かに大きく影響していることがわかる。
【0084】
表2は、(8)式に基づいて算出された生存者および非生存者のそれぞれに関する代表推定インスタンスを示す。
【0085】
【0086】
表2より、典型的な生存者は比較的高い旅客運賃の女性であり、典型的な非生存者は比較的安い旅客運賃の男性であることがわかる。
【0087】
次に、局所的特徴重要度の例を説明する。局所的特徴重要度を算出するにあたり、1997年公開の映画タイタニックの登場人物にちなんで生存者であるRoseおよび非生存者であるJackの二人の対象説明ベクトルxoを創作した。創作した対象説明ベクトルxoを表3に示す。
【0088】
【0089】
図9は、局所的特徴重要度グラフ42の例である。(10)式に基づいて算出した、Roseが生存することに関する局所的特徴重要度ベクトルLを
図9Aの局所的特徴重要度グラフ42に示す。単位目的ベクトルyukには、(1,0)の転置行列を使用した。縦軸は、対象説明ベクトルxoの項目名を示す。横軸は、局所的特徴重要度ベクトルLのそれぞれの要素の値を示す。
図9Aによると、Roseが生存する第1の理由は女性であることであり、第2の理由は一等船室の乗客であることである。
【0090】
(10)式に基づいて算出した、Jackが生存しないことに関する局所的特徴重要度ベクトルLを
図9Bの局所的特徴重要度グラフ42に示す。単位目的ベクトルyukには、(0,1)の転置行列を使用した。縦軸は、対象説明ベクトルxoの項目名を示す。横軸は、局所的特徴重要度ベクトルLのそれぞれの要素の値を示す。
図9Bによると、Jackが生存しない第1の理由は男性であることであり、第2の理由は三等船室の乗客であることである。
【0091】
図9Aおよび
図9Bに示すように、解釈行列A†を使用して任意の対象説明ベクトルxoに関する局所的特徴重要度グラフ42を作成できる。ユーザは、局所的特徴重要度グラフ42を使用して説明行列Xに含まれていない説明データベクトルxnに関しても解釈できる。
【0092】
図10から
図12は、類似性分布
図43の例である。
図10は、生存者に関する類似性分布
図43を示す。
図10を作成する際の処理の概要を説明する。
図6を使用して説明したプログラムのステップS522で制御部11が算出した第1典型例ベクトルは表2に示す非生存者の代表推定インスタンスと等しい。ステップS524で制御部11が算出した第2典型例ベクトルは表2に示す生存者の代表推定インスタンスと等しい。ステップS525において、制御部11は説明行列Xから生存者に関する説明データベクトルxnを選択した。
【0093】
図10の横軸は、非生存者の代表推定インスタンスとの類似度に対応する非生存スコアを示す。非生存スコアが大きいほど、非生存者の代表推定インスタンスに類似していることを意味する。
図10の縦軸は、生存者の代表推定インスタンスとの類似度に対応する生存スコアを示す。生存スコアが大きいほど、生存者の代表推定インスタンスに類似していることを意味する。左下がりのハッチングが細かい部分ほど、生存者に関する説明データベクトルxnの分布が濃いことを意味する。
図10は、第1分布図の例示である。
【0094】
図11は、非生存者に関する類似性分布
図43を示す。
図11を作成する処理の概要を説明する。
図6を使用して説明したプログラムのステップS522およびステップS524の処理は、
図10を作成する際と同一である。ステップS525において、制御部11は説明行列Xから非生存者に関する説明データベクトルxnを選択した。
【0095】
図11の縦軸および横軸は、
図10と同一であるため、説明を省略する。右下がりのハッチングが細かい部分ほど、非生存者に関する説明データベクトルxnの分布が濃いことを意味する。
図11は、第2分布図の例示である。
【0096】
図12は、
図10と
図11とを重畳した類似性分布
図43を示す。すなわち、生存者に関する分布と、非生存者に関する分布が、1枚の図に重畳表示されている。白丸は、表3で説明したRoseに関する非生存スコアおよび生存スコアを示す。黒丸は、表3で説明したJackに関する非生存スコアおよび生存スコアを示す。
【0097】
図12より、生存者の分布と非生存者の分布とが重なっている領域がある。ユーザは、この領域においては、乗客が生存するか生存しないかの予測が困難であることを理解できる。
図12は、第1分布図と第2分布図とを重畳表示した類似性分布
図43の例示である。
【0098】
既存モデル21の中間層の値を取得可能である場合、説明データベクトルxnを受け付ける入力層から中間層までの部分と、中間層から目的データベクトルynを出力する出力層までの部分とで、それぞれ解釈行列A†が生成されてもよい。解釈行列A†が重層的に生成されることにより、既存モデル21の解釈可能性を高められる可能性がある。
【0099】
[具体例2:MNIST(Mixed National Institute of Standards and Technology database)データセット]
「MNISTデータセット」を訓練データに使用して生成された、手書きの数字を分類する既存モデル21を解釈する例を説明する。MNISTデータセットは、8bitグレースケールの画素を縦横各28個の合計784個配置して構成された手書きの数字画像と、正解データである数字とを関連づけて記録したデータセットである。
【0100】
既存モデル21は、縦横各28画素のグレースケールの画像を入力した場合に、0から9までのそれぞれの数字である確率を出力するように訓練された学習モデルである。説明データベクトルxnは、784個の画素の輝度を所定の順番で並べた、784要素のベクトルである。目的データベクトルynは、0から9までのそれぞれの数字である確率を並べた、10要素のベクトルである。
【0101】
図13は、既存モデル21に関する局所的特徴重要度を説明する説明図である。
図13の上部に示すように、説明データベクトルxnを既存モデル21に入力して、目的データベクトルynを取得する処理を繰り返し、
図2を使用して説明した手順で解釈行列A†を算出する。解釈行列A†は、784行10列の行列である。
【0102】
図13の下側に、表形式で3通りの局所的特徴重要度ベクトルLを例示する。対象説明ベクトルxoの数字画像を既存モデル21に入力した場合に、0、3および8であると判定される場合の局所的特徴重要度ベクトルLをそれぞれ示す。なお、
図13においては、各手書き文字および局所的特徴重要度ベクトルLを白黒二値に変換して図示している。それぞれの数字であると判定される場合に、重視されている画素が、黒で表示されている。
【0103】
局所的特徴重要度ベクトルLによりユーザは、対象説明ベクトルxoが0であると判定される場合には、手書き文字の上下の部分が寄与しており、3であると判定される場合には、手書き文字の右側の部分が寄与しており、8であると判定される場合には、手書き文字のほぼ全体が寄与していることを認識できる。
【0104】
図14は、既存モデル21に関する類似性分布
図43の例である。横軸は、「3」であると判定される代表推定インスタンスx*との類似度スコアである。縦軸は、「8」であると判定される代表推定インスタンスx*との類似度スコアである。白丸は、
図13の、右下に示した対象説明ベクトルxoがプロットされる位置を示す。
【0105】
MNISTデータセットにおいて、正解データが「8」である説明データベクトルxnの分布を左下がりのハッチングで、正解データが「3」である説明データベクトルxnの分布を右下がりのハッチングでそれぞれ示す。ハッチングの濃い部分は、分布が濃いことを意味する。
【0106】
「3」の領域と「8」の領域とが重なる部分が多いことから、ユーザは3と8とは誤って判定されやすいことを認識できる。図示を省略するが、たとえば「0」の領域と「1」の領域とは重ならず、ユーザは、「0」と「1」とは誤って判定されにくいことも認識できる。
【0107】
既存モデル21は、たとえば文章の入力を受け付けてキーワードを出力する学習モデルであってもよい。既存モデル21は、たとえば画像の入力を受け付けて被写体の名称を出力する学習モデルであってもよい。そのほか任意の既存モデル21について、解釈行列A†を算出して、振る舞いの解釈に利用できる。
【0108】
[変形例1]
本変形例は、解釈行列A†を速やかに生成する方法に関する。実施の形態1と共通する部分については、説明を省略する。本変形例においては、既存モデル21は教師あり機械学習により生成される。
【0109】
制御部11は、説明データベクトルxnを既存モデル21に入力して目的データベクトルynを取得する作業を繰り返す代わりに、訓練データから説明データベクトルxnと目的データベクトルynとの組を抽出して、説明行列Xと目的行列Yとを生成する。
【0110】
本変形例によると、既存モデル21の生成が完了する前に、解釈行列A†を算出できる。たとえばユーザは、既存モデル21を生成する前に解釈行列A†を用いて既存モデル21の振る舞いを予測し、既存モデル21が所望の特性を有さない場合には訓練データを増やす等の措置を行なえる。
【0111】
[変形例2]
本変形例は、Ridge回帰、すなわちL2ノルム正則化を用いて目的行列Yを正則化する方法に関する。実施の形態1と共通する部分については、説明を省略する。
【0112】
本変形例においては、制御部11は
図4を使用して説明したフローチャートのステップS507において、(2)式の代わりに(11)式を用いてYの一般化逆行列Y†を算出する。
Y†=Y
T(Y Y
T-λE)
-1 ‥‥‥ (11)
λは正の実数である。
Eは、M行M列の単位行列である。
【0113】
本変形例によると、多数のパラメータ、または、パラメータ間の相互作用を有する複雑な既存モデル21に対しても、適切な解釈行列A†を算出できる。
【0114】
[変形例3]
本変形例は、Lasso回帰、すなわちL1ノルム正則化を用いて目的行列Yを正則化する方法に関する。実施の形態1と共通する部分については、説明を省略する。
【0115】
本変形例においては、制御部11は
図4を使用して説明したフローチャートのステップS507において、Yの一般化逆行列Y†を算出した後に、公知の反復アルゴリズムを用いてYの一般化逆行列Y†を正則化する。
【0116】
本変形例によっても、多数のパラメータ、または、パラメータ間の相互作用を有する複雑な既存モデル21に対しても、適切な解釈行列A†を算出できる。なお、正則化の手法は、変形例2のRidge回帰と、本変形例のLasso回帰とに限定しない。正則化には、たとえば、ElasticNet等の公知の手法も利用できる。
【0117】
プログラムは、プログラム製品の例示である。コンピュータプログラムは、単一のコンピュータ上で、または一つのサイトにおいて配置されるか、もしくは複数のサイトにわたって分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することができる。
【0118】
各実施例で記載されている技術的特徴(構成要件)はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものでは無いと考えられるべきである。本発明の範囲は、上記した意味では無く、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0119】
特許請求の範囲に記載した独立請求項および従属請求項は、引用形式に関わらずあらゆる組み合わせにおいて、相互に組み合わせることが可能である。さらに、特許請求の範囲には他の2以上のクレームを引用するクレームを記載する形式(マルチクレーム形式)を用いているが、これに限るものではない。マルチクレームを少なくとも一つ引用するマルチクレーム(マルチマルチクレーム)を記載する形式を用いて記載しても良い。
【符号の説明】
【0120】
10 情報処理装置
11 制御部
12 主記憶装置
13 補助記憶装置
14 通信部
15 表示部
16 入力部
19 読取部
21 既存モデル(既存の機械学習モデル)
31 説明-目的DB
41 大局的特徴重要度グラフ(図表)
42 局所的特徴重要度グラフ(図表)
43 類似性分布図(図表)
96 可搬型記録媒体
97 プログラム
98 半導体メモリ
【要約】
【課題】生成済の機械学習モデルの振る舞いをユーザが解釈することを支援する情報処理方法等を提供すること。
【解決手段】情報処理方法は、既存の機械学習モデル21に入力された説明データベクトルxnと、前記機械学習モデル21から出力された目的データベクトルynとを関連づけて複数組記録し、前記説明データベクトルxnを複数組配列した説明行列Xと、前記目的データベクトルynを前記説明データベクトルXと対応する順番で配列した目的行列Yの一般化逆行列とのベクトル積である解釈行列A†を算出し、前記解釈行列A†に関する図表41、42、43を出力する処理をコンピュータが実行する。
【選択図】
図1