(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-04
(45)【発行日】2023-12-12
(54)【発明の名称】モデル生成プログラム、モデル生成方法及びモデル生成装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20231205BHJP
G06N 5/045 20230101ALI20231205BHJP
【FI】
G06N20/00
G06N5/045
(21)【出願番号】P 2022545266
(86)(22)【出願日】2020-08-31
(86)【国際出願番号】 JP2020032941
(87)【国際公開番号】W WO2022044335
(87)【国際公開日】2022-03-03
【審査請求日】2022-11-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】等々力 賢
(72)【発明者】
【氏名】新宮 理史
(72)【発明者】
【氏名】丸橋 弘治
【審査官】牛丸 太希
(56)【参考文献】
【文献】特開2020-129222(JP,A)
【文献】KOVALEV, Maxim S. ほか,SurvLIME: A method for explaining machine learning survival models,[online],arXiv,2020年03月18日,pp.1-29,[検索日 2020.11.02], インターネット:<URL: https://arxiv.org/pdf/2003.08371.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
第1のデータを変更して複数のデータを生成し、
前記第1のデータと前記複数のデータのそれぞれとの距離を示す複数の値を算出し、
前記複数の値に基づいて、前記第1のデータと前記複数のデータのそれぞれとの距離の分布の一様性を示す値が閾値以上か否かを判定し、
前記一様性を示す値が前記閾値以上であると判定された場合、前記複数のデータを機械学習モデルに入力して得られた結果を目的変数として、前記複数のデータを説明変数として、線形回帰モデルを生成する、
処理をコンピュータに実行させることを特徴とするモデル生成プログラム。
【請求項2】
前記算出する処理は、前記距離を示す複数の値をグラフカーネル関数に基づいて算出する処理を含む請求項1に記載のモデル生成プログラム。
【請求項3】
前記判定する処理は、前記複数のデータを前記機械学習モデルに入力して得られた結果に含まれる第1の値の数と第2の値の数の差が閾値以下か否かをさらに判定する処理を含み、
前記線形回帰モデルを生成する処理は、前記第1の値の数と前記第2の値の数の差が前記閾値以下であると判定された場合、前記線形回帰モデルの生成を実行する処理を含む請求項1に記載のモデル生成プログラム。
【請求項4】
前記複数のデータを生成する処理は、前記一様性を示す値が前記閾値より小さい場合、新たなデータを生成して前記複数のデータに追加する処理を含み、
前記判定する処理は、前記第1のデータと前記新たなデータが追加された前記複数のデータのそれぞれとの距離の分布の一様性を示す値が閾値以上か否かをさらに判定する処理を含む請求項1に記載のモデル生成プログラム。
【請求項5】
前記算出する処理は、前記一様性を示す値が前記閾値より小さい場合、前記距離を示す複数の値の算出に用いる距離関数を変更する処理を含む請求項1に記載のモデル生成プログラム。
【請求項6】
前記複数のデータに含まれる特徴量の前記機械学習モデルの出力への寄与度として、前記線形回帰モデルの偏回帰係数を算出する処理を前記コンピュータにさらに実行させる請求項1に記載のモデル生成プログラム。
【請求項7】
第1のデータを変更して複数のデータを生成し、
前記第1のデータと前記複数のデータのそれぞれとの距離を示す複数の値を算出し、
前記複数の値に基づいて、前記第1のデータと前記複数のデータのそれぞれとの距離の分布の一様性を示す値が閾値以上か否かを判定し、
前記一様性を示す値が前記閾値以上であると判定された場合、前記複数のデータを機械学習モデルに入力して得られた結果を目的変数として、前記複数のデータを説明変数として、線形回帰モデルを生成する、
処理をコンピュータが実行することを特徴とするモデル生成方法。
【請求項8】
第1のデータを変更して複数のデータを生成し、
前記第1のデータと前記複数のデータのそれぞれとの距離を示す複数の値を算出し、
前記複数の値に基づいて、前記第1のデータと前記複数のデータのそれぞれとの距離の分布の一様性を示す値が閾値以上か否かを判定し、
前記一様性を示す値が前記閾値以上であると判定された場合、前記複数のデータを機械学習モデルに入力して得られた結果を目的変数として、前記複数のデータを説明変数として、線形回帰モデルを生成する、
処理を実行する制御部を含むモデル生成装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モデル生成技術に関する。
【背景技術】
【0002】
機械学習の進展に伴って高性能の分類器が得られる一方で、分類結果が得られた理由や根拠を人間が検証することが困難になっている側面がある。1つの側面として、結果に対する説明責任が問われるミッションクリティカルな分野にディープラーニング等の機械学習が実行されたモデルを適用するのに妨げになる場合がある。
【0003】
例えば、分類結果が得られる理由や根拠を説明する技術の例として、機械学習モデルやデータの形式、機械学習モデルの構造に非依存であるLIME(Local Interpretable Model-agnostic Explainations)と呼ばれるアルゴリズムが提案されている。
【0004】
LIMEでは、データxが入力された機械学習モデルfが出力する分類結果を説明する際、データxの近傍において機械学習モデルfの出力との間で出力が局所的に近似する線形回帰モデルgが機械学習モデルfを解釈可能なモデルとして生成される。このような線形回帰モデルgの生成には、データxの特徴量の一部を変動させることにより得られる近傍データzが用いられる。
【先行技術文献】
【非特許文献】
【0005】
【文献】Marco Tulio Ribeiro, Sameer Singh, Carlos Guestrin “Why Should I Trust You?”Explaining the Predictions of Any Classifier
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記のLIMEでは、近傍データを生成可能なデータ形式として、表や画像、テキストといった形式のデータしかサポートされていない。それ故、グラフデータの近傍データを作成する場合、オリジナルのグラフデータに対して偏って分布した近傍データが生成される場合がある。このような近傍データを用いたとしても、説明対象とする機械学習モデルに近似する線形回帰モデルを生成するのは困難であるので、グラフデータを入力とする機械学習モデルにLIMEを適用する妨げとなる。
【0007】
1つの側面では、オリジナルのデータに対して一様に分布した近傍データを用いて線形回帰モデルを生成するためのモデル生成プログラム、モデル生成方法及びモデル生成装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
一態様のモデル生成プログラムは、第1のデータを変更して複数のデータを生成し、前記第1のデータと前記複数のデータのそれぞれとの距離を示す複数の値を算出し、前記複数の値に基づいて、前記第1のデータと前記複数のデータのそれぞれとの距離の分布の一様性を示す値が閾値以上か否かを判定し、前記一様性を示す値が前記閾値以上であると判定された場合、前記複数のデータを機械学習モデルに入力して得られた結果を目的変数として、前記複数のデータを説明変数として、線形回帰モデルを生成する、処理をコンピュータに実行させる。
【発明の効果】
【0009】
オリジナルのデータに対して一様に分布した近傍データの生成を実現できる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、実施例1に係るサーバ装置の機能的構成の一例を示すブロック図である。
【
図2】
図2は、LIMEのアルゴリズムを模式的に示す図である。
【
図5】
図5は、近傍データの分布の一例を示す図である。
【
図6】
図6は、近傍データの分布の一例を示す図である。
【
図7】
図7は、実施例1に係るモデル生成処理の手順を示すフローチャート(1)である。
【
図8】
図8は、実施例1に係るモデル生成処理の手順を示すフローチャート(2)である。
【
図9】
図9は、近傍データの分布の一例を示す図である。
【
図11】
図11は、コンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【0011】
以下に添付図面を参照して本願に係るモデル生成プログラム、モデル生成方法及びモデル生成装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例1】
【0012】
図1は、実施例1に係るサーバ装置10の機能的構成の一例を示すブロック図である。
図1に示すシステム1は、1つの側面として、説明対象とするオリジナルのグラフデータからLIMEの線形回帰モデルを生成するモデル生成機能を提供するものである。なお、
図1には、上記のモデル生成機能がクライアントサーバシステムで提供される例を挙げるが、この例に限定されず、スタンドアロンで上記のデータ生成機能が提供されることとしてもよい。
【0013】
図1に示すように、システム1には、サーバ装置10と、クライアント端末30とが含まれ得る。サーバ装置10及びクライアント端末30は、ネットワークNWを介して通信可能に接続される。例えば、ネットワークNWは、有線または無線を問わず、インターネットやLAN(Local Area Network)などの任意の種類の通信網であってよい。
【0014】
サーバ装置10は、上記のモデル生成機能を提供するコンピュータの一例である。サーバ装置10は、モデル生成装置の一例に対応し得る。一実施形態として、サーバ装置10は、上記のモデル生成機能を実現するデータ生成プログラムを任意のコンピュータにインストールさせることによって実装できる。例えば、サーバ装置10は、上記のモデル生成機能をオンプレミスに提供するサーバとして実装することができる。この他、サーバ装置10は、SaaS(Software as a Service)型のアプリケーションとして実装することで、上記のモデル生成機能をクラウドサービスとして提供してもよい。
【0015】
クライアント端末30は、上記のモデル生成機能の提供を受けるコンピュータの一例である。例えば、クライアント端末30には、パーソナルコンピュータなどのデスクトップ型のコンピュータなどが対応し得る。これはあくまで一例に過ぎず、クライアント端末30は、ラップトップ型のコンピュータや携帯端末装置、ウェアラブル端末などの任意のコンピュータであってよい。
【0016】
上記の背景技術の欄で説明した通り、LIMEでは、データxが入力された機械学習モデルfが出力する分類結果を説明する際、データxの近傍において機械学習モデルfの出力との間で出力が局所的に近似する線形回帰モデルgが機械学習モデルfを解釈可能なモデルとして生成される。
【0017】
図2は、LIMEのアルゴリズムを模式的に示す図である。
図2には、あくまで一例として、2次元の特徴量空間が模式的に示されている。さらに、
図2には、2次元の特徴量空間のうちクラスAに対応する領域が白地で示されると共に、クラスBに対応する領域がハッチングで示されている。さらに、
図2には、オリジナルのデータxが太字の「+」で示されている。さらに、
図2には、オリジナルのデータxからされた近傍データzを機械学習モデルfへ入力することにより得られたラベルがクラスAである近傍データzが「+」で示されている一方でラベルがクラスBである近傍データzが「●」で示されている。さらに、
図2には、オリジナルのデータzおよび近傍データzが距離関数D(x,z)およびカーネル関数π
x(z)に入力されたサンプル重みπ
xが「+」または「●」の大きさで表現されている。さらに、
図2には、機械学習モデルfに近似された線形回帰モデルの回帰直線g(x)が破線で示されている。
【0018】
あくまで一例として、LIMEのアルゴリズムでは、下記のステップS1~下記のステップS6の手順にしたがって機械学習モデルfの出力の説明が行われる。
【0019】
S1:近傍データzの生成
S2:近傍データzの機械学習モデルfへの入力
S3:距離Dの算出
S4:サンプル重みπxの算出
S5:線形回帰モデルgの生成
S6:偏回帰係数の計算
【0020】
これを具体的に説明すると、オリジナルの入力インスタンスであるデータxの特徴量の一部を変動させることにより、特定のサンプル数、例えば100~10000といった規模で近傍データzが生成される(ステップS1)。このように生成された近傍データzが説明対象とする機械学習モデルfへ入力されることにより機械学習モデルfの出力を得る(ステップS2)。例えば、タスクがクラス分類である場合、機械学習モデルから各クラスの予測確率が出力される。また、タスクがリグレッションである場合、数値に対応する予測値が出力される。その後、オリジナルのデータxおよび近傍データzを距離関数D(x,z)に入力することにより距離Dが得られる(ステップS3)。例えば、機械学習モデルfへの入力がテキストデータである場合には、cos類似度等を用いたり、機械学習モデルfへの入力が画像データである場合には、L2ノルム等を用いたりすることができる。
【0021】
続いて、ステップS3で得られた距離Dと共にカーネル幅σを下記の式(1)で例示されるカーネル関数π
x(z)へ入力することによりサンプル重みπ
xを得る(ステップS4)。その上で、近傍データの特徴量を説明変数とし、近傍データの出力を目的変数として、線形回帰モデルで近似することにより線形回帰モデルgが生成される(ステップS5)。例えば、Ridge回帰では、下記の式(2)で例示される目的関数ξ(x)が用いられる。すなわち、データxの近傍における機械学習モデルfおよび線形回帰モデルgの出力について下記の式(3)の通りに定義される損失関数L(f,g,π
x)と線形回帰モデルgの複雑さΩ(g)との和を最小にする線形回帰モデルgを求める目的関数ξ(x)が解かれる。その後、線形回帰モデルgの偏回帰係数を計算することにより機械学習モデルfの出力への特徴量の寄与度が出力される(ステップS6)。
【数1】
【数2】
【数3】
【0022】
ステップS6で出力される特徴量の寄与度は、機械学習モデルの出力の理由や根拠を分析する側面で有用である。例えば、機械学習が実行されることにより得られた訓練済みの機械学習モデルが訓練データの偏りなどが一因となって生成される粗悪な機械学習モデルであるか否かを識別できる。これにより、粗悪な機械学習モデルがミッションクリティカルな領域で利用されるのを抑制できる。また、訓練済みの機械学習モデルの出力に誤りがある場合、当該誤りが出力された理由や根拠を提示できる。他の側面として、ステップS6で出力される特徴量の寄与度は、機械学習モデルやデータの形式、あるいは機械学習モデルの構造が異なる機械学習モデル同士を同一のルールで比較できる面で有用である。例えば、同一のタスクに用意された複数の訓練済みの機械学習モデルのうちいずれの訓練済みの機械学習モデルが本質的に優れているのかといった機械学習モデルの選定が可能となる。
【0023】
ここで、上記の背景技術の欄で説明した通り、LIMEは、グラフデータへの適用が困難な側面がある。すなわち、LIMEでは、近傍データを生成可能なデータ形式として、表や画像、テキストといった形式のデータをサポートするライブラリのAPI(Application Programming Interface)しか公開されていない。
【0024】
このような現状、グラフデータの近傍データを作成する場合、オリジナルのグラフデータに対して偏って分布した近傍データが生成される場合がある。このような近傍データを用いたとしても、説明対象とする機械学習モデルに近似する線形回帰モデルを生成するのは困難であるので、グラフデータを入力とする機械学習モデルにLIMEを適用する妨げとなる。
【0025】
例えば、グラフデータを入力とする機械学習モデルの例として、GNN(Graph Neural Network)やグラフカーネル関数などが挙げられるが、これらGNNモデルやグラフカーネルモデルなどにLIMEを適用することは困難である。これらGNNモデルやグラフカーネルモデルのうち、GNNモデルには、GNNモデルへ入力されるグラフの各エッジがGNNモデルの出力に寄与する寄与度を出力するGNNExplainerを適用することも考えられる。ところが、GNNExplainerは、GNNモデルに特化した技術であるので、グラフカーネルモデルやその他の機械学習モデルへの適用は困難である。あらゆるタスクで決定的に性能が高い機械学習モデルが存在しない現状、適用可能なタスクが限定されるGNNExplainerは、スタンダードになり得ない。
【0026】
以上のことから、本実施例に係るモデル生成機能は、グラフデータを入力とする機械学習モデルにも適用可能なLIMEの拡張を実現する側面から、オリジナルのグラフデータに対して一様に分布した近傍データの生成を実現する。
【0027】
図3及び
図4は、近傍データの一例を示す図である。
図3及び
図4には、
図2に示す2次元の特徴量空間が示されている。さらに、
図3には、線形回帰モデルgの生成に望ましい近傍データzが示される一方で、
図4には、線形回帰モデルgの生成に望ましくない近傍データzが示されている。
図3に示す近傍データzは、機械学習モデルfが入力を想定しているデータ、例えば機械学習モデルfの訓練時に用いられた訓練データの中に類似するものが存在するデータである。さらに、オリジナルのデータxの近傍に分布する近傍データzの割合も高い。このような近傍データzは、オリジナルのデータxの近傍においてクラスAおよびクラスBの識別境界を区別しやすいので、線形回帰モデルgの生成に向いている。一方、
図4に示す近傍データzは、近傍データz1、z2およびz3に例示される通り、機械学習モデルfが入力を想定していないデータ、例えば機械学習モデルfの訓練時に用いられた訓練データの中に類似するものが存在しないデータが含まれる。さらに、オリジナルのデータxの近傍に分布する近傍データzの割合も低い。このような近傍データzは、オリジナルのデータxの近傍においてクラスAおよびクラスBの識別境界を区別しにくいので、線形回帰モデルgの生成に不向きである。
【0028】
LIMEのAPIでサポートされる表や画像、テキストといった形式のデータであれば、
図3に示す近傍データが生成されやすい一方で、LIMEのAPIでサポートされないグラフデータの場合、
図4に示す近傍データが生成されやすい一面がある。
【0029】
加えて、グラフデータから近傍データが生成される場合、オリジナルのデータの近傍に分布するデータが生成されたとしても、LIMEのAPIでサポートされるデータに比べて、オリジナルのデータに対する近傍データの分布が偏りやすい。
【0030】
図5及び
図6は、近傍データの分布の一例を示す図である。
図5及び
図6に示すグラフの縦軸は、近傍データの数を指し、グラフの横軸は、オリジナルのデータと近傍データの距離Dを指す。
図5に示すように、近傍データがオリジナルのデータの近傍で偏りが少なく、一様に分布する場合、説明対象とする機械学習モデルに近似する線形回帰モデルを生成できる。一方、
図6に示すように、近傍データがオリジナルのデータの近傍で一様でなく、近傍の一部に偏って分布する場合、線形回帰モデルの生成に用いる近傍データのバリエーションが不足しやすい。このため、説明対象とする機械学習モデルに近似する線形回帰モデルを生成するのが困難である。この場合、機械学習モデルfの出力への特徴量の寄与度を算出する精度が低下する。
【0031】
このようにオリジナルのグラフデータに対して偏って分布した近傍データが生成されることを低減できるモデル生成機能を有するサーバ装置10の機能的構成について説明する。
図1には、サーバ装置10が有する機能に対応するブロックが模式化されている。
図1に示すように、サーバ装置10は、通信インタフェイス部11と、記憶部13と、制御部15とを有する。なお、
図1には、上記のモデル生成機能に関連する機能部が抜粋して示されているに過ぎず、図示以外の機能部、例えば既存のコンピュータがデフォルトまたはオプションで装備する機能部がサーバ装置10に備わることとしてもよい。
【0032】
通信インタフェイス部11は、他の装置、例えばクライアント端末30との間で通信制御を行う通信制御部の一例に対応する。あくまで一例として、通信インタフェイス部11は、LANカードなどのネットワークインターフェイスカードにより実現される。例えば、通信インタフェイス部11は、クライアント端末30からLIMEアルゴリズムの実行に関するリクエストを受け付ける。また、通信インタフェイス部11は、LIMEアルゴリズムの実行結果である特徴量の寄与度をクライアント端末30へ出力したりする。
【0033】
記憶部13は、各種のデータを記憶する機能部である。あくまで一例として、記憶部13は、ストレージ、例えば内部、外部または補助のストレージにより実現される。例えば、記憶部13は、グラフデータ群13Gと、モデルデータ13Mとを記憶する。これらグラフデータ群13G及びモデルデータ13M以外にも、記憶部13は、上記のモデル生成機能の提供を受けるユーザのアカウント情報などの各種のデータを記憶することができる。
【0034】
グラフデータ群13Gは、複数のノードと複数のノード間を接続する複数のエッジとを含むデータの集合である。例えば、グラフデータ群13Gに含まれるグラフデータは、機械学習モデルの訓練時に用いられる訓練データであってもよいし、訓練済みの機械学習モデルに入力される入力データであってもよい。また、グラフデータ群13Gに含まれるグラフデータは、隣接行列やテンソルなどの任意の形式であってよい。
【0035】
モデルデータ13Mは、機械学習モデルに関するデータである。例えば、機械学習モデルがニューラルネットワークである場合、モデルデータ13Mには、機械学習モデルを形成する入力層、隠れ層及び出力層の各層のニューロンやシナプスなどの機械学習モデルの層構造を始め、各層の重みやバイアスなどの機械学習モデルのパラメータが含まれ得る。なお、モデルの機械学習が実行される前の段階では、機械学習モデルのパラメータの一例として、乱数により初期設定されたパラメータが記憶される一方で、モデルの機械学習が実行された後の段階では、訓練済みのパラメータが保存される。
【0036】
制御部15は、サーバ装置10の全体制御を行う処理部である。例えば、制御部15は、ハードウェアプロセッサにより実現される。
図1に示すように、制御部15は、設定部15Aと、第1生成部15Bと、動作部15Cと、第1算出部15Dと、判定部15Eと、第2生成部15Fと、第2算出部15Gを有する。
【0037】
設定部15Aは、LIMEアルゴリズムの実行に関する各種の設定を受け付ける。1つの側面として、設定部15Aは、クライアント端末30からLIMEアルゴリズムの実行に関するリクエストを受け付けた場合、処理を起動できる。この際、設定部15Aは、説明対象とするオリジナルのグラフデータxや機械学習モデルfの指定をクライアント端末30を介して受け付けることができる。この他、設定部15Aは、訓練中または訓練済みの機械学習モデルの出力、例えばラベルや数値が不正解である訓練データまたは入力データの中から自動的に選択することもできる。このように取得対象のオリジナルのグラフデータや機械学習モデルが識別された後、設定部15Aは、記憶部13に記憶されたグラフデータ群13Gのうち取得対象のオリジナルのグラフデータxやモデルデータ13Mのうち所得対象の機械学習モデルfを取得する。
【0038】
その上で、設定部15Aは、LIMEアルゴリズムが用いる距離関数D(x,z)およびカーネル幅σを設定する。これら距離関数D(x,z)およびカーネル幅σには、上記のモデル生成機能の開発者等により行われたシステム設定を自動的に適用してもよいし、クライアント端末30からユーザ設定を受け付けることとしてもよい。このような距離関数D(x,z)には、グラフカーネルなどのグラフデータ用の距離関数等を設定できる。例えば、グラフ分割に基づく距離、隣接行列・接続行列の編集距離、cos類似度に基づく距離などが挙げられる。この他の例として、Random walk kernels、shortest path、graphlet kernel、Weisfeiler-Lehmen kernels、GraphHopper kernel、Graph convolutional networks、Neural message passing、GraphSAGE、SplineCNN、k-GNNなどが挙げられる。
【0039】
第1生成部15Bは、オリジナルのグラフデータxから近傍データzを生成する。ここで、近傍データの生成には、任意の手法を適用することができるが、あくまで一例として、第1生成部15Bは、表データ向けの近傍データを生成するライブラリを公開するLIMEのAPIを利用して近傍データを生成できる。例えば、第1生成部15Bは、グラフデータの表現方法のあくまで一例として、隣接行列が用いられる場合を例に挙げる。この場合、隣接行列の要素を特徴量としてみなして表データ用のLIMEのAPIを適用する。具体的には、隣接行列の要素の0または1の値をランダムに反転することにより、元の隣接行列とは異なる隣接行列を作成する。
【0040】
このような近傍データの生成は、次のような条件を満たすまで繰り返される。あくまで一例として、第1生成部15Bは、これまでに生成された近傍データの総数のうち、機械学習モデルfの出力が正例に対応する近傍データ数と、機械学習モデルfの出力が負例に対応する近傍データ数との差を算出する。そして、第1生成部15Bは、正例および負例の近傍データ数の差が閾値以下であるか否かを判定する。このとき、正例および負例の近傍データ数の差が閾値以下でない場合、正例および負例が均等でないと識別できる。この場合、第1生成部15Bは、近傍データの生成を繰り返す。例えば、第1生成部15Bは、正例または負例の近傍データ数のいずれかが閾値、例えばNmax/2+δ/2に達している場合、当該閾値に達していない不足側の正例または負例の近傍データを生成する。一方、第1生成部15Bは、いずれも閾値に達していない場合、近傍データをランダムに生成する。また、正例および負例の近傍データ数の差が閾値以下である場合、正例および負例が均等であると識別できる。この場合、第1生成部15Bは、近傍データの総数が閾値、例えばNmax以に達しているか否かを判定する。そして、近傍データの総数が閾値Nmaxに達していない場合、近傍データの総数が線形回帰モデルの生成に不十分であることを識別できる。この場合、第1生成部15Bは、近傍データの生成を繰り返す。一方、近傍データの総数が閾値Nmaxに達している場合、近傍データの総数が線形回帰モデルの生成に十分であることを識別できる。この場合、近傍データの生成は終了する。
【0041】
動作部15Cは、機械学習モデルfの動作を制御する。1つの側面として、動作部15Cは、第1生成部15Bにより近傍データzが生成された場合、当該近傍データzを機械学習モデルfへ入力することにより機械学習モデルfからの出力を得る。
【0042】
第1算出部15Dは、オリジナルのグラフデータxと近傍データzとの距離を算出する。1つの側面として、第1算出部15Dは、説明対象とするオリジナルのグラフデータxおよび第1生成部15Bにより生成された近傍データzを設定部15Aにより設定された距離関数D(x,z)に入力することにより距離Dを算出する。
【0043】
判定部15Eは、オリジナルのグラフデータxと複数の近傍データzとの距離の分布に基づいて、複数の距離の分布の一様性を示す値が閾値以上か否かを判定する。例えば、距離の一様性の判定のあくまで一例として、カイ2乗検定等を用いることができる。なお、上記の一様性を示す値の代わりに偏り度合い、あるいはばらつき度合いを示す値を判定に用いることもできる。
【0044】
カイ2乗検定によれば、一次元のN個の疑似乱数列x
0,x
1,・・・x
(n-1)が一様な疑似乱数列であるか否かは、その度数分布が等確率性の性質があるかどうかを検定することにより確かめることができる。例えば、疑似乱数列x
0,x
1,・・・x
(n-1)がとる値の範囲をk個の等間隔な区間に分類することにより、各区間内の乱数の個数{f
1,f
2,・・・,f
k}を得る。このとき、疑似乱数列x
0,x
1,・・・x
(n-1)が一様であれば、X
2統計量は、下記の式(4)の通り、漸近的に自由度(k-1)のX
2分布に近づく。
【数4】
【0045】
ここで、帰無仮説H0を次のように設定する。例えば、帰無仮説H0として、疑似乱数列は一様であるという仮説を設定する。このような帰無仮説H0の下、x2統計量に対して、X2
k-1(α)を自由度(k-1)のX2分布の信頼係数α点(α=0.05,有意水準5%など)としたき、以下のように判断する。なお、ここでは、有意水準の一例として、5%を例に挙げたが、他の値、例えば10%等であってもよい。
X2≦X2
k-1(α):帰無仮説H0は採択され、疑似乱数列は一様であるとする。
X2>X2
k-1(α):帰無仮説H0は棄却され、疑似乱数列は一様でないとする。
【0046】
以上のことから、カイ2乗の統計量X2が有意水準以下である場合、すなわち帰無仮説H0が採択される場合、距離の一様性検定が合格であると識別できる。一方、カイ2乗の統計量X2が有意水準以下でない場合、すなわち帰無仮説H0が棄却される場合、距離の一様性検定が不合格であると識別できる。
【0047】
ここで、距離の一様性検定が不合格となった累積回数が閾値、例えば失敗の上限値Failmax未満である場合、距離関数D(x,z)やカーネル幅σの設定から再試行させる。この際、設定部15Aは、カーネル幅σに関する設定をレコメンドしたり、カーネル幅σを自動設定したりすることもできる。すなわち、カーネル幅σは、検定時の近傍データの分散状況に基づいて調整されても良い。
【0048】
第2生成部15Fは、複数の近傍データを機械学習モデルfに入力して得られた結果を目的変数として、複数の近傍データを説明変数として、線形回帰モデルを生成する。あくまで一例として、第2生成部15Fは、上記の式(2)で例示される目的関数ξ(x)にしたがって線形回帰モデルgを生成できる。すなわち、データxの近傍における機械学習モデルfおよび線形回帰モデルgの出力について上記の式(3)の損失関数L(f,g,πx)と線形回帰モデルgの複雑さΩ(g)との和を最小にする線形回帰モデルgを求める目的関数ξ(x)を最適化することにより、線形回帰モデルgを得ることができる。
【0049】
第2算出部15Gは、機械学習モデルfの出力への特徴量の寄与度を算出する。あくまで一例として、第2算出部15Gは、第2生成部15Fにより生成された線形回帰モデルgの偏回帰係数を計算することにより、機械学習モデルfの出力への特徴量の寄与度を算出できる。このようにして得られた特徴量の寄与度は、クライアント端末30へ出力することができる。
【0050】
図7及び
図8は、実施例1に係るモデル生成処理の手順を示すフローチャートである。この処理は、あくまで一例として、クライアント端末30からLIMEアルゴリズムの実行に関するリクエストを受け付けた場合に開始される。
【0051】
図7に示すように、設定部15Aは、説明対象とするオリジナルのグラフデータxや機械学習モデルfの指定をクライアント端末30を介して受け付ける(ステップS101)。続いて、設定部15Aは、ステップS101で指定を受け付けた説明対象のオリジナルのグラフデータxや機械学習モデルfを取得する(ステップS102)。
【0052】
そして、設定部15Aは、LIMEアルゴリズムが用いる距離関数D(x,z)およびカーネル幅σを設定する(ステップS103)。続いて、第1生成部15Bは、ステップS102で取得されたオリジナルのグラフデータxから近傍データzを生成する(ステップS104)。
【0053】
その後、動作部15Cは、ステップS104で生成された近傍データzを機械学習モデルfへ入力することにより機械学習モデルfからの出力を得る(ステップS105)。続いて、第1算出部15Dは、ステップS102で取得されたオリジナルのグラフデータxおよびステップS104で生成された近傍データzをステップS103で設定された距離関数D(x,z)に入力することにより距離Dを算出する(ステップS106)。
【0054】
そして、第1生成部15Bは、正例および負例の近傍データ数の差が閾値以下であるか否かを判定する(ステップS107)。このとき、正例および負例の近傍データ数の差が閾値以下でない場合(ステップS107No)、正例および負例が均等でないと識別できる。この場合、ステップS104へ移行する。すなわち、第1生成部15Bは、正例または負例の近傍データ数のいずれかが閾値、例えばNmax/2+δ/2に達していれば、当該閾値に達していない不足側の正例または負例の近傍データを生成し、いずれも閾値に達していない場合、近傍データをランダムに生成する。
【0055】
また、正例および負例の近傍データ数の差が閾値以下である場合(ステップS107Yes)、正例および負例が均等であると識別できる。この場合、第1生成部15Bは、近傍データの総数が閾値、例えばNmax以に達しているか否かを判定する(ステップS108)。
【0056】
そして、近傍データの総数が閾値Nmaxに達していない場合(ステップS108No)、近傍データの総数が線形回帰モデルの生成に不十分であることを識別できる。この場合、第1生成部15Bは、ステップS104へ移行し、近傍データの生成を繰り返す。
【0057】
一方、近傍データの総数が閾値N
maxに達している場合(ステップS108Yes)、近傍データの総数が線形回帰モデルの生成に十分であることを識別できる。この場合、
図8に示すように、判定部15Eは、ステップS102で取得されたオリジナルのグラフデータxと、ステップS104の繰り返しにより得られた複数の近傍データzとの各距離に基づいて、距離の一様性の検定、例えばカイ2乗の統計量X
2の算出を行う(ステップS110)。
【0058】
ここで、ステップS110の検定でカイ2乗の統計量X2が有意水準以下である場合、すなわち帰無仮説H0が採択される場合(ステップS111Yes)、距離の一様性検定が合格であると識別できる。この場合、第2生成部15Fは、複数の近傍データを機械学習モデルfに入力して得られた結果を目的変数として、複数の近傍データを説明変数として、線形回帰モデルを生成する(ステップS112)。
【0059】
その後、第2生成部15Fにより生成された線形回帰モデルgの偏回帰係数を計算することにより、機械学習モデルfの出力への特徴量の寄与度を算出する(ステップS113)。そして、ステップS113で算出された特徴量の寄与度に対する説明OKの確認操作が行われた場合(ステップS114Yes)、処理を終了する。なお、ステップS113で算出された特徴量の寄与度に対する説明NGの確認操作が行われた場合(ステップS114No)、ステップS103の処理へ戻る。
【0060】
なお、ステップS110の検定でカイ2乗の統計量X2が有意水準以下でない場合、すなわち帰無仮説H0が棄却される場合(ステップS111No)、距離の一様性検定が不合格であると識別できる。この場合、距離の一様性検定が不合格となった累積回数が閾値、例えば失敗の上限値Failmax未満である場合(ステップS115Yes)、距離関数D(x,z)やカーネル幅σの設定から再試行させる。この際、距離の一様性検定が不合格となった際に用いられていた距離関数とは異なる距離関数を自動的に設定したり、異なる距離関数のレコメンドをクライアント端末30に出力したりすることもできる。一方、距離の一様性検定が不合格となった累積回数が閾値に達した場合(ステップS115No)、近傍データの生成の再試行を打ち切ってステップS112へ移行する。
【0061】
上述してきたように、本実施例に係るモデル生成機能は、オリジナルのグラフデータと、複数の近傍データとの距離の分布が一様である場合、複数の近傍データから機械学習モデルに局所近似する線形回帰モデルを生成する。例えば、
図6に示すように、近傍データzがオリジナルのグラフデータxの近傍で一様でなく、近傍の一部に偏って分布する場合、線形回帰モデルの生成を抑制できる。一方、
図5に示すように、近傍データzがオリジナルのグラフデータxの近傍で偏りが少なく、一様に分布する場合、線形回帰モデルを生成できる。したがって、本実施例に係るモデル生成機能によれば、グラフデータに適用可能なLIMEの拡張を実現できる。
【0062】
さらに、本実施例に係るモデル生成機能は、正例および負例の近傍データ数の差が閾値以下であるか否かに応じて線形回帰モデルを生成するか否かが制御される。
図9及び
図10は、近傍データの分布の一例を示す図である。
図9及び
図10に示すグラフの縦軸は、π
x(Z)を指す。また、グラフの横軸は、距離D(x,z)を指す。ここで、機械学習モデルfの出力が正例である近傍データzの距離Dと、機械学習モデルfの出力が負例である近傍データzの距離Dとがグラフの縦軸を対称に分けてプロットされている。例えば、
図9に示すように、正例の近傍データ数と負例の近傍データ数とが均等でない場合、線形回帰モデルの生成を抑制できる。一方、
図10に示すように、正例の近傍データ数と負例の近傍データ数とが均等である場合、線形回帰モデルを生成できる。
【実施例2】
【0063】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【0064】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、設定部15A、第1生成部15B、動作部15C、第1算出部15D、判定部15E、第2生成部15Fまたは第2算出部15Gをサーバ装置10の外部装置としてネットワーク経由で接続するようにしてもよい。また、設定部15A、第1生成部15B、動作部15C、第1算出部15D、判定部15E、第2生成部15Fまたは第2算出部15Gを別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のサーバ装置10の機能を実現するようにしてもよい。
【0065】
また、実施例1及び実施例2で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、
図10を用いて、実施例1及び実施例2と同様の機能を有するモデル生成プログラムを実行するコンピュータの一例について説明する。
【0066】
図10は、コンピュータのハードウェア構成例を示す図である。
図10に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110~180の各部はバス140を介して接続される。
【0067】
HDD170には、
図10に示すように、上記の実施例1で示した設定部15A、第1生成部15B、動作部15C、第1算出部15D、判定部15E、第2生成部15F及び第2算出部15Gと同様の機能を発揮するモデル生成プログラム170aが記憶される。このモデル生成プログラム170aは、
図1に示した設定部15A、第1生成部15B、動作部15C、第1算出部15D、判定部15E、第2生成部15F及び第2算出部15Gの各構成要素と同様、統合又は分離してもかまわない。すなわち、HDD170には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。
【0068】
このような環境の下、CPU150は、HDD170からモデル生成プログラム170aを読み出した上でRAM180へ展開する。この結果、モデル生成プログラム170aは、
図10に示すように、モデル生成プロセス180aとして機能する。このモデル生成プロセス180aは、RAM180が有する記憶領域のうちモデル生成プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、モデル生成プロセス180aが実行する処理の一例として、
図7~
図8に示す処理などが含まれる。なお、CPU150では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【0069】
なお、上記のモデル生成プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ100がこれらから各プログラムを取得して実行するようにしてもよい。
【符号の説明】
【0070】
10 サーバ装置
11 通信インタフェイス部
13 記憶部
13G グラフデータ群
13M モデルデータ
15 制御部
15A 設定部
15B 第1生成部
15C 動作部
15D 第1算出部
15E 判定部
15F 第2生成部
15G 第2算出部
30 クライアント端末