(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-13
(45)【発行日】2022-09-22
(54)【発明の名称】学習データの精練方法及び計算機システム
(51)【国際特許分類】
G06N 20/00 20190101AFI20220914BHJP
【FI】
G06N20/00 130
(21)【出願番号】P 2019151646
(22)【出願日】2019-08-22
【審査請求日】2021-11-05
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】周 玲
(72)【発明者】
【氏名】田代 大輔
(72)【発明者】
【氏名】田中 剛
(72)【発明者】
【氏名】渡辺 聡
【審査官】山本 俊介
(56)【参考文献】
【文献】特開2019-61494(JP,A)
【文献】特開2017-10111(JP,A)
【文献】米国特許出願公開第2019/0205620(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
計算機システムが実行する学習データの精練方法であって、
前記計算機システムは、プロセッサ及び前記プロセッサに接続される記憶装置を有する計算機を有し、
前記計算機は、モデルの生成に用いる複数の学習データから構成される学習データセット及び前記モデルの予測精度の検証に用いる複数の検証データから構成される検証データセットを格納するデータベースとアクセス可能な状態で接続し、
前記学習データの精練方法は、
前記プロセッサが、前記検証データセットから前記複数の検証データを含むサンプルデータセットを複数生成する第1のステップと、
前記プロセッサが、前記学習データセットに含まれる前記複数の学習データの各々について、前記学習データが、一つのサンプルデータセットに対する前記モデルの予測精度に与える影響の強さを表すスコアを算出する第2のステップと、
前記プロセッサが、前記サンプルデータセットにおける前記複数の学習データの各々の前記スコアに基づいて、当該サンプルデータセットに対する前記モデルの予測精度に悪影響を与える有害学習データを特定する第3のステップと、
前記プロセッサが、前記複数のサンプルデータセットの各々における前記有害学習データの前記スコアに基づいて、前記有害学習データを削除するか否かを判定する第4のステップと、
前記プロセッサが、前記判定の結果に基づいて前記学習データセットから前記有害学習データが削除された精練学習データセットを生成する第5のステップと、を含むことを特徴とする学習データの精練方法。
【請求項2】
請求項1に記載の学習データの精練方法であって、
前記第4のステップは、
前記プロセッサが、前記複数のサンプルデータセットの各々における前記有害学習データの前記スコアに基づいて、前記有害学習データの総合スコアを算出するステップと、
前記プロセッサが、前記有害学習データの総合スコアに基づいて、前記有害学習データを削除するか否かを判定するステップと、を含むことを特徴とする学習データの精練方法。
【請求項3】
請求項1に記載の学習データの精練方法であって、
前記データベースは、前記複数のサンプルデータセットの各々に対して設定される閾値を管理するための閾値情報を格納し、
前記第3のステップは、前記プロセッサが、前記サンプルデータセットにおける前記複数の学習データの各々の前記スコアと、前記サンプルデータセットに対して設定された前記閾値との比較結果に基づいて、前記有害学習データを特定するステップを含むことを特徴とする学習データの精練方法。
【請求項4】
請求項3に記載の学習データの精練方法であって、
前記プロセッサが、前記サンプルデータセットにおける前記複数の学習データの各々の前記スコアに基づいて、前記学習データセットから少なくとも一つの学習データを削除して評価用学習データセットを生成するステップと、
前記プロセッサが、前記評価用学習データセットを用いて評価モデルを生成するステップと、
前記プロセッサが、前記サンプルデータセットに対する前記評価モデルの予測精度の変化傾向、及び、前記サンプルデータセットにおける、前記評価用学習データセットに含まれる前記複数の学習データの各々の前記スコアに基づいて、前記サンプルデータセットの閾値を決定し、前記決定された閾値を前記閾値情報に設定するステップと、を含むことを特徴とする学習データの精練方法。
【請求項5】
請求項1に記載の学習データの精練方法であって、
前記第1のステップは、前記プロセッサが、前記検証データセットに含まれる前記複数の検証データをサンプリングすることによって、前記複数のサンプルデータセットを生成するステップを含むことを特徴とする学習データの精練方法。
【請求項6】
プロセッサ及び前記プロセッサに接続される記憶装置を有する計算機を備える計算機システムであって、
前記計算機は、
モデルの生成に用いる複数の学習データから構成される学習データセット及び前記モデルの予測精度の検証に用いる複数の検証データから構成される検証データセットを格納するデータベースとアクセス可能な状態で接続し、
前記検証データセットから前記複数の検証データを含むサンプルデータセットを複数生成し、
前記学習データセットに含まれる前記複数の学習データの各々について、前記学習データが、一つのサンプルデータセットに対する前記モデルの予測精度に与える影響の強さを表すスコアを算出し、
前記サンプルデータセットにおける前記複数の学習データの各々の前記スコアに基づいて、当該サンプルデータセットに対する前記モデルの予測精度に悪影響を与える有害学習データを特定し、
前記複数のサンプルデータセットの各々における前記有害学習データの前記スコアに基づいて、前記有害学習データを削除するか否かを判定し、
前記判定の結果に基づいて前記学習データセットから前記有害学習データが削除された精練学習データセットを生成することを特徴とする計算機システム。
【請求項7】
請求項6に記載の計算機システムであって、
前記計算機は、
前記複数のサンプルデータセットの各々における前記有害学習データの前記スコアに基づいて、前記有害学習データの総合スコアを算出し、
前記有害学習データの総合スコアに基づいて、前記有害学習データを削除するか否かを判定することを特徴とする計算機システム。
【請求項8】
請求項6に記載の計算機システムであって、
前記データベースは、前記複数のサンプルデータセットの各々に対して設定される閾値を管理するための閾値情報を格納し、
前記計算機は、前記サンプルデータセットにおける前記複数の学習データの各々の前記スコアと前記サンプルデータセットに対して設定された前記閾値との比較結果に基づいて、前記有害学習データを特定することを特徴とする計算機システム。
【請求項9】
請求項8に記載の計算機システムであって、
前記計算機は、
前記サンプルデータセットにおける前記複数の学習データの各々の前記スコアに基づいて、前記学習データセットから少なくとも一つの学習データを削除して評価用学習データセットを生成し、
前記評価用学習データセットを用いて評価モデルを生成し、
前記サンプルデータセットに対する前記評価モデルの予測精度の変化傾向、及び、前記サンプルデータセットにおける、前記評価用学習データセットに含まれる前記複数の学習データの各々の前記スコアに基づいて、前記サンプルデータセットの閾値を決定し、前記決定された閾値を前記閾値情報に設定することを特徴とする計算機システム。
【請求項10】
請求項6に記載の計算機システムであって、
前記計算機は、前記検証データセットに含まれる前記複数の検証データをサンプリングすることによって、前記複数のサンプルデータセットを生成することを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習に用いる学習データの精練方法に関する。
【背景技術】
【0002】
近年、AIを活用した様々なサービスが提供されている。任意の事象の予測を行うAIを実現するモデルを生成する方法として、機械学習を利用する方法が知られている。機械学習のアルゴリズムの一つとして教師あり学習がある。教師あり学習は、入力及び正解ラベルから構成される学習データを用いた学習である。
【0003】
教師あり学習を用いてモデルを生成する場合、質の高い学習データを用いて学習を行うことによって過学習を抑制し、また、予測精度が向上させることができる。ここで、質の高い学習データとは、モデルの予測精度の向上効果が高い学習データを表す。
【0004】
したがって、教師あり学習では、使用する学習データを適切に選択することが重要である。この課題に対して特許文献1に記載の技術が知られている。
【0005】
特許文献1には、「ノイズデータ除去支援装置は、或る時点における、入力変数の値および出力変数の実績値を包含する履歴レコードを、複数時点について格納するデータ記憶部と、ノイズ判定閾値を所定範囲内で変化させながら、入力変数の値から予測された出力変数の予測値と出力変数の実績値との差分が、ノイズ判定閾値以下の履歴レコードを抽出し、抽出した履歴レコードに基づいて、入力変数値から出力変数値を予測する予測関数とその予測誤差を算出し、算出された予測誤差が他に比べて小さなノイズ判定閾値を選択して出力する事前予測部と、を備える。」ことが記載されている。
【先行技術文献】
【特許文献】
【0006】
【非特許文献】
【0007】
【文献】Pang Wei Koh, Percy Liang、「Understanding Black-box Predictions via Influence Functions」、arXiv preprint arXiv:1703.04730 (2017)
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1に記載の技術では、学習前に、ノイズ判定閾値以下の履歴レコード(学習データ)を選択している。しかし、ノイズと判定された履歴レコードを用いて学習を行うことによって、予測精度が向上する場合もあり、また、ノイズと判定されていない履歴レコードを用いて学習を行うことによって、予測精度が低下する場合もある。したがって、学習データがモデルの予測精度に実際に与える影響を考慮して、学習データを選択する必要がある。
【0009】
学習データがモデルの予測精度に与える影響を示す情報として、非特許文献1に記載の影響度を用いる方法が考えられる。
【0010】
しかし、影響度は用いたテストデータに依存するため、影響度に基づいて選択された学習データセットは、テストデータにオーバフィットしたデータセットになる可能性がある。そのため、当該学習データセットを用いて生成されたモデルの予測精度が必ずしも向上するとは限らない。例えば、影響度の算出に用いたテストデータとは異なるテストデータに対するモデルの予測精度が低い可能性もある。
【0011】
本発明は、予測精度の向上に貢献する学習データから構成される学習データセットを生成する方法及びシステムを実現する。
【課題を解決するための手段】
【0012】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、計算機システムが実行する学習データの精練方法であって、前記計算機システムは、プロセッサ及び前記プロセッサに接続される記憶装置を有する計算機を有し、前記計算機は、モデルの生成に用いる複数の学習データから構成される学習データセット及び前記モデルの予測精度の検証に用いる複数の検証データから構成される検証データセットを格納するデータベースとアクセス可能な状態で接続し、前記学習データの精練方法は、前記プロセッサが、前記検証データセットから前記複数の検証データを含むサンプルデータセットを複数生成する第1のステップと、前記プロセッサが、前記学習データセットに含まれる前記複数の学習データの各々について、前記学習データが、一つのサンプルデータセットに対する前記モデルの予測精度に与える影響の強さを表すスコアを算出する第2のステップと、前記プロセッサが、前記サンプルデータセットにおける前記複数の学習データの各々の前記スコアに基づいて、当該サンプルデータセットに対する前記モデルの予測精度に悪影響を与える有害学習データを特定する第3のステップと、前記プロセッサが、前記複数のサンプルデータセットの各々における前記有害学習データの前記スコアに基づいて、前記有害学習データを削除するか否かを判定する第4のステップと、前記プロセッサが、前記判定の結果に基づいて前記学習データセットから前記有害学習データが削除された精練学習データセットを生成する第5のステップと、を含む。
【発明の効果】
【0013】
本発明によれば、モデルの予測精度の向上に貢献する学習データから構成される学習データセットを生成できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0014】
【
図1】実施例1の計算機の構成の一例を示す図である。
【
図2】実施例1の影響度情報のデータ構造の一例を示す図である。
【
図3】実施例1のスコア情報のデータ構造の一例を示す図である。
【
図4】実施例1の閾値情報のデータ構造の一例を示す図である。
【
図5】実施例1の計算機によって提供されるGUIの一例を示す図である。
【
図6】実施例1の計算機が実行する処理の概要を説明するフローチャートである。
【
図7】実施例1の計算機によって提供されるGUIの一例を示す図である。
【
図8】実施例1の計算機が実行する影響度情報生成処理の一例を説明するフローチャートである。
【
図9】実施例1の計算機が実行する学習データセット精練処理の一例を説明するフローチャートである。
【
図10】実施例1の計算機が実行するスコア算出処理の一例を説明するフローチャートである。
【
図11】実施例1の計算機が実行する閾値設定処理の一例を説明するフローチャートである。
【
図12】実施例1の計算機が実行する有害学習データ削除処理の一例を説明するフローチャートである。
【
図13】実施例2の計算機の構成の一例を示す図である。
【
図14】実施例2の計算機によって提供されるGUIの一例を示す図である。
【
図15】実施例2の計算機が実行する処理の概要を説明するフローチャートである。
【
図16】実施例2の計算機によって提供されるGUIの一例を示す図である。
【発明を実施するための形態】
【0015】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【0016】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【0017】
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【0018】
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【実施例1】
【0019】
図1は、実施例1の計算機の構成の一例を示す図である。
【0020】
計算機100は、学習データセットから、モデルの予測精度に悪影響を与える学習データを削除し、予測精度の向上に寄与する学習データから構成される学習データセットを生成する。以下の説明では、あるデータセットに対するモデルの予測精度に悪影響を与える学習データを有害学習データと記載する。また、有害学習データが削除された学習データセットを精練学習データセットと記載する。
【0021】
計算機100は、プロセッサ101、ネットワークインタフェース102、主記憶装置103、及び副記憶装置104を備える。各ハードウェア構成は内部バスを介して互いに接続される。また、計算機100には、キーボード、マウス、及びタッチパネル等の入力装置105、並びに、ディスプレイ及びプリンタ等の出力装置106が接続される。
【0022】
プロセッサ101は、主記憶装置103に格納されるプログラムを実行する。プロセッサ101がプログラムにしたがって処理を実行することによって、学習部112等、特定の機能を実現する機能部(モジュール)として動作する。以下の説明では、機能部を主語に処理を説明する場合、プロセッサ101が当該機能部を実現するプログラムを実行していることを示す。
【0023】
ネットワークインタフェース102は、ネットワークを介して他の計算機と通信を行うためのインタフェースである。
【0024】
主記憶装置103は、メモリ等の記憶装置であり、プロセッサ101が実行するプログラム及び当該プログラムが使用する情報を格納する。また、主記憶装置103は、プログラムが一時的に使用するワークエリアを含む。
【0025】
副記憶装置104は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等の記憶装置であり、データを永続的に格納する。
【0026】
ここで、主記憶装置103に格納されるプログラム、及び、副記憶装置104に格納される情報について説明する。
【0027】
副記憶装置104は、学習データ121、検証データ122、モデル情報123、影響度情報124、スコア情報125、及び閾値情報126を格納する。
【0028】
学習データ121は、任意の事象を予測するモデル(予測器)を生成するために用いるデータである。学習データ121は、複数の項目の特徴量及び正解ラベルから構成される。検証データ122は、影響度を算出するために用いるデータである。以下の説明では、複数の学習データ121から構成されるデータセットを学習データセットと記載し、複数の検証データ122から構成されるデータセットを検証データセットと記載する。
【0029】
実施例1では、計算機100が学習データセット及び検証データセットを保持しているが、計算機100がアクセス可能なストレージシステム等に格納されてもよい。
【0030】
モデル情報123は、モデルの構造及びパラメータ等を格納する情報である。モデルがニューラルネットワークである場合、層の数、各層のノード数、ノード間の接続、及び重み係数等がモデル情報123に格納される。
【0031】
影響度情報124は、学習データが、検証データに対するモデルの予測精度に与える影響の強さを表す影響度を管理するための情報である。影響度情報124のデータ構造の詳細は
図2を用いて説明する。
【0032】
スコア情報125は、学習データが、検証データセットから生成されるサンプルデータセットに対するモデルの予測精度に与える影響の強さを表すスコアを管理するための情報である。後述するように、スコアは影響度から算出される。スコア情報125のデータ構造の詳細は
図3を用いて説明する。
【0033】
閾値情報126は、サンプルデータセットにおける有害学習データを抽出する場合に用いる閾値を管理するための情報である。閾値情報126のデータ構造の詳細は
図4を用いて説明する。
【0034】
主記憶装置103は、データ受付部111、学習部112、影響度情報生成部113、学習データセット精練部114、及び出力部115を実現するプログラムを格納する。
【0035】
データ受付部111は、各種操作を受け付けるためのUI(User Interface)を提供し、UIを介した入力を受け付ける。データ受付部111は、学習データセット及び検証データセットの入力を受け付けた場合、副記憶装置104に各データセットを格納する。出力部115は、モデル及び有害学習データに関する情報等、各種情報を出力する。
【0036】
学習部112は、学習データセットを用いてモデルを生成するための学習処理を実行する。学習部112は、学習処理によって生成されたモデルに関する情報をモデル情報123として保存する。
【0037】
影響度情報生成部113は、影響度を算出し、算出結果に基づいて影響度情報124を生成する。影響度は、例えば、非特許文献1に記載の算出方法を用いて算出できる。なお、本発明は影響度の算出方法に限定されない。
【0038】
ここで、非特許文献1に記載の影響度の算出方法について説明する。影響度情報生成部113は、学習データセット、検証データセット、及びモデルを用いて、評価対象の学習データを学習データセットに含めた場合のモデルのパラメータの変動傾向を示す値を算出し、また、モデルのパラメータを変動させた場合における任意のテストデータに対する予測結果の変動傾向を示す値を算出する。影響度情報生成部113は、二つの値を用いて影響度を算出する。影響度情報生成部113は、一つの評価対象の学習データ121について、検証データ122の数だけ影響度を算出する。影響度が正の場合、モデルの予測精度を向上することを示し、影響度が負の場合、モデルの予測精度が低下することを示す。
【0039】
学習データセット精練部114は、学習データの影響度に基づいてスコアを算出し、スコアに基づいて抽出された有害学習データを学習データセットから削除する。学習データセット精練部114は、スコア情報125及び閾値情報126を生成する。
【0040】
なお、各機能部については、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を機能毎に複数の機能部に分けてもよい。なお、複数の計算機から構成される計算機システムを用いて同様の機能を実現してもよい。この場合、各計算機が少なくとも一つの機能部を有する。
【0041】
図2は、実施例1の影響度情報124のデータ構造の一例を示す図である。
【0042】
影響度情報124は、行列形式のデータであり、行は学習データ121に対応し、列は検証データ122に対応する。
【0043】
T_kはk行目の学習データ121の識別情報を表し、V_jはj列目の検証データ122の識別情報を表す。セルには影響度が格納される。例えば、k行j列には、検証データ(V_j)122に対する予測を行う場合に、学習データ(T_k)がモデルの予測精度に与える影響の強さを表す影響度が格納される。一つの行は、影響度を成分とするベクトルとして扱うことができる。
【0044】
したがって、影響度情報124は、行ベクトルを羅列することによって生成された影響度行列を管理するための情報である。
【0045】
図3は、実施例1のスコア情報125のデータ構造の一例を示す図である。
【0046】
スコア情報125は、行列形式のデータであり、行はサンプルデータセットに対応し、列は学習データ121に対応する。ここで、サンプルデータセットは、検証データセットから任意の数の検証データ122をサンプリングすることによって生成されたデータセットである。
【0047】
Sample_nはn行目のサンプルデータセットの識別情報を表す。セルにはスコアが格納される。
【0048】
図4は、実施例1の閾値情報126のデータ構造の一例を示す図である。
【0049】
閾値情報126は、サンプルデータセット401及び閾値402から構成されるエントリを含む。一つのサンプルデータセットに対して一つのエントリが存在する。
【0050】
サンプルデータセット401は、サンプルデータセットの識別情報を格納するフィールドである。閾値402は、サンプルデータセットに対して設定された閾値を格納するフィールドである。
【0051】
図5は、実施例1の計算機100によって提供されるGUIの一例を示す図である。
【0052】
GUI500は、計算機100に処理の実行を要求する場合に提供されるUIであり、出力装置106に表示される。GUI500は、データ設定欄510、パラメータ設定欄520、出力設定欄530、及び実行ボタン540を含む。
【0053】
データ設定欄510は、学習データセット及び検証データセットに関する設定を行うための欄である。データ設定欄510は、学習データセット欄511及び検証データセット欄512を含む。
【0054】
学習データセット欄511は、学習データセットを指定するための欄である。学習データセット欄511には、学習データセットの格納場所を示すパス又は学習データセットを格納するファイル名等が設定される。検証データセット欄512は、検証データセットを指定するための欄である。検証データセット欄512には、検証データセットの格納場所を示すパス又は検証データセットを格納するファイル名等が設定される。
【0055】
パラメータ設定欄520は、処理に使用する各種パラメータを設定するための欄である。パラメータ設定欄520は、サンプリング回数欄521、サンプリング割合欄522、ラジオボタン523、524、及び閾値欄525を含む。
【0056】
サンプリング回数欄521は、サンプリングの回数、すなわち、生成するサンプルデータセットの数を指定するための欄である。サンプリング割合欄522は、検証データセットから取得する検証データ122の割合、すなわち、一つのサンプルデータセットに含まれる検証データ122の数を指定するための欄である。
【0057】
ラジオボタン523は、閾値情報126を事前に設定する場合に選択される。ラジオボタン524は、閾値情報126を設定しない場合に選択される。閾値欄525は、設定する閾値情報126を指定するための欄である。閾値欄525には、閾値情報126の格納場所を示すパス又は閾値情報126を格納するファイル名等が設定される。
【0058】
出力設定欄530は、出力する情報及び情報の格納場所に関する設定を行うための欄である。出力設定欄530は、モデル保存欄531、学習データ保存欄532、及びチェック欄533、534を含む。
【0059】
モデル保存欄531は、有害学習データが削除される前の学習データセットを用いて生成されたモデルのモデル情報123の格納場所を指定するための欄である。学習データ保存欄532は、有害学習データが削除された後の学習データセット(精練学習データセット)の格納場所を指定するための欄である。
【0060】
チェック欄533、534は、表示する情報を指定するためのチェック欄である。スコア情報125を表示する場合、チェック欄533が操作され、閾値情報126を表示する場合、チェック欄534が操作される。
【0061】
実行ボタン540は、処理の実行を指示するための操作ボタンである。ユーザが実行ボタン540を操作した場合、パラメータ設定欄520及び出力設定欄530に設定した情報を含む実行要求がデータ受付部111に送信される。
【0062】
図6は、実施例1の計算機100が実行する処理の概要を説明するフローチャートである。
図7は、実施例1の計算機100によって提供されるGUIの一例を示す図である。
【0063】
計算機100は、実行要求を受け付けた場合、以下で説明する処理を実行する。
【0064】
データ受付部111は、初期化処理を実行する(ステップS101)。具体的には、以下のような処理が実行される。
【0065】
(S101-1)データ受付部111は、指定されたパスから学習データセット及び検証データセットを取得し、副記憶装置104に格納する。
【0066】
(S101-2)データ受付部111は、モデル情報123、影響度情報124、スコア情報125、及び閾値情報126を初期化する。
【0067】
影響度情報124の初期化では、データ受付部111は、行の数が学習データセットに含まれる学習データ121の数と一致し、列の数が検証データセットに含まれる検証データ122の数と一致する行列を生成する。当該行列のセルは全て空欄である。また、スコア情報125の初期化では、データ受付部111は、行の数がサンプル回数と一致し、列の数が学習データセットに含まれる学習データ121の数と一致する行列を生成する。当該行列のセルは全て空欄である。
【0068】
なお、実行要求に、閾値情報126を指定する情報が含まれる場合、データ受付部111は、指定されたパスから閾値情報126を取得し、副記憶装置104に格納する。以上がステップS101の処理の説明である。
【0069】
次に、学習部112は、学習データセットを用いて学習処理を実行する(ステップS102)。学習部112は、学習処理によって生成されたモデルの情報を、モデル保存欄531で指定されたパスにモデル情報123として格納する。なお、本発明は、学習方法及び学習するモデルの種類に限定されない。
【0070】
次に、影響度情報生成部113は、学習データセット、検証データセット、及びモデル情報123を用いて、影響度情報生成処理を実行する(ステップS103)。影響度情報生成処理が実行されることによって影響度情報124が生成される。影響度情報生成処理の詳細は
図8を用いて説明する。
【0071】
次に、学習データセット精練部114は、学習データセット、検証データセット、及び影響度情報124を用いて、学習データセット精練処理を実行する(ステップS104)。当該処理が実行されることによって、精練学習データセットが生成される。学習データセット精練処理の詳細は
図9を用いて説明する。
【0072】
次に、出力部115は、出力情報を生成し、出力する(ステップS105)。その後、計算機100は処理を終了する。
【0073】
例えば、出力部115は、
図7に示すようなGUI700を表示するための出力情報を生成する。ここで、GUI700について説明する。
【0074】
GUI700は、出力情報を表示する場合に提供されるUIであり、出力装置106に表示される。GUI700は、精練学習データセット欄701、スコア情報欄702、及び閾値情報欄703を含む。
【0075】
精練学習データセット欄701は、精練学習データセットの格納場所を表示するための欄である。スコア情報欄702は、スコア情報125を表示するための欄である。スコア情報欄702に表示されるスコア情報125には、総合スコアを示す行が追加される。閾値情報欄703は、閾値情報126を表示するための欄である。閾値情報欄703に表示される閾値情報126には、総合閾値を示すエントリが追加される。
【0076】
図8は、実施例1の計算機100が実行する影響度情報生成処理の一例を説明するフローチャートである。
【0077】
影響度情報生成部113は、変数Jを初期化し(ステップS201)、また、変数Kを初期化する(ステップS202)。変数Jは検証データ122の識別番号を表す変数であり、変数Kは学習データ121の識別番号を表す変数である。
【0078】
具体的には、影響度情報生成部113は、変数J及び変数Kのそれぞれに1を設定する。このとき、影響度情報生成部113は、検証データセットに含まれる検証データ122の数をJmaxに設定し、学習データセットに含まれる学習データ121の数をKmaxに設定する。
【0079】
次に、影響度情報生成部113は、検証データセットから変数Jに対応する検証データ122を取得し、また、学習データセットから変数Kに対応する学習データ121を取得する(ステップS203)。
【0080】
次に、影響度情報生成部113は、変数Jに対応する検証データ122、変数Kに対応する学習データ121、及びモデルを用いて影響度を算出する(ステップS204)。なお、影響度の算出方法は非特許文献1に記載されているため、詳細な説明は省略する。
【0081】
次に、影響度情報生成部113は、影響度情報124を更新する(ステップS205)。
【0082】
具体的には、影響度情報生成部113は、影響度情報124のK行J列に対応するセルに算出された影響度を設定する。
【0083】
次に、影響度情報生成部113は、変数Kの値がKmaxに一致するか否かを判定する(ステップS206)。すなわち、学習データセットに含まれる全ての学習データ121について処理が完了したか否かが判定される。
【0084】
変数Kの値がKmaxに一致しないと判定された場合、影響度情報生成部113は、変数Kに1を加算した値を変数Kに設定し(ステップS207)、その後、ステップS203に戻る。
【0085】
変数Kの値がKmaxに一致すると判定された場合、影響度情報生成部113は、変数Jの値がJmaxに一致するか否かを判定する(ステップS208)。すなわち、検証データセットに含まれる全ての検証データ122について処理が完了したか否かが判定される。
【0086】
変数Jの値がJmaxに一致しないと判定された場合、影響度情報生成部113は、変数Jに1を加算した値を変数Jに設定し(ステップS209)、その後、ステップS202に戻る。
【0087】
変数Jの値がJmaxに一致すると判定された場合、影響度情報生成部113は、影響度情報生成処理を終了する。
【0088】
図9は、実施例1の計算機100が実行する学習データセット精練処理の一例を説明するフローチャートである。
【0089】
学習データセット精練部114は、変数iを初期化する(ステップS301)。変数iはサンプルデータセットの識別番号を表す変数である。
【0090】
具体的には、学習データセット精練部114は、変数iに1を設定する。このとき、学習データセット精練部114は、サンプリング回数欄521に設定された値Nをワークエリアに格納する。
【0091】
次に、学習データセット精練部114は、検証データセットからサンプルデータセットを生成する(ステップS302)。
【0092】
具体的には、学習データセット精練部114は、サンプリング割合欄522に設定された値に基づいて、検証データセットから所定の数の検証データ122をランダムにサンプリングし、サンプルデータセットを生成する。学習データセット精練部114は、生成されたサンプルデータセットに識別情報として変数iの値を設定する。
【0093】
なお、サンプルデータセットは、サンプリング以外の手法を用いて生成されてもよい。例えば、学習データセット精練部114は、所定のルールに基づいて、検証データセットを分割することによってサンプルデータセットを生成する。
【0094】
次に、学習データセット精練部114は、サンプルデータセットを用いてスコア算出処理を実行する(ステップS303)。スコア算出処理の詳細は
図10を用いて説明する。
【0095】
次に、学習データセット精練部114は、スコア算出処理の結果を用いて閾値設定処理を実行する(ステップS304)。閾値設定処理の詳細は
図11を用いて説明する。
【0096】
なお、ユーザによって閾値情報126が設定されている場合、閾値設定処理は実行されない。
【0097】
次に、学習データセット精練部114は、サンプルデータセットにおける有害学習データ121を抽出する(ステップS305)。具体的には、以下のような処理が実行される。
【0098】
(S305-1)学習データセット精練部114は、学習データセットの中からターゲット学習データ121を選択する。
【0099】
(S305-2)学習データセット精練部114は、閾値情報126からサンプルデータセットの閾値を取得する。また、学習データセット精練部114は、スコア情報125から、サンプルデータセット及びターゲット学習データ121の組合せに対応するスコア(サンプルデータセットにおけるターゲット学習データ121のスコア)を取得する。例えば、ターゲット学習データ121の識別番号がkである場合、学習データセット精練部114は、スコア情報125のi行k列のセルに格納される値を取得する。
【0100】
(S305-3)学習データセット精練部114は、取得されたスコアとサンプルデータセットの閾値とを比較し、比較結果に基づいてターゲット学習データ121が有害学習データ121であるか否かを判定する。例えば、スコアが閾値より小さい場合、学習データセット精練部114は、ターゲット学習データ121がサンプルデータセットにおける有害学習データ121であると判定する。
【0101】
(S305-4)学習データセット精練部114は、学習データセットに含まれる全ての学習データ121に対して処理を実行したか否かを判定する。学習データセットに含まれる全ての学習データ121に対して処理を実行していないと判定された場合、学習データセット精練部114は(S305-1)に戻り、同様の処理を実行する。
【0102】
(S305-5)学習データセットに含まれる全ての学習データ121に対して処理を実行したと判定された場合、学習データセット精練部114は、有害学習データ121と判定された学習データ121を要素とする有害学習データ集合をサンプルデータセットの識別番号と対応づけてワークエリアに格納する。その後、学習データセット精練部114はステップS305の処理を終了する。
【0103】
なお、学習データセット精練部114は閾値を用いなくてもよい。この場合、学習データセット精練部114は、スコアの小さい順にm個の学習データ121を選択し、当該学習データを有害学習データに決定する。以上がステップS305の処理の説明である。
【0104】
次に、学習データセット精練部114は、変数iの値がNに一致するか否かを判定する(ステップS306)。すなわち、サンプル回数が上限に達しか否かが判定される。
【0105】
変数iの値がNに一致しないと判定された場合、学習データセット精練部114は、変数iに1を加算した値を変数iに設定し(ステップS307)、その後、ステップS302に戻る。
【0106】
変数iの値がNに一致すると判定された場合、学習データセット精練部114は有害学習データ削除処理を実行し(ステップS308)、その後、学習データセット精練処理を終了する。有害学習データ削除処理の詳細は
図12を用いて説明する。
【0107】
ステップS302からステップS305までの処理が繰り返し実行されることによって、各サンプルデータセットにおける有害学習データ121が抽出される。抽出された有害学習データ121はサンプルデータセットに依存する。そこで、学習データセット精練部114は、有害学習データ削除処理において、総合的な指標を用いて抽出された有害学習データ121の中から削除する有害学習データ121を決定する。
【0108】
図10は、実施例1の計算機100が実行するスコア算出処理の一例を説明するフローチャートである。
【0109】
学習データセット精練部114は、変数Kを初期化する(ステップS401)。変数Kは学習データ121の識別番号を表す変数である。具体的には、学習データセット精練部114は変数Kに1を設定する。
【0110】
次に、学習データセット精練部114は、影響度情報124から、サンプルデータセットに含まれる検証データ122に対する学習データの影響度を取得する(ステップS402)。
【0111】
具体的には、学習データセット精練部114は、影響度情報124を参照し、学習データ121に対応するK行目の、サンプルデータセットに含まれる検証データ122に対応するセルの値を取得する。学習データセット精練部114は、検証データ122の識別番号と、取得されたセルの値を成分とするベクトルとを対応づけてワークエリアに格納する。以下の説明では、取得されたセルの値を成分とするベクトルを影響度ベクトルと記載する。
【0112】
例えば、識別番号が1、2、5である検証データ122から構成されるサンプルデータセットの場合、K行1列、K行2列、K行5列のセルの値を成分とする影響度ベクトルが生成される。
【0113】
次に、学習データセット精練部114は、サンプルデータセットにおける学習データ121のスコアを算出する(ステップS403)。
【0114】
例えば、学習データセット精練部114は、影響度ベクトルの各成分の合計値をスコアとして算出する。また、学習データセット精練部114は、影響度ベクトルと係数ベクトルとの内積をスコアとして算出する。なお、本発明はスコアの算出方法に限定されない。
【0115】
次に、学習データセット精練部114はスコア情報125を更新する(ステップS404)。
【0116】
具体的には、学習データセット精練部114は、スコア情報125のi行目K列のセルに算出されたスコアを設定する。
【0117】
次に、学習データセット精練部114は、変数Kの値がKmaxに一致するか否かを判定する(ステップS405)。すなわち、学習データセットに含まれる全ての学習データ121について処理が完了したか否かが判定される。
【0118】
変数Kの値がKmaxに一致しないと判定された場合、学習データセット精練部114は、変数Kに1を加算した値を変数Kに設定し(ステップS406)、その後、ステップS402に戻る。
【0119】
変数Kの値がKmaxに一致すると判定された場合、学習データセット精練部114はスコア算出処理を終了する。以上の処理によって、i行目の全てのセルにスコアが設定される。
【0120】
図11は、実施例1の計算機100が実行する閾値設定処理の一例を説明するフローチャートである。
【0121】
学習データセット精練部114は、変数iに対応するサンプルデータセットにおける学習データ121のスコアに基づいて、学習データ121をソートする(ステップS501)。
【0122】
具体的には、学習データセット精練部114は、スコア情報125のi行をスコアセットとして取得する。学習データセット精練部114は、スコアセットに含まれる各学習データ121のスコアの小さい順に学習データ121をソートする。
【0123】
次に、学習データセット精練部114は、変数Xを初期化する(ステップS502)。変数Xは学習データの削除数を表す変数である。
【0124】
具体的には、学習データセット精練部114は変数Xに0を設定する。
【0125】
次に、学習データセット精練部114は、学習データ121をX件削除した評価用学習データセットを生成する(ステップS503)。
【0126】
具体的には、学習データセット精練部114は、ソート順(スコアが小さい順)に、X件の学習データ121を削除した評価用学習データセットを生成し、ワークエリアに格納する。
【0127】
学習データセット精練部114は、評価用学習データセットを含む評価モデルの生成指示を学習部112に出力する(ステップS504)。
【0128】
このとき、学習部112は、生成指示を受け付けた場合、評価用学習データセットを用いて学習処理を実行する。学習部112は、生成された評価モデルをワークエリアに格納する。
【0129】
学習データセット精練部114は、評価モデルが生成された後、サンプルデータセットに含まれる検証データ122を評価モデルに入力することによって、当該評価モデルの予測精度を算出する(ステップS505)。
【0130】
このとき、学習データセット精練部114は、変数Xの値と予測精度とを対応づけたデータをワークエリアに格納する。
【0131】
次に、学習データセット精練部114は、変数Xが0であるか否かを判定する(ステップS506)。すなわち、ループ処理の初回の処理であるか否かが判定される。
【0132】
変数Xが0であると判定された場合、学習データセット精練部114はステップS508に進む。
【0133】
変数Xが0でないと判定された場合、学習データセット精練部114は、終了条件を満たすか否かを判定する(ステップS507)。
【0134】
本実施例では、予測精度の変化傾向に関する終了条件を設定する。例えば、学習データセット精練部114は、今回の予測精度が前回の予測精度より小さい場合、終了条件を満たすと判定する。なお、終了条件は一例であってこれに限定されない。
【0135】
終了条件を満たさないと判定された場合、学習データセット精練部114はステップS508に進む。
【0136】
ステップS508では、学習データセット精練部114は変数Xにαを加算した値を変数Xに設定し(ステップS508)、その後、ステップS503に戻る。αは任意に設定できる。例えば、αは10である。
【0137】
終了条件を満たすと判定された場合、学習データセット精練部114は、現在の学習データセットに含まれる学習データ121のスコアに基づいて閾値を算出する(ステップS509)。
【0138】
例えば、学習データセット精練部114は、最も小さいスコアを閾値として算出する。
【0139】
次に、学習データセット精練部114は、閾値情報126を更新し(ステップS510)、その後、閾値設定処理を終了する。
【0140】
具体的には、学習データセット精練部114は、閾値情報126にエントリを追加し、追加されたエントリのサンプルデータセット401に変数iの値を設定し、閾値402に算出された閾値を設定する。
【0141】
図12は、実施例1の計算機100が実行する有害学習データ削除処理の一例を説明するフローチャートである。
【0142】
学習データセット精練部114は、閾値情報126に基づいて、総合閾値を算出する(ステップS601)。
【0143】
例えば、学習データセット精練部114は、閾値402の最小値、閾値402の平均値、又は閾値402の重み付き平均値を総合閾値として算出する。
【0144】
次に、学習データセット精練部114は、各サンプルデータセットの有害学習データ121の抽出結果に基づいて、削除候補の有害学習データを特定する(ステップS602)。
【0145】
例えば、学習データセット精練部114は、サンプルデータセットの有害学習データ集合の和集合又は共通部分に含まれる有害学習データ121を削除候補として特定する。
【0146】
学習データセット精練部114は、特定された有害学習データ121に識別番号を付与する。また、学習データセット精練部114は、特定された有害学習データの数をYmaxに設定する。
【0147】
次に、学習データセット精練部114は変数Yを初期化する(ステップS603)。変数Yは削除候補の有害学習データの識別番号を表す変数である。
【0148】
具体的には、学習データセット精練部114は、変数Yに1を設定する。このとき、学習データセット精練部114は、ワークエリアにオリジナルの学習データセットのコピーを格納する。
【0149】
次に、学習データセット精練部114は、変数Yに対応する有害学習データ121の総合スコアを算出する(ステップS604)。
【0150】
具体的には、学習データセット精練部114は、スコア情報125の有害学習データに対応する列の値を取得する。すなわち、各サンプルデータセットにおける有害学習データのスコアが取得される。学習データセット精練部114は、取得したスコアを用いて有害学習データ121の総合スコアを算出する。
【0151】
例えば、学習データセット精練部114は、取得したスコアの最大値、取得したスコアの平均値、又は取得したスコアの重み付き平均値を総合スコアとして算出する。
【0152】
次に、学習データセット精練部114は、有害学習データ121の総合スコアが総合閾値より小さいか否かを判定する(ステップS605)。
【0153】
有害学習データ121の総合スコアが総合閾値以上であると判定された場合、学習データセット精練部114はステップS607に進む。
【0154】
有害学習データ121の総合スコアが総合閾値より小さいと判定された場合、学習データセット精練部114は、ワークエリアに格納される学習データセットから当該有害学習データ121を削除する(ステップS606)。その後、学習データセット精練部114はステップS607に進む。
【0155】
ステップS607では、学習データセット精練部114は、変数Yの値がYmaxに一致するか否かを判定する(ステップS607)。すなわち、全ての削除候補の有害学習データ121について処理が完了したか否かが判定される。
【0156】
変数Yの値がYmaxに一致しないと判定された場合、学習データセット精練部114は、変数Yに1を加算した値を変数Yに設定し(ステップS608)、その後、ステップS604に戻る。
【0157】
変数Yの値がYmaxに一致すると判定された場合、学習データセット精練部114は有害学習データ削除処理を終了する。
【0158】
実施例1によれば、計算機100は、複数のサンプルデータセットの各々について有害学習データを抽出し、統合的な指標(統合スコア)に基づいて削除する有害学習データ121を決定する。これによって、特定のデータセット(サンプルデータセット)にオーバフィットした学習データセットとなることを防止することができる。
【0159】
すなわち、計算機100は、予測精度を向上できる学習データセットを生成することができる。また、当該学習データセットを用いてモデルを生成することによって、予測精度が高いモデルをユーザに提供することができる。
【実施例2】
【0160】
実施例2の計算機100は、精練学習データセットを用いて生成されたモデルの評価を行う。以下、実施例1との差異を中心に実施例2について説明する。
【0161】
図13は、実施例2の計算機100の構成の一例を示す図である。
【0162】
実施例2の計算機100のハードウェア構成は実施例1と同一である。実施例2の計算機100はソフトウェア構成が異なる。具体的には、主記憶装置103には評価部116を実現するプログラムが格納され、副記憶装置104にはテストデータ127及び評価情報128が格納される。
【0163】
評価部116はモデルの予測精度等の評価を行う。テストデータ127は、モデルの予測精度を評価するために用いるデータである。以下の説明では、複数のテストデータ127をテストデータセットと記載する。評価情報128は評価部116が行った評価の結果を格納する。
【0164】
実施例2では、検証データ122及びテストデータ127を別々のデータとして用意しているが、検証データ122をテストデータ127として用いてもよい。
【0165】
図14は、実施例2の計算機100によって提供されるGUIの一例を示す図である。
【0166】
GUI500は、計算機100に処理の実行を要求する場合に提供されるUIであり、出力装置106に表示される。GUI500は、データ設定欄510、パラメータ設定欄520、出力設定欄530、及び実行ボタン540を含む。
【0167】
パラメータ設定欄520は、実施例1で説明した欄と同一の欄である。実行ボタン540は、実施例1で説明したボタンと同一のボタンである。実施例2では、データ設定欄510及び出力設定欄530が一部異なる。
【0168】
データ設定欄510は、学習データセット欄511、検証データセット欄512、及びテストデータセット欄513を含む。学習データセット欄511及び検証データセット欄512は、実施例1で説明した欄と同一の欄である。テストデータセット欄513は、評価部116がモデルの評価を行うために使用するテストデータセットを指定するための欄である。テストデータセット欄513には、テストデータセットの格納場所を示すパス又はテストデータセットを格納するファイル名等が設定される。
【0169】
出力設定欄530は、モデル保存欄531、学習データ保存欄532、新規モデル保存欄535、評価結果保存欄536、及びチェック欄533、534を含む。
【0170】
モデル保存欄531、学習データ保存欄532、及びチェック欄533、534は実施例1で説明した欄と同一の欄である。新規モデル保存欄535は、精練学習データセットを用いて生成されたモデルのモデル情報123の格納場所を指定するための欄である。評価結果保存欄536は、評価情報128の格納場所を指定するための欄である。
【0171】
図15は、実施例2の計算機100が実行する処理の概要を説明するフローチャートである。
図16は、実施例2の計算機100によって提供されるGUIの一例を示す図である。
【0172】
ステップS101からステップS104までの処理は実施例1で説明した処理と同一の処理である。
【0173】
学習データセット精練処理が実行された後、学習部112は、精練学習データセットを用いて学習処理を実行する(ステップS111)。学習部112は、学習処理によって生成されたモデルの情報を、新規モデル保存欄535で指定されたパスにモデル情報123として格納する。なお、学習処理が実行する学習処理は、ステップS102と同一の処理である。
【0174】
次に、評価部116は、テストデータセット及びモデル情報123を用いて、評価処理を実行する(ステップS112)。
【0175】
具体的には、評価部116は、テストデータセットを用いて、有害学習データ121が削除される前の学習データセットを用いて生成されたモデルの予測精度を算出し、また、テストデータセットを用いて、精練学習データセットを用いて生成されたモデルの予測精度を算出する。評価部116は、各モデルの予測精度の情報を含む評価情報128を生成し、副記憶装置104に格納する。
【0176】
次に、出力部115は、出力情報を生成し、出力する(ステップS105)。その後、計算機100は処理を終了する。
【0177】
例えば、
図16に示すようなGUI700を表示するための出力情報が生成される。ここで、GUI700について説明する。
【0178】
GUI700は、出力情報を表示する場合に提供されるUIであり、出力装置106に表示される。GUI700は、精練学習データセット欄701、スコア情報欄702、閾値情報欄703、評価情報欄704、及び予測精度欄705、706を含む。
【0179】
精練学習データセット欄701、スコア情報欄702、及び閾値情報欄703は、実施例1で説明した欄と同一の欄である。評価情報欄704は、評価情報128の格納場所を表示するための欄である。予測精度欄705は、有害学習データ121が削除される前の学習データセットを用いて生成されたモデルの予測精度を表示する欄である。予測精度欄706は、精練学習データセットを用いて生成されたモデルの予測精度を表示する欄である。
【0180】
実施例2によれば、オリジナルの学習データセットを用いて生成されたモデル及び精練学習データセットを用いて生成されたモデルのそれぞれの評価を行うことによって、精練学習データセットの有用性を客観的に評価することができる。
【0181】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【0182】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0183】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
【0184】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【0185】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【0186】
100 計算機
101 プロセッサ
102 ネットワークインタフェース
103 主記憶装置
104 副記憶装置
105 入力装置
106 出力装置
111 データ受付部
112 学習部
113 影響度情報生成部
114 学習データセット精練部
115 出力部
116 評価部
121 学習データ
122 検証データ
123 モデル情報
124 影響度情報
125 スコア情報
126 閾値情報
127 テストデータ
128 評価情報
500、700 GUI