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

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

▶ テルモ株式会社の特許一覧 ▶ 株式会社ロッケンの特許一覧

特開2024-160187情報処理方法、情報処理装置およびプログラム
<>
  • 特開-情報処理方法、情報処理装置およびプログラム 図1
  • 特開-情報処理方法、情報処理装置およびプログラム 図2
  • 特開-情報処理方法、情報処理装置およびプログラム 図3
  • 特開-情報処理方法、情報処理装置およびプログラム 図4
  • 特開-情報処理方法、情報処理装置およびプログラム 図5
  • 特開-情報処理方法、情報処理装置およびプログラム 図6
  • 特開-情報処理方法、情報処理装置およびプログラム 図7
  • 特開-情報処理方法、情報処理装置およびプログラム 図8
  • 特開-情報処理方法、情報処理装置およびプログラム 図9
  • 特開-情報処理方法、情報処理装置およびプログラム 図10
  • 特開-情報処理方法、情報処理装置およびプログラム 図11
  • 特開-情報処理方法、情報処理装置およびプログラム 図12
  • 特開-情報処理方法、情報処理装置およびプログラム 図13
  • 特開-情報処理方法、情報処理装置およびプログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024160187
(43)【公開日】2024-11-13
(54)【発明の名称】情報処理方法、情報処理装置およびプログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20241106BHJP
【FI】
G06N20/00 130
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021152480
(22)【出願日】2021-09-17
(71)【出願人】
【識別番号】000109543
【氏名又は名称】テルモ株式会社
(71)【出願人】
【識別番号】518110280
【氏名又は名称】株式会社ロッケン
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】坂本 泰一
(72)【発明者】
【氏名】清水 克彦
(72)【発明者】
【氏名】石原 弘之
(72)【発明者】
【氏名】吉澤 俊祐
(72)【発明者】
【氏名】エン トマ
(72)【発明者】
【氏名】ジャケ クレモン
(72)【発明者】
【氏名】チェン ステフェン
(72)【発明者】
【氏名】佐賀 亮介
(57)【要約】
【課題】適切に追加学習を行なえる情報処理方法等を提供すること。
【解決手段】情報処理方法は、学習モデル41の学習に用いる、入力データ511と正解データ512とを関連づけた複数組の学習用データ59からなる学習用データセット69を取得し、前記学習用データセット69の少なくとも一部を複数のクラスタ55にクラスタリングし、それぞれの前記クラスタ55に含まれる前記学習用データ59を、トレーニングデータ56と、バリデーションデータ57と、テストデータ58とに分け、前記複数のクラスタ55のトレーニングデータ56、バリデーションデータ57、および、テストデータ58をそれぞれまとめて前記学習モデル41の学習に使用する処理をコンピュータが実行する。
【選択図】図11
【特許請求の範囲】
【請求項1】
学習モデルの学習に用いる、入力データと正解データとを関連づけた複数組の学習用データからなる学習用データセットを取得し、
前記学習用データセットの少なくとも一部を複数のクラスタにクラスタリングし、
それぞれの前記クラスタに含まれる前記学習用データを、トレーニングデータと、バリデーションデータと、テストデータとに分け、
前記複数のクラスタのトレーニングデータ、バリデーションデータ、および、テストデータをそれぞれまとめて前記学習モデルの学習に使用する
処理をコンピュータが実行する情報処理方法。
【請求項2】
前記複数のクラスタそれぞれを用いた機械学習により、複数の検討モデルを生成し、
生成した前記複数の検討モデルのそれぞれに対して、
前記複数のクラスタのうちで各検討モデルの生成に使用した使用クラスタから分離した前記テストデータを用いて、前記使用クラスタの学習可能性に関する学習可能性評価指標を算出し、
前記複数のクラスタのうちで各検討モデルの生成に使用していない未使用クラスタから分離した前記テストデータを用いて、前記使用クラスタの前記未使用クラスタに対する独立性に関する独立性評価指標を算出し、
前記学習可能性評価指標および前記独立性評価指標が所定の条件を満たさない場合、前記クラスタリングをやりなおす
請求項1に記載の情報処理方法。
【請求項3】
前記学習可能性評価指標は(1)式により定義され、前記独立性評価指標は(2)式により定義される
請求項2に記載の情報処理方法。
【数1】
【請求項4】
すべての前記学習可能性評価指標および前記独立性評価指標が0.6を超えない場合、前記クラスタリングをやりなおす
請求項3に記載の情報処理方法。
【請求項5】
前記学習用データセットは、前記学習モデルの追加学習に用いる追加学習用データセットであり、
前記学習モデルに前記入力データを入力して前記学習モデルから出力される出力データと、前記入力データに関連づけられた正解データとに基づいて、前記出力データの精度を評価し、
前記クラスタリングは、前記追加学習用データセットのうち、前記出力データの精度が所定の閾値以下である前記複数組の学習用データに対して実施する
請求項1から請求項4のいずれか一つに記載の情報処理方法。
【請求項6】
前記出力データの精度が所定の閾値を超える前記複数組の学習用データを一つの前記クラスタに構成する
請求項5に記載の情報処理方法。
【請求項7】
学習モデルの学習に用いる、入力データと正解データとを関連づけた複数組の学習用データからなる学習用データセットを取得し、
前記複数組の学習用データセットを複数のクラスタにクラスタリングし、
それぞれの前記クラスタに含まれる前記学習用データセットを、トレーニングデータと、バリデーションデータと、テストデータとに分け、
前記複数のクラスタそれぞれの前記トレーニングデータを含むトレーニングデータセットと、前記複数のクラスタそれぞれの前記バリデーションデータを含むバリデーションデータセットと、前記複数のクラスタそれぞれの前記テストデータを含むトレーニングデータセットとを作成する
処理をコンピュータが実行する情報処理方法。
【請求項8】
学習モデルの学習に用いる、入力データと正解データとを関連づけた複数組の学習用データを取得する取得部と、
前記学習用データを複数のクラスタにクラスタリングするクラスタリング部と、
それぞれの前記クラスタに含まれる前記学習用データを、トレーニングデータと、バリデーションデータと、テストデータとに分ける分配部と、
前記複数のクラスタのトレーニングデータ、バリデーションデータ、および、テストデータをそれぞれまとめて前記学習モデルの学習に使用する学習部と
を備える情報処理装置。
【請求項9】
学習モデルの学習に用いる、入力データと正解データとを関連づけた複数組の学習用データを取得し、
前記学習用データを複数のクラスタにクラスタリングし、
それぞれの前記クラスタに含まれる前記学習用データを、トレーニングデータと、バリデーションデータと、テストデータとに分け、
前記複数のクラスタのトレーニングデータ、バリデーションデータ、および、テストデータをそれぞれまとめて前記学習モデルの学習に使用する
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理方法、情報処理装置およびプログラムに関する。
【背景技術】
【0002】
教師あり機械学習により生成された学習モデルを使用して、画像診断を支援する画像処理装置が提案されている(特許文献1)。生成済の学習モデルに対して、追加学習用データを用いて追加学習を行なう情報処理方法が提案されている(特許文献2)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2018-175343号公報
【特許文献2】特開2019-133626号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
追加学習を行なう際には、追加学習用データを訓練データ、バリデーションデータ、および、テストデータに分け、訓練データとバリデーションデータを用いて学習モデルのパラメータを調整する。その後、テストデータを用いて調整後の学習モデルをテストする。しかしながら、追加学習用データの分け方に偏りがある場合には、追加学習を適切に行なえない。
【0005】
また、最初の学習を行う際にも同様に、学習用データを訓練データ、バリデーションデータ、および、テストデータに分け、訓練データとバリデーションデータを用いて学習モデルのパラメータを調整する。その後、テストデータを用いて調整後の学習モデルをテストする。しかしながら、学習用データの分け方に偏りがある場合には、過学習などにより学習モデルの精度が目標に到達しない恐れがある。
【0006】
一つの側面では、適切に学習を行なえる情報処理方法等を提供することを目的とする。
【課題を解決するための手段】
【0007】
情報処理方法は、学習モデルの学習に用いる、入力データと正解データとを関連づけた複数組の学習用データからなる学習用データセットを取得し、前記学習用データの少なくとも一部を複数のクラスタにクラスタリングし、それぞれの前記クラスタに含まれる前記学習用データを、トレーニングデータと、バリデーションデータと、テストデータとに分け、前記複数のクラスタのトレーニングデータ、バリデーションデータ、および、テストデータをそれぞれまとめて前記学習モデルの学習に使用する処理をコンピュータが実行する。
【発明の効果】
【0008】
一つの側面では、適切に学習を行なえる情報処理方法等を提供できる。
【図面の簡単な説明】
【0009】
図1】追加学習方法の概要を説明する説明図である。
図2】検討モデル生成方法の概要を説明する説明図である。
図3】情報処理装置の構成を説明する説明図である。
図4】追加学習用データセットの構成を説明する説明図である。
図5】追加学習用データセットの構成を説明する説明図である。
図6】独立性評価指標の算出方法を説明する説明図である。
図7】プログラムの処理の流れを説明するフローチャートである。
図8】問題データ抽出のサブルーチンの処理の流れを説明するフローチャートである。
図9】評価指標算出のサブルーチンの処理の流れを説明するフローチャートである。
図10】指標算出のサブルーチンの処理の流れを説明するフローチャートである。
図11】学習モデルを生成する方法の概要を説明する説明図である。
図12】実施の形態2のプログラムの処理の流れを説明するフローチャートである。
図13】実施の形態3の情報処理装置の構成を説明する説明図である。
図14】実施の形態4の情報処理装置の機能ブロック図である。
【発明を実施するための形態】
【0010】
[実施の形態1]
図1は、追加学習方法の概要を説明する説明図である。入力データ511と正解データ512とを関連づけた多数組の追加学習用データ51からなる追加学習用データセット64が用意されている。1組の追加学習用データ51に含まれる入力データ511が学習モデル41に入力された場合、学習モデル41から出力データ53が出力される。なお、追加学習用データ51は学習用データの例示であり、追加学習用データセット64は学習用データセットの例示である。
【0011】
学習モデル41は、たとえば画像データが入力された場合に、画像データに写っている被写体に関するラベルを出力する分類モデルである。学習モデル41は、画像データが入力された場合に、画像データを構成するそれぞれの画素の被写体に対応するラベルを出力する、セグメンテーションモデルであってもよい。学習モデル41は、画像データが入力された場合に、画像データに写っている被写体の位置とラベルとを出力する物体検出モデルであってもよい。
【0012】
学習モデル41の入力は、画像データに限定しない。たとえば学習モデル41は、テキストの入力を受け付けて音声、画像またはラベルを出力するモデルであってもよい。学習モデル41は、音声を受け付けてテキスト、画像またはラベルを出力するモデルであってもよい。
【0013】
入力データ511に関連づけられた正解データ512と、出力データ53との対比に基づいて、追加学習用データ51の処理精度を示す評価値が算定される。以下の説明においては、出力データ53が正解データ512に近い場合に高い値になるように、評価値を定義した場合を例にして説明する。なお、評価値の詳細については後述する。
【0014】
複数組の追加学習用データ51から、出力データ53の精度が所定の閾値よりも低い問題データが抽出される。抽出された問題データは、たとえばk-means法またはウォード法等の公知のクラスタリング手法により、複数のクラスタ55に分けられる。抽出された問題データは、あらかじめ定められた所定のルールに基づいて、自動的に複数のクラスタ55に分けられてもよい。
【0015】
図1においては、第1クラスタ551、第2クラスタ552および第3クラスタ553の3個のクラスタ55を模式的に示す。それぞれのクラスタ55の内部の点は、それぞれ問題データであると判定された追加学習用データ51を示す。
【0016】
図2は、検討モデル43生成方法の概要を説明する説明図である。図2においては、i番目のクラスタ55である第iクラスタ55iに対する処理を模式的に示す。第iクラスタ55iに含まれる追加学習用データ51は、第iトレーニングデータ56i、第iバリデーションデータ57iおよび第iテストデータ58iに分けられる。
【0017】
第iトレーニングデータ56iおよび第iバリデーションデータ57iを使用して、機械学習により第i検討モデル43iが新たに生成される。以上の処理が、すべてのクラスタ55に対して実行され、クラスタ55と同数の検討モデル43が生成される。
【0018】
図1に戻って説明を続ける。図1においては、第1クラスタ551を使用して第1検討モデル431が、第2クラスタ552を使用して第2検討モデル432が、第3クラスタ553を使用して第3検討モデル433がそれぞれ生成された例を模式的に示す。
【0019】
それぞれのクラスタ55について、検討モデル43の学習を適切に行なえたか否かを示す学習可能性評価指標と、クラスタ55同士の独立性を示す独立性評価指標との評価が行われる。学習可能性評価指標および独立性評価指標の詳細については、後述する。
【0020】
学習可能性評価指標と独立性評価指標との一方または両方が良好な値を示さない場合、クラスタリングの工程に戻って、再度処理が行われる。たとえば生成するクラスタ55の数、クラスタ55を作成する際に用いる初期値等の計算条件、クラスタリングに用いる手法、または、クラスタリングに用いるデータ間の類似度の尺度等の条件を変更することにより、同一の問題データ群であっても異なるクラスタ55を形成できる。
【0021】
すべての学習可能性評価指標および独立性評価指標が良好な値を示す場合、追加学習用データセット64に含まれる追加学習用データ51は、トレーニングデータセット61、バリデーションデータセット62およびテストデータセット63に分配される。
【0022】
トレーニングデータセット61は、それぞれのクラスタ55のトレーニングデータ56と、問題データではないと判定された追加学習用データ51の一部とを含む。バリデーションデータセット62は、それぞれのクラスタ55のバリデーションデータ57と、問題データではないと判定された追加学習用データ51の一部とを含む。テストデータセット63は、それぞれのクラスタ55のテストデータ58と、問題データではないと判定された追加学習用データ51の一部とを含む。
【0023】
トレーニングデータセット61およびバリデーションデータセット62を使用して、学習モデル41のパラメータの再調整が行なわれる。テストデータセット63を使用して、再調整後の学習モデル41に対するテストが行われる。
【0024】
以上に説明した処理により、追加学習用データセット64に含まれる複数組の追加学習用データ51をトレーニングデータ、バリデーションデータおよびテストデータに分ける際の偏りを防止して、学習モデル41の追加学習を適切に行なえる。
【0025】
図3は、情報処理装置20の構成を説明する説明図である。情報処理装置20は、制御部21、主記憶装置22、補助記憶装置23、通信部24、表示部25、入力部26およびバスを備える。制御部21は、本実施の形態のプログラムを実行する演算制御装置である。制御部21には、一または複数のCPU(Central Processing Unit)、GPU(Graphics Processing Unit)、TPU(Tensor Processing Unit)またはマルチコアCPU等が使用される。制御部21は、バスを介して情報処理装置20を構成するハードウェア各部と接続されている。
【0026】
主記憶装置22は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等の記憶装置である。主記憶装置22には、制御部21が行なう処理の途中で必要な情報および制御部21で実行中のプログラムが一時的に保存される。
【0027】
補助記憶装置23は、SRAM、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置23には、学習モデル41、前述の追加学習用データセット64を記録した追加学習用データDB45、制御部21に実行させるプログラム、およびプログラムの実行に必要な各種データが保存される。学習モデル41および追加学習用データDB45は、情報処理装置20に接続された外部の大容量記憶装置に保存されていてもよい。通信部24は、情報処理装置20とネットワークとの間の通信を行なうインターフェースである。
【0028】
表示部25は、たとえば液晶表示パネルまたは有機EL(electro-luminescence)パネル等である。入力部26は、たとえばキーボードまたはマウス等である。表示部25と入力部26とは、積層されてタッチパネルを構成していてもよい。
【0029】
情報処理装置20は、汎用のパソコン、タブレット、大型計算機、大型計算機上で動作する仮想マシン、または、量子コンピュータである。情報処理装置20は、分散処理を行なう複数のパソコン、または大型計算機等のハードウェアにより構成されても良い。情報処理装置20は、クラウドコンピューティングシステムまたは量子コンピュータにより構成されても良い。
【0030】
図4および図5は、追加学習用データセット64の構成を説明する説明図である。追加学習用データセット64は、前述の通り複数組の追加学習用データ51からならデータセットである。図4および図5においては、追加学習用データセット64の構成を1つの行に1組の追加学習用データ51を記載した表形式で説明する。左側の列に入力データ511を示し、右側の列に正解データ512を示す。
【0031】
図4は、画像データの入力を受け付けて、画像データに写っている被写体に関するラベルを出力する学習モデル41の追加学習に用いられる追加学習用データセット64の例を示す。たとえば、図4の一番上の行に示す追加学習用データ51は、入力に用いる画像データである入力データ511と、当該入力データ511の被写体に対応するラベルが「犬」であることを示す正解データ512とを含む。
【0032】
制御部21は、入力データ511を学習モデル41または検討モデル43に入力し、出力データ53を取得する。出力データ53が「犬」である場合、正解データ512と出力データ53とが一致しているため、制御部21は評価値が「1」であると算定する。一方、出力データ53が「猫」である場合、正解データ512と出力データ53とが一致していないため、制御部21は評価値が「0」であると算定する。
【0033】
なお評価値は、「0」と「1」の二値に限定しない。たとえば、「犬」の正解データ512に対して、「猫」「馬」または「牛」等の「犬」以外の四つ足の動物を示すラベルが出力された場合には「0.5」、それ以外のラベルが出力された場合には「0」のように、三値以上に定められても良い。問題データを抽出する処理においては、制御部21は評価値が閾値未満である追加学習用データ51を抽出する。
【0034】
図5は、画像データの入力を受け付けて、画像データを構成するそれぞれの画素の被写体に対応するラベルを出力する、いわゆるセグメンテーションモデルである学習モデル41用の追加学習に用いられる追加学習用データセット64の例を示す。
【0035】
たとえば、図5の一番上の行に示す追加学習用データ51は、入力に用いる画像データである入力データ511と、当該入力データ511を構成するそれぞれの画素に対応するラベルを示す正解データ512とを含む。
【0036】
制御部21は、入力データ511を学習モデル41または検討モデル43に入力し、出力データ53を取得する。制御部21は、画素ごとに正解データ512と出力データ53とを対比して、評価値を算定する。評価値には、たとえばPixel Accuracy、mIoU(Mean Intersection over Union)またはF値等の、セグメンテーションモデルの精度評価に使用可能な任意の評価値を使用できる。
【0037】
制御部21は、追加学習用データ51のうち、評価値が閾値よりも低い問題データを抽出する。閾値はたとえばあらかじめ定められた定数である。閾値は、算定した評価値に基づいて定められてもよい。たとえば制御部21は、評価値が下から10パーセントである追加学習用データ51を抽出するように、閾値を定めてもよい。
【0038】
なお、複数組の追加学習用データ51から問題データを抽出する際に使用する評価値と、学習可能性評価指標および独立性評価指標を算定する際に使用する評価値とは、同一の評価値であっても、異なる評価値であってもよい。
【0039】
学習可能性評価指標の算出方法について説明する。学習可能性評価指標は(1)式により定義される。
【0040】
【数1】
【0041】
第iクラスタ55iに関する学習可能性評価指標L(Fi)の算出手順の概要を説明する。図2を使用して説明したように、制御部21は、第iクラスタ55iに含まれる追加学習用データ51を、第iトレーニングデータ56i、第iバリデーションデータ57iおよび第iテストデータ58iに分ける。制御部21は、第iトレーニングデータ56iおよび第iバリデーションデータ57iを用いて第i検討モデル43iを生成する。
【0042】
制御部21は、第i検討モデル43iに、第iテストデータ58iに含まれるそれぞれの入力データ511を入力して、出力データ53を取得する。制御部21は、入力データ511に関連づけられた正解データ512と、出力データ53との対比に基づいて、それぞれの追加学習用データ51に関する評価値を算定する。
【0043】
制御部21は、それぞれの追加学習用データ51について評価した評価値の代表値を算出する。代表値は、たとえばそれぞれの追加学習用データ51について評価した精度の相加平均値、相乗平均値、調和平均値、中央値または最頻値等である。制御部21が算出した代表値が、第iクラスタ55iの学習可能性評価指標L(Fi)である。制御部21は、それぞれのクラスタ55について、学習可能性評価指標を算出する。
【0044】
学習可能性評価指標は、生成した検討モデル43の精度に関する指標である。学習可能性評価指標が閾値以下である場合、生成された検討モデル43は適切なモデルではない。学習可能性評価指標が閾値を超える場合、良好な精度の検討モデル43が生成されている。閾値は、たとえば0.6が適切である。
【0045】
独立性評価指標の算出方法について説明する。独立性評価指標は(2)式により定義される。なお、(1)式と共通する記号については説明を省略する。
【0046】
【数2】
【0047】
(1)式に示した学習可能性評価指標の定義に基づいて、(2)式は(3)式のように変形できる。
【0048】
【数3】
【0049】
第iクラスタ55iの独立性評価指標I(Fi)の算出手順の概要を説明する。まず、前述の手順で学習可能性評価指標L(Fi)を算出する。制御部21は、第i検討モデル43iに、第jテストデータ58jに含まれるそれぞれの入力データ511を入力して、出力データ53を取得する。制御部21は、入力データ511に関連づけられた正解データ512と、出力データ53との対比に基づいて、それぞれの追加学習用データ51に関する評価値を算定する。
【0050】
制御部21は、それぞれの追加学習用データ51について評価した評価値の代表値を算出する。制御部21が算出した代表値が、第i検討モデル43iと第jテストデータ58jとを組み合わせた場合の評価指標m(i,j)である。なお、学習可能性評価指標を算出する際の代表値と、独立性評価指標を算出する際の代表値とは、同一であることが望ましい。
【0051】
図6は、独立性評価指標の算出方法を説明する説明図である。縦方向は(2)式および(3)式の上式のiを示し、横方向は上式のjを示す。右端を除くそれぞれのマス目は、評価指標m(i,j)を示す。太枠で囲む対角線上のマス目は、検討モデル43と、検討モデル43の生成に用いたクラスタ55のテストデータ58とを組み合わせて評価した学習可能性評価指標である。
【0052】
(3)式に戻って説明を続ける。制御部21は、iに等しくないjのそれぞれについて、学習可能性評価指標L(Fi)と、評価指標m(i,j)との差を算出する。制御部21は、算出した差の相加平均値を算出する。制御部21が算出した相加平均値が、図6の右端に示す第iクラスタ55iの独立性評価指標I(Fi)である。
【0053】
独立性評価指標は、クラスタ55間の独立性に関する指標である。独立性評価指標が閾値以下である場合、クラスタリングが適切に行なわれていない。独立性評価指標が閾値を超える場合、クラスタリングが適切に行なわれている。閾値は、たとえば0.6が適切である。なお、学習可能性評価指標に対する閾値と、独立性評価指標に対する閾値とは異なる値であってもよい。
【0054】
図7は、プログラムの処理の流れを説明するフローチャートである。図7のプログラムの実行に先立ち、学習モデル41に対応する構造を有する未学習のモデルが準備されている。制御部21は、追加学習用データDB45に十分な数の追加学習用データ51を含む追加学習用データセット64が記録されている場合に、図7を使用して説明するプログラムを実行する。
【0055】
制御部21は、問題データ抽出のサブルーチンを起動する(ステップS501)。問題データ抽出のサブルーチンは、追加学習用データセット64に含まれる追加学習用データ51から、問題データを抽出するサブルーチンである。問題データ抽出のサブルーチンの処理の流れは後述する。
【0056】
制御部21は、抽出した問題データをクラスタリングする(ステップS502)。制御部21は一つのクラスタ55を選択する(ステップS503)。制御部21は、選択したクラスタ55に含まれる追加学習用データ51を、トレーニングデータ56、バリデーションデータ57およびテストデータ58に分配する(ステップS504)。
【0057】
制御部21は、トレーニングデータ56およびバリデーションデータ57を使用して機械学習を行ない、検討モデル43を生成する(ステップS505)。教師あり機械学習によるモデルの生成処理は従来から行なわれているため、詳細については説明を省略する。制御部21は、ステップS503で選択したクラスタ55と関連づけて、生成した検討モデル43を主記憶装置22または補助記憶装置23に記録する。
【0058】
制御部21は、すべてのクラスタ55の処理を終了したか否かを判定する(ステップS506)。終了していないと判定した場合(ステップS506でNO)、制御部21はステップS503に戻る。終了したと判定した場合(ステップS506でYES)、制御部21は評価指標算出のサブルーチンを起動する(ステップS507)。評価指標算出のサブルーチンは、各クラスタ55について生成した検討モデル43の学習可能性評価指標および独立性評価指標を算出するサブルーチンである。評価指標算出のサブルーチンの処理の流れは後述する。
【0059】
制御部21は、検討モデル43の学習可能性評価指標および独立性評価指標が条件を満たしているか否かを判定する(ステップS508)。具体的には、それぞれの検討モデル43についてそれぞれ算出した学習可能性評価指標および独立性評価指標がすべて所定の閾値を超える場合、制御部21は条件を満たしていると判定する。
【0060】
満たしていると判定した場合(ステップS508でYES)、制御部21は追加学習用データセット64に含まれる追加学習用データ51を、トレーニングデータセット61、バリデーションデータセット62、テストデータセット63に分配する(ステップS509)。
【0061】
ここでトレーニングデータセット61は、それぞれのクラスタ55についてステップS504で分配したトレーニングデータ56と、問題データではないと判定された追加学習用データ51の一部とを含む。バリデーションデータセット62は、それぞれのクラスタ55についてステップS504で分配したバリデーションデータ57と、問題データではないと判定された追加学習用データ51の一部とを含む。テストデータセット63は、それぞれのクラスタ55についてステップS504で分配したテストデータ58と、問題データではないと判定された追加学習用データ51の一部とを含む。
【0062】
制御部21は、トレーニングデータセット61およびバリデーションデータセット62を使用して、学習モデル41の追加学習を行ない、テストデータセット63を使用して追加学習後のテストを行なう(ステップS510)。教師あり機械学習による生成したモデルの追加学習処理は従来から行なわれているため、詳細については説明を省略する。制御部21は、追加学習により学習モデル41の精度が向上したか否かを判定する(ステップS511)。
【0063】
向上したと判定した場合(ステップS511でYES)、制御部21は追加学習用データDB45および学習モデル41を更新する(ステップS512)。具体的には、制御部21は追加学習用データDB45に記録されている追加学習用データセット64から、追加学習に使用した追加学習用データ51を削除する。制御部21は、追加学習用データセット64に、使用済の追加学習用データ51を示すフラグを記録してもよい。
【0064】
制御部21は、補助記憶装置23に記録されている学習モデル41のパラメータを更新する。なお、制御部21は追加学習前の学習モデル41と追加学習後の学習モデル41の両方を補助記憶装置23に記録してもよい。その後、制御部21は処理を終了する。
【0065】
検討モデル43の学習可能性および独立性が条件を満たしていないと判定した場合(ステップS508でNO)、または、追加学習により学習モデル41の精度が向上していないと判定した場合(ステップS511でNO)、制御部21は処理を終了するか否かを判定する(ステップS521)。たとえば、ステップS521を所定の回数繰り返した場合に、制御部21は処理を終了すると判定する。
【0066】
処理を終了しないと判定した場合(ステップS521でNO)、制御部21はステップS502に戻る。処理を終了すると判定した場合(ステップS521でYES)、制御部21は処理を終了する。追加学習用データセット64から追加学習用データ51は消去されない。さらに十分な数の追加学習用データ51が追加学習用データセット64に加えられた後に、図7を使用して説明したプログラムが再度実行される。
【0067】
図8は、問題データ抽出のサブルーチンの処理の流れを説明するフローチャートである。問題データ抽出のサブルーチンは、追加学習用データセット64に記録されている追加学習用データ51から、問題データを抽出するサブルーチンである。
【0068】
制御部21は、追加学習用データセット64から1組の追加学習用データ51を取得する(ステップS531)。制御部21は、取得した追加学習用データ51に含まれる入力データ511を学習モデル41に入力して、出力データ53を取得する(ステップS532)。
【0069】
制御部21は、ステップS531で取得した追加学習用データ51に含まれる正解データ512と、ステップS532で取得した出力データ53とに基づいて評価値を算定する(ステップS533)。制御部21は、ステップS531で取得した追加学習用データ51と算定した評価値とを関連づけて、補助記憶装置23または主記憶装置22に記録する(ステップS534)。
【0070】
制御部21は、追加学習用データセット64に記録された追加学習用データ51の処理を終了したか否かを判定する(ステップS535)。終了していないと判定した場合(ステップS535でNO)、制御部21はステップS531に戻る。
【0071】
終了したと判定した場合(ステップS535でYES)、制御部21はステップS534で記録した評価値に基づいて、問題データである追加学習用データ51を抽出する(ステップS536)。たとえば制御部21は、評価値が所定の閾値よりも低い追加学習用データ51を抽出する。なお、制御部21は記録した評価値に基づいて閾値を算出してもよい。その後、制御部21は、算出した閾値に基づいて問題データを抽出し、処理を終了する。
【0072】
図9は、評価指標算出のサブルーチンの処理の流れを説明するフローチャートである。評価指標算出のサブルーチンは、各クラスタ55について生成した検討モデル43の学習可能性評価指標および独立性評価指標を算出するサブルーチンである。
【0073】
制御部21は、評価指標を算出する対象であるクラスタ55を選択する(ステップS541)。ステップS541で選択されたクラスタ55は、(1)式から(3)式におけるi番目のクラスタFiに相当する。ステップS541で選択されたクラスタ55は、処理中の検討モデル43の生成に使用された使用クラスタの例示である。
【0074】
制御部21は、ステップS541で選択したクラスタ55に基づいて生成された検討モデル43を取得する(ステップS542)。ステップS542で選択された検討モデル43は、(1)式から(3)式におけるi番目の検討モデルMiに相当する。
【0075】
制御部21は、ステップS541で選択したクラスタ55に含まれるテストデータ58を取得する(ステップS543)。ステップS543で取得されたテストデータ58は、(1)式から(3)式におけるi番目のクラスタ55から分離したテストデータFiteに相当する。
【0076】
制御部21は、ステップS542で取得した検討モデル43と、ステップS543で取得したテストデータ58とを引数に用いて、指標算出のサブルーチンを起動する(ステップS544)。指標算出のサブルーチンは、第bテストデータ58bを使用して第a検討モデル43aを評価した評価指標m(a,b)を算出するサブルーチンである。ステップS544においては、a=b=iであり、算出される評価指標m(i,i)は、(1)式を使用して説明したi番目のクラスタ55に関する学習可能性評価指標L(Fi)である。指標算出のサブルーチンの処理の流れは後述する。
【0077】
制御部21は、テストデータ58のクラスタ55を選択する(ステップS545)。ステップS545で選択されたクラスタ55は、(2)式から(3)式におけるj番目のクラスタFjに相当する。ステップS545で選択されたクラスタ55は、処理中の検討モデル43の生成に使用されていない未使用クラスタの例示である。
【0078】
制御部21は、ステップS545で選択したクラスタ55に含まれるテストデータ58を取得する(ステップS546)。ステップS546で取得されたテストデータ58は、(2)式から(3)式におけるj番目のクラスタ55から分離したテストデータFjteに相当する。
【0079】
制御部21は、ステップS542で取得した検討モデル43と、ステップS546で取得したテストデータ58とを引数に用いて、指標算出のサブルーチンを起動する(ステップS547)。指標算出のサブルーチンは、ステップS544で起動したサブルーチンと同一のサブルーチンである。ステップS544においては、a=i、b=jであり、(2)式から(3)式における評価指標m(i,j)が算出される。
【0080】
制御部21は、ステップS541で選択したクラスタ55を除くすべてのクラスタ55の処理を終了したか否かを判定する(ステップS548)。処理を終了していないと判定した場合(ステップS548でNO)、制御部21はステップS545に戻る。
【0081】
処理を終了したと判定した場合(ステップS548でYES)、制御部21は、(2)式または(3)式に基づいてi番目のクラスタ55に関する独立性評価指標I(F)を算出する(ステップS549)。
【0082】
制御部21は、すべてのクラスタ55に関する学習可能性評価指標および独立性評価指標の算出を終了したか否かを判定する(ステップS550)。終了していないと判定した場合(ステップS550でNO)、制御部21はステップS541に戻る。終了したと判定した場合(ステップS550でYES)、制御部21は処理を終了する。
【0083】
図10は、指標算出のサブルーチンの処理の流れを説明するフローチャートである。指標算出のサブルーチンは、第bテストデータ58bを使用して第a検討モデル43aを評価した評価指標m(a,b)を算出するサブルーチンである。
【0084】
制御部21は、引数に指定された第bテストデータ58bから1組の追加学習用データ51を取得する(ステップS551)。制御部21は、取得した追加学習用データ51に含まれる入力データ511を引数で指定された第a検討モデル43aに入力して、出力データ53を取得する(ステップS552)。
【0085】
制御部21は、ステップS551で取得した追加学習用データ51に含まれる正解データ512と、ステップS552で取得した出力データ53とに基づいて評価値を算定する(ステップS553)。制御部21は、ステップS551で取得した追加学習用データ51と算定した評価値とを関連づけて、補助記憶装置23または主記憶装置22に記録する(ステップS554)。
【0086】
制御部21は、第bテストデータ58bに含まれる追加学習用データ51の処理を終了したか否かを判定する(ステップS555)。終了していないと判定した場合(ステップS555でNO)、制御部21はステップS551に戻る。
【0087】
終了したと判定した場合(ステップS555でYES)、制御部21はステップS554で記録した評価値の代表値を算出する(ステップS556)。ステップS556で算出した評価値が、評価指標m(a,b)である。その後、制御部21は処理を終了する。
【0088】
本実施の形態によると、追加学習用データセット64に含まれる追加学習用データ51をトレーニングデータセット61、バリデーションデータセット62およびテストデータセット63に偏りなく分配できる。したがって、学習モデル41の追加学習を適切に行なえる。
【0089】
本実施の形態によると、学習可能性評価指標および独立性評価指標の二つの観点から追加学習用データ51を適切に分配できる。
【0090】
本実施の形態によると、追加学習用データセット64に含まれる追加学習用データ51では、適切な追加学習を行なう条件を満たさない場合には追加学習を行なわず、追加学習用データセット64にさらに追加学習用データ51が蓄積されるのを待つ。したがって、不適切な追加学習により学習モデル41の精度が却って低下することを防止できる。
【0091】
[実施の形態2]
本実施の形態は、新たな学習モデル41の生成に関する。実施の形態1と共通する部分については、説明を省略する。なお、以下の説明においては実施の形態1と同様に情報処理装置20を使用して学習モデル41を生成する場合を例にして説明する。学習モデル41の生成と、実施の形態1で説明した学習モデル41の追加学習とは、異なるハードウェアで実行されてもよい。
【0092】
図11は、学習モデル41を生成する方法の概要を説明する説明図である。入力データ511と正解データ512とを関連づけた多数組の学習用データ59からなる学習用データセット69が用意されている。学習用データセット69は、補助記憶装置23または情報処理装置20に接続された外部の大容量記憶装置に保存されたデータベースに記録されている。
【0093】
学習用データ59および学習用データセット69の構成は、図4および図5を使用して説明した追加学習用データ51および追加学習用データセット64と同様であるため、詳細については説明を省略する。
【0094】
学習用データ59は、たとえばk-means法またはウォード法等の公知のクラスタリング手法により、複数のクラスタ55に分けられる。図11においては、第1クラスタ551、第2クラスタ552および第3クラスタ553の3個のクラスタ55を模式的に示す。それぞれのクラスタ55の内部の点は学習用データ59を示す。
【0095】
それぞれのクラスタ55に含まれる学習用データ59が、トレーニングデータ56、バリデーションデータ57およびテストデータ58に分けられた後に、機械学習により検討モデル43が生成される。以上の処理が、すべてのクラスタ55に対して実行され、クラスタ55と同数の検討モデル43が生成される。
【0096】
それぞれのクラスタ55について、検討モデル43の学習を適切に行なえたか否かを示す学習可能性評価指標と、クラスタ55同士の独立性を示す独立性評価指標との評価が行われる。学習可能性評価指標の算出方法は、実施の形態1において(1)式を用いて説明した算出方法と同様である。独立性評価指標の算出方法は、実施の形態2において(2)式および(3)式を用いて説明した算出方法と同様である。
【0097】
学習可能性評価指標と独立性評価指標との一方または両方が良好な値を示さない場合、クラスタリングの工程に戻って、再度処理が行われる。すべての学習可能性評価指標および独立性評価指標が良好な値を示す場合、学習用データセット69に含まれる学習用データ59は、トレーニングデータセット61、バリデーションデータセット62およびテストデータセット63に分配される。
【0098】
トレーニングデータセット61は、それぞれのクラスタ55のトレーニングデータ56を含む。バリデーションデータセット62は、それぞれのクラスタ55のバリデーションデータ57を含む。テストデータセット63は、それぞれのクラスタ55のテストデータ58を含む。
【0099】
トレーニングデータセット61およびバリデーションデータセット62を使用して、機械学習により学習モデル41が生成される。テストデータセット63を使用して、生成された学習モデル41に対するテストが行われる。
【0100】
以上に説明した処理により、学習用データセット69に含まれる複数組の学習用データ59をトレーニングデータ、バリデーションデータおよびテストデータ58に分ける際の偏りを防止して、学習モデル41の生成を適切に行なえる。
【0101】
図12は、実施の形態2のプログラムの処理の流れを説明するフローチャートである。図12のプログラムの実行に先立ち、学習モデル41に対応する構造を有する未学習のモデルが準備されている。
【0102】
制御部21は、学習用データセット69に記録されている学習用データ59をクラスタリングする(ステップS561)。制御部21は一つのクラスタ55を選択する(ステップS562)。制御部21は、選択したクラスタ55に含まれる学習用データ59を、トレーニングデータ56、バリデーションデータ57およびテストデータ58に分配する(ステップS563)。
【0103】
制御部21は、トレーニングデータ56およびバリデーションデータ57を使用して機械学習を行ない、検討モデル43を生成する(ステップS564)。教師あり機械学習によるモデルの生成処理は従来から行なわれているため、詳細については説明を省略する。制御部21は、ステップS562で選択したクラスタ55と関連づけて、生成した検討モデル43を主記憶装置22または補助記憶装置23に記録する。
【0104】
制御部21は、すべてのクラスタ55の処理を終了したか否かを判定する(ステップS565)。終了していないと判定した場合(ステップS565でNO)、制御部21はステップS562に戻る。終了したと判定した場合(ステップS565でYES)、制御部21は評価指標算出のサブルーチンを起動する(ステップS566)。評価指標算出のサブルーチンは、図9を使用して説明したサブルーチンと同様のサブルーチンである。
【0105】
制御部21は、検討モデル43の学習可能性評価指標および独立性評価指標が条件を満たしているか否かを判定する(ステップS567)。具体的には、それぞれの検討モデル43についてそれぞれ算出した学習可能性評価指標および独立性評価指標がすべて所定の閾値を超える場合、制御部21は条件を満たしていると判定する。
【0106】
満たしていると判定した場合(ステップS567でYES)、制御部21は学習用データセット69に含まれる学習用データ59を、トレーニングデータセット61、バリデーションデータセット62、テストデータセット63に分配する(ステップS568)。
【0107】
ここでトレーニングデータセット61は、それぞれのクラスタ55についてステップS563で分配したトレーニングデータ56により構成される。バリデーションデータセット62は、それぞれのクラスタ55についてステップS563で分配したバリデーションデータ57により構成される。テストデータセット63は、それぞれのクラスタ55についてステップS563で分配したテストデータ58により構成される。
【0108】
制御部21は、トレーニングデータセット61およびバリデーションデータセット62を使用して、機械学習を行ない、学習モデル41を生成する(ステップS569)。制御部21は、テストデータセット63を使用して生成した学習モデル41のテストを行なう。制御部21は、テスト結果に基づいて所定の精度を有する学習モデル41が生成されたか否かを判定する(ステップS570)。
【0109】
生成されたと判定した場合(ステップS570でYES)、制御部21は生成した学習モデル41のパラメータを補助記憶装置23に記録する(ステップS571)。その後、制御部21は処理を終了する。
【0110】
検討モデル43の学習可能性および独立性が条件を満たしていないと判定した場合(ステップS567でNO)、または、所定の精度を有する学習モデル41が生成されていないと判定した場合(ステップS570でNO)、制御部21は処理を終了するか否かを判定する(ステップS572)。たとえば、ステップS572を所定の回数繰り返した場合に、制御部21は処理を終了すると判定する。
【0111】
処理を終了しないと判定した場合(ステップS572でNO)、制御部21はステップS561に戻る。処理を終了すると判定した場合(ステップS572でYES)、制御部21は処理を終了する。なお、制御部21は処理を終了する前に適切な学習モデル41を生成できなかった旨をユーザに通知してもよい。
【0112】
本実施の形態によると、学習用データセット69に記録された学習用データ59をトレーニングデータセット61、バリデーションデータセット62およびテストデータセット63に分配する際の偏りを防止できるため、少ない試行回数で適切な学習モデル41を生成できる。
【0113】
[実施の形態3]
図13は、実施の形態3の情報処理装置20の構成を説明する説明図である。本実施の形態は、汎用のコンピュータ90と、プログラム97とを組み合わせて動作させることにより、本実施の形態の情報処理装置20を実現する形態に関する。実施の形態1と共通する部分については、説明を省略する。
【0114】
コンピュータ90は、前述の制御部21、主記憶装置22、補助記憶装置23、通信部24、表示部25、入力部26およびバスに加えて読取部29を備える。
【0115】
プログラム97は、可搬型記録媒体96に記録されている。制御部21は、読取部29を介してプログラム97を読み込み、補助記憶装置23に保存する。また制御部21は、コンピュータ90内に実装されたフラッシュメモリ等の半導体メモリ98に記憶されたプログラム97を読出してもよい。さらに、制御部21は、通信部24および図示しないネットワークを介して接続される図示しない他のサーバコンピュータからプログラム97をダウンロードして補助記憶装置23に保存してもよい。
【0116】
プログラム97は、コンピュータ90の制御プログラムとしてインストールされ、主記憶装置22にロードして実行される。以上により、実施の形態1で説明した情報処理装置20が実現される。
【0117】
[実施の形態4]
図14は、実施の形態4の情報処理装置20の機能ブロック図である。情報処理装置20は、取得部81、クラスタリング部82、分配部83および学習部84を備える。
【0118】
取得部81は、学習モデル41の学習に用いる、入力データ511と正解データ512とを関連づけた複数組の学習用データ59を取得する。クラスタリング部82は、学習用データ59を複数のクラスタ55にクラスタリングする。
【0119】
分配部83は、それぞれのクラスタ55に含まれる学習用データ59を、トレーニングデータ56と、バリデーションデータ57と、テストデータ58とに分ける。学習部84は、複数のクラスタ55のトレーニングデータ56、バリデーションデータ57、および、テストデータ58をそれぞれまとめて学習モデル41の学習に使用する。
【0120】
各実施例で記載されている技術的特徴(構成要件)はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものでは無いと考えられるべきである。本発明の範囲は、上記した意味では無く、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0121】
20 情報処理装置
21 制御部
22 主記憶装置
23 補助記憶装置
24 通信部
25 表示部
26 入力部
29 読取部
41 学習モデル
43 検討モデル
431 第1検討モデル
432 第2検討モデル
433 第3検討モデル
43a 第a検討モデル
43i 第i検討モデル
45 追加学習用データDB
51 追加学習用データ
511 入力データ
512 正解データ
53 出力データ
55 クラスタ
551 第1クラスタ
552 第2クラスタ
553 第3クラスタ
55i 第iクラスタ
56 トレーニングデータ
56i 第iトレーニングデータ
57 バリデーションデータ
57i 第iバリデーションデータ
58 テストデータ
58b 第bテストデータ
58i 第iテストデータ
58j 第jテストデータ
59 学習用データ
61 トレーニングデータセット
62 バリデーションデータセット
63 テストデータセット
64 追加学習用データセット
69 学習用データセット
81 取得部
82 クラスタリング部
83 分配部
84 学習部
90 コンピュータ
96 可搬型記録媒体
97 プログラム
98 半導体メモリ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14