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

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

▶ みずほ情報総研株式会社の特許一覧

特開2023-102292情報選択システム、情報選択方法及び情報選択プログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023102292
(43)【公開日】2023-07-24
(54)【発明の名称】情報選択システム、情報選択方法及び情報選択プログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20230714BHJP
   G06F 18/27 20230101ALI20230714BHJP
   G06N 3/088 20230101ALI20230714BHJP
【FI】
G06N20/00 130
G06F18/27
G06N3/088
【審査請求】有
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023064309
(22)【出願日】2023-04-11
(62)【分割の表示】P 2022002565の分割
【原出願日】2022-01-11
(71)【出願人】
【識別番号】592131906
【氏名又は名称】みずほリサーチ&テクノロジーズ株式会社
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】永田 毅
(72)【発明者】
【氏名】竹田 康亮
(72)【発明者】
【氏名】前川 秀正
(72)【発明者】
【氏名】世古 千博
(72)【発明者】
【氏名】小泉 拓
(72)【発明者】
【氏名】水谷 麻紀子
(72)【発明者】
【氏名】根本 裕也
(72)【発明者】
【氏名】橋本 大樹
(72)【発明者】
【氏名】森 悠史
(72)【発明者】
【氏名】玉垣 勇樹
(72)【発明者】
【氏名】岩渕 耕平
(72)【発明者】
【氏名】小永吉 健太
(72)【発明者】
【氏名】信夫 大志
(57)【要約】
【課題】情報処理に用いる情報を効率的に的確に選択するための情報選択システム、情報選択方法及び情報選択プログラムを提供する。
【解決手段】支援サーバ20の制御部21が、複数のデータセットからなる情報において、一部の情報を用いて、複数の解析モデルを生成し、各解析モデルの精度を算出し、各精度に応じた分配値を、解析モデルの生成に用いた情報に割り当て、解析モデルの生成に用いた情報毎に、分配値の統計値を算出し、統計値を用いて、解析モデルの生成に用いる情報を選択する。
【選択図】図1
【特許請求の範囲】
【請求項1】
解析モデルの生成に用いる情報を選択する制御部を備えた情報選択システムであって、
前記制御部が、
複数のデータセットからなる情報において、一部の情報を用いて、複数の解析モデルを生成し、前記各解析モデルの精度を算出し、
前記各精度に応じた分配値を、前記解析モデルの生成に用いた情報に割り当て、
前記解析モデルの生成に用いた情報毎に、前記分配値の統計値を算出し、
前記統計値を用いて、解析モデルの生成に用いる情報を選択することを特徴とする情報選択システム。
【請求項2】
前記制御部が、前記解析モデルの生成に用いる情報として、前記データセットを構成する説明変数の中で、前記解析モデルの生成に用いる変数を選択することを特徴とする請求項1に記載の情報選択システム。
【請求項3】
前記制御部が、
前記データセットとして、説明変数値と目的変数値とを組み合わせたデータセットを用いて生成した自己組織化マップに対して、検証用データの説明変数値を入力して、前記説明変数値を予測し、
前記検証用データの説明変数値と、前記予測した説明変数値とを比較して、前記各説明変数の寄与値を算出し、
前記寄与値を用いて、前記各精度に応じた分配値を算出することを特徴とする請求項2に記載の情報選択システム。
【請求項4】
前記制御部が、
前記データセットの説明変数を用いた予測において、目的変数の予測結果に対する寄与値を算出し、
前記寄与値に基づいて、前記各精度に応じた分配値を、前記各説明変数に割り当てることを特徴とする請求項2又は3に記載の情報選択システム。
【請求項5】
前記制御部が、
目的変数と説明変数とを含むデータセットを用いて、前記解析モデルとして、ノード及びパスからなる自己組織化マップを生成し、
前記自己組織化マップにおいて、前記データセットの前記説明変数に対して予測された目的変数の前記予測結果から、各寄与値を算出することを特徴とする請求項4に記載の情報選択システム。
【請求項6】
前記制御部が、前記解析モデルの生成に用いる情報として、前記複数のデータセットの中で、前記解析モデルの生成に用いるデータセットを選択することを特徴とする請求項1記載の情報選択システム。
【請求項7】
制御部を備えた情報選択システムを用いて、解析モデルの生成に用いる情報を選択する方法であって、
前記制御部が、
複数のデータセットからなる情報において、一部の情報を用いて、複数の解析モデルを生成し、前記各解析モデルの精度を算出し、
前記各精度に応じた分配値を、前記解析モデルの生成に用いた情報に割り当て、
前記解析モデルの生成に用いた情報毎に、前記分配値の統計値を算出し、
前記統計値を用いて、解析モデルの生成に用いる情報を選択することを特徴とする情報選択方法。
【請求項8】
制御部を備えた情報選択システムを用いて、解析モデルの生成に用いる情報を選択するためのプログラムであって、
前記制御部を、
複数のデータセットからなる情報において、一部の情報を用いて、複数の解析モデルを生成し、前記各解析モデルの精度を算出し、
前記各精度に応じた分配値を、前記解析モデルの生成に用いた情報に割り当て、
前記解析モデルの生成に用いた情報毎に、前記分配値の統計値を算出し、
前記統計値を用いて、解析モデルの生成に用いる情報を選択する手段として機能させるための情報選択プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理に用いる情報を選択するための情報選択システム、情報選択方法及び情報選択プログラムに関する。
【背景技術】
【0002】
学習処理を行なう場合、学習に用いる変数を選択するためにステップワイズ法を利用することがある。ステップワイズ法は、逐次的に1つずつ、変数を追加あるいは削除していく手法である(例えば、特許文献1を参照。)。この文献に記載された技術は、プロセスの状態予測方法において、重回帰モデルを構成する説明変数を、プロセスの操業状態を示す複数のプロセス変数の時刻歴データが蓄積された時系列データベースから選定する。この場合、ステップワイズ法により説明変数を絞り込んだ後、絞り込まれた説明変数の偏回帰係数の正負をチェックし、実現象と逆の作用を示す説明変数を除外する。
【0003】
ここで、図21図24を用いて、ステップワイズ法の中で、全変数を選択した状態からスタートし、1つずつ変数を削除していく変数減少法を説明する。
図21に示すように、まず、全変数を選択して精度の計算を行なう(ステップS01)。例えば、変数p1~p4を用いる場合、すべての変数(p1~p4)を用いて、回帰式を算出する。そして、この回帰式の精度として、平均絶対誤差(MAE)である予測誤差e0を算出する。
【0004】
次に、変数を削除した組み合わせの精度の計算を行なう(ステップS02)。
図22のテーブル700に示すように、変数(p1~p4)を用いる場合、一つずつ削除した変数の組み合わせを用いて、回帰式を算出する。例えば、変数(p2~p4)を用いた回帰式の精度として予測誤差e11を算出し、変数(p1,p3,p4)を用いた回帰式の精度として予測誤差e12を算出する。また、変数(p1,p2,p4)を用いた回帰式の精度として予測誤差e13を算出し、変数(p1~p3)を用いた回帰式の精度として予測誤差e14を算出する。
【0005】
次に、精度に応じて変数の削除を行なう(ステップS03)。ここでは、最も精度が良かった組み合わせを用いて、変数(平均絶対誤差が最も小さい変数)を削除する。すなわち、特定の変数を用いないときの平均絶対誤差が小さくなる場合に、この特定の変数を削除する。図22の予測誤差e11~e14の中で予測誤差e12が最も小さい場合、図23のテーブル701に示すように、変数p2を削除する。
【0006】
次に、終了かどうかについての判定を行なう(ステップS04)。例えば、残っている変数が2の場合には終了と判定する。終了と判定した場合(ステップS04において「YES」の場合)、最も精度の良い変数の組み合わせを最終結果として特定する。
一方、終了でないと判定した場合(ステップS04において「NO」の場合)、ステップS02以降の処理を繰り返す。
【0007】
図23に示すように、変数(p1,p3,p4)の一つを削除した変数の組み合わせを用いて、回帰式を算出する。例えば、変数(p3,p4)を用いた回帰式の精度として予測誤差e21を算出し、変数(p1,p4)を用いた回帰式の精度として予測誤差e23を算出し、変数(p1,p3)を用いた回帰式の精度として予測誤差e24を算出する。図23の予測誤差e21,e23,e24の中で予測誤差e21が最も小さい場合、図24のテーブル702に示すように、変数p1を削除する。
【0008】
そして、最も精度の良い変数(平均絶対誤差が大きい変数)の組み合わせ(ここでは、変数p3,p4)を最終結果として特定する。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2012-128800号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、変数を1つずつ検討していくので、複数の変数の組み合わせが考慮されない場合がある。この場合、局所解に陥りやすい。例えば、図22図24の例では、最初に変数p2を削除するため、変数p2が入った組み合わせは、それ以降は考慮されない。また、変数が多いと、試行回数が膨大になるため、計算時間が長くなる。
【課題を解決するための手段】
【0011】
上記課題を解決する情報選択システムは、解析モデルの生成に用いる情報を選択する制御部を備える。そして、前記制御部が、複数の教師データからなる情報において、一部の情報を用いて、複数の解析モデルを生成し、前記各解析モデルの精度を算出し、前記各精度に応じた分配値を、前記解析モデルの生成に用いた情報に割り当て、前記解析モデルの生成に用いた情報毎に、前記分配値の統計値を算出し、前記統計値を用いて、解析モデルの生成に用いる情報を選択する。
【発明の効果】
【0012】
本発明は、情報処理に用いる情報を効率的に的確に選択することができる。
【図面の簡単な説明】
【0013】
図1】第1実施形態の情報選択システムの説明図である。
図2】第1実施形態のハードウェア構成の説明図である。
図3】第1実施形態の処理手順の説明図である。
図4】第1実施形態の変数テーブルの説明図である。
図5】第1実施形態の変数テーブルの説明図である。
図6】第2実施形態の処理手順の説明図である。
図7】第2実施形態の自己組織化マップのノードの説明図である。
図8】第2実施形態の変数テーブルの説明図である。
図9】第2実施形態の処理手順の説明図である。
図10】第2実施形態の処理手順の説明図である。
図11】第2実施形態の距離テーブルの説明図である。
図12】第2実施形態の処理手順の説明図である。
図13】第2実施形態の処理手順の説明図である。
図14】第2実施形態の処理手順の説明図である。
図15】第2実施形態の処理手順の説明図であって、(a)は入力データの配置、(b)は新規ノードの追加、(c)は既存ノードの更新の説明図である。
図16】第3実施形態の処理手順の説明図である。
図17】別例の処理手順の説明図である。
図18】別例の処理手順の説明図である。
図19】別例の処理手順の説明図であって、(a)は入力データの配置、(b)は新規ノードの追加、(c)は既存ノードの更新の説明図である。
図20】別例のノード間距離の説明図である。
図21】従来の処理手順の説明図である。
図22】従来の処理手順の説明図である。
図23】従来の処理手順の説明図である。
図24】従来の処理手順の説明図である。
【発明を実施するための形態】
【0014】
(第1実施形態)
図1図5に従って、情報選択システム、情報選択方法及び情報選択プログラムを具体化した一実施形態を説明する。本実施形態では、変数(情報)をランダムに選択して学習を繰り返し、変数の有効性を求めて追加・削除を逐次的に行なう。
図1に示すように、本実施形態の情報選択システムは、ユーザ端末10、支援サーバ20を用いる。
【0015】
(ハードウェア構成例)
図2は、ユーザ端末10、支援サーバ20等として機能する情報処理装置H10のハードウェア構成例である。
【0016】
情報処理装置H10は、通信装置H11、入力装置H12、表示装置H13、記憶装置H14、プロセッサH15を有する。なお、このハードウェア構成は一例であり、他のハードウェアを有していてもよい。
【0017】
通信装置H11は、他の装置との間で通信経路を確立して、データの送受信を実行するインタフェースであり、例えばネットワークインタフェースや無線インタフェース等である。
【0018】
入力装置H12は、利用者等からの入力を受け付ける装置であり、例えばマウスやキーボード等である。表示装置H13は、各種情報を表示するディスプレイやタッチパネル等である。
【0019】
記憶装置H14は、ユーザ端末10、支援サーバ20の各種機能を実行するためのデータや各種プログラムを格納する記憶装置である。記憶装置H14の一例としては、ROM、RAM、ハードディスク等がある。
【0020】
プロセッサH15は、記憶装置H14に記憶されるプログラムやデータを用いて、ユーザ端末10、支援サーバ20における各処理(例えば、後述する制御部21における処理)を制御する。プロセッサH15の一例としては、例えばCPUやMPU等がある。このプロセッサH15は、ROM等に記憶されるプログラムをRAMに展開して、各種処理に対応する各種プロセスを実行する。例えば、プロセッサH15は、ユーザ端末10、支援サーバ20のアプリケーションプログラムが起動された場合、後述する各処理を実行するプロセスを動作させる。
【0021】
プロセッサH15は、自身が実行するすべての処理についてソフトウェア処理を行なうものに限られない。例えば、プロセッサH15は、自身が実行する処理の少なくとも一部についてハードウェア処理を行なう専用のハードウェア回路(例えば、特定用途向け集積回路:ASIC)を備えてもよい。すなわち、プロセッサH15は、以下で構成し得る。
【0022】
(1)コンピュータプログラム(ソフトウェア)に従って動作する1つ以上のプロセッサ
(2)各種処理のうち少なくとも一部の処理を実行する1つ以上の専用のハードウェア回路、或いは
(3)それらの組み合わせ、を含む回路(circuitry)
プロセッサは、CPU並びに、RAM及びROM等のメモリを含み、メモリは、処理をCPUに実行させるように構成されたプログラムコード又は指令を格納している。メモリすなわちコンピュータ可読媒体は、汎用又は専用のコンピュータでアクセスできるあらゆる利用可能な媒体を含む。
【0023】
(各情報処理装置の機能)
図1を用いて、ユーザ端末10、支援サーバ20の機能を説明する。
ユーザ端末10は、本システムを利用するユーザが用いるコンピュータ端末である。
【0024】
支援サーバ20は、情報処理に用いる変数を選択するコンピュータシステムである。この支援サーバ20は、制御部21、記憶部22を備えている。ここでは、情報処理として機械学習を行なう。
制御部21は、後述する処理(選択段階、評価段階等を含む処理)を行なう。このための情報選択プログラムを実行することにより、制御部21は、選択部211、評価部212等として機能する。
【0025】
選択部211は、情報処理に用いる変数を選択する処理を実行する。
評価部212は、選択された変数を用いた解析モデルの精度を算出する処理を実行する。具体的には、評価部212は、機械学習により解析モデルを生成し、この解析モデルの予測誤差を精度として算出する。
記憶部22には、機械学習等の情報処理に用いる情報(入力データ)が記録される。この入力データは、情報処理に用いるデータを取得した場合に記録される。入力データは、異なる次元からなる複数の要素データを備えたベクトルである。例えば、複数種類の説明変数及び目的変数からなる教師データを用いることができる。
【0026】
(変数選択処理)
次に、図3を用いて、変数選択処理を説明する。ここでは、支援サーバ20の制御部21の選択部211は、ユーザ端末10から入力データを取得する。そして、選択部211は、入力データを記憶部22に記録する。
【0027】
まず、支援サーバ20の制御部21は、全変数で精度の計算処理を実行する(ステップS101)。具体的には、制御部21の選択部211は、記憶部22に記録された入力データにおいて、すべての変数値を含めてデータセット(教師データ群)を作成する。次に、選択部211は、評価部212に対して、作成したデータセットを提供する。そして、評価部212は、データセットを用いた機械学習を行なうことにより、解析モデルを作成する。次に、評価部212は、作成した解析モデルの精度(予測誤差)を計算する。
【0028】
そして、支援サーバ20の制御部21は、以下の処理を、所定回数、繰り返す。
ここでは、支援サーバ20の制御部21は、所定数の変数の削除処理を実行する(ステップS102)。具体的には、制御部21の選択部211は、入力データを構成する変数から、ランダムに所定数の複数種類の変数(利用変数組)を特定する。本実施形態では、削除対象として、2個の変数を特定する。
【0029】
次に、支援サーバ20の制御部21は、過去に選択した変数組かどうかについての判定処理を実行する(ステップS103)。具体的には、制御部21の選択部211は、今回の利用変数組と、これまでに評価を行なった利用変数組とを比較する。
【0030】
今回の利用変数組と、これまでに評価を行なった利用変数組とが一致しており、過去に選択した利用変数組と判定した場合(ステップS103において「YES」の場合)、所定数の変数の削除処理(ステップS102)を繰り返す。
【0031】
一方、過去に選択した変数組でないと判定した場合(ステップS103において「NO」の場合)、支援サーバ20の制御部21は、予測誤差の算出処理を実行する(ステップS104)。具体的には、制御部21の選択部211は、今回の利用変数組を削除したデータセットを作成する。次に、選択部211は、評価部212に対して、作成したデータセットを提供する。そして、評価部212は、データセットを用いた機械学習を行なうことにより、解析モデルを作成する。次に、評価部212は、作成した解析モデルの精度(予測誤差)を計算する。
【0032】
次に、支援サーバ20の制御部21は、利用変数組に対して予測誤差の割当処理を実行する(ステップS105)。具体的には、制御部21の選択部211は、利用変数組の各変数に対して、計算した予測誤差を分配値として割り当てる。
【0033】
図4に示すように、変数(p1~p8)を用いる場合、複数の変数p2,p7を削除したケースを想定する。ここで、変数テーブル100に示すように、予測誤差の算出処理(ステップS104)において、予測誤差e1を算出した場合を想定する。そして、利用変数組に対して予測誤差の割当処理(ステップS105)において、変数テーブル101に示すように、変数(p1,p3~p6,p8)に予測誤差e1を割り当てる。
以上の処理を、所定回数、繰り返す。
【0034】
図5に示すように、7回(所定回数)の処理を繰り返した後、変数テーブル102が生成される。ここでは、各利用変数組に対して予測誤差e1~e7が算出されて、利用変数に対して割り当てられている。
【0035】
次に、支援サーバ20の制御部21は、各変数について予測誤差の平均値の算出処理を実行する(ステップS106)。具体的には、制御部21の選択部211は、各変数について割り当てられた予測誤差の統計値(ここでは、平均値)を算出する。
【0036】
この場合、図5の平均値欄103に示すように、変数(p1~p8)に対して割り当てられた予測誤差(e1~e7)の平均値av1~av8を算出する。例えば、変数p1のav1は、予測誤差e1,e3~e7の平均値である。
【0037】
次に、支援サーバ20の制御部21は、予測誤差が大きい変数の削除処理を実行する(ステップS107)。具体的には、制御部21の選択部211は、予測誤差の平均値が大きい変数を特定する。そして、選択部211は、予測誤差の平均値が大きい変数を削除する。この場合、選択部211は、残っている変数組に関連付けて予測誤差をメモリに仮記憶する。
【0038】
次に、支援サーバ20の制御部21は、終了条件に到達かどうかについての判定処理を実行する(ステップS108)。具体的には、制御部21の選択部211は、繰り返し回数Nが目標回数Nmax(終了条件)になっているかどうかを確認する。なお、最大計算時間を予め定めておいて、この最大計算時間を終了条件としてもよい。
【0039】
繰り返し回数Nが目標回数Nmaxに達しておらず、終了条件に到達していないと判定した場合(ステップS108において「NO」の場合)、支援サーバ20の制御部21は、繰り返し回数Nに「1」を加算する。そして、所定数の変数の削除処理(ステップS102)以降の処理を繰り返す。
【0040】
一方、繰り返し回数Nが目標回数Nmaxに一致しており、終了条件に到達したと判定した場合(ステップS108において「YES」の場合)、支援サーバ20の制御部21は、最も精度の良い変数の組み合わせの出力処理を実行する(ステップS109)。具体的には、制御部21の選択部211は、メモリに仮記憶された変数組において、予測誤差が最も小さい変数組を特定する。そして、選択部211は、特定した変数組を、ユーザ端末10に出力する。
【0041】
本実施形態によれば、以下のような効果を得ることができる。
(1-1)本実施形態においては、支援サーバ20の制御部21は、所定数の変数の削除処理(ステップS102)、予測誤差の算出処理(ステップS104)、利用変数組に対して予測誤差の割当処理(ステップS105)を実行する。これにより、複数の変数の組み合わせを考慮して、局所解の発生を抑制することができる。
【0042】
(1-2)本実施形態においては、支援サーバ20の制御部21は、各変数について予測誤差の平均値の算出処理(ステップS106)、予測誤差が大きい変数の削除処理(ステップS107)を実行する。これにより、統計的に誤差が大きい変数を削除することができる。すなわち、各変数の平均予測誤差は、各変数の有効性が反映されていると考えられる。Hebb則のように、学習を繰り返すことにより、有効な変数の組み合わせを強調させることができる。
【0043】
ここで、32次元の学習データ(2クラス分類)を人工的に生成して検証した。32個の選択変数を用いたサポートベクターマシン(SVM)の予測誤差は、「0.246」であった。また、ステップワイズ法及びSVMを用いた場合、選択変数は11個になり、予測誤差は、「0.141」であった。更に、上記実施形態及びSVMを用いた場合、選択変数は9個になり、予測誤差は、「0.137」となり、ステップワイズ法よりもよい精度を得ることができた。
【0044】
(第2実施形態)
次に、図6に従って、情報選択システム、情報選択方法及び情報選択プログラムを具体化した第2実施形態を説明する。第1実施形態では、予測誤差をそのまま利用変数に割り当てる方法について説明した。第2実施形態では、各変数の有効性を反映させて割り当てるように変更した構成であり、上記第1実施形態と同様の部分については、同一の符号を付し、その詳細な説明を省略する。
【0045】
図6に示すように、予測誤差の算出処理(ステップS104)の実行後に、支援サーバ20の制御部21は、利用変数の貢献度の算出処理を実行する(ステップS201)。ここでは、利用変数組を用いて算出した精度(予測誤差)に対して、各利用変数の貢献度を算出する。
【0046】
各変数の貢献度(有効性)を算出するために、自己組織化マップを用いる。このため、支援サーバ20の記憶部22には、生成した自己組織化マップを記録する。この自己組織化マップは、学習処理の実行時に記録される。自己組織化マップは、複数次元空間に配置されたノードと、ノード間を繋ぐパスとから構成される。そして、各パス及び各ノードは年齢に関する情報を保持する。この年齢は、新たな入力データの取得時に「1」だけ増加される。更に、各パス及び各ノードは、活性値に関する情報を保持する。活性値は、各パス及び各ノードの有効性(存在意義)を表す指標である。
【0047】
図7を用いて、入力変数及び目的変数により各ノードを構成した自己組織化マップを用いて、この貢献度の概念を説明する。ここでは、入力データの5次元の説明変数に対して目的変数を予測する自己組織化マップを想定する。入力データの説明変数を自己組織化マップに適用した場合、ノードn1,n2が勝者ノードと判定する。この場合、最も近いノードの目的変数値を予測値とする。ここで、ノードn1及び入力データの各説明変数の距離D(1,j)と、ノードn2及び入力データの各説明変数の距離D(2,j)との差分「D(1,j)-D(2,j)」を算出する。「j」は説明変数の種類を示す。
【0048】
差分「D(1,j)-D(2,j)」により、ノードn1に近い説明変数と、ノードn2に近い説明変数とがあることがわかる。ここで、入力データの目的変数値が、ノードn1の説明変数値よりもノードn2の説明変数値の方が好ましい場合、ノードn2の目的変数の方が近いことになる。すなわち、差分が正の説明変数については、予測に良い影響を与えていることを示す。一方、差分が負の説明変数については、予測に悪い影響を与えていることを示す。そこで、この差分を説明変数の貢献度を表わす指標として用いる。
【0049】
図8のテーブル110に示すように、変数(p1,p3~p6,p8)が選択されて、精度として予測誤差e1を算出した場合を想定する。この場合、予測誤差e1の算出における変数(p1,p3~p6,p8)の貢献度V(i,j)を算出する。
【0050】
この場合、貢献度V(i,j)を以下の式で計算する。
【0051】
【数1】
【0052】
次に、支援サーバ20の制御部21は、貢献度を考慮した予測誤差の割当処理を実行する(ステップS202)。
図8に示すように、変数(p1,p3~p6,p8)の各貢献度及び予測誤差e1を用いて、各変数の分配値(A2(i,1),A2(i,3)~A2(i,6),A2(i,8),)を割り当てる。
各変数に設定する分配値A2を以下の式で算出する。
【0053】
【数2】
【0054】
(自己組織化マップの作成方法)
次に、図9を用いて、利用変数の貢献度の算出処理(ステップS201)に用いる自己組織化マップの作成処理を説明する。ここでは、ユーザ端末10から入力データを取得する。そして、支援サーバ20の制御部21の選択部211は、入力データを記憶部22に記録する。ここでは、説明変数及び目的変数からなる入力データを用いる。この場合、支援サーバ20の制御部21は、マップを作成しながら、学習の精度を検証する。そして、学習の精度が基準値に達していない場合には、学習のハイパーパラメータである調整係数において、学習の精度が基準値以上の最適値を探す交差検証を実行する。これにより、目的変数の変数値に調整係数を乗算して目的変数の影響を調整する。
【0055】
(マップ生成処理)
まず、支援サーバ20の制御部21は、入力データの解析処理を実行する(ステップS401)。具体的には、制御部21の評価部212は、入力データD(i)からノードを作成する場合に用いる最大距離dmaxを算出する。ここでは、全データ数Nに対して、ノードの近傍データ数Nn、考慮する勝者数Nwを予め設定しておく。
【0056】
図10を用いて、入力データの解析処理(ステップS401)を説明する。
ここでは、まず、支援サーバ20の制御部21は、各データ間の距離の算出処理を実行する(ステップS501)。具体的には、制御部21の評価部212は、すべての2つの入力データD(i)の組み合わせの距離を算出する。
この場合、図11に示すように、各データ間の距離(d12,d13,…,d23,…)を算出した距離テーブル500を作成する。
【0057】
次に、支援サーバ20の制御部21は、各データについて、近傍データとの距離の算出処理を実行する(ステップS502)。具体的には、制御部21の評価部212は、距離テーブル500において、距離を昇順に並び替えて、長さがNn番目までの距離を取得する。
【0058】
次に、支援サーバ20の制御部21は、平均値の算出処理を実行する(ステップS503)。具体的には、制御部21の評価部212は、取得したNn番目までの距離の平均値(統計値)を算出する。そして、この平均値をノード間の最大距離dmaxとして、記憶部22に記録する。
【0059】
次に、図9に示すように、支援サーバ20の制御部21は、初期化処理を実行する(ステップS402)。ここでは、制御部21の評価部212は、パラメータ、初期ノードを決定する。
【0060】
図12を用いて、初期化処理(ステップS402)を説明する。ここでは、すべての入力データD(i)をノードとして取り扱う。
まず、支援サーバ20の制御部21は、i=1から、順次、入力データD(i)を処理対象として特定して、以下の処理を繰り返す。
【0061】
まず、支援サーバ20の制御部21は、最大距離内の近傍データの特定処理を実行する(ステップS601)。具体的には、制御部21の評価部212は、処理対象の入力データD(i)からの距離が最大距離dmax以内の全ての近傍データを特定する。
【0062】
次に、支援サーバ20の制御部21は、ノード活性値の計算処理を実行する(ステップS602)。具体的には、制御部21の評価部212は、以下の式により、各近傍データのノード活性値Aw(ni)を計算する。
【0063】
【数3】

