IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 国立大学法人横浜国立大学の特許一覧

特許7493813説明生成装置、説明生成方法およびプログラム
<>
  • 特許-説明生成装置、説明生成方法およびプログラム 図1
  • 特許-説明生成装置、説明生成方法およびプログラム 図2
  • 特許-説明生成装置、説明生成方法およびプログラム 図3
  • 特許-説明生成装置、説明生成方法およびプログラム 図4
  • 特許-説明生成装置、説明生成方法およびプログラム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-24
(45)【発行日】2024-06-03
(54)【発明の名称】説明生成装置、説明生成方法およびプログラム
(51)【国際特許分類】
   G06N 3/02 20060101AFI20240527BHJP
   G06N 5/045 20230101ALI20240527BHJP
【FI】
G06N3/02
G06N5/045
【請求項の数】 4
(21)【出願番号】P 2021536996
(86)(22)【出願日】2020-07-22
(86)【国際出願番号】 JP2020028438
(87)【国際公開番号】W WO2021020273
(87)【国際公開日】2021-02-04
【審査請求日】2023-04-28
(31)【優先権主張番号】P 2019137811
(32)【優先日】2019-07-26
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】504182255
【氏名又は名称】国立大学法人横浜国立大学
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】長尾 智晴
(72)【発明者】
【氏名】白川 真一
【審査官】藤原 敬利
(56)【参考文献】
【文献】特開2019-082883(JP,A)
【文献】RIBEIRO, Marco Tulio et al.,"Why Should I Trust You?": Explaining the Predictions of Any Classifier,arXiv [online],2016年08月,all 10 pages,Retrieved from the Internet: <URL: https://arxiv.org/abs/1602.04938>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークの構造を簡単化する構造変換を行い、構造変換後のニューラルネットワークに基づいて、構造変換前のニューラルネットワークの出力ノードに応じた線形和の形式のモデルを生成する線形和取得部と、
前記線形和の形式のモデルに基づいて、構造変換前のニューラルネットワークが行う処理の自然言語による説明を生成する説明生成部と、
を備える説明生成装置。
【請求項2】
前記線形和取得部は、前記ニューラルネットワークへの入力データにおける特徴量を示す入力変数を含む前記モデルを生成し、
前記説明生成部は、前記特徴量の自然言語による説明を用いて、前記ニューラルネットワークが行う処理の自然言語による説明を生成する、
請求項1に記載の説明生成装置。
【請求項3】
コンピュータが、
ニューラルネットワークの構造を簡単化する構造変換を行い、構造変換後のニューラルネットワークに基づいて、構造変換前のニューラルネットワークの出力ノードに応じた線形和の形式のモデルを生成することと、
前記線形和の形式のモデルに基づいて、構造変換前のニューラルネットワークが行う処理の自然言語による説明を生成することと、
を含む説明生成方法。
【請求項4】
コンピュータに
ニューラルネットワークの構造を簡単化する構造変換を行い、構造変換後のニューラルネットワークに基づいて、構造変換前のニューラルネットワークの出力ノードに応じた線形和の形式のモデルを生成することと、
前記線形和の形式のモデルに基づいて、構造変換前のニューラルネットワークが行う処理の自然言語による説明を生成することと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、説明生成装置、説明生成方法およびプログラムに関する。
本願は、2019年7月26日に、日本に出願された特願2019-137811号に基づき優先権を主張し、その内容をここに援用する。
【背景技術】
【0002】
機械学習の技術の1つにディープラーニング(Deep Learning)等のニューラルネットワーク(Neural Network)がある(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【文献】日本国特開2019-105883号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
一般的にニューラルネットワークの構造を解析しても、ニューラルネットワークが行う処理を自然言語で説明することはできない。特に、複雑な構造のニューラルネットワークの構造を解析しても、ニューラルネットワークが行う処理を自然言語で説明することはできない。
例えばニューラルネットワークが行う処理の正当性を判定する場合など、ニューラルネットワークが行う処理を自然言語で説明できることが好ましい。
【0005】
本発明の目的の一例は、ニューラルネットワークが行う処理の自然言語による説明を取得することができる、説明生成装置、説明生成方法およびプログラムを提供することである。
【課題を解決するための手段】
【0006】
本発明の第1の態様によれば、説明生成装置は、ニューラルネットワークの構造を簡単化する構造変換を行い、構造変換後のニューラルネットワークに基づいて、構造変換前のニューラルネットワークの出力ノードに応じた線形和の形式のモデルを生成する線形和取得部と、前記線形和の形式のモデルに基づいて、構造変換前のニューラルネットワークが行う処理の自然言語による説明を生成する説明生成部と、を備える。
【0008】
前記線形和取得部は、前記ニューラルネットワークへの入力データにおける特徴量を示す入力変数を含む前記モデルを生成し、前記説明生成部は、前記特徴量の自然言語による説明を用いて、前記ニューラルネットワークが行う処理の自然言語による説明を生成するようにしてもよい。
【0009】
本発明の第2の態様によれば、説明生成方法は、コンピュータが、ニューラルネットワークの構造を簡単化する構造変換を行い、構造変換後のニューラルネットワークに基づいて、構造変換前のニューラルネットワークの出力ノードに応じた線形和の形式のモデルを生成することと、前記線形和の形式のモデルに基づいて、構造変換前のニューラルネットワークが行う処理の自然言語による説明を生成することと、を含む。
【0010】
本発明の第3の態様によれば、プログラムは、コンピュータに、ニューラルネットワークの構造を簡単化する構造変換を行い、構造変換後のニューラルネットワークに基づいて、構造変換前のニューラルネットワークの出力ノードに応じた線形和の形式のモデルを生成することと、前記線形和の形式のモデルに基づいて、構造変換前のニューラルネットワークが行う処理の自然言語による説明を生成することと、を実行させるためのプログラムである。
【発明の効果】
【0011】
本発明によれば、ニューラルネットワークが行う処理の自然言語による説明を取得することができる。
【図面の簡単な説明】
【0012】
図1】実施形態に係る説明生成装置の機能構成の例を示す概略ブロック図である。
図2】実施形態に係る説明対象のニューラルネットワークの出力ノードにおける重み付け合計の例を示す図である。
図3】実施形態に係る説明生成装置が取得するモデルの例を示す図である。
図4】実施形態に係る線形和取得部が行う処理の手順の例を示す図である。
図5】実施形態に係る線形和取得部が行う処理の手順の例を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、実施形態に係る説明生成装置の機能構成の例を示す概略ブロック図である。図1に示す構成で、説明生成装置100は、通信部110と、表示部120と、操作入力部130と、記憶部180と、制御部190とを備える。制御部190は、線形和取得部191と、説明生成部194と、ニューラルネットワーク実行部195とを備える。線形和取得部191は、構造変換部192と、変数処理部193とを備える。
【0014】
説明生成装置100は、説明対象のニューラルネットワーク(Neural Network;NN)の自然言語による説明を生成する。
ここで、一般的にニューラルネットワークの構造を解析しても、ニューラルネットワークが行う処理を自然言語で説明することはできない。特に、深層回路(Deep Neural Network;DNN)など複雑な構造のニューラルネットワークの構造を解析しても、ニューラルネットワークが行う処理を自然言語で説明することはできない。
一方、ニューラルネットワーク等の機械学習を自然言語で説明できるものにすることへのニーズがある。例えば、ニューラルネットワークによる計算結果の妥当性を評価するために、ニューラルネットワークが計算結果を演算する処理を自然言語で説明できることが好ましい。
【0015】
そこで、説明生成装置100は、説明対象のニューラルネットワークが行う処理の説明を自然言語で生成する。
説明を生成するために、説明生成装置100は、説明対象のニューラルネットワークの出力ノード(Node)に応じた線形和の形式のモデルを取得する。ここでいうニューラルネットワークの出力ノードに応じた線形和の形式のモデルは、ニューラルネットワークの出力ノードにおける重み付け合計の計算値と同じ値、または、当該計算値の近似値を出力する重み付け合計を計算するモデルである。線形和の形式のモデルを、単にモデルとも称する。
【0016】
図2は、説明対象のニューラルネットワークの出力ノードにおける重み付け合計の例を示す図である。図2の例で、説明対象のニューラルネットワークの出力ノードN21と、出力ノードN21に値を出力するM個(Mは正の整数)のノードN11からN1Mまでの各ノードとが示されている。
ノードN1i(iは、1≦i≦Mの整数)からの出力xの値に重みvが乗算されたvが、出力ノードN21に入力される。出力ノードN21は、vの合計sを式(1)のように算出する。
【0017】
【数1】
【0018】
式(1)に示される合計sの算出が、出力ノードN21における重み付け合計の計算に該当する。
出力ノードN21は、さらに、算出した合計sと閾値Thとを比較し、比較結果に応じて値を出力する。例えば、s≧Thである場合は出力ノードN21が値1を出力し、s<Thである場合は出力ノードN21が値0を出力するようにしてもよい。
【0019】
図3は、説明生成装置100が取得するモデルの例を示す図である。図3は、図2の出力ノードN21に対して説明生成装置100が取得するモデルの例を示している。
図3に例示するモデルでは、N個(Nは正の整数)の入力変数F、F、・・・、Fの値に、それぞれ重みw、w、・・・、wを乗算する。そして、このモデルでは、乗算で得られたN個の値w、w、・・・、wを合計して出力する。
図3に示すモデルによる演算を表す関数fは、式(2)のように示される。
【0020】
【数2】
【0021】
式(1)に例示される出力ノードにおける重み付け合計と、式(2)に例示される、線形和の形式のモデルによる重き付け合計とを比較すると、入力の個数および値は、異なっていてもよい。具体的には、式(1)におけるMの値と式(2)におけるNの値とは、異なっていてもよい。また、式(1)におけるxの値と、式(2)におけるFの値とは異なっていてもよい。また、重みの個数および値も異なっていてもよい。したがって、式(1)におけるvの値と式(2)におけるwの値とは、異なっていてもよい。
【0022】
ノードN11からN1Mまでの各ノードからの出力x、x、・・・、xの値に応じて、モデルの入力変数F、F、・・・、Fの値が定まり、かつ、その場合の、式(2)で示されるモデルの出力の値が、式(1)で示される出力ノードにおける重み付け合計の値と同じか、あるいは近似する関係にあればよい。
例えば、説明対象のニューラルネットワークへの入力が画像データにおける各画素値である場合に、その画像データから得られる特徴量を、線形和の形式のモデルへの入力として用いるようにしてもよい。
【0023】
さらに例えば、図2のニューラルネットワークのノードN11からN1Mまでの各ノードの値が、入力データを多層回路によって変換して得られたものである場合について考える。このような場合の例として、入力データとして画像データを受け取り、多層回路による変換を経てノードN11からN1Mまでの各ノードの値を得た場合が挙げられる。
【0024】
この場合、ノードN11からN1Mまでの各ノードの値が何を表現しているのかを説明することができず、ニューラルネットワークが行う処理について有益な説明ができないことが考えられる。ここでいう有益な説明は、例えば人が理解可能な説明である。
これに対し、図3のモデルへの入力が、赤の強さなどの特徴量となっている場合、特徴量に関する条件を説明することで、ニューラルネットワークが行う処理について有益な説明が得られることが期待される。
【0025】
説明生成装置100は、得られたモデルに基づいて、説明対象のニューラルネットワークが行う処理の自然言語による説明を生成する。モデルの入力変数F、F、・・・、Fがそれぞれ自然言語で表現可能な特徴を示す変数である場合、この変数が示す特徴と重みが示す大小との組み合わせを自然言語で表記して説明を生成する。特徴を自然言語で表現可能とは、例えば、その特徴を名付け可能なことである。
【0026】
例えば、入力変数Fの値が色成分の赤の強さを示し、重みwの値が正の値である場合、説明生成装置100が、wが示す条件を、「赤が強い」のように表記するようにしてもよい。説明生成装置100が、このような条件とニューラルネットワークの出力値による判定の対象とを組み合わせて、「赤が強く、〇〇が大きく、・・・場合、△△であると判定する」という形式の説明を出力するようにしてもよい。
説明生成装置100が、パソコン(Personal Computer;PC)またはワークステーション(Workstation;WS)等のコンピュータを用いて構成されてもよい。
【0027】
通信部110は、他の装置と通信を行う。例えば、通信部110は、説明対象のニューラルネットワークを他の装置から受信する。さらに例えば、通信部110は、説明対象のニューラルネットワークを、ニューラルネットワーク実行部195が実行可能なデータ形式で受信する。
【0028】
表示部120は、例えば液晶パネルまたはLED(Light Emitting Diode、発光ダイオード)パネルなどの表示画面を備え、各種画像を表示する。例えば、表示部120は、説明生成装置100が生成する説明対象のニューラルネットワークが行う処理の自然言語による説明を表示する。ただし、説明生成装置100が説明を出力する方法は特定の方法に限定されない。例えば通信部110が、説明を他の装置に送信するようにしてもよい。
【0029】
操作入力部130は、例えばキーボードおよびマウス等の入力デバイスを備え、ユーザ操作を受け付ける。例えば操作入力部130は、説明の生成を指示するユーザ操作など、説明生成装置100に対して処理を行うよう指示するユーザ操作を受け付ける。
【0030】
記憶部180は、各種データを記憶する。例えば、記憶部180は、通信部110が受信する説明対象のニューラルネットワークを記憶する。記憶部180の機能は、説明生成装置100が備える記憶デバイスを用いて実行される。
制御部190は、説明生成装置100の各部を制御して各種処理を実行する。制御部190の機能は、説明生成装置100が備えるCPUが記憶部180からプログラムを読み出して実行することで実行される。
【0031】
線形和取得部191は、説明生成装置100について上述したように、説明対象のニューラルネットワークの出力に応じた出力を生成する線形和の形式のモデルを取得する。
例えば、線形和取得部191が、説明対象のニューラルネットワークを、より簡単な構造のニューラルネットワークで近似し、得られたより簡単な構造のニューラルネットワークの出力ノードによる重み付け合計の演算を、線形和の形式のモデルとして抽出するようにしてもよい。
【0032】
あるいは、線形和取得部191が、説明対象のニューラルネットワークを、より簡単な構造の等価なニューラルネットワークに変換するようにしてもよい。そして、線形和取得部191が、得られたより簡単な構造のニューラルネットワークの出力ノードによる重み付け合計の演算を、線形和の形式のモデルとして抽出するようにしてもよい。ここでいう等価は、同じ値の入力に対して同じ値を出力することである。例えば、等価な2つのニューラルネットに同じ値を入力すると、それら等価な2つのニューラルネットワークは同じ値を出力する。
【0033】
あるいは、線形和取得部191が、説明対象のニューラルネットワークの出力ノードを、そのまま線形和の形式のモデルとして抽出するようにしてもよい。例えば、説明対象のニューラルネットワークの構造が元々簡単な構造である場合、線形和取得部191が、説明対象のニューラルネットワークそのままの出力ノードによる重み付け合計の演算を、線形和の形式のモデルとして抽出するようにしてもよい。
【0034】
説明対象のニューラルネットワークが複数の出力ノードを有する場合、線形和取得部191は、出力ノード毎に線形和の形式のモデルを生成する。線形和取得部191が、全ての出力ノードについて線形和の形式のモデルを生成するようにしてもよいし、一部の出力ノードのみについて線形和の形式のモデルを生成するようにしてもよい。
【0035】
構造変換部192は、説明対象のニューラルネットワークの構造を変換する。特に、構造変換部192は、説明対象のニューラルネットワークの構造を簡単化する。具体的には、構造変換部192は、説明対象のニューラルネットワークに対して、ノードの個数およびアーク(Arc)の個数のうち少なくとも何れか一方を減少させる。ここでいうアークは、2つのノードを接続する情報伝達経路である。
【0036】
線形和取得部191について上述したように、構造変換部192が、説明対象のニューラルネットワークを、そのニューラルネットワークを近似する、より簡単な構造のニューラルネットワークに変換するようにしてもよい。あるいは構造変換部192が、説明対象のニューラルネットワークを、より簡単な構造の等価なニューラルネットワークに変換するようにしてもよい。
あるいは、線形和取得部191が、説明対象のニューラルネットワークの出力ノードを、そのまま線形和の形式のモデルとして抽出する場合、構造変換部192は、説明対象のニューラルネットワークの変換を行わず、そのままの構造とする。
【0037】
説明対象のニューラルネットワークが複数の出力ノードを有する場合、線形和取得部191が出力ノード毎に線形和の形式のモデルを生成することに対応して、構造変換部192は、出力ノード毎に構造変換後のニューラルネットワークを生成する。線形和取得部191が、複数の出力ノードのうち一部の出力ノードのみについて線形和の形式のモデルを生成する場合、構造変換部192が、それらの出力ノードのみについて構造変換後のニューラルネットワークを生成するようにしてもよい。
【0038】
変数処理部193は、線形和取得部191が取得する線形和の形式のモデルの入力変数が、言語で表現可能な特徴を示すようにする処理を行う。例えば、変数処理部193が、構造変換部192の処理で得られたニューラルネットワークを近似する線形和の形式のモデルを、「赤の強さ」または「〇〇の大きさ」など自然言語で説明可能な特徴を示す入力変数を用いて構成するようにしてもよい。
線形和取得部191が線形和の形式のモデルを複数生成する場合、変数処理部193は、モデル毎に、そのモデルの入力変数が、言語で表現可能な特徴を示すようにする処理を行う。
【0039】
説明生成部194は、線形和取得部191が取得した線形和の形式のモデルに基づいて、説明対象のニューラルネットワークが行う処理の自然言語による説明を生成する。説明生成装置100について上述したように、説明生成部194は、モデルの入力変数F、F、・・・、Fがそれぞれ自然言語で説明可能な特徴を示す変数である場合、この変数が示す特徴と重みが示す大小との組み合わせを自然言語で表記して説明を生成する。
【0040】
ニューラルネットワーク実行部195は、ニューラルネットワークを実行する。例えば、説明対象のニューラルネットワークに対する入力データが与えられた場合、ニューラルネットワーク実行部195は、説明対象のニューラルネットワークを実行して、与えられた入力データに対する出力を算出する。
【0041】
図4は、線形和取得部191が行う処理の手順の例を示す図である。図4は、ニューラルネットワークを、その構造の簡単さ、および、対応する線形和の形式のモデルの入力変数の説明し易さで分類する例を示している。
線形和取得部191は、説明対象のニューラルネットワークが行う処理を説明し易くするための処理を行う。線形和取得部191は、構造が比較的簡単、かつ、対応する線形和の形式のモデルの入力変数が比較的説明し易いニューラルネットワークを得られるように、説明対象のニューラルネットワークに対し、構造変換と、モデルの入力変数を比較的説明し易いものにする処理とを行う。ここでいう構造変換は、ニューラルネットワークの構造を変換する処理である。また、モデルの入力変数を比較的説明し易いものにする処理を、入力変数処理と称する。
【0042】
線形和取得部191が、説明対象のニューラルネットワークに対して、構造変換を行った後、入力変数処理を行うようにしてもよい。あるいは、線形和取得部191が、説明対象のニューラルネットワークに対して、入力変数処理を行った後、構造変換を行うようにしてもよい。あるいは、線形和取得部191が、説明対象のニューラルネットワークに対して、構造変換と入力変数処理とを同時に行うようにしてもよい。
【0043】
線形和取得部191が説明対象のニューラルネットワークに対して行う処理が、構造変換および入力変数処理の両方に該当する場合があり得る。例えば、線形和取得部191が、説明対象のニューラルネットワークの構造を変換することで、出力ノードへの入力が説明し易いものになる場合、この場合の構造変換は、入力変数処理にも該当するといえる。
図1の構成例では、線形和取得部191のうち構造変換を行う部分を構造変換部192として示し、線形和取得部191のうち入力変数処理を行う部分を変数処理部193として示している。
【0044】
図5は、線形和取得部191が行う処理の手順の例を示す図である。図5では、線形和取得部191が説明対象のニューラルネットワークに対して、構造変換を行った後、入力変数処理を行う場合の例を示している。
図5の処理で、構造変換部192は、説明対象のニューラルネットワークの構造を変換する(ステップS11)。構造変換部192は、この処理により、説明対象のニューラルネットワークを、より簡単な構造のニューラルネットワークに変換する。
【0045】
次に、線形和取得部191は、構造変換部192による構造変換で得られたニューラルネットワークに基づいて、線形和の形式のモデルを生成する(ステップS12)。
例えば、線形和取得部191が、ニューラルネットワークの出力ノード重み付け合計の計算をモデル化するようにしてもよい。この場合、線形和取得部191が生成するモデルは、出力ノードの前段ノードからの出力をモデルの入力変数で表す。出力ノードの前段ノードからの出力の例として、図2のx、x、・・・、xが挙げられる。モデルの入力変数の例として、図3のF、F、・・・、Fが挙げられる。
【0046】
また、線形和取得部191が生成するモデルは、出力ノードと前段ノードとの間のアークにおける重みを線形和における重みで表す。出力ノードと前段ノードとの間のアークにおける重みの例として、図2のv、v、・・・、vが挙げられる。形和における重みの例として、図3のw、w、・・・、wが挙げられる。
【0047】
次に、変数処理部193は、線形和取得部191が生成したモデルの入力変数が、より説明し易いものになるように、入力変数処理を行う(ステップS13)。例えば、変数処理部193は、モデルの入力変数とその入力変数に適用される重みとの組み合わせwを、説明対象のニューラルネットワークへの入力から得られる特徴量、および、その特徴量に適用される変数に置き換える。置き換え後のモデルが、置き換え前のモデルと等価なモデルになっていてもよい。あるいは、置き換え後のモデルが、置き換え前のモデルを近似するモデルになっていてもよい。
【0048】
ステップS13の処理では、モデルの入力変数と重みの組み合わせw、w、・・・、wの個数、および、重みw、w、・・・、wの値のうち何れか一方、または両方が変更される。
線形和取得部191が、ステップS12の処理とステップS13の処理とを同時に行うようにしてもよい。また、線形和取得部191がステップS12で生成したモデルの入力変数が比較的説明し易いものになっている場合、ステップS13の処理を抑制するようにしてもよい。ここでいう、処理を抑制することは、処理を行わないことである。
【0049】
線形和取得部191が行う処理の例についてさらに説明する。
<遺伝的プログラミングを用いる構造変換>
構造変換部192が、確率的最適化法の進化計算法の一種である遺伝的プログラミング(Genetic Programming;GP)の手法を用いて、説明対象のニューラルネットワークの構造を変換するようにしてもよい。この構造変換により、構造変換部192が、説明対象のニューラルネットワークを、そのニューラルネットワークを近似するネットワーク型の関数に変換するようにしてもよい。遺伝的プログラミングの手法を、あらかじめ用意した説明容易なモジュール(部品)を組合せることによって、関数を近似する手法として用いることができる。この場合、説明可能なモジュールの組合せによって構成されたネットワーク型の関数にも説明を与えることができると期待される。
【0050】
例えば入力が画像の場合、ユーザが、何種類かの画像処理フィルタなど、構造変換後の関数を構成するための説明可能な部品を幾つか用意し、構造変換部192に与えるようにしてもよい。構造変換部192は、これらの部品の組み合わせの構造をネットワーク構造あるいは木構造で表現し、遺伝的プログラミングの手法を用いて新たな構造を生成する。構造変換部192が、与えられた全ての部品を使用するようにしてもよいし、一部の部品を使わないことを許容するようにしてもよい。また、構造変換部192が、1つの木構造で1つの部品を1回のみ使用するようにしてもよいし、1つの部品を複数回使用することを許容するようにしてもよい。
【0051】
構造変換部192は、ネットワーク構造あるいは木構造で表現される構造変換後のニューラルネットワークとして、説明対象のニューラルネットワークを所定の条件以上に精度よく近似するニューラルネットワークが得られるまで、遺伝的プログラムの手法による木構造の生成を繰り返す。
【0052】
構造変換部192が、部品を用いて説明対象のニューラルネットワークを近似するネットワーク型関数を生成することで、ネットワークの構造が簡単になることが期待される。
また、ニューラルネットワークの構造が簡単になることで、入力ノードから出力ノードの前段のノードまでの処理も比較的簡単になり、その処理が、自然言語で比較的説明し易いことが期待される。さらには、入力ノードから出力ノードの前段までの処理が部品の組み合わせによって実行されることで、その処理が、自然言語で比較的説明し易いことが期待される。このように、上記の構造変換では、入力変数処理の効果も期待される。
【0053】
<ニューラルネットワークの枝刈りによる構造変換>
構造変換部192が、説明対象のニューラルネットワークから、ニューラルネットワークの出力に影響しないノードおよびアークを削除することで、ニューラルネットワークの構造を変換するようにしてもよい。あるいは、構造変換部192が、ニューラルネットワークの出力に影響しないノードおよびアークに加えて、または代えて、ニューラルネットワークの出力への影響が小さいノードおよびアークを削除するようにしてもよい。
【0054】
例えば、ある出力ノードへの経路がないノードは、その出力ノードには影響しないノードである。また、あるアークにおける重みの値が0の場合、そのアークが無い場合と同視できる。構造変換部192が、出力ノードに影響しないノードおよびアークを削除するようにしてもよい。
また、あるアークにおける重みの大きさ(絶対値)が小さい場合、そのアークにてノード間を伝達される情報が後段側のノードに与える影響は小さいと考えられる。ここでいう後段側のノードは、情報を受ける側のノードである。
そこで、構造変換部192が、重みの大きさが所定の閾値以下のアークを削除するようにしてもよい。
【0055】
構造変換部192が、ニューラルネットワークからノードおよびアークのうち何れか一方、または両方を削除することで、ニューラルネットワークの構造が比較的簡単になる。
また、ニューラルネットワークの構造が簡単になることで、入力ノードから出力ノードの前段のノードまでの処理も比較的簡単になり、その処理が、自然言語で比較的説明し易いことが期待される。このように、上記の構造変換では、入力変数処理の効果も期待される。
【0056】
<入力変数の特徴量化による入力変数処理>
変数処理部193が、線形和の形式のモデルの入力変数として特徴量を示す変数を用いるようにしてもよい。
例えば、説明対象のニューラルネットワークへの入力から、ある特徴量を算出する手段をユーザが変数処理部193に与えておく。ここでの手段は、計算アルゴリズムとして与えられてもよい。
【0057】
変数処理部193は、線形和取得部191が生成する線形和の形式のモデルの入力変数を、与えられた特徴量を示す変数で一時的に置き換える。変数処理部193は、置き換え後のモデルが、置き換え前のモデルを近似している、あるいは、置き換えが等価変換になっているか否かを判定する。変数処理部193は、置き換えのいろいろなパターンについて判定を行うことで、置き換え後のモデルが置き換え前のモデルを近似する、あるいは置き換えが等価置換となるような置き換えを検出し、その置き換えを採用する。
あるいは、上述したように、線形和取得部191がモデルを生成する際に、特徴量を示す変数をモデルの入力変数として用いるようにしてもよい。
【0058】
線形和の形式のモデルの入力変数が特徴量を示す変数となっていることで、その特徴の自然言語による説明を、説明対象のニューラルネットワークが行う処理の説明に用いることができると期待される。
自然言語の説明の説明生成装置100への付与について、ユーザが、ある特徴量を算出する手段を変数処理部193に与える際に、その手段に紐付けて、その特徴の自然言語による説明を与えるようにしてもよい。
【0059】
あるいはユーザが、特徴量を抽出するためのフィルタの部品を用意し、変数処理部193が、上述した遺伝的プログラミングを用いる構造変換の場合と同様に、遺伝的プログラミングの手法を用いて部品を組み合わせて、特徴量を出力するフィルタを生成するようにしてもよい。
この場合、得られたフィルタの出力が特徴量を表しているか否か、および、特徴量を表している場合はどのような特徴量を表しているかを、ユーザが判定するようにしてもよい。例えば、変数処理部193が、生成したフィルタに幾つかのサンプルデータを入力し、サンプルデータと、そのサンプルデータに対するフィルタの出力とをユーザに提示するようにしてもよい。ユーザが、そのフィルタの出力値が大きい場合のサンプルに共通する特徴を、そのフィルタが抽出する特徴として把握し、例えば「赤の強さ」など、その特徴の自然言語による説明を説明生成装置100に与えるようにしてもよい。
【0060】
<入力変数が示す特徴の特定による入力変数処理>
変数処理部193が、モデルの入力変数の置き換えは行わずに、入力変数が示す特徴を特定するようにしてもよい。
例えば、変数処理部193が、説明対象のニューラルネットワークへの入力データの複数のサンプルのうち、ある入力変数の値の大きさが所定の閾値以上に大きくなるサンプルを抽出してユーザに提示するようにしてもよい。そして、ユーザが、提示されたサンプルに共通する特徴の自然言語による説明を説明生成装置100に与えるようにしてもよい。説明生成装置100は、与えられた説明を、その入力変数が示す特徴の説明として用いる。
説明対象のニューラルネットワークへの入力データのサンプルとして、説明対象のニューラルネットワークに適用される学習データにおける入力データを用いることができる。
【0061】
あるいは、変数処理部193が、モデルの入力変数のうちある1つの入力変数の値だけが異なり、他の入力変数の値が同じになるサンプルの組をユーザに提示するようにしてもよい。そして、ユーザが、提示された2つのサンプルで異なる特徴の自然言語による説明を説明生成装置100に与えるようにしてもよい。説明生成装置100は、与えられた説明を、その入力変数(2つのサンプルで値が異なる入力変数)が示す特徴の説明として用いる。
【0062】
ここで、変数処理部193が、モデルの入力変数のうちある1つの入力変数の値だけが異なり、他の入力変数の値が同じになるサンプルの組を生成するようにしてもよい。
モデルの入力変数の値が、ニューラルネットワークにおける出力ノードの前段のノードの出力値を示す場合、変数処理部193が、モデルの入力変数の値が所望の値となる、ニューラルネットワークへの入力データを、誤差逆伝播法(Backpropagation)と同様の手法で生成するようにしてもよい。
【0063】
この場合、変数処理部193は、ニューラルネットワークにサンプルデータを適用した場合のモデルの入力変数の値と所望の値との差を算出する。そして、変数処理部193は、誤差逆伝播法で差に基づいて重みの値を調整することに代えて、差に基づいて、前段のノードの出力値を調整する。変数処理部193は、この処理を入力データまで繰り返し、かつ、複数のサンプルデータについて繰り返すことで、モデルの入力変数の値が所望の値となる、ニューラルネットワークへの入力データを算出する。
【0064】
説明生成部194が自然言語による説明を生成する処理の例についてさらに説明する。
<線形和から自然言語による説明への変換>
説明生成部194は、乗算される重みの値が正(+)である入力変数を、肯定的な条件を示す入力変数として扱う。肯定的な条件は、例えば「〇〇が強い」、「〇〇が大きい」、「〇〇が多い」、「とても〇〇である」のように使用される。
また、説明生成部194は、乗算される重みの値が負(-)である入力変数を、否定的な条件を示す入力変数として扱う。否定的な条件は、例えば「〇〇が弱い」、「〇〇が小さい」、「〇〇が少ない」、「あまり〇〇でない」のように使用される。
「〇〇」には、例えば赤の強さなど、入力変数(が示す特徴)を示す自然言語が挿入される。
【0065】
また、説明生成部194が、全ての入力変数を説明に用いるようにしてもよいし、重みや入力変数の値に基づいて幾つかの入力変数を選択し、選択した入力変数を説明に用いるようにしてもよい。
ここで、重みの大きさが大きいほど、対応する入力変数の値がモデルの出力に与える影響が大きいと考えられる。そこで、説明生成部194が、乗算される重みの大きさが所定の閾値以下である変数を説明の対象から除外するようにしてもよい。
【0066】
したがって、説明生成部194が、乗算される重みwの値を閾値a(a>0)と比較して、モデルの入力変数の説明を以下のように処理するようにしてもよい。
(1) w>aの場合:入力変数を、肯定的な条件を示す入力変数として扱う。
(2) -a≦w≦aの場合:入力変数を説明の対象から除外する。
(3) w<-aの場合:入力変数を、否定的な条件を示す入力変数として扱う。
【0067】
ここで、ユーザが閾値aの値を変更可能になっていてもよい。ユーザは、簡潔な説明が欲しい場合は、閾値aの値を、正、かつ、大きさ(絶対値)が比較的大きい値に設定する。ここでの比較的大きい値の例として、0.9が挙げられる。一方、より詳細な説明が欲しい場合、ユーザは、閾値aの値を、正、かつ、大きさが比較的小さい値に設定する。ここでの比較的小さい値の例として、0.5が挙げられる。
【0068】
例えば、入力変数が示す特徴が色成分の赤の強さであり、乗算される重みの値が正でありその絶対値が大きい場合、説明生成部194は、「とても赤い」のように肯定的な条件を生成する。
また、入力変数が示す特徴がテクスチャの複雑さであり、乗算される重みの値が負でありその絶対値が大きい場合、説明生成部194は、「テクスチャがあまり複雑でない」のように否定的な条件を生成する。
【0069】
説明生成部194は、説明の対象として採用された入力変数を用いて示される特徴を、例えば、かつ(and条件)で結合して、例えば、「赤が強く、テクスチャがあまり複雑でなく、・・・、かつ、〇〇が大きい場合、△△であると判定する」のような、説明対象のニューラルネットワークの説明を生成する。
【0070】
なお、説明生成装置100が行う演算及び制御の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することで各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0071】
以上、本発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【産業上の利用可能性】
【0072】
本発明の実施形態は、説明生成装置、説明生成方法およびプログラムに適用してもよい。
【符号の説明】
【0073】
100 説明生成装置
110 通信部
120 表示部
130 操作入力部
180 記憶部
190 制御部
191 線形和取得部
192 構造変換部
193 変数処理部
194 説明生成部
195 ニューラルネットワーク実行部
図1
図2
図3
図4
図5