(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-08-16
(45)【発行日】2024-08-26
(54)【発明の名称】プログラム、方法、情報処理装置、システム
(51)【国際特許分類】
G06N 20/00 20190101AFI20240819BHJP
【FI】
G06N20/00
(21)【出願番号】P 2023196973
(22)【出願日】2023-11-20
【審査請求日】2023-11-21
【早期審査対象出願】
(73)【特許権者】
【識別番号】721003632
【氏名又は名称】株式会社Adansons
(74)【代理人】
【識別番号】110002815
【氏名又は名称】IPTech弁理士法人
(72)【発明者】
【氏名】樋口 賢一
(72)【発明者】
【氏名】中屋 悠資
(72)【発明者】
【氏名】石井 晴揮
(72)【発明者】
【氏名】木村 芳孝
【審査官】多賀 実
(56)【参考文献】
【文献】米国特許出願公開第2023/0297886(US,A1)
【文献】米国特許出願公開第2020/0349466(US,A1)
【文献】特開2023-147276(JP,A)
【文献】米国特許出願公開第2019/0354810(US,A1)
【文献】特開2020-052935(JP,A)
【文献】米国特許出願公開第2022/0207397(US,A1)
【文献】国際公開第2023/181245(WO,A1)
【文献】特開2022-175062(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
プロセッサと、記憶部とを備えるコンピュータに実行させるためのプログラムであって、
前記プロセッサが、
学習モデルを記憶するモデル記憶ステップと、
それぞれがメタデータと関連付けられた複数のデータからなるデータセットを取得するデータ取得ステップと、
前記データ取得ステップにおいて取得した前記データセットについて、1または複数の前記データを含む複数のグループごとに、当該グループに含まれる前記1または複数のデータに対する前記学習モデルの推論品質を評価するモデル評価ステップと、
前記グループに含まれる1または複数のデータに基づき、前記モデル記憶ステップにおいて記憶された前記学習モデルを修正した修正関数を作成するモデル修正ステップと、
前記モデル修正ステップにおいて作成した前記修正関数を適用する適用条件を、前記修正関数と関連付けて記憶する条件記憶ステップと、
前記学習モデルおよび前記修正関数に基づき、結合モデルを作成する結合モデル作成ステップと、
を実行し、
前記結合モデル作成ステップにおいて作成された前記結合モデルは、
入力データが前記条件記憶ステップにおいて記憶された前記適用条件に含まれる場合は、当該適用条件に関連付けられた前記修正関数による出力データを出力し、
入力データが前記条件記憶ステップにおいて記憶された前記適用条件に含まれない場合は、前記学習モデルによる出力データを出力する、
プログラム。
【請求項2】
前記モデル評価ステップは、前記学習モデルの推論精度を算定するステップである、
請求項1記載のプログラム。
【請求項3】
前記プロセッサが、
前記データ取得ステップにおいて取得した前記データセットに含まれる前記複数のデータのそれぞれを、前記モデル記憶ステップにおいて記憶した前記学習モデルの入力データとして適用することにより、前記複数のデータのそれぞれに対する推論結果を取得するデータ推論ステップと、
前記データ推論ステップにおいて取得した前記推論結果に応じたクラスタリングを実行し、当該クラスタリングにより構成されたクラスタをグループとして特定するクラスタリングステップと、
を実行し、
前記モデル評価ステップは、前記クラスタリングステップにおいて特定された前記グループに含まれる前記1または複数のデータに対する前記学習モデルの推論品質を評価するステップである、
請求項1記載のプログラム。
【請求項4】
前記データ推論ステップは、前記複数のデータの少なくとも一部について推論結果の誤りに関する誤り情報を取得するステップであり、
前記クラスタリングステップは、前記データ取得ステップにおいて取得した前記データセットに対して前記データ推論ステップにおいて取得した前記誤り情報の類似度に基づくクラスタリングを実行し、当該クラスタリングにより構成されたクラスタをグループとして特定するステップである、
請求項3記載のプログラム。
【請求項5】
前記データ推論ステップは、前記複数のデータの少なくとも一部について推論結果の誤りの種類に関する誤り種類情報を取得するステップであり、
前記クラスタリングステップは、前記データ取得ステップにおいて取得した前記データセットに対して前記データ推論ステップにおいて取得した前記誤り種類情報の類似度に基づくクラスタリングを実行し、当該クラスタリングにより構成されたクラスタをグループとして特定するステップである、
請求項4記載のプログラム。
【請求項6】
前記プロセッサが、
前記クラスタリングステップにおいて特定した前記グループに含まれる1または複数のデータに関連付けられたメタデータに基づき、前記複数のグループの少なくとも一部について当該グループを特徴づけるグループメタデータを特定するグループメタデータ特定ステップと、
前記グループメタデータ特定ステップにおいて特定した前記グループメタデータを、前記複数のグループの少なくとも一部と関連付けて記憶するグループメタデータ記憶ステップと、
を実行する、
請求項3記載のプログラム。
【請求項7】
前記プロセッサが、
前記データ取得ステップにおいて取得した前記データセットに対して前記メタデータの類似度に基づくクラスタリングを実行し、当該クラスタリングにより構成されたクラスタをグループとして特定するクラスタリングステップと、
を実行し、
前記モデル評価ステップは、前記クラスタリングステップにおいて特定された前記グループに含まれる前記1または複数のデータに対する前記学習モデルの推論品質を評価するステップである、
請求項1記載のプログラム。
【請求項8】
前記プロセッサが、
前記クラスタリングステップにおいて特定された前記グループに含まれる前記1または複数のデータのそれぞれを、前記モデル記憶ステップにおいて記憶した前記学習モデルの入力データとして適用することにより、前記1または複数のデータのそれぞれに対する推論結果を取得するグループ品質評価ステップと、
前記グループ品質評価ステップにおいて取得した前記推論結果に基づき、前記複数のグループの少なくとも一部について当該グループを特徴づけるグループ推論品質を特定するグループ品質特定ステップと、
前記グループ品質特定ステップにおいて特定した前記グループ推論品質を、前記複数のグループの少なくとも一部と関連付けて記憶するグループ品質記憶ステップと、
を実行する、
請求項7記載のプログラム。
【請求項9】
前記グループ品質評価ステップは、前記1または複数のデータのそれぞれに対する推論結果の誤りに関する誤り情報を取得するステップであり、
前記グループ品質特定ステップは、前記複数のグループの少なくとも一部について当該グループを特徴づけるグループ誤り情報を特定するステップであり、
前記グループ品質記憶ステップは、前記グループ品質特定ステップにおいて特定した前記グループ誤り情報を、前記複数のグループの少なくとも一部と関連付けて記憶するステップである、
請求項8記載のプログラム。
【請求項10】
前記グループ品質評価ステップは、前記1または複数のデータのそれぞれに対する推論結果の誤りの種類に関するグループ誤り種類情報を取得するステップであり、
前記グループ品質特定ステップは、前記複数のグループの少なくとも一部について当該グループを特徴づける前記グループ誤り種類情報を特定するステップであり、
前記グループ品質記憶ステップは、前記グループ品質特定ステップにおいて特定した前記グループ誤り種類情報を、前記複数のグループの少なくとも一部と関連付けて記憶するステップである、
請求項9記載のプログラム。
【請求項11】
プロセッサと、記憶部とを備えるコンピュータに実行させるためのプログラムであって、
前記プロセッサが、
学習モデルを記憶するモデル記憶ステップと、
それぞれがメタデータと関連付けられた複数のデータからなるデータセットを取得するデータ取得ステップと、
前記データ取得ステップにおいて取得した前記データセットについて、1または複数の前記データを含む複数のグループごとに、当該グループに含まれる前記1または複数のデータに対する前記学習モデルの推論品質を評価するモデル評価ステップと、
前記複数のグループを、前記モデル評価ステップにおいて評価した前記推論品質と関連付けて提示する品質提示ステップと、
を実行し、
前記品質提示ステップは、前記データセットに基づく多次元空間を二次元空間に写像したヒートマップにおいて、前記グループごとの前記推論品質の評価指標に応じた領域を色分けして提示するステップである、
プログラム。
【請求項12】
前記プロセッサが、
前記複数のグループを、前記モデル評価ステップにおいて評価した前記推論品質と関連付けて提示する品質提示ステップと、
を実行する、
請求項1から11のいずれか記載のプログラム。
【請求項13】
前記品質提示ステップは、前記複数のグループを、前記モデル評価ステップにおいて評価した前記推論品質に基づき算定される前記学習モデルへ影響を与える度合いに関する影響度と関連付けて提示するステップである、
を実行する、
請求項12記載のプログラム。
【請求項14】
前記モデル修正ステップは、前記グループに含まれる1または複数のデータを前記学習モデルの入力データとして適用することにより特定される前記グループの推論品質に基づき、前記学習モデルを修正した前記修正関数を作成するステップである、
請求項1記載のプログラム。
【請求項15】
前記プロセッサが、
ユーザから、前記複数のグループのうち、所定のグループの選択を受け付けるグループ選択ステップと、
を実行し、
前記モデル修正ステップは、前記グループ選択ステップにおいて選択された前記所定のグループに含まれる1または複数のデータに基づき、前記モデル記憶ステップにおいて記憶された前記学習モデルを修正した前記修正関数を作成するステップである、
請求項1記載のプログラム。
【請求項16】
前記プロセッサが、
前記グループに含まれる1または複数のデータに関連付けられたメタデータに基づき、前記複数のグループの少なくとも一部について当該グループを特徴づけるグループメタデータを特定するグループメタデータ特定ステップと、
前記グループメタデータ特定ステップにおいて特定した前記グループメタデータを、前記複数のグループの少なくとも一部と関連付けて記憶するグループメタデータ記憶ステップと、
を実行し、
前記条件記憶ステップは、前記モデル修正ステップにおいて作成した前記修正関数の前記グループに関連付けて記憶された前記グループメタデータを前記適用条件として、前記修正関数と関連付けて記憶するステップであり、
前記結合モデル作成ステップにおいて作成された前記結合モデルは、
入力データに関連付けられたメタデータが前記グループメタデータに含まれる場合は、当該グループメタデータに関連付けられた前記修正関数による出力データを出力し、
入力データに関連付けられたメタデータが前記グループメタデータに含まれない場合は、前記学習モデルによる出力データを出力する、
請求項1記載のプログラム。
【請求項17】
プロセッサと、メモリとを備えるコンピュータに実行される方法であって、前記プロセッサが、
請求項1から請求項11のいずれかに係る発明において実行される全てのステップを実行する方法。
【請求項18】
制御部と、記憶部とを備える情報処理装置であって、前記制御部が、請求項1から
請求項11のいずれかに係る発明において実行される全てのステップを実行する情報処理装置。
【請求項19】
請求項1から
請求項11のいずれかに係る発明において実行される全てのステップを実行する手段を備えるシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラム、方法、情報処理装置、システムに関する。
【背景技術】
【0002】
人工知能モデル等の信頼性を検証する技術が知られている。
特許文献1には、対象物の数が多くても認識精度の低下を低減する技術が開示されている。
特許文献2には、参照画像中に、同一類似の局所特徴量の特徴点が複数存在する場合であっても、解析対象画像の中から参照画像に基づく物体を認識する画像解析装置等を提供する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2022-188727号公報
【文献】特開2012-190089号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
学習モデルの推論品質を、部分ごとに評価できていないという課題がある。
そこで、本開示は、上記課題を解決すべくなされたものであって、その目的は、学習モデルの推論品質を、部分ごとに評価する技術を提供することである。
【課題を解決するための手段】
【0005】
プロセッサと、記憶部とを備えるコンピュータに実行させるためのプログラムであって、プロセッサが、学習モデルを記憶するモデル記憶ステップと、それぞれがメタデータと関連付けられた複数のデータからなるデータセットを取得するデータ取得ステップと、データ取得ステップにおいて取得したデータセットについて、1または複数のデータを含む複数のグループごとに、当該グループに含まれる1または複数のデータに対する学習モデルの推論品質を評価するモデル評価ステップと、を実行するプログラム。
【発明の効果】
【0006】
本開示によれば、学習モデルの推論品質を、部分ごとに評価することができる。
【図面の簡単な説明】
【0007】
【
図1】システム1の機能構成を示すブロック図である。
【
図2】サーバ10の機能構成を示すブロック図である。
【
図3】ユーザ端末20の機能構成を示すブロック図である。
【
図4】ユーザテーブル1012のデータ構造を示す図である。
【
図5】データテーブル1013のデータ構造を示す図である。
【
図6】評価テーブル1014のデータ構造を示す図である。
【
図7】モデルテーブル1021のデータ構造を示す図である。
【
図8】グループテーブル1022のデータ構造を示す図である。
【
図9】サブモデルテーブル1023のデータ構造を示す図である。
【
図10】品質評価処理の動作を示すフローチャートである。
【
図11】結合モデル推論処理の動作を示すフローチャートである。
【
図12】結合モデルの機能構成を示すブロック図である。
【
図13】品質評価処理の動作を示す第一画面例である。
【
図14】品質評価処理の動作を示す第二画面例である。
【
図15】コンピュータ90の基本的なハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【0008】
以下、本開示の実施形態について図面を参照して説明する。実施形態を説明する全図において、共通の構成要素には同一の符号を付し、繰り返しの説明を省略する。なお、以下の実施形態は、特許請求の範囲に記載された本開示の内容を不当に限定するものではない。また、実施形態に示される構成要素のすべてが、本開示の必須の構成要素であるとは限らない。また、各図は模式図であり、必ずしも厳密に図示されたものではない。
【0009】
<システム1の構成>
本開示におけるシステム1は、学習モデルの品質を評価する情報処理システムである。
学習モデルは、機械学習、人工知能、深層学習モデルなどの任意の人工知能モデルを含む。
学習モデルの品質は、汎用性、精度、ロバスト性、速度および効率性、信頼性等の人工知能モデルに関する任意の品質を示す指標を含む。
システム1は、ネットワークNを介して接続された、サーバ10、ユーザ端末20の情報処理装置を備える。
図1は、システム1の機能構成を示すブロック図である。
図2は、サーバ10の機能構成を示すブロック図である。
図3は、ユーザ端末20の機能構成を示すブロック図である。
図12は、結合モデルの機能構成を示すブロック図である。
【0010】
各情報処理装置は演算装置と記憶装置とを備えたコンピュータにより構成されている。コンピュータの基本ハードウェア構成および、当該ハードウェア構成により実現されるコンピュータの基本機能構成は後述する。サーバ10、ユーザ端末20のそれぞれについて、後述するコンピュータの基本ハードウェア構成およびコンピュータの基本機能構成と重複する説明は省略する。
本開示においては、一例としてユーザ端末20とサーバ10とは異なる装置構成としたがそれに限られない。具体的に、ユーザ端末20の構成にサーバ10の全ての構成を含むものとしても良い。この場合、ユーザ端末20は、単独のスタンドアロン構成により本開示にかかる情報処理を実行することが可能である。その他、情報処理システムを実現するためのハードウェア構成は、本開示にかかる情報処理を実行可能な範囲において、どのようなシステム構成で実現しても構わない。
【0011】
<サーバ10の構成>
サーバ10は、学習モデルの品質を評価する情報処理サービスを提供する情報処理装置である。
サーバ10は、記憶部101、制御部104を備える。
【0012】
<サーバ10の記憶部101の構成>
サーバ10の記憶部101は、アプリケーションプログラム1011、ユーザテーブル1012、データテーブル1013、評価テーブル1014、モデルテーブル1021、グループテーブル1022、サブモデルテーブル1023を備える。
【0013】
アプリケーションプログラム1011は、サーバ10の制御部104を各機能ユニットとして機能させるためのプログラムである。
アプリケーションプログラム1011は、ウェブブラウザアプリケーションなどのアプリケーションを含む。
【0014】
ユーザテーブル1012は、サービスを利用する会員ユーザ(以下、ユーザ)の情報を記憶し管理するテーブルである。ユーザは、サービスの利用登録を行うことで、当該ユーザの情報がユーザテーブル1012の新しいレコードに記憶される。これにより、ユーザは本開示にかかるサービスを利用できるようになる。
ユーザテーブル1012は、ユーザIDを主キーとして、ユーザID、ユーザ名のカラムを有するテーブルである。
図4は、ユーザテーブル1012のデータ構造を示す図である。
【0015】
ユーザIDは、ユーザを識別するためのユーザ識別情報を記憶する項目である。ユーザ識別情報は、ユーザごとにユニークな値が設定されている項目である。
ユーザ名は、ユーザの氏名を記憶する項目である。ユーザ名は、氏名ではなく、ニックネームなど任意の文字列を設定しても良い。
【0016】
データテーブル1013は、学習モデル(メインモデル)の品質(汎用性)を評価するために用いるデータセット(テストデータ)を記憶し管理するためのテーブルである。なお、データテーブル1013は、訓練データ、検証データ等の学習モデルへの入力に用いられる任意のデータセットを記憶する構成としても良い。
データテーブル1013は、データIDを主キーとして、データID、ユーザID、データ、メタデータのカラムを有するテーブルである。
図5は、データテーブル1013のデータ構造を示す図である。
【0017】
データIDは、データを識別するためのデータ識別情報を記憶する項目である。データ識別情報は、データ情報ごとにユニークな値が設定されている項目である。
ユーザIDは、ユーザを識別するためのユーザ識別情報を記憶する項目である。
データは、画像データ、動画データ、テキストデータ、音声データ等の任意の構造化、非構造化データを含む。
自動運転等に用いられる物体検出モデル等の人工知能モデルの品質の評価においては、データは、以下の情報を含む。
・画像データ
画像データは、車載カメラからの静止画像データを含む。静止画像データは、道路の標示、他の車両、歩行者、障害物などを含む。本開示においては、画像データは、動画データを含むものとしても良い。
・動画データ
動画データは、車載カメラや他のセンサから出力される時系列的な映像データを含む。
動画データは、交通状況に関する他の車両や歩行者、自転車などの動き、交差点、横断歩道、信号機の変化、走行する道路や少なく走行する道路の様子などの映像を含む。
動画データは、転記条件に関する晴れ、雨、雪、霧などさまざまな天候に関する映像、日中、夜間、薄明薄暮の映像を含む。
動画データは、道路の種類に関する高速道路、市街地、田舎の道、山道などの走行路に関する映像を含む。
動画データは、交通ルールに関する標識、信号、道路標示などの映像を含む。
・テキストデータ
テキストデータは、車両センサーからのログデータや外部の情報源(例:交通情報や天気予報)から取得されるデータを含む。
・音声データ
音声データは、車内マイクからの音声入力や、車外マイクから入力される周囲の音の情報を含む。
メタデータは、データに関連付けて記憶されるアノテーション情報、物体検出モデル、分類モデル等における正解ラベル等を含む。
自動運転等に用いられる物体検出モデル等の人工知能モデルに用いられるデータの画像データ等においては、当該データを作成した際に、車両センサーからのログデータや外部の情報源から取得した任意の付帯的情報を含む。
以下の情報を含む。
・メインモデル等の学習モデルに入力するデータとは別に、カメラや日照センサー、加速度センサー等の各種センサーで測定したデータ
・メインモデル等の学習モデルに入力するデータとは別に収集した、イベントの発生記録や周辺交通状況等のログデータ
・測定日時、場所、状況、前後に発生した事象に関する情報等の、メインモデル等の学習モデルに入力するデータもしくは車両等の学習モデルを運用する環境を補足する情報
・ファイルのサイズ等、データの電子的な属性を表す情報
・1または複数の上記データに任意の処理を施したデータ
・その他、1または複数の上記データに関連があるもしくは関連があると推定される任意の情報
また、本開示におけるメタデータは、メインモデル等の学習モデルの中間層から出力される内部特徴量、メインモデル等の学習モデルから出力される出力データ、メインモデル等の学習モデルに入力される入力データ、入力データに対して任意の処理を施したデータ、その他、それら複数のメタデータの組み合わせを含んでも構わない。本開示におけるメタデータは、メインモデル等の学習モデルの中間層から出力される内部特徴量を含む第1メタデータと、メインモデル等の学習モデルの中間層から出力される内部特徴量を含まない第2メタデータ、メインモデル等の学習モデルから出力される出力データである第3メタデータ、メインモデル等の学習モデルに入力される入力データである第4メタデータ、入力データに対して任意の処理を施したデータである第5メタデータ、および、第1メタデータから第5メタデータの1つもしくは2以上の任意の組み合わせを含む。
また、本開示におけるメタデータは、学習評価時に算出したモデルの予測と正解データの違いを定量的に測定したデータ、評価関数・損失関数の値、間違え方のパターンを意味する値(例1 犬を猫と誤予測、例2 猫を犬と誤予測)、予測の信頼性を定量化した値を含むものとしても良い。
【0018】
内部特徴量は、例えば次のような情報を含む。
入力画像を分類する際の畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)においては、画像を受け取る入力層以降から、畳み込み後のデータを入力データとしてクラス分類を出力するSoftmax関数等の出力層(分類層)に用いられる活性化関数に入力される入力データを出力するための完全接続層(Fully Connected Layer)までの各層の出力データが内部特徴量に含まれる。CNNにおいては、完全接続層から出力される内部特徴量に基づき、最終的なクラス分類が実行される。
内部特徴量には、上記のネットワークの各層から出力される出力データの他に、各層の計算に使用する重みパラメータや勾配等の計算過程で使用もしくは生成される情報を含む。
分類以外のタスクにおいては、それぞれのタスクの最終的な予測を生成する出力データやその計算過程で使用もしくは生成する情報が内部特徴量に含まれる。例えば物体検出においては、物体(バウンディングボックス)の座標位置および物体のクラス分類等を含む。
本開示において、メインモデルの性能評価、品質評価を実施(品質評価処理を含む)する際には、タスク毎に適切な内部特徴量を上記の中から1つまたは複数を選択しても良い。具体的に、品質評価処理は、複数の内部特徴量の候補(特徴量候補)のうち、品質評価に有効な1または複数の内部特徴量を、メインモデルの評価結果に基づいて選択するステップを含んでも良い。
例えば、複数の内部特徴量の組み合わせ(第1内部特徴量セット、第2内部特徴量セットとする)に基づき第1の品質評価処理を実行し、第1内部特徴量セットに対する評価結果と、第2内部特徴量セットに対する評価結果と、を比較する。第1内部特徴量セットにおける評価結果が、第2内部特徴量セットにおける評価結果より優れている場合は、第2の品質評価処理に用いる内部特徴量を第1内部特徴量セットとす処理を含んでも良い。
【0019】
評価テーブル1014は、データごとのメインモデルの評価結果(評価情報)を記憶し管理するためのテーブルである。
評価テーブル1014は、メインモデルID、データID、推論データ、エラーデータのカラムを有するテーブルである。
図6は、評価テーブル1014のデータ構造を示す図である。
【0020】
メインモデルIDは、メインモデルを識別するためのメインモデル識別情報を記憶する項目である。
データIDは、データを識別するためのデータ識別情報を記憶する項目である。
推論データは、データIDにより特定されるデータ(テストデータ)をメインモデルIDにより特定されるメインモデル(学習モデル)の入力データとして適用した場合に、メインモデルから出力(推論)される出力データが記憶される。
エラーデータは、推論データとデータIDにより特定されるデータのメタデータとを比較した結果判定されるエラーの内容、種類等を示す情報を記憶する項目である。
具体的に、エラーデータは、以下のようにエラーの種類(エラーコード)およびエラーの内容を示す情報(エラーの内容を示す文字列情報)を含む。
・Label Error: データセット内のラベル付けの誤りを指す。ラベルエラーは、学習データが不正確であるため、モデルの学習に悪影響を及ぼす可能性がある。例えば、猫の画像に「犬」というラベルがつけられている場合、モデルはこの誤った情報を学習する。ラベルエラーは、データ収集やアノテーションの過程でのヒューマンエラーや自動化されたラベル付けプロセスの誤りによって生じることが多い。
・EdgeCase:分類タスク等において「乗用車」と「ピックアップトラック」など、似ているカテゴリや細かい違いしか無いカテゴリの間でモデルが間違える場合を示す。
・False Positive (FP): あるクラスとして誤って予測されるが、実際にはそのクラスでない場合を示す。
・False Negative (FN): あるクラスとして予測されるべきだが、そう予測されない場合を示す。
・Overfitting: モデルは訓練データに過度に適合し、新しい未知のデータにはうまく一般化できない状態を示す。
・Bias: ある特定のクラスや特性に対して偏った予測を行う場合を示す。
Variance: 異なるデータセットや環境での予測の変動が大きい場合を示す。
【0021】
モデルテーブル1021は、品質を評価する対象となるメインモデルを記憶し管理するためのテーブルである。本開示においては、学習モデルはモデルテーブル1021に永続的に記憶される例を一例とするが、それに限られない。例えば、サーバ10が備えるメモリ(RAM等)の高速に読み書き可能な揮発性記憶媒体に記憶する構成としても構わない。具体的には、サーバ10の外部から受信した学習モデルを本開示にかかる品質評価処理、結合モデル推論処理を実行する際に一時的に当該揮発性記憶媒体に展開し処理を実行するものとしても構わない。この場合、大規模な学習モデルについても高速で情報処理を実行することができる。
モデルテーブル1021は、メインモデルIDを主キーとして、メインモデルID、ユーザID、メインモデル、モデル品質のカラムを有するテーブルである。
図7は、モデルテーブル1021のデータ構造を示す図である。
【0022】
メインモデルIDは、メインモデルを識別するためのメインモデル識別情報を記憶する項目である。メインモデル識別情報は、メインモデルごとにユニークな値が設定されている項目である。
ユーザIDは、ユーザを識別するためのユーザ識別情報を記憶する項目である。
メインモデルは、品質を評価する対象となるメインモデルにかかる学習モデルのデータを記憶する項目である。
学習モデルは、入力データの入力に応じて、出力データを出力(推論)する推論モデルである。
入力データは、画像データ、動画データ、テキストデータ、音声データに関する情報を含んでも良い。出力データは、メターデータに関する情報を含んでも良い。
学習モデルの学習処理は、後述する。
学習モデルは、例えば機械学習、人工知能、深層学習モデルなどの一種である。
学習モデルは、単一の学習モデルである必要はなく、複数の独立した学習モデルを切り替えて実現しても良い。
学習モデルの一例として、深層学習におけるディープニューラルネットワークによる深層学習モデルを説明する。学習モデルは、深層学習モデルである必要は必ずしもなく、任意の機械学習、人工知能モデルでも良い。
モデル品質は、メインモデルの品質の評価結果を示す情報を記憶する項目である。
具体的に、モデル品質は、データにかかるデータセットについてメインモデルにかかる学習モデルがどの程度適切に推論を行う事が出来たかを示す指標を記憶する項目である。
本開示において、モデル品質は、データのデータセット数に占める適切に推論できた(エラーが生じなかった)データセット数である被覆率(Coverage)を含む。
モデル品質は、正解率、適合率、再現率、F1スコア、平均絶対誤差、平均二乗誤差等の推論品質の評価指標を含む。
【0023】
グループテーブル1022は、グループに関する情報(グループ情報)を記憶し管理するためのテーブルである。
グループテーブル1022は、グループIDを主キーとして、グループID、メインモデルID、データIDs、データ数、メタデータ、エラーデータ、グループ品質のカラムを有するテーブルである。
図8は、グループテーブル1022のデータ構造を示す図である。
【0024】
グループIDは、グループを識別するためのグループ識別情報を記憶する項目である。グループ識別情報は、グループ情報ごとにユニークな値が設定されている項目である。
メインモデルIDは、メインモデルを識別するためのメインモデル識別情報を記憶する項目である。
データIDsは、グループに属するデータのデータ識別情報を記憶する項目である。データIDsには、1または複数のデータ識別情報が記憶される。
データ数は、グループに属するデータの数を記憶する項目である。
メタデータは、グループを代表する(特徴付ける)メタデータを記憶する項目である。
メタデータは、必ずしもグループと関連付けて記憶される必要はない。本開示においては、メタデータおよびエラーデータの少なくともいずれかがグループごとに関連付けて記憶されていれば良い。
エラーデータは、グループを代表する(特徴付ける)エラーの内容、種類を示す情報を記憶する項目である。
グループ品質は、グループに属するデータにおけるメインモデルの推論品質の評価結果を示す情報を記憶する項目である。グループ品質は、モデルの実行結果やその重要度、効果を総合的に理解する情報を含む。
具体的に、グループ品質は以下の情報を含む。
正解率、適合率、再現率、F1スコア、平均絶対誤差、平均二乗誤差等の推論品質の評価指標。
counts_total:グループに属するデータの総データ数を示す。これにより、評価の対象となるデータの規模を把握できる。
model_effect_score:モデルの出力結果に対する特定のデータの影響を示す。具体的には、グループに属する各データに対する損失関数の総和として表され、メインモデルにどれだけ悪影響を及ぼしているかを示す指標となる。損失関数の代わりに、データの予測の質や運用上の悪影響度を定量化する任意の指標を用いても良い。
priority_score:model_effect_scoreに対して改善のしやすさや改善の必要性・緊急性等の他のメトリクスに基づいて重み付けされた指標を示す。例えば、特定のデータが非常に改善が容易であり、model_effect_scoreに対して所定の優先度に基づく重み付けをなされたスコアがpriority_scoreとなる。
【0025】
サブモデルテーブル1023は、サブモデルを記憶し管理するためのテーブルである。
サブモデルテーブル1023は、サブモデルIDを主キーとして、サブモデルID、メインモデルID、サブモデル、適用条件のカラムを有するテーブルである。
図9は、サブモデルテーブル1023のデータ構造を示す図である。
【0026】
サブモデルIDは、サブモデルを識別するためのサブモデル識別情報を記憶する項目である。サブモデル識別情報は、サブモデル情報ごとにユニークな値が設定されている項目である。
メインモデルIDは、メインモデルを識別するためのメインモデル識別情報を記憶する項目である。
サブモデルは、サブモデルにかかる学習モデルのデータを記憶する項目である。
適用条件は、メインモデルに替えてサブモデルを適用する入力データの適用条件の範囲を規定する項目である。具体的に、適用条件は、入力データのメタデータの範囲を示す情報が記憶される。
また、適用条件は、サブモデルを適用するグループを特定する1または複数のグループID(グループIDs)を含んでも良い。例えば、当該グループIDsに基づき、グループテーブル1022のグループIDの項目を参照してデータIDsを特定する。当該特定したデータIDsに基づき、データテーブル1013のデータIDの項目を参照してメタデータを特定する。当該メタデータに基づき、メインモデルに替えてサブモデルを適用する入力データの適用条件の範囲が規定される構成としても構わない。
【0027】
<サーバ10の制御部104の構成>
サーバ10の制御部104は、ユーザ登録制御部1041を備える。制御部104は、記憶部101に記憶されたアプリケーションプログラム1011を実行することにより、各機能ユニットが実現される。
【0028】
ユーザ登録制御部1041は、本開示に係るサービスの利用を希望するユーザの情報をユーザテーブル1012に記憶する処理を行う。
ユーザテーブル1012に記憶される情報は、ユーザが任意の情報処理端末からサービス提供者が運営するウェブページなどを開き、所定の入力フォームに情報を入力しサーバ10へ送信する。ユーザ登録制御部1041は、受信した情報をユーザテーブル1012の新しいレコードに記憶し、ユーザ登録が完了する。これにより、ユーザテーブル1012に記憶されたユーザはサービスを利用することができるようになる。
ユーザ登録制御部1041によるユーザ情報のユーザテーブル1012への登録に先立ち、サービス提供者は所定の審査を行いユーザによるサービス利用可否を制限しても良い。
ユーザIDは、ユーザを識別できる任意の文字列または数字で良く、ユーザが希望する任意の文字列または数字、もしくはユーザ登録制御部1041が自動的に任意の文字列または数字を設定しても良い。
【0029】
<ユーザ端末20の構成>
ユーザ端末20は、サービスを利用するユーザが操作する情報処理装置である。ユーザ端末20は、例えば、スマートフォン、タブレット等の携帯端末でもよいし、据え置き型のPC(Personal Computer)、ラップトップPCであってもよい。また、HMD(Head Mount Display)、腕時計型端末等のウェアラブル端末であってもよい。
ユーザ端末20は、記憶部201、制御部204、入力装置206、出力装置208を備える。
【0030】
<ユーザ端末20の記憶部201の構成>
ユーザ端末20の記憶部201は、ユーザID2011、アプリケーションプログラム2012を備える。
【0031】
ユーザID2011はユーザのアカウントIDである。ユーザは、ユーザ端末20からユーザID2011を、サーバ10へ送信する。サーバ10は、ユーザID2011に基づきユーザを識別し、本開示にかかるサービスをユーザに対して提供する。なお、ユーザID2011には、ユーザ端末20を利用しているユーザを識別するにあたりサーバ10から一時的に付与されるセッションIDなどの情報を含む。
【0032】
アプリケーションプログラム2012は、記憶部201に予め記憶されていても良いし、通信IFを介してサービス提供者が運営するウェブサーバ等からダウンロードする構成としても良い。
アプリケーションプログラム2012は、ウェブブラウザアプリケーションなどのアプリケーションを含む。
アプリケーションプログラム2012は、ユーザ端末20に記憶されているウェブブラウザアプリケーション上で実行されるJavaScript(登録商標)などのインタープリター型プログラミング言語を含む。
【0033】
<ユーザ端末20の制御部204の構成>
ユーザ端末20の制御部204は、入力制御部2041、出力制御部2042を備える。制御部204は、記憶部201に記憶されたアプリケーションプログラム2012を実行することにより、各機能ユニットが実現される。
【0034】
<ユーザ端末20の入力装置206の構成>
ユーザ端末20の入力装置206は、カメラ2061、マイク2062、位置情報センサ2063、モーションセンサ2064、タッチデバイス2065を備える。
【0035】
<ユーザ端末20の出力装置208の構成>
ユーザ端末20の出力装置208は、ディスプレイ2081、スピーカ2082を備える。
【0036】
<システム1の動作>
以下、システム1の各処理について説明する。
図10は、品質評価処理の動作を示すフローチャートである。
図11は、結合モデル推論処理の動作を示すフローチャートである。
図13は、品質評価処理の動作を示す第一画面例である。
図14は、品質評価処理の動作を示す第二画面例である。
【0037】
<品質評価処理>
品質評価処理は、学習モデル(メインモデル)の品質を評価し、評価結果を提示する処理である。品質評価処理は、評価結果に基づきメインモデルの一部に対してより品質が優れたサブモデルを作成する処理を含んでも良い。
【0038】
<品質評価処理の概要>
品質評価処理は、複数のテストデータからなるデータセットをメインモデルに適用することにより評価し、評価結果またはメタデータに基づきデータセットをグルーピング(クラスタリング)し、メインモデルの品質を評価し、評価結果を可視化し、所定のグループの選択を受け付け、当該選択された所定のグループに基づき定められる適用範囲においてメインモデルを改良したサブモデルを作成する一連の処理である。
【0039】
<品質評価処理の詳細>
以下に、品質評価処理の詳細を説明する。
【0040】
ステップS101において、サーバ10の制御部104は、学習モデルを記憶するモデル記憶ステップを実行する。
ユーザは、ユーザ端末20の入力装置206を操作することにより、ウェブブラウザ等に品質評価処理を実行するためのページ(品質評価処理ページ)のURLを入力し、品質評価処理ページを開く。ユーザ端末20の制御部204は、品質評価処理ページを開くためのリクエストを、サーバ10へ送信する。サーバ10の制御部104は、受信したリクエストに基づき、品質評価処理ページを生成しユーザ端末20へ送信する。ユーザ端末20の制御部204は、受信した品質評価処理ページをユーザ端末20のディスプレイ2081に表示する。
ユーザは、ユーザ端末20の入力装置206を操作することにより、品質評価処理ページに設けられたファイルアップロードボタン等を選択することにより、ユーザ端末20の記憶部201または所定のクラウドサービス等任意の場所に記憶された、品質評価処理における品質評価対象の学習モデルを選択する。ユーザ端末20の制御部204は、ユーザID2011、選択された学習モデルをサーバ10へ送信する。サーバ10の制御部104は、受信したユーザID、学習モデルを、それぞれ、モデルテーブル1021の新たなレコードのユーザID、メインモデルの項目に記憶する。メインモデルIDには、メインモデル識別情報が新たに採番される。本開示において、本ステップにおいて記憶された学習モデルをメインモデルとよぶ。
なお、ユーザは、ユーザ端末20の入力装置206を操作することにより、コマンドライン、任意のプログラムを実行することにより、品質評価処理における品質評価対象の学習モデルをモデルテーブル1021に記憶する構成としても良い。
【0041】
ステップS102において、サーバ10の制御部104は、それぞれがメタデータと関連付けられた複数のデータからなるデータセットを取得するデータ取得ステップを実行する。
ユーザは、ユーザ端末20の入力装置206を操作することにより、品質評価処理ページに設けられたファイルアップロードボタン等を選択することにより、ユーザ端末20の記憶部201または所定のクラウドサービス等任意の場所に記憶された、品質評価処理において学習モデルの品質を評価するために用いる複数のテストデータからなるデータセットを選択する。なお、複数のテストデータのそれぞれはメタデータと関連付けて記憶されている。ユーザ端末20の制御部204は、ユーザID2011、選択されたデータセットをサーバ10へ送信する。サーバ10の制御部104は、受信したユーザID、データセットに含まれる複数のテストデータ、メタデータを、それぞれ、データテーブル1013の新たなレコードのユーザID、データ、メタデータの項目に記憶する。データテーブル1013のデータ、メタデータの項目には、データセットに含まれる複数のテストデータがメタデータと関連付けて記憶される。データIDには、データ識別情報が新たに採番される。
なお、ユーザは、ユーザ端末20の入力装置206を操作することにより、コマンドライン、任意のプログラムを実行することにより、品質評価処理において学習モデルの品質を評価するために用いる複数のテストデータ、メタデータをデータテーブル1013に記憶する構成としても良い。
【0042】
サーバ10の制御部104は、データテーブル1013に記憶された複数のデータ(テストデータ)のそれぞれを入力データとしてメインモデルに適用し、内部特徴量および複数の出力データを推論結果として取得する。サーバ10の制御部104は、複数の出力データのそれぞれを、内部特徴量および入力データ(テストデータ)のそれぞれに関連付けられて記憶されたメタデータ(正解データ)と比較することにより、出力データが正解または不正解であるかに関するメインモデルの推論品質を評価する。具体的に、サーバ10の制御部104は、出力データが正解データと一致する場合には正解、一致しない場合は不正解と判定する。
例えば、メインモデルが分類モデルである場合において、メインモデルは入力データの入力に応じて出力ラベル(分類ラベル)を出力する。サーバ10の制御部104は、出力された出力ラベルと、入力データのそれぞれに関連付けて記憶されたメタデータに含まれる正解ラベルと、を比較する。サーバ10の制御部104は、複数の入力データについて、出力ラベルが正解ラベルと一致する場合には正解、一致しない場合は不正解と判定する。
なお、正解・不正解を判定できない出力データと正解データの組み合わせや、正解データがない場合は、任意の指標を使用してメインモデルの推論品質を評価しても構わない。
【0043】
サーバ10の制御部104は、出力データが不正解である場合(推論結果が誤っている場合)は、その不正解の理由にかかる誤りの内容を示す情報(誤り情報)を特定する。例えば、誤りの内容を示す情報は、Label Error、EdgeCaseなどのエラーコード(推論結果の誤りの種類に関する誤り種類情報)などが含まれる。誤りの内容を示す情報は、例えば、エラーコードがLabel Errorである場合には、「犬の画像に猫というラベルが付けられている」、「境界ボックスの位置やサイズが不正確である」などの誤りの内容に関する情報(文字列情報等)を含む。例えば、エラーコードがEdge Caseである場合には、「特定の光条件下での検出失敗」、「一般的でない姿勢や視点の物体の誤検出」などのエラーの内容を示す情報を含む。
なお、誤りの内容を示す情報は、サーバ10の制御部104が出力データおよびメタデータに基づき任意の機械学習モデル、深層学習モデル、人工知能モデル等を用いて特定しても良いし、ユーザによる人手による作業により特定しても構わない。これにより、データセットに対するメインモデルの予測の正確さや誤差を計測する指標を含む推論品質の評価結果を取得できる。
【0044】
サーバ10の制御部104は、メインモデルID、入力データのデータID、出力データ、誤りの内容を示す情報のそれぞれを、評価テーブル1014の新たなレコードのメインモデルID、データID、推論データ、エラーデータの項目にそれぞれ記憶する。なお、推論結果が「正解」や任意の指標で定義されたエラーがないと見做せる推論結果である場合には、エラーデータにはヌル、ブランクが記憶される(何も記憶されない)構成としても良い。
これにより、テストデータに対する推論品質の評価結果は、評価テーブル1014に評価情報として記憶される。
【0045】
なお、本開示においては、誤り情報に基づき品質評価処理を実行する例を一例として開示したが、出力データが正解である場合(推論結果が正しい場合)は、その正解の理由にかかる正解の内容を示す情報(正解情報)を特定する構成としても良い。
具体的に、誤り情報に代えて正解情報を用いて、後述するクラスタリング処理(第一実施形態)、クラスタリング処理(第二実施形態)を実行する構成としても良い。また、誤り情報に代えて正解情報を用いて、品質評価処理、結合モデル推論処理を実行する構成としても良い。
また、誤り情報および正解情報の両方(正誤情報)を用いて、後述するクラスタリング処理(第一実施形態)、クラスタリング処理(第二実施形態)を実行する構成としても良い。また、正誤情報を用いて、品質評価処理、結合モデル推論処理を実行する構成としても良い。
【0046】
<クラスタリング処理(第一実施形態)>
ステップS103において、サーバ10の制御部104は、データ取得ステップにおいて取得したデータセットに対してメタデータの類似度に基づくクラスタリングを実行し、クラスタリングにより構成されたクラスタをグループとして特定するクラスタリングステップを実行する。
具体的に、サーバ10の制御部104は、ユーザID2011に基づきデータテーブル1013のユーザIDの項目を検索し、複数のデータID、データ、メタデータからなるデータセットを取得する。サーバ10の制御部104は、データセットに含まれる複数のデータ(テストデータ)に対して、メタデータの類似度に基づき、複数のデータをそれぞれ異なる複数のグループに分類するためのクラスタリング処理を実行する。
【0047】
具体的に、メタデータの類似度は、内部特徴量や撮影日時、時間帯(朝、昼、夜など)、車両の走行速度、車両の位置情報、天候情報などのそれぞれのベクトル空間において、複数のデータ間の距離として算定される。データ間の距離は、コサイン類似度、マンハッタン距離、ユークリッド距離などの任意の距離尺度を選択できる。
サーバ10の制御部104は、複数のデータ間の距離に基づき、階層的クラスタリング、K-means、DBSCAN等の任意のクラスタリング手法を用いることにより、データセットに含まれる複数のデータのそれぞれを複数のグループ(クラスタ)に分類する。
【0048】
サーバ10の制御部104は、複数のグループごとに、メインモデルID、グループに分類されたデータのデータID、グループに分類されたデータの個数のそれぞれを、グループテーブル1022の新たなレコードのメインモデルID、データIDs、データ数の項目に記憶する。グループIDには、グループ識別情報が新たに採番される。
なお、各グループを特徴付けるグループメタデータ(例えば、クラスタにおける代表ベクトル、重心ベクトルなど)を、グループテーブル1022のメタデータの項目に記憶しても良い。グループメタデータは、クラスタリング処理(第二実施形態)において説明した手法により特定しても良い。
【0049】
サーバ10の制御部104は、クラスタリングステップにおいて特定されたグループに含まれる1または複数のデータのそれぞれを、モデル記憶ステップにおいて記憶した学習モデルの入力データとして適用することにより、1または複数のデータのそれぞれに対する推論結果を取得するグループ品質評価ステップを実行する。グループ品質評価ステップは、1または複数のデータのそれぞれに対する推論結果の誤りに関する誤り情報を取得する。
具体的に、サーバ10の制御部104は、所定のグループについて、評価テーブル1014を参照して、当該グループに含まれるデータに対して算定された評価情報を取得する。サーバ10の制御部104は、所定のグループ情報について、当該グループ情報のデータIDsに記憶された複数のデータIDに基づき、評価テーブル1014のデータIDの項目を検索し、複数のデータのそれぞれに対する複数の推論データ、エラーデータの項目を取得する。なお、本ステップにおいて評価情報を算定しても構わない。
【0050】
サーバ10の制御部104は、グループ品質評価ステップにおいて取得した推論結果に基づき、複数のグループの少なくとも一部についてグループを特徴づけるグループ推論品質を特定するグループ品質特定ステップを実行する。
【0051】
サーバ10の制御部104は、所定のグループについて、所定のグループに含まれる複数のエラーデータの内容(正解、不正解の個数)に応じて、正解率、適合率、再現率、F1スコア、平均絶対誤差、平均二乗誤差等の、所定のグループにおけるメインモデルの推論品質の評価指標(グループ推論品質)を算定する。
また、サーバ10の制御部104は、グループテーブル1022のグループ品質の項目において説明した、counts_total、model_effect_score、priority_scoreなどの評価指標を算定しても良い。
その他、サーバ10の制御部104は、所定のグループについて、取得した複数の推論データ、エラーデータを入力データとして、任意の機械学習モデル、深層学習モデル、人工知能モデル等に適用することにより、グループ推論品質を出力しても良い。
【0052】
グループ品質特定ステップは、複数のグループの少なくとも一部についてグループを特徴づけるグループ誤り情報、グループ誤り種類情報を特定する。
具体的に、サーバ10の制御部104は、所定のグループについて、取得した複数のエラーデータのうち、最も数の多いエラーデータを、所定のグループを特徴付けるエラーデータ(グループエラーデータ)として特定する。
例えば、所定のグループについて、Label Errorにかかるエラーコードが最も多いエラーコードである場合には、所定のグループを特徴付けるエラーコード(グループ誤り情報、グループ誤り種類情報)として、Label Errorを特定する。
なお、所定のグループについて、推論品質の評価指標が所定値より大きいなど、推論品質が十分に良好な場合は、所定のグループを特徴付けるエラーデータが特定されない構成としても良い。つまり、すべてのグループに対してグループを特徴付けるエラーデータが特定されるわけではなく、一部のグループに対してグループを特徴付けるエラーデータが特定される構成としても良い。
その他、サーバ10の制御部104は、所定のグループについて、取得した複数の推論データ、エラーデータを入力データとして、任意の機械学習モデル、深層学習モデル、人工知能モデル等に適用することにより、グループエラーデータ、グループ誤り情報、グループ誤り種類情報を出力しても良い。
【0053】
グループ品質評価ステップは、1または複数のデータのそれぞれに対する推論結果の誤りの種類に関するグループ誤り種類情報を取得する。
【0054】
サーバ10の制御部104は、グループ品質特定ステップにおいて特定したグループ推論品質を、複数のグループの少なくとも一部と関連付けて記憶するグループ品質記憶ステップを実行する。
グループ品質記憶ステップは、グループ品質特定ステップにおいて特定したグループ誤り情報、グループ誤り種類情報を、複数のグループの少なくとも一部と関連付けて記憶する。
具体的に、サーバ10の制御部104は、グループについて算定したメインモデルの推論品質の評価指標、グループを特徴付けるエラーコードのそれぞれ、グループテーブル1022の当該グループのグループIDにより特定されるレコードの、グループ品質、エラーデータの項目に記憶する。
これにより、グループテーブル1022において、クラスタリングにより分類されたそれぞれのグループに、エラーデータ、グループ品質が関連付けて記憶される。
【0055】
<クラスタリング処理(第二実施形態)>
ステップS103において、サーバ10の制御部104は、データ取得ステップにおいて取得したデータセットに含まれる複数のデータのそれぞれを、モデル記憶ステップにおいて記憶した学習モデルの入力データとして適用することにより、複数のデータのそれぞれに対する推論結果を取得するデータ推論ステップを実行する。
データ推論ステップは、複数のデータの少なくとも一部について推論結果の誤りに関する誤り情報、推論結果の誤りの種類に関する誤り種類情報を取得する。
具体的に、サーバ10の制御部104は、メインモデルIDに基づき、評価テーブル1014のメインモデルIDの項目を検索し、データID、推論データ、エラーデータを含む評価情報を取得する。これにより、サーバ10の制御部104は、データテーブル1013に記憶されたデータセットのメインモデルに基づく推論結果を取得できる。
【0056】
ステップS103において、サーバ10の制御部104は、データ推論ステップにおいて取得した推論結果に応じたクラスタリングを実行し、クラスタリングにより構成されたクラスタをグループとして特定するクラスタリングステップを実行する。
クラスタリングステップは、データ取得ステップにおいて取得したデータセットに対してデータ推論ステップにおいて取得した誤り情報、誤り種類情報の類似度に基づくクラスタリングを実行し、クラスタリングにより構成されたクラスタをグループとして特定する。
具体的に、サーバ10の制御部104は、データセットに含まれる複数のデータ(テストデータ)に対して、エラーデータに含まれる誤り情報の類似度に基づき、複数のデータをそれぞれ異なる複数のグループに分類するためのクラスタリング処理を実行する。
【0057】
具体的に、誤り情報は、エラーコード等の誤りの種類に関する情報を含む。誤り情報の類似度は、誤りの種類に基づき規定されるベクトル空間において、複数のデータ間の距離として算定される。データ間の距離は、コサイン類似度、マンハッタン距離、ユークリッド距離などの任意の距離尺度を選択できる。
サーバ10の制御部104は、複数のデータ間の距離に基づき、階層的クラスタリング、K-means、DBSCAN等の任意のクラスタリング手法を用いることにより、データセットに含まれる複数のデータのそれぞれを複数のグループ(クラスタ)に分類する。
【0058】
なお、誤り情報、誤り種類自体を分類ラベルとし、グループに分類しても良い。例えば、エラーデータがLabelErrorのグループ、EdgeCaseのグループなど、エラーコードごとにデータセットを分類しても良い。なお、エラーデータに何も記憶されていないデータ(推論結果が「正解」であるデータ)について、エラーがないことを示すグループに分類しても良い。
【0059】
サーバ10の制御部104は、複数のグループごとに、メインモデルID、グループに分類されたデータのデータID、グループに分類されたデータの個数のそれぞれを、グループテーブル1022の新たなレコードのメインモデルID、データIDs、データ数の項目に記憶する。グループIDには、グループ識別情報が新たに採番される。
なお、各グループを特徴付けるグループエラーデータ、グループ誤り情報、グループ誤り種類情報(例えば、クラスタにおけるエラーデータの代表ベクトル、重心ベクトルなど)を、グループテーブル1022のエラーデータの項目に記憶しても良い。グループエラーデータ、グループ誤り情報、グループ誤り種類情報は、クラスタリング処理(第一実施形態)において説明した手法により特定しても良い。
【0060】
サーバ10の制御部104は、クラスタリングステップにおいて特定したグループに含まれる1または複数のデータに関連付けられたメタデータに基づき、複数のグループの少なくとも一部についてグループを特徴づけるグループメタデータを特定するグループメタデータ特定ステップを実行する。
具体的に、サーバ10の制御部104は、所定のグループについて、データテーブル1013を参照して、当該グループに含まれるデータに関連付けて記憶されたメタデータを取得する。サーバ10の制御部104は、所定のグループ情報について、当該グループ情報のデータIDsに記憶された複数のデータIDに基づき、データテーブル1013のデータIDの項目を検索し、複数のデータのそれぞれに関連付けられて記憶された複数のメタデータの項目を取得する。
サーバ10の制御部104は、所定のグループについて、取得した複数のメタデータのうち、最も数の多いメタデータを、所定のグループを特徴付けるメタデータ(グループメタデータ)として特定する。例えば、グループに含まれる複数のデータ間(所定割合以上のデータ間)で共通するメタデータの項目(時間が夜間である、天候が曇りである、車両速度が50km~60kmである)を、グループメタデータとしても良い。その他、各グループを特徴付けるメタデータ(例えば、クラスタにおける代表ベクトル、重心ベクトルなど)を、グループメタデータとしても良い。
その他、サーバ10の制御部104は、所定のグループについて、取得した複数のメタデータを入力データとして、任意の機械学習モデル、深層学習モデル、人工知能モデル等に適用することにより、グループメタデータを出力しても良い。
【0061】
サーバ10の制御部104は、グループメタデータ特定ステップにおいて特定したグループメタデータを、複数のグループの少なくとも一部と関連付けて記憶するグループメタデータ記憶ステップを実行する。
具体的に、サーバ10の制御部104は、所定のグループについて、特定したグループメタデータを、グループテーブル1022の当該グループのグループIDにより特定されるレコードの、メタデータの項目に記憶する。
【0062】
<メインモデル品質評価処理>
ステップS104において、サーバ10の制御部104は、データ取得ステップにおいて取得したデータセットについて、1または複数のデータを含む複数のグループごとに、グループに含まれる1または複数のデータに対する学習モデルの推論品質を評価するモデル評価ステップを実行する。モデル評価ステップは、クラスタリングステップにおいて特定されたグループに含まれる1または複数のデータに対する学習モデルの推論品質を評価する。モデル評価ステップは、学習モデルの推論精度を算定する。
具体的に、サーバ10の制御部104は、メインモデルIDに基づき、グループテーブル1022のメインモデルIDを検索することにより、グループID、データ数、エラーデータ、グループ品質を取得する。サーバ10の制御部104は、グループごとのエラーデータ(グループエラーデータ)、グループ品質を参照することにより、グループごとの学習モデルの推論品質を評価することができる。
例えば、サーバ10の制御部104は、グループごとの推論品質の評価指標を所定値と比較することにより、推論品質が十分に良好なグループの個数、推論品質が十分に良好ではないグループの個数、グループごとの推論品質の程度(評価指標に基づき定まる)、それぞれのグループに含まれるデータ数などの推論品質に関する評価結果を算定する。
また、サーバ10の制御部104は、メインモデルIDに基づき、評価テーブル1014のメインモデルIDを検索することにより、推論データ、エラーデータを取得する。サーバ10の制御部104は、取得した推論データ、エラーデータに基づき、データセット数に占める適切に推論できた(エラーが生じなかった)データセット数である被覆率(Coverage)を推論品質に関する評価結果として算定する。
その他、サーバ10の制御部104は、任意の機械学習モデル、深層学習モデル、人工知能モデル等に適用することにより、推論品質に関する評価結果を出力しても良い。
サーバ10の制御部104は、モデルテーブル1021のメインモデルIDに基づき特定されるレコードのモデル品質の項目に、推論品質に関する評価結果を記憶する。これにより、メインモデルに対して、モデル品質が関連付けて記憶される。
【0063】
<評価結果提示処理>
ステップS105において、サーバ10の制御部104は、複数のグループを、モデル評価ステップにおいて評価した推論品質と関連付けて提示する品質提示ステップを実行する。
サーバ10の制御部104は、メインモデルIDに基づき、グループテーブル1022を検索し、グループ情報を取得する。サーバ10の制御部104は、取得したグループ情報をユーザ端末20へ送信する。ユーザ端末20の制御部204は、受信したグループ情報に基づき評価結果提示画面を生成し、ユーザ端末20のディスプレイ2081に表示し、ユーザに対して提示する。
これにより、学習モデル全体の品質を、データセットのグループ範囲ごとに大局的に解釈することができる。例えば、データセットのうちどの程度の割合が推論品質が良く、どの程度の割合が推論品質が悪いのか視覚的に直感的に確認することができる。
【0064】
図13、評価結果提示画面の第一画面例である。
評価結果提示画面D1は、グループ情報に含まれるグループ品質に関する指標D11、D12、D13、データ数D14の列を有する表形式で、204個のグループ情報のレコードを一覧提示している様子を示す。なお、本開示においてはグループ品質が所定値以下(不良)のグループ(ホットスポットとよぶ)のみをリストアップし、グループ品質が所定値以上(良好)のグループは除外している。なお、グループ品質が所定値以下(不良)のグループ(ホットスポットとよぶ)および、グループ品質が所定値以上(良好)のグループの両方をリストアップしても良い。
ユーザは、提示された複数のグループ情報を、グループ品質に関する指標D11、D12、D13、データ数D14等の順番に応じて並べ替えることができる。
また、表形式だけでなく、グループメタデータ同士の類似度や、グループ品質からそれぞれのグループに階層構造を定義し、ツリーマップ等の任意の形式で可視化しても構わない。
【0065】
品質提示ステップは、複数のグループを、モデル評価ステップにおいて評価した推論品質に基づき算定される学習モデルへ影響を与える度合いに関する影響度と関連付けて提示する。
評価結果提示画面D1は、model_effect_scoreを含んでいる。これにより、学習モデル全体の品質を、データセットのグループ範囲ごとに、学習モデルに与える影響の度合いに応じて大局的に解釈することができる。
【0066】
図14、評価結果提示画面の第二画面例である。
評価結果提示画面D3は、ヒートマップD30を含む。ヒートマップは、データセットのメタデータに基づき貼られる多次元空間を、任意の部分空間や多次元尺度法等により二次元空間に写像したものである。ヒートマップD30は、ポイントD31、D32・・・を含む。なお、ポイントD31、D32・・・は、それぞれ対応するグループのグループ品質に含まれる推論品質の評価指標に応じて、色分けして描画される。具体的に、推論品質が良好であるほど緑色、推論品質が不良であるほど赤色に段階的に描画しても良い。
ヒートマップD30は、メタデータの空間の広がりを示し、当該空間における各グループの位置づけがポイントD31、D32・・・として描画される。
ユーザは、ヒートマップD30を俯瞰することにより、メタデータの空間中において、推論品質が良好、不良であるグループが、どこに位置づけられるのか(どのメタデータ領域においてメインモデルが苦手か否か)を視覚的に直感的に確認できる。
【0067】
<グループ選択>
ステップS106において、ユーザ端末20の制御部204は、ユーザから、複数のグループのうち、所定のグループの選択を受け付けるグループ選択ステップを実行する。
ユーザは、ユーザ端末20の入力装置206を操作することにより、評価結果提示画面D1に含まれるグループ(各行)を選択できる。
ユーザは、ユーザ端末20の入力装置206を操作することにより、評価結果提示画面D3に含まれるポイントD31、D32・・・を選択できる。
ユーザ端末20の制御部204は、選択されたグループに関連付けられたグループIDを取得し、受け付ける。
なお、ステップS106は省略しても良い。例えば、サーバ10の制御部104は、グループ品質が所定値以下などの所定の条件を満たす(例えば、推論品質が不良であるなどの)グループを、ユーザからの選択操作を受け付けることなく、グループテーブル1022から自動的に選択する構成としても良い。
また、ユーザは、ユーザ端末20の入力装置206を操作することにより、コマンドライン、任意のプログラムを実行することにより、複数のグループのうち、所定のグループの選択を受け付けるグループ選択ステップを実行する構成としても良い。
【0068】
<サブモデル作成>
ステップS107において、サーバ10の制御部104は、グループに含まれる1または複数のデータに基づき、モデル記憶ステップにおいて記憶された学習モデルを修正した修正関数を作成するモデル修正ステップを実行する。
モデル修正ステップは、グループ選択ステップにおいて選択された所定のグループに含まれる1または複数のデータに基づき、モデル記憶ステップにおいて記憶された学習モデルを修正した修正関数を作成する。
モデル修正ステップは、グループに含まれる1または複数のデータを学習モデルの入力データとして適用することにより特定されるグループの推論品質に基づき、学習モデルを修正した修正関数を作成する。
【0069】
具体的に、サーバ10の制御部104は、ステップS106において選択されたグループのグループIDに基づき、グループテーブル1022のグループIDを検索し、データIDs、メタデータ、エラーデータ、グループ品質を含むグループ情報を取得する。サーバ10の制御部104は、グループ情報をユーザ端末20へ送信する。ユーザ端末20の制御部204は、受信したグループ情報をユーザ端末20のディスプレイ2081に表示し、提示する。ユーザは、推論品質が不良であるグループを、メタデータ、エラーデータ、グループ品質の内容とともに確認することができる。
ユーザは、ユーザ端末20の入力装置206を操作することにより、メタデータ、エラーデータ、グループ品質などのグループ情報を参考にしつつ、メインモデルを修正した学習モデル(修正モデル、サブモデル)を作成する。
具体的に、ユーザは、推論品質が不良であるグループについて、当該グループに含まれるデータセットに対して、メインモデルに比べて推論品質が優れたサブモデルを作成する。なお、サブモデルの作成方法は以下のような方法が考えられるが、任意の方法が適用可能である。
・グループに含まれるテストデータに基づきメインモデルを再学習させたものをサブモデルとする。
・メインモデルの重要でない特徴量を削除する、新しい特徴量を作成する、既存の特徴量を変換するなどの特徴量エンジニアリングにより修正したものをサブモデルとする。特徴量エンジニアリングは、自動的で実行されても良いし、ユーザにより行われても良い。
・メインモデルの学習率、正則化パラメータ、モデルの深さなどのハイパーパラメータを調整したものをサブモデルとする。調整は自動的で実行されても良いし、ユーザにより行われても良い。
・メインモデルを所定のデータに基づきファインチューニングしたものをサブモデルとしても良い。
なお、本開示においては、一例として修正モデルを作成する例を一例としたがそれに限られない。例えば、任意の関数(入力値を所定の出力値に写像するもの)、入力値に関わらず所定の定数を出力する定数関数、その他、既に説明した修正モデルを含む修正関数(前処理や後処理関数)を作成する構成としても良い。なお、本開示に実施例においては修正関数として修正モデルを用いる場合を一例として説明するが、本発明の適用範囲はそれに限られない。
【0070】
ステップS107において、サーバ10の制御部104は、モデル修正ステップにおいて作成した修正関数を適用する適用条件を、修正関数と関連付けて記憶する条件記憶ステップを実行する。条件記憶ステップは、モデル修正ステップにおいて作成した修正関数のグループに関連付けて記憶されたグループメタデータを適用条件として、修正関数と関連付けて記憶する。
具体的に、サーバ10の制御部104は、メインモデルID、作成したサブモデル、選択されたグループのグループ情報に含まれるメタデータ(グループメタデータ)を、それぞれ、サブモデルテーブル1023の、新たなレコードのメインモデルID、サブモデル、適用条件の項目に記憶する。
なお、本開示においては適用条件としてメタデータの範囲を一例として説明したがこれに限られない。例えば、グループ情報に含まれるメタデータ、エラーデータ(グループエラーデータ)、グループ品質などの、いずれか1つ、または2つ以上の組み合わせを適用条件としても良い。また、適用条件は、メインモデルの中間層から出力される内部特徴量に関する情報に対する条件を含んでも良い。即ち、入力データを一度メインモデルに入力し、当該メインモデルから出力される出力データに関する条件を、適用条件は含むものとしても良い。
その他、ユーザは、サブモデルの適用条件として任意の条件を定めることができるものとしても良い。
【0071】
なお、本開示においては作成した修正関数を後述するステップS108において結合モデルを作成するために用いるがそれに限れない。例えば、修正関数をデータセットの検証やデータセットの修正に用いても良く、そのための出力データを出力可能な構成としても良い。例えば、ユーザが作成したデータセット自体の品質が低い場合(例えば、「犬」の画像に「猫」とアノテーションされている場合等)において、修正関数が一見誤った推論結果を出力する(例えば、「猫」というアノテーションに対して「犬」)ものの、実際には推論結果が正しい(修正関数が出力した「犬」が実際には正しい)場合がある。
このような場合に修正関数は、ユーザ等にアラート等の通知を実行するための情報を出力しても良い。サーバ10の制御部104は、修正関数が出力した情報に応じて、ユーザに対して出力内容を通知する。また、データセットを修正するために修正関数を構成しても良い。
【0072】
<結合モデル作成>
ステップS108において、サーバ10の制御部104は、学習モデルおよび修正関数に基づき、結合モデルを作成する結合モデル作成ステップを実行する。
具体的に、サーバ10の制御部104は、メインモデル、1または複数のサブモデルを組み合わせることにより結合モデルを作成する。
図12は、結合モデルの機能構成を示すブロック図である。結合モデルの動作については、結合モデル推論処理において後述する。
なお、結合モデルは、メインモデル、1または複数のサブモデルとは異な1つのモデルとして構成しても良いし、メインモデル、1または複数のサブモデルを組み合わせたモデルとして構成しても良い。
本開示において、結合モデルは、メインモデルの入力データの特定の領域に対して、1または複数のサブモデルに入力データ入力されるように組み合わせたモデルを含む。結合モデルは、メインモデルの出力データの特定の領域に対して、1または複数のサブモデルが出力データを出力するように組み合わせたモデルを含む。
【0073】
結合モデル作成ステップにおいて作成された結合モデルは、入力データが条件記憶ステップにおいて記憶された適用条件に含まれる場合は、当該適用条件に関連付けられた修正モデルによる出力データを出力し、入力データが条件記憶ステップにおいて記憶された適用条件に含まれない場合は、学習モデルによる出力データを出力する。
結合モデル作成ステップにおいて作成された結合モデルは、入力データに関連付けられたメタデータがグループメタデータに含まれる場合は、当該グループメタデータに関連付けられた修正モデルによる出力データを出力し、入力データに関連付けられたメタデータがグループメタデータに含まれない場合は、学習モデルによる出力データを出力する。
【0074】
結合モデルによる推論処理については、結合モデル推論処理において詳しく説明する。
【0075】
<結合モデル推論処理>
結合モデル推論処理は、メインモデルとサブモデルの2種類の学習モデルを組み合わせた結合モデルに基づき、入力データに対する出力データを推論する処理である。
【0076】
<結合モデル推論処理の概要>
結合モデル推論処理は、入力データを受け付け、当該受け付けた入力データに基づき当該入力データをメインモデル、1または複数のサブモデルのうち適用する学習モデルを選択し、当該学習モデルへ入力データを適用することにより出力データを推論結果として出力する一連の処理である。
【0077】
<結合モデル推論処理の詳細>
以下に、結合モデル推論処理の詳細を説明する。
【0078】
ステップS301において、サーバ10の制御部104は、入力データを受け付ける。受け付けるデータは、品質評価処理のステップS101において受け付けたデータセットに含まれるテストデータでも良い。
なお、入力データは、ユーザから受け付けても良いし、任意の情報処理サービス等の本番環境において車載カメラ等により撮影された実環境データを入力データとして受け付けても良い。入力データの受け付け方法は限定されない。
【0079】
ステップS302において、サーバ10の制御部104は、入力データに含まれるメタデータに基づき、サブモデルテーブル1023の適用条件に含まれるか否か(一致するか否か)を判定する。
【0080】
サーバ10の制御部104は、一致する適用条件にかかるサブモデル情報が特定できた場合(サブモデルテーブル1023から1以上のレコードが抽出できた場合)、当該サブモデルテーブル1023の抽出されたレコードに含まれるサブモデルを特定する。なお、複数のレコードが抽出された場合には、任意のアルゴリズムに基づき1のサブモデルのみを選択する構成としても良い。例えば、サブモデルごとに抽出の際の優先順位を割り当てても良いし、ランダムに抽出されても良い。
サーバ10の制御部104は、一致する適用条件にかかるサブモデル情報が特定できなかった場合(サブモデルテーブル1023から1以上のレコードが抽出できなかった場合)、メインモデルを特定する。
これにより、入力データのメタデータの範囲ごとに、適用するモデルを修正モデルと学習モデルのいずれかに切り替えられた結合モデルを作成できる。結合モデルは、入力データに対してメインモデルに比べて優れた推論品質の出力データを出力することができる。
【0081】
なお、本開示においては適用条件としてメタデータの範囲を一例として説明したがこれに限られない。サーバ10の制御部104は、ステップS301において受け付けた入力データが、適用条件に含まれる場合にサブモデルを特定し、適用条件に含まれない場合にメインモデルを特定するものとすれば良い。
【0082】
また、適用モデルの選択は、メインモデルまたはサブモデルのいずれかに入力データを入力する前に実行する必要は必ずしもない。例えば、サブモデルの適用条件が、入力データをメインモデルへ入力し、当該メインモデルの中間層から出力される内部特徴量に関する条件を含む場合においては、入力データから出力された出力データの情報に応じてサブモデルの適用が選択される構成としても良い。つまり、メインモデルから出力された出力データを適用条件に含んでも良い。この場合、サブモデルに入力される入力データは、ステップS301において受け付けた入力データである必要は必ずしもなく、メインモデルの出力データをサブモデルに入力しても良い。
このように、本開示における結合モデルは、ステップS301で受け付けた入力データが、メインモデルまたはサブモデルのいずれか1つに選択的に入力される場合に限られず、メインモデルから出力された出力データの内容に応じてサブモデルが選択される構成としても構わない。その他、入力データに応じたメインモデルの出力データの品質が十分ではない場合(信頼性、精度等が所定値に比べて低い場合等)に、サブモデルからの出力データを結合モデルの出力データとしても良い。
【0083】
ステップS303において、サーバ10の制御部104は、ステップS302において特定されたサブモデルまたはメインモデルに、ステップS301において受け付けた入力データを入力データとして入力する。サーバ10の制御部104は、サブモデルまたはメインモデルから出力された出力データを取得する。
サーバ10の制御部104は、ステップS302においてサブモデルが特定された場合には、入力データに対するサブモデルの推論結果を出力データとして取得する。サーバ10の制御部104は、ステップS302においてメインモデルが特定された場合には、入力データに対するメインモデルの推論結果を出力データとして取得する。
これにより、入力データの範囲(グループの範囲)ごとに、適用するモデルを修正モデルと学習モデルのいずれかに切り替えることにより結合モデルを作成できる。結合モデルは、結合モデルに対して入力された入力データに対して優れた推論品質の出力データを出力することができる。
【0084】
ステップS302において、サブモデルの適用条件が、入力データをメインモデルへ入力し、当該メインモデルの中間層から出力される内部特徴量に関する条件を含む場合においては、サブモデルからの出力データを結合データの出力データとすることが好適である。これにより、結合モデルに対して入力された入力データに対して優れた推論品質の出力データを出力することができる。
【0085】
図12は、結合モデルの機能構成を示すブロック図である。結合モデル推論処理について、結合モデルの機能ブロック図に基づき説明する。結合モデルM1は、入力データM11の入力に応じて、出力データM18を出力する。結合モデルM1に入力された入力データM11は、入力データに関するバリデーションM12が実行される。入力データM11は、入力データM11に対するバリデーション結果に応じてメインモデルM13またはサブモデルM14のいずれか入力される。
メインモデルM13は、入力データM11の入力に応じて出力データを出力し、出力データに関するバリデーションM15が実行される。同様に、サブモデルM14は、入力データM11の入力に応じて出力データを出力し、出力データに関するバリデーションM16が実行される。なお、適用条件がメインモデルの中間層から出力される内部特徴量に関する条件を含む場合においては、バリデーションM15の結果に応じて、適用条件に該当する場合にはサブモデルM14へ入力データM11またはメインモデルの出力データがサブモデルM14へ入力される。この場合、サブモデルM14の出力データが結合モデルM1の出力データM18として出力され、メインモデルM13の出力データは結合モデルM1の出力データM18として出力されない。
メインモデルM13またはサブモデルM14からの出力データは、結合モデルM1の出力データM18として出力される。なお、サブモデルM14からの出力データは、出力データに関するバリデーションM16の結果に応じて、人手による検証M17が行われ、当該人手による検証が行われた後の出力データも出力データM18に反映される。なお、サブモデルM14からの出力データは必ずしも検証M17を実行する必要はない。例えば、ユーザが作成したデータセット自体の品質が低い場合(例えば、「犬」の画像に「猫」とアノテーションされている場合等)において、修正関数が一見誤った推論結果を出力する(例えば、「猫」というアノテーションに対して「犬」)ものの、実際には推論結果が正しい(修正関数が出力した「犬」が実際には正しい)場合がある。
このような場合に、サブモデルの出力データに関するバリデーションM16は、ユーザに対してアラート等の通知を実行するための処理が行われ、人手による検証M17が実行される。
なお、ここでいうメインモデルM13およびサブモデルM14は、複数のモデルや修正関数等を組み合わせたり、バリデーションM16のあとにさらにサブモデルを経る構成としても良い。
【0086】
<コンピュータの基本ハードウェア構成>
図15は、コンピュータ90の基本的なハードウェア構成を示すブロック図である。コンピュータ90は、プロセッサ901、主記憶装置902、補助記憶装置903、通信IF991(インタフェース、Interface)を少なくとも備える。これらは通信バス921により相互に電気的に接続される。
【0087】
プロセッサ901とは、プログラムに記述された命令セットを実行するためのハードウェアである。プロセッサ901は、演算装置、レジスタ、周辺回路等から構成される。
【0088】
主記憶装置902とは、プログラム、及びプログラム等で処理されるデータ等を一時的に記憶するためのものである。例えば、DRAM(Dynamic Random Access Memory)等の揮発性のメモリである。
【0089】
補助記憶装置903とは、データ及びプログラムを保存するための記憶装置である。例えば、フラッシュメモリ、HDD(Hard Disc Drive)、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリ等である。
【0090】
通信IF991とは、有線又は無線の通信規格を用いて、他のコンピュータとネットワークを介して通信するための信号を入出力するためのインタフェースである。
ネットワークは、インターネット、LAN、無線基地局等によって構築される各種移動通信システム等で構成される。例えば、ネットワークには、3G、4G、5G移動通信システム、LTE(Long Term Evolution)、所定のアクセスポイントによってインターネットに接続可能な無線ネットワーク(例えばWi-Fi(登録商標))等が含まれる。無線で接続する場合、通信プロトコルとして例えば、Z-Wave(登録商標)、ZigBee(登録商標)、Bluetooth(登録商標)等が含まれる。有線で接続する場合は、ネットワークには、USB(Universal Serial Bus)ケーブル等により直接接続するものも含む。
【0091】
なお、各ハードウェア構成の全部または一部を複数のコンピュータ90に分散して設け、ネットワークを介して相互に接続することによりコンピュータ90を仮想的に実現することができる。このように、コンピュータ90は、単一の筐体、ケースに収納されたコンピュータ90だけでなく、仮想化されたコンピュータシステムも含む概念である。
【0092】
<コンピュータ90の基本機能構成>
コンピュータ90の基本ハードウェア構成(
図15)により実現されるコンピュータの機能構成を説明する。コンピュータは、制御部、記憶部、通信部の機能ユニットを少なくとも備える。
【0093】
なお、コンピュータ90が備える機能ユニットは、それぞれの機能ユニットの全部または一部を、ネットワークで相互に接続された複数のコンピュータ90に分散して設けても実現することができる。コンピュータ90は、単一のコンピュータ90だけでなく、仮想化されたコンピュータシステムも含む概念である。
【0094】
制御部は、プロセッサ901が補助記憶装置903に記憶された各種プログラムを読み出して主記憶装置902に展開し、当該プログラムに従って処理を実行することにより実現される。制御部は、プログラムの種類に応じて様々な情報処理を行う機能ユニットを実現することができる。これにより、コンピュータは情報処理を行う情報処理装置として実現される。
【0095】
記憶部は、主記憶装置902、補助記憶装置903により実現される。記憶部は、データ、各種プログラム、各種データベースを記憶する。また、プロセッサ901は、プログラムに従って記憶部に対応する記憶領域を主記憶装置902または補助記憶装置903に確保することができる。また、制御部は、各種プログラムに従ってプロセッサ901に、記憶部に記憶されたデータの追加、更新、削除処理を実行させることができる。
【0096】
データベースは、リレーショナルデータベースを指し、行と列によって構造的に規定された表形式のテーブル、マスタと呼ばれるデータ集合を、互いに関連づけて管理するためのものである。データベースでは、表をテーブル、マスタ、表の列をカラム、表の行をレコードと呼ぶ。リレーショナルデータベースでは、テーブル、マスタ同士の関係を設定し、関連づけることができる。
通常、各テーブル、各マスタにはレコードを一意に特定するための主キーとなるカラムが設定されるが、カラムへの主キーの設定は必須ではない。制御部は、各種プログラムに従ってプロセッサ901に、記憶部に記憶された特定のテーブル、マスタにレコードを追加、削除、更新を実行させることができる。
また、記憶部に、データ、各種プログラム、各種データベースを記憶させることにより、本開示にかかる情報処理装置、情報処理システムが製造されたものとして捉えることができる。
【0097】
なお、本開示におけるデータベース、マスタは、情報が構造的に規定された任意のデータ構造体(リスト、辞書、連想配列、オブジェクトなど)を含み得る。データ構造体には、データと、任意のプログラミング言語により記述された関数、クラス、メソッドなどを組み合わせることにより、データ構造体と見なし得るデータも含むものとする。
【0098】
通信部は、通信IF991により実現される。通信部は、ネットワークを介して他のコンピュータ90と通信を行う機能を実現する。通信部は、他のコンピュータ90から送信された情報を受信し、制御部へ入力することができる。制御部は、各種プログラムに従ってプロセッサ901に、受信した情報に対する情報処理を実行させることができる。また、通信部は、制御部から出力された情報を他のコンピュータ90へ送信することができる。
【0099】
<付記>
以上の各実施形態で説明した事項を以下に付記する。
【0100】
(付記1)
プロセッサと、記憶部とを備えるコンピュータに実行させるためのプログラムであって、プロセッサが、学習モデルを記憶するモデル記憶ステップ(S101)と、それぞれがメタデータと関連付けられた複数のデータからなるデータセットを取得するデータ取得ステップ(S102)と、データ取得ステップにおいて取得したデータセットについて、1または複数のデータを含む複数のグループごとに、当該グループに含まれる1または複数のデータに対する学習モデルの推論品質を評価するモデル評価ステップ(S104)と、を実行するプログラム。
これにより、学習モデルの推論品質をグループごとに評価することができる。例えば、学習モデルが苦手とする領域をグループとして特定することができる。
【0101】
(付記2)
モデル評価ステップ(S104)は、学習モデルの推論精度を算定するステップである、付記1記載のプログラム。
これにより、学習モデルの推論精度をグループごとに評価することができる。
【0102】
(付記3)
プロセッサが、データ取得ステップにおいて取得したデータセットに含まれる複数のデータのそれぞれを、モデル記憶ステップにおいて記憶した学習モデルの入力データとして適用することにより、複数のデータのそれぞれに対する推論結果を取得するデータ推論ステップ(S103)と、データ推論ステップにおいて取得した推論結果に応じたクラスタリングを実行し、当該クラスタリングにより構成されたクラスタをグループとして特定するクラスタリングステップ(S103)と、を実行し、モデル評価ステップ(S104)は、クラスタリングステップにおいて特定されたグループに含まれる1または複数のデータに対する学習モデルの推論品質を評価するステップである、付記1または2記載のプログラム。
これにより、推論結果に応じて特定されるクラスタの範囲ごとに、学習モデルの推論品質を評価することができる。
【0103】
(付記4)
データ推論ステップ(S103)は、複数のデータの少なくとも一部について推論結果の誤りに関する誤り情報を取得するステップであり、クラスタリングステップ(S103)は、データ取得ステップにおいて取得したデータセットに対してデータ推論ステップにおいて取得した誤り情報の類似度に基づくクラスタリングを実行し、当該クラスタリングにより構成されたクラスタをグループとして特定するステップである、付記3記載のプログラム。
これにより、推論結果の誤りの類似度に応じて特定されるクラスタの範囲ごとに、学習モデルの推論品質を評価することができる。
【0104】
(付記5)
データ推論ステップ(S103)は、複数のデータの少なくとも一部について推論結果の誤りの種類に関する誤り種類情報を取得するステップであり、クラスタリングステップ(S103)は、データ取得ステップにおいて取得したデータセットに対してデータ推論ステップにおいて取得した誤り種類情報の類似度に基づくクラスタリングを実行し、当該クラスタリングにより構成されたクラスタをグループとして特定するステップである、付記4記載のプログラム。
これにより、推論結果の誤りの種類の類似度に応じて特定されるクラスタの範囲ごとに、学習モデルの推論品質を評価することができる。
【0105】
(付記6)
プロセッサが、クラスタリングステップにおいて特定したグループに含まれる1または複数のデータに関連付けられたメタデータに基づき、複数のグループの少なくとも一部について当該グループを特徴づけるグループメタデータを特定するグループメタデータ特定ステップ(S103)と、グループメタデータ特定ステップにおいて特定したグループメタデータを、複数のグループの少なくとも一部と関連付けて記憶するグループメタデータ記憶ステップ(S103)と、を実行する、付記3から5のいずれか記載のプログラム。
これにより、推論結果に応じて特定されるクラスタの範囲ごとに、グループメタデータに基づき当該クラスタの内容を解釈することができる。例えば、推論品質が良くないクラスタについて、その要因をメタデータに基づき解釈することができる。
【0106】
(付記7)
プロセッサが、データ取得ステップにおいて取得したデータセットに対してメタデータの類似度に基づくクラスタリングを実行し、当該クラスタリングにより構成されたクラスタをグループとして特定するクラスタリングステップ(S103)と、を実行し、モデル評価ステップ(S104)は、クラスタリングステップにおいて特定されたグループに含まれる1または複数のデータに対する学習モデルの推論品質を評価するステップである、付記1または2記載のプログラム。
これにより、メタデータの類似度に応じて特定されるクラスタの範囲ごとに、学習モデルの推論品質を評価することができる。
【0107】
(付記8)
プロセッサが、クラスタリングステップにおいて特定されたグループに含まれる1または複数のデータをそれぞれを、モデル記憶ステップにおいて記憶した学習モデルの入力データとして適用することにより、1または複数のデータのそれぞれに対する推論結果を取得するグループ品質評価ステップ(S103)と、グループ品質評価ステップにおいて取得した推論結果に基づき、複数のグループの少なくとも一部について当該グループを特徴づけるグループ推論品質を特定するグループ品質特定ステップ(S103)と、グループ品質特定ステップにおいて特定したグループ推論品質を、複数のグループの少なくとも一部と関連付けて記憶するグループ品質記憶ステップ(S103)と、を実行する、付記7記載のプログラム。
これにより、メタデータの類似度に応じて特定されるクラスタの範囲ごとに、学習モデルの推論品質を評価することができる。
【0108】
(付記9)
グループ品質評価ステップ(S103)は、1または複数のデータのそれぞれに対する推論結果の誤りに関する誤り情報を取得するステップであり、グループ品質特定ステップ(S103)は、複数のグループの少なくとも一部について当該グループを特徴づけるグループ誤り情報を特定するステップであり、グループ品質記憶ステップ(S103)は、グループ品質特定ステップにおいて特定したグループ誤り情報を、複数のグループの少なくとも一部と関連付けて記憶するステップである、付記8記載のプログラム。
これにより、メタデータの類似度に応じて特定されるクラスタの範囲ごとに、学習モデルの推論結果の誤りに関する推論品質を評価することができる。
【0109】
(付記10)
グループ品質評価ステップ(S103)は、1または複数のデータのそれぞれに対する推論結果の誤りの種類に関するグループ誤り種類情報を取得するステップであり、グループ品質特定ステップ(S103)は、複数のグループの少なくとも一部について当該グループを特徴づけるグループ誤り種類情報を特定するステップであり、グループ品質記憶ステップ(S103)は、グループ品質特定ステップにおいて特定したグループ誤り種類情報を、複数のグループの少なくとも一部と関連付けて記憶するステップである、付記9記載のプログラム。
これにより、メタデータの類似度に応じて特定されるクラスタの範囲ごとに、学習モデルの推論結果の誤りの種類に関する推論品質を評価することができる。
【0110】
(付記11)
プロセッサが、複数のグループを、モデル評価ステップにおいて評価した推論品質と関連付けて提示する品質提示ステップ(S105)と、を実行する、付記1から10のいずれか記載のプログラム。
これにより、学習モデル全体の品質を、データセットのグループ範囲ごとに大局的に解釈することができる。例えば、データセットのうちどの程度の割合が推論品質が良く、どの程度の割合が推論品質が悪いのか視覚的に直感的に確認することができる。
【0111】
(付記12)
品質提示ステップ(S105)は、複数のグループを、モデル評価ステップにおいて評価した推論品質に基づき算定される学習モデルへ影響を与える度合いに関する影響度と関連付けて提示するステップである、を実行する、付記11記載のプログラム。
これにより、学習モデル全体の品質を、データセットのグループ範囲ごとに、学習モデルに与える影響の度合いに応じて大局的に解釈することができる。
【0112】
(付記13)
プロセッサが、グループに含まれる1または複数のデータに基づき、モデル記憶ステップにおいて記憶された学習モデルを修正した修正関数を作成するモデル修正ステップ(S107)と、を実行する、付記1から12のいずれか記載のプログラム。
これにより、学習モデルをグループごとに修正した修正関数を作成することができる。
【0113】
(付記14)
モデル修正ステップ(S107)は、グループに含まれる1または複数のデータを学習モデルの入力データとして適用することにより特定されるグループの推論品質に基づき、学習モデルを修正した修正関数を作成するステップである、付記13記載のプログラム。
これにより、例えば、学習モデルの推論品質が低い特定のグループについて学習モデルを修正した修正関数を作成することができる。
【0114】
(付記15)
プロセッサが、ユーザから、複数のグループのうち、所定のグループの選択を受け付けるグループ選択ステップ(S106)と、を実行し、モデル修正ステップ(S107)は、グループ選択ステップにおいて選択された所定のグループに含まれる1または複数のデータに基づき、モデル記憶ステップにおいて記憶された学習モデルを修正した修正関数を作成するステップである、付記13記載のプログラム。
これにより、ユーザによるグループの選択に応じて、当該選択されたグループについて学習モデルを修正した修正関数を作成することができる。
【0115】
(付記16)
プロセッサが、モデル修正ステップにおいて作成した修正関数を適用する適用条件を、修正関数と関連付けて記憶する条件記憶ステップ(S107)と、学習モデルおよび修正関数に基づき、結合モデルを作成する結合モデル作成ステップ(S108)と、を実行し、結合モデル作成ステップにおいて作成された結合モデルは、入力データが条件記憶ステップにおいて記憶された適用条件に含まれる場合は、当該適用条件に関連付けられた修正関数による出力データを出力し、入力データが条件記憶ステップにおいて記憶された適用条件に含まれない場合は、学習モデルによる出力データを出力する、付記13から15のいずれか記載のプログラム。
これにより、入力データの範囲(グループの範囲)ごとに、適用するモデルを修正関数と学習モデルのいずれかに切り替えることにより結合モデルを作成できる。結合モデルは、入力データに対して優れた推論品質の出力データを出力することができる。
【0116】
(付記17)
プロセッサが、グループに含まれる1または複数のデータに関連付けられたメタデータに基づき、複数のグループの少なくとも一部について当該グループを特徴づけるグループメタデータを特定するグループメタデータ特定ステップ(S103)と、グループメタデータ特定ステップにおいて特定したグループメタデータを、複数のグループの少なくとも一部と関連付けて記憶するグループメタデータ記憶ステップ(S103)と、を実行し、条件記憶ステップ(S107)は、モデル修正ステップにおいて作成した修正関数のグループに関連付けて記憶されたグループメタデータを適用条件として、修正関数と関連付けて記憶するステップであり、結合モデル作成ステップにおいて作成された結合モデルは、入力データに関連付けられたメタデータがグループメタデータに含まれる場合は、当該グループメタデータに関連付けられた修正関数による出力データを出力し、入力データに関連付けられたメタデータがグループメタデータに含まれない場合は、学習モデルによる出力データを出力する、付記16記載のプログラム。
これにより、入力データのメタデータの範囲ごとに、適用するモデルを修正関数と学習モデルのいずれかに切り替えることにより結合モデルを作成できる。結合モデルは、入力データに対して優れた推論品質の出力データを出力することができる。
【0117】
(付記18)
プロセッサと、メモリとを備えるコンピュータに実行される方法であって、プロセッサが、付記1から付記17のいずれかに係る発明において実行される全てのステップを実行する方法。
これにより、学習モデルの推論品質をグループごとに評価することができる。例えば、学習モデルが苦手とする領域をグループとして特定することができる。
【0118】
(付記19)
制御部と、記憶部とを備える情報処理装置であって、制御部が、付記1から付記17のいずれかに係る発明において実行される全てのステップを実行する情報処理装置。
これにより、学習モデルの推論品質をグループごとに評価することができる。例えば、学習モデルが苦手とする領域をグループとして特定することができる。
【0119】
(付記20)
付記1から付記17のいずれかに係る発明において実行される全てのステップを実行する手段を備えるシステム。
これにより、学習モデルの推論品質をグループごとに評価することができる。例えば、学習モデルが苦手とする領域をグループとして特定することができる。
【符号の説明】
【0120】
1 システム、10 サーバ、101 記憶部、104 制御部、106 入力装置、108 出力装置、20 ユーザ端末、201 記憶部、204 制御部、206 入力装置、208 出力装置
【要約】
【課題】学習モデルの推論品質を、部分ごとに評価できていないという課題がある。
【解決手段】プロセッサと、記憶部とを備えるコンピュータに実行させるためのプログラムであって、プロセッサが、学習モデルを記憶するモデル記憶ステップと、それぞれがメタデータと関連付けられた複数のデータからなるデータセットを取得するデータ取得ステップと、データ取得ステップにおいて取得したデータセットについて、1または複数のデータを含む複数のグループごとに、当該グループに含まれる1または複数のデータに対する学習モデルの推論品質を評価するモデル評価ステップと、を実行するプログラム。
【選択図】
図10