次に、支援サーバ20の制御部21は、ノード活性度配列の生成処理を実行する(ステップS603)。具体的には、制御部21の評価部212は、1次元の配列で、全ノードの活性値を並べた[Arate_W(i) i=1~N]を生成する。この[Arate_W(i)i=1~N]は、1次元の配列で、全ノードの活性値が入る。次に、評価部212は、ノード活性度Arate_W(i)を算出する。このノード活性度Arate_W(i)は、ノードniから最大距離dmax内のデータのノード活性値の和を、年齢で割ったものである。
【0064】
次に、支援サーバ20の制御部21は、最大距離以上の近傍データの特定処理を実行する(ステップS604)。具体的には、制御部21の評価部212は、処理対象の入力データD(i)からの距離が最大距離dmax以上の他の入力データD(j)を特定する。
【0065】
次に、支援サーバ20の制御部21は、パス活性値の計算処理を実行する(ステップS605)。具体的には、制御部21の評価部212は、以下の式により、各近傍データ(入力データD(j))のパス活性値As(n1,n2)を計算する。ここで、パスの両端のノードをn1とn2とし、d1はノードn1・データD(j)間の距離、d2はノードn2・データD(j)間の距離である。
【0066】
【数4】

次に、支援サーバ20の制御部21は、パス活性度配列の生成処理を実行する(ステップS606)。具体的には、制御部21の評価部212は、2次元の配列で、全パスの活性値を並べた[Arate_S(i,j)i=1~N,i=1~N]を生成する。この[Arate_S(i,j) i=1~N, i=1~N]は、2次元の配列で、全パスの活性値が入る。次に、評価部212は、パス活性度Arate_S(i,j)を算出する。このパス活性度Arate_S(i,j)は、パス(i,j)に属するデータのノード活性値の和を、年齢で割ったものである。
以上の処理を、全ての入力データについて繰り返して実行する。
【0067】
次に、支援サーバ20の制御部21は、初期ノードの設定処理を実行する(ステップS607)。
【0068】
図13を用いて、初期ノードの設定処理(ステップS607)を説明する。
ここでは、まず、支援サーバ20の制御部21は、ノード活性度のソート処理を実行する(ステップS701)。具体的には、制御部21の評価部212は、ノード活性度Arate_W(i)の高い順に入力データD(i)を並び替える。
【0069】
次に、支援サーバ20の制御部21は、ノード候補の特定処理を実行する(ステップS702)。具体的には、制御部21の評価部212は、活性度の高い入力データD(i)を、ノード候補として、順次、特定する。
【0070】
次に、支援サーバ20の制御部21は、最大距離未満かどうかについての判定処理を実行する(ステップS703)。具体的には、制御部21の評価部212は、ノード候補と既登録のノードとの距離を算出し、最大距離dmaxと比較する。
【0071】
既登録のノードとの距離が最大距離以上と判定した場合(ステップS702において「NO」の場合)、支援サーバ20の制御部21は、初期ノードの追加処理を実行する(ステップS704)。具体的には、制御部21の評価部212は、ノード候補を新規ノードとして追加し、記憶部22に記録する。
【0072】
一方、既登録のノードとの距離が最大距離未満と判定した場合(ステップS703において「YES」の場合)、支援サーバ20の制御部21は、初期ノードの追加処理(ステップS704)をスキップする。
【0073】
次に、支援サーバ20の制御部21は、終了かどうかについての判定処理を実行する(ステップS705)。具体的には、制御部21の評価部212は、活性度が最も低い入力データD(i)について処理を終了した場合、終了と判定する。
【0074】
終了でないと判定した場合(ステップS705において「NO」の場合)、支援サーバ20の制御部21は、ノード候補の特定処理(ステップS702)以降の処理を繰り返す。
一方、終了と判定した場合(ステップS705において「YES」の場合)、支援サーバ20の制御部21は、初期ノードの設定処理(ステップS607)を終了する。
【0075】
次に、図12に示すように、支援サーバ20の制御部21は、削除閾値の設定処理を実行する(ステップS608)。
【0076】
図14を用いて、削除閾値の設定処理(ステップS608)を説明する。
ここでは、支援サーバ20の制御部21は、ノード活性度のソート処理を実行する(ステップS801)。具体的には、制御部21の評価部212は、ノード活性度Arate_W(i)を降順に並べ替える。
【0077】
次に、支援サーバ20の制御部21は、ノード削除閾値の特定処理を実行する(ステップS802)。具体的には、制御部21の評価部212は、指定順位(Ndw)のノード活性度Arate_W(i)の値をノード削除閾値として特定し、記憶部22に記録する。
【0078】
次に、支援サーバ20の制御部21は、パス活性度のソート処理を実行する(ステップS803)。具体的には、制御部21の評価部212は、パス活性度Arate_S(i,j)を降順に並べ替える。
【0079】
次に、支援サーバ20の制御部21はパス削除閾値の特定処理を実行する(ステップS804)。具体的には、制御部21の評価部212は、指定順位(Nds)のパス活性度Arate_S(i,j)をパス削除閾値として特定し、記憶部22に記録する。
【0080】
次に、図9に示すように、オンライン学習処理を実行する。この処理は、オンラインで新たな入力データD(i)を取得した場合に行なわれる。ここでは、「i=1~M」とする。
【0081】
まず、支援サーバ20の制御部21は、勝者ノード及び距離の特定処理を実行する(ステップS403)。具体的には、制御部21の評価部212は、記憶部22に記録された自己組織化マップを構成するノード(既存ノード)の中で、近接ノードとして、N個のノード(第1勝者~第N勝者)を特定する。ここでは、評価部212は、新たに取得した入力データD(i)の位置が近い順番にN個のノード(第1勝者~第N勝者)を特定する。そして、評価部212は、入力データD(i)と各勝者(第1勝者~第N勝者)との各距離(d1~dn)を算出する。
図15(a)では、2個の勝者(第1勝者n1,第2勝者n2)を特定して、入力データD(i)からの各距離d1,d2を算出する。
【0082】
次に、支援サーバ20の制御部21は、最大距離より遠いかどうかについての判定処理を実行する(ステップS404)。具体的には、制御部21の評価部212は、最寄りのノードとの距離d1と最大距離dmaxとを比較する。
【0083】
距離d1が最大距離より遠い場合(ステップS404において「YES」の場合)、支援サーバ20の制御部21は、新規ノードの追加処理を実行する(ステップS405)。具体的には、制御部21の評価部212は、入力データD(i)を新規ノードとして記憶部22に記録する。
図15(b)では、ノードn1,n2をそれぞれノードn2,n3として、入力データD(i)をノードn1として追加している。
【0084】
次に、支援サーバ20の制御部21は、ノード及びパスの情報初期化処理を実行する(ステップS406)。具体的には、制御部21の評価部212は、年齢と活性値とを初期化する。
【0085】
図15(b)に示すように、以下の式により、各ノードの情報を初期化する。ここでは、ノードn1について、初期化する。
【0086】
【数5】
【0087】
【数6】

ここで、dは各ノードniとノードn1との距離である。
また、ノードn1,n2のパスの情報を更新する。
【0088】
【数7】
【0089】
【数8】

また、ノードn1,n3のパスの情報を更新する。
【0090】
【数9】
【0091】
【数10】

一方、距離d1が最大距離以下の場合(ステップS404において「NO」の場合)、支援サーバ20の制御部21は、入力データと第N勝者までの活性値anの算出処理を実行する(ステップS407)。ここでは、新規ノード及び既存の第N勝者までの活性値an(n=1~N)を求める。具体的には、制御部21の評価部212は、以下の式を用いて、活性値を算出する。
【0092】
【数11】

ここで、「d」は各ノードniと入力データD(i)との距離である。
次に、支援サーバ20の制御部21は、ノード位置、パス活性値の更新処理を実行する(ステップS408)。
具体的には、図15(c)に示すように、制御部21の評価部212は、以下の式によりノード位置を更新する。
【0093】
【数12】

ここで、「g」は、学習率を表す係数である。
【0094】
更に、評価部212は、以下の式によりパス活性値Asを更新する。
【0095】
【数13】

そして、制御部21の評価部212は、以下の式によりノード活性値Awを更新する。
【0096】
【数14】

また、制御部21の評価部212は、以下の式によりパス活性値Asを更新する。
【0097】
【数15】

次に、支援サーバ20の制御部21は、年齢の更新処理を実行する(ステップS409)。具体的には、制御部21の評価部212は、Age_w,Age_sにそれぞれ「1」を加算して更新する。
【0098】
次に、支援サーバ20の制御部21は、ノード活性度、パス活性度の算出処理を実行する(ステップS410)。具体的には、制御部21の評価部212は、以下の式によりノード活性度Arate_wを算出する。
【0099】
【数16】

以下の式によりパス活性度Arate_sを算出する。
【0100】
【数17】

次に、支援サーバ20の制御部21は、活性度が閾値を下回るパス及びノードの削除処理を実行する(ステップS411)。具体的には、制御部21の評価部212は、活性度が閾値を下回るノード及びパスを削除する。
【0101】
次に、支援サーバ20の制御部21は、終了かどうかについての判定処理を実行する(ステップS412)。具体的には、制御部21の評価部212は、「i=M」の場合に、すべての入力データについて終了と判定する。
【0102】
この場合には、オンライン学習処理を終了する。
一方、終了でないと判定した場合(ステップS412において「NO」の場合)、支援サーバ20の制御部21は、「i=i+1」としてステップS403以降の処理を繰り返す。
【0103】
以上、本実施形態によれば、上記(1-1)、(1-2)と同様の効果に加えて、以下に示す効果を得ることができる。
(2-1)本実施形態では、支援サーバ20の制御部21は、利用変数の貢献度の算出処理(ステップS201)、貢献度を考慮した予測誤差の割当処理(ステップS202)を実行する。変数組から生じる予測誤差において、各変数の影響は異なるので、自己組織化マップの各ノードの貢献度で、変数の重み付けを行なうことができる。そして、この重み付けにより、予測誤差を各変数に割り当てることができる。
【0104】
(2-2)本実施形態では、支援サーバ20の制御部21は、入力データの解析処理を実行する(ステップS401)。これにより、目的変数及び説明変数を含めた入力データを用いて、自己組織化マップを作成することができる。そして、自己組織化マップを用いた距離の計算により予測できるので、予測結果の説明性が高い。
(2-3)本実施形態では、支援サーバ20の制御部21は、自己組織化マップの作成時に、説明変数と目的変数とを調整する。これにより、説明変数と目的変数とをバランスさせた自己組織化マップを生成することができる。
【0105】
(第3実施形態)
次に、図16に従って、情報選択システム、情報選択方法及び情報選択プログラムを具体化した第3実施形態を説明する。第2実施形態では、教師あり学習について説明した。第3実施形態では、検証用データを用いて、ノード位置を調整するように変更した構成であり、上記第2実施形態と同様の部分については、同一の符号を付し、その詳細な説明を省略する。学習時に、説明変数と目的変数をカップリングして、自己組織化マップを作成する。
【0106】
例えば、検証用データの説明変数値を用いた予測結果において、ノードn1を予測した場合を想定する。そして、ノードn1の目的変数値よりも、ノードn2の目的変数値の方が、検証用データの目的変数値(正解)に近い場合を想定する。この場合、説明変数の各次元の距離d(ノード寄与値)を比較することで、悪影響を与えている次元を特定することができる。
【0107】
図16を用いて、マップ調整処理を説明する。
ここでは、ノード毎、検証用データ毎に以下の処理を繰り返す。
まず、支援サーバ20の制御部21は、検証用データについて、予測値の算出処理を実行する(ステップS901)。具体的には、制御部21の評価部212は、検証用データの説明変数値を、自己組織化マップに入力して、最も近接するノード(最近接ノード)を特定する。そして、評価部212は、最近接ノードの目的変数値を予測値として取得する。
【0108】
次に、支援サーバ20の制御部21は、ノード寄与値の算出処理を実行する(ステップS902)。具体的には、制御部21の評価部212は、以下の差分を用いてノード寄与値dAi,jを算出する。
【0109】
【数18】

次に、支援サーバ20の制御部21は、移動ベクトルの計算処理を実行する(ステップS903)。具体的には、制御部21の評価部212は、以下の式を用いて移動ベクトルdVi,jを算出する。
【0110】
【数19】

以上の処理を、すべての検証用データについて終了するまで繰り返す。
次に、支援サーバ20の制御部21は、移動ベクトルの平均ベクトルの算出処理を実行する(ステップS904)。具体的には、制御部21の評価部212は、以下の式を用いて移動ベクトルdVi,meanを算出する。
【0111】
【数20】

以上の処理を、すべてのノードについて終了するまで繰り返す。
次に、支援サーバ20の制御部21は、移動ベクトルを用いてノード調整処理を実行する(ステップS905)。具体的には、制御部21の評価部212は、調整係数を乗算した移動ベクトルdVi,meanを用いて、ノードを移動させる。
【0112】
次に、支援サーバ20の制御部21は、精度の算出処理を実行する(ステップS906)。具体的には、制御部21の評価部212は、検証用データの説明変数を、調整した自己組織化マップに入力して、目的変数値を予測する。そして、評価部212は、予測した目的変数値と、検証用データの目的変数とを比較して、正解の割合(精度)を算出する。
【0113】
次に、支援サーバ20の制御部21は、収束かどうかについての判定処理を実行する(ステップS907)。具体的には、制御部21の予測部213は、先行作成のマップの精度と今回作成のマップの精度とを比較する。そして、精度が向上している場合には、収束していないと判定する。なお、収束判定は、精度向上の有無に限定されるものではない。例えば、精度向上が所定範囲内の場合に、収束と判定してもよい。
【0114】
精度が向上しており、収束でないと判定した場合(ステップS907において「NO」の場合)、支援サーバ20の制御部21は、今回作成のマップの精度を初期精度として設定して、ステップS901以降の処理を繰り返す。
一方、精度が向上しておらず、収束と判定した場合(ステップS907において「YES」の場合)、支援サーバ20の制御部21は、マップ調整処理を終了する。
【0115】
以上、本実施形態によれば、上記(1-1)、(1-2)、(2-1)~(2-3)と同様の効果に加えて、以下に示す効果を得ることができる。
【0116】
(3-1)本実施形態では、支援サーバ20の制御部21は、ノード寄与値の算出処理を実行する(ステップS902)。これにより、ノード寄与値に応じて、予測失敗の原因を分析することができる。すなわち、各次元における「検証用データと正解ノードとの距離」と「検証用データと不正解ノード」との大小関係により、予測に良い影響を与えるノードと予測に悪影響を与えるノードとを識別できる。
【0117】
(3-2)本実施形態では、支援サーバ20の制御部21は、移動ベクトルの計算処理を実行する(ステップS903)。これにより、予測失敗の原因となったノードを移動させて、自己組織化マップを改善できる。
【0118】
本実施形態は、以下のように変更して実施することができる。本実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
・上記第1実施形態では、支援サーバ20の制御部21は、所定数の変数の削除処理を実行する(ステップS102)。削除対象として、2個の変数を特定するが、複数種類の変数を削除対象として特定すればよく、2個に限定されない。
・上記第1実施形態では、支援サーバ20の制御部21は、所定数の変数の削除処理(ステップS102)、予測誤差の算出処理(ステップS104)を実行する。ここでは、複数の説明変数の中で、所定数の変数を削除することにより、一部の変数からなる教師データを用いて、解析モデルを作成する。ここで、複数の教師データからなる情報において、順次、一部の情報を用いて、複数の解析モデルを生成できれば、削除対象は変数に限定されない。例えば、所定数の教師データを削除して生成したデータセット(複数の教師データの一部)を用いて、解析モデルを生成してもよい。
・上記第1実施形態では、情報処理として機械学習を行なうが、解析モデルを生成するものであれば、機械学習に限定されない。
・上記第1実施形態では、オンライン学習処理を実行する。自己組織化マップを生成できれば、オンライン処理に限定されるものではなく、バッチ処理によって生成した自己組織化マップを用いて、クラスタリングを行なうようにしてもよい。
【0119】
・上記第1実施形態では、支援サーバ20の制御部21は、入力データの解析処理を実行(ステップS401)において、最大距離dmaxを算出する。ここで、最大距離dmaxは、入力データを代表する統計値であれば、算出方法は限定されない。また、最大距離dmaxの初期値を予め設定しておき、入力データ数の増加に応じて再計算してもよい。
【0120】
・第2実施形態において、支援サーバ20の制御部21は、自己組織化マップを用いる。具体的には、制御部21の評価部212は、入力データの説明変数の変数値に最も近いノードを特定する。ここで、最も近いノードn1に接続する複数のノードを用いて、回帰で目的変数を予測してもよい。
この場合、最も近いノードn1にパスにより接続している他のノードを利用して、複数のノードを特定してもよい。
【0121】
・上記第3実施形態では、ノード寄与値を用いてノード位置を調整する。ここで、パスの寄与値に基づいて、調整するようにしてもよい。例えば、検証用データの説明変数値を用いて予測したノードn1の目的変数値よりも、ノードn2の目的変数値の方が、検証用データの目的変数値(正解)に近い場合を想定する。この場合、説明変数の各次元の距離Dを比較することで、悪影響を与えている次元を特定する。
【0122】
図17を用いて、マップ調整処理を説明する。
ここでは、検証用データ毎に以下の処理を繰り返す。
次に、支援サーバ20の制御部21は、ステップS901と同様に、検証用データについて、予測値の算出処理を実行する(ステップSX01)。
【0123】
次に、支援サーバ20の制御部21は、ステップS902と同様に、ノード寄与値の算出処理を実行する(ステップSX02)。
次に、支援サーバ20の制御部21は、パス寄与値の算出処理を実行する(ステップSX03)。具体的には、制御部21の評価部212は、以下の差分を用いてパス寄与値dAk,lを算出する。
【0124】
【数21】

以上の処理を、すべての検証用データについて終了するまで繰り返す。
次に、支援サーバ20の制御部21は、ノードの寄与値の合計処理を実行する(ステップSX04)。具体的には、制御部21の評価部212は、以下の式を用いてノードの寄与値の合計dASiを算出する。
【0125】
【数22】

次に、支援サーバ20の制御部21は、パスの寄与値の合計処理を実行する(ステップSX05)。具体的には、制御部21の評価部212は、以下の式を用いてパスの寄与値の合計dASkを算出する。
【0126】
【数23】

次に、支援サーバ20の制御部21は、悪影響ノード及び悪影響パスの特定処理を実行する(ステップSX06)。具体的には、制御部21の評価部212は、ノードの寄与値の合計dASi、パスの寄与値の合計dASkを、それぞれ降順で並べ替える。そして、評価部212は、上位所定数を悪影響ノード及び悪影響パスとして特定する。
【0127】
次に、支援サーバ20の制御部21は、悪影響ノード、パスの削除処理を実行する(ステップSX07)。具体的には、制御部21の評価部212は、特定した悪影響ノード及び悪影響パスを削除する。
【0128】
ノードの寄与値の合計dASiが正の場合や、パスの寄与値の合計dASkが正の場合、予測に悪影響を与える可能性が高い。そこで、ノードの寄与値やパスの寄与値に応じて、影響を与えるノードやパスを削除することができる。
【0129】
・上記第2実施形態では、各パス及び各ノードは年齢に関する情報を保持させた自己組織化マップを用いた。学習中に必要に応じてニューロンを増殖させる学習手法として、進化型自己組織化マップ(ESOM:Evolving SOM)を用いることも可能である。更に、自己増殖型ニューラルネットワーク(SOINN:Self-Organizing Incremental Neural Network)を用いることも可能である。このSOINNは、Growing Neural Gas(GNG)と自己組織化マップ(SOM)を拡張した追加学習可能なオンライン教師なし学習手法である。具体的には、動的に形状が変化する非定常で、かつ複雑な形状を持つ分布からオンラインで得られる入力に対して、ネットワークを自己組織的に形成し、適切なクラス数と入力分布の位相構造を出力する。
【0130】
図18を用いて、このESOMのオンライン学習処理を説明する。
まず、支援サーバ20の制御部21は、初期ノードを設定する(ステップSX11)。具体的には、入力データD(i)(i=1~M)の中からランダムに2個を選択し、初期ノードと設定する。この場合、データインデックスi=1とする。
【0131】
次に、支援サーバ20の制御部21は、勝者ノードを決定する(ステップSX12)。
ここでは、図19(a)に示すように、D(i)に最も近いノードn1(第1勝者、距離d1)と2番目に近いノードn2(第2勝者、距離d2)を求める。
【0132】
次に、支援サーバ20の制御部21は、第1勝者までの距離d1が基準距離より長いかどうかを判定する(ステップSX13)。
距離d1が基準距離よりも長い場合(ステップSX13において「YES」の場合)には、支援サーバ20の制御部21は、D(i)をノードに更新する(ステップSX14)。そして、勝者ノードに基づいて、n1をn2に,D(i)をn1に、n2をn3に更新する。更に、パスの活性値の初期化(As(n1,:)=0)を行なう。
図19(b)に示すように、新たなノードn1を生成する。
【0133】
一方、距離d1が基準距離以下の場合(ステップSX13において「NO」の場合)には、支援サーバ20の制御部21は、ノード位置及びパス活性値を更新する(ステップSX15)。
【0134】
具体的には、図19(c)に示すように、D(i)とn1,n2の距離に応じた活性値a1,a2を求める。
【0135】
【数24】

また、ノード位置とパス活性値As(n1,n2)を、以下に示すように更新する(Hebb則)。
【0136】
【数25】

そして、mod(i,指定間隔)=0の場合は、活性値が最小値となるパスを削除する(ステップSX16)。
【0137】
次に、支援サーバ20の制御部21は、終了かどうかを判定する(ステップSX17)。ここで、i=Mの場合(ステップSX17において「YES」の場合)には、支援サーバ20の制御部21は、オンライン学習処理を終了する。一方、i≠Mの場合(ステップSX17において「NO」の場合)には、支援サーバ20の制御部21は、「i=i+1」として、ステップSX12以降の処理を繰り返す。
【0138】
・上記第2実施形態では、支援サーバ20の制御部21は、利用変数の貢献度の算出処理(ステップS201)、貢献度を考慮した予測誤差の割当処理(ステップS202)を実行する。ここで、「dDi,k(l,j)」の正と負の寄与値を等しくするため、「dDi,k(l,j)」の符号で処理を分けてもよい。例えば、正が少なく、負が多い場合、処理を分けずに計算すると、正データの寄与値が少なく見積もられる可能性がある。ここで、正負により処理を分けることにより、寄与値は等しく計算される。
【0139】
このため、「dDi,k(i,j)>0」の場合には、ノードn1がノードn2より正解から遠い変数の集計を行なうために以下の式を用いる。
【数26】

一方、「dDi,k(i,j)<0」の場合には、ノードn1がノードn2より正解から遠い変数の集計を行なうために以下の式を用いる。
【数27】

以下では、dDi,k(l,j)の符号で処理を分ける理由について説明する。
【0140】
図20には、i番目の試行、k番目のデータにおける「-ddAi,k(l)dDi,k(l,j)」の一例を示す。ここで、「-ddAi,k(l)dDi,k(l,j)>0」となる次元lの部分集合をl1、「-ddAi,k(l)dDi,k(l,j)<0」となる次元lの部分集合をl2とする。
【0141】
部分集合l1の数が部分集合l2に比べて極端に少ない場合を想定する。これは、有効な変数が、全体の変数に比べて非常に少ない場合に相当する。
このような場合、抽出した有効な部分集合l1の貢献度が、部分集合l2が多いために、非常に小さくなってしまう。
【0142】
dDi,k(l,j)の符号で正規化を分ければ、「部分集合l1の貢献度の合計」=-「部分集合l2の貢献度の合計」となり、抽出できた有効な変数l1の貢献度を強調することができる。
【符号の説明】
【0143】
10…ユーザ端末、20…支援サーバ、21…制御部、211…選択部、212…評価部、22…記憶部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24