(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024015852
(43)【公開日】2024-02-06
(54)【発明の名称】機械学習自動実行システム、機械学習自動実行方法、およびプログラム
(51)【国際特許分類】
G06F 8/70 20180101AFI20240130BHJP
G06N 20/00 20190101ALI20240130BHJP
【FI】
G06F8/70
G06N20/00
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2022118193
(22)【出願日】2022-07-25
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】301063496
【氏名又は名称】東芝デジタルソリューションズ株式会社
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】狐塚 崇大
(72)【発明者】
【氏名】加藤 利幸
(72)【発明者】
【氏名】木山 亮
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376DA00
(57)【要約】
【課題】機械学習アルゴリズムを統合的に管理および実行するシステムにおいて、新規の機械学習アルゴリズムの追加登録および管理を容易にすることである。
【解決手段】実施形態の機械学習自動実行システムは、登録受付部と、検証用データセット記憶部と、検証部と、フィードバック情報生成部と、第1の表示制御部と、アルゴリズム記憶部とを持つ。登録受付部は、機械学習アルゴリズムの登録を受け付ける。検証用データセット記憶部は、機械学習アルゴリズムの動作検証に用いる検証用データセットを格納する。検証部は、検証用データセットを用いて機械学習アルゴリズムを実行して動作検証を行う。フィードバック情報生成部は、動作検証の結果に基づくフィードバック情報を生成する。第1の表示制御部は、生成されたフィードバック情報の表示を制御する。アルゴリズム記憶部は、動作検証の結果が特定の基準を満たす機械学習アルゴリズムを格納する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
機械学習アルゴリズムの登録を受け付ける登録受付部と、
前記機械学習アルゴリズムの動作検証に用いる検証用データセットを格納する検証用データセット記憶部と、
前記検証用データセット記憶部に格納された前記検証用データセットを用いて前記機械学習アルゴリズムを実行して動作検証を行う検証部と、
前記動作検証の結果に基づくフィードバック情報を生成するフィードバック情報生成部と、
生成された前記フィードバック情報の表示を制御する第1の表示制御部と、
前記動作検証の結果が特定の基準を満たす前記機械学習アルゴリズムを格納するアルゴリズム記憶部と、
を備える、機械学習自動実行システム。
【請求項2】
機械学習の実行を制御する制御部と、
前記機械学習に用いる学習用データセットを格納する学習用データセット記憶部と、
前記制御部による制御に基づいて、前記学習用データセット記憶部に格納された前記学習用データセットに対して前処理を行う前処理部と、
前記制御部による制御に基づいて、前記アルゴリズム記憶部に格納された前記機械学習アルゴリズムを用いて、前処理された前記学習用データセットに対してモデルの学習を実行する学習部と、
学習された前記モデルの評価結果を格納する評価結果記憶部と、
前記評価結果記憶部に格納された前記評価結果の表示を制御する第2の表示制御部と、
さらに備える、
請求項1に記載の機械学習自動実行システム。
【請求項3】
前記第2の表示制御部は、前記アルゴリズム記憶部に格納された前記機械学習アルゴリズムの一覧を表示させ、
前記学習部は、表示された前記一覧に含まれる前記機械学習アルゴリズムの内、ユーザにより指定された前記機械学習アルゴリズムを用いて、前記モデルの学習を実行する、
請求項2に記載の機械学習自動実行システム。
【請求項4】
前記学習部は、ユーザにより指定された機械学習タスクに基づいて、前記アルゴリズム記憶部に格納された前記機械学習アルゴリズムから1つ以上を選択し、選択された前記機械学習アルゴリズムを用いて、前記モデルの学習を実行する、
請求項2に記載の機械学習自動実行システム。
【請求項5】
前記第2の表示制御部は、前記アルゴリズム記憶部に格納された前記機械学習アルゴリズムに定義されたハイパーパラメータの項目を表示させ、
前記学習部は、表示された前記ハイパーパラメータの項目に対して、ユーザにより指定された前記ハイパーパラメータの値を用いて、前記モデルの学習を実行する、
請求項2に記載の機械学習自動実行システム。
【請求項6】
前記学習部は、前記アルゴリズム記憶部に格納された前記機械学習アルゴリズムに定義されたハイパーパラメータの設定として少なくとも1通りを選択し、選択された前記ハイパーパラメータの設定を用いて、前記モデルの学習を実行する、
請求項2に記載の機械学習自動実行システム。
【請求項7】
前記検証用データセットは、少なくとも1つの標準形式データセットと、少なくとも一つの拡張形式データセットとを含み、
前記検証部は、前記標準形式データセットを用いた動作検証の結果が合格であり、前記拡張形式データセットを用いた動作検証の結果が不合格である場合、前記標準形式データセットと前記拡張形式データセットとのデータ形式の差異から不合格原因を推定し、
前記フィードバック情報生成部は、推定された前記不合格原因を含む前記フィードバック情報を生成する、
請求項1または2に記載の機械学習自動実行システム。
【請求項8】
前記標準形式データセットは、特定のファイル形式、解像度、チャネル数、および色深度で統一された画像データセットであり、
前記拡張形式データセットは、ファイル形式、解像度、チャネル数、色深度、および画像枚数の少なくとも1つが異なる画像データセットか、または、画像の枚数が異なる画像データセットであり、
前記検証部は、前記標準形式データセットと前記拡張形式データセットとの差異を前記不合格原因として推定する、
請求項7に記載の機械学習自動実行システム。
【請求項9】
前記標準形式データセットは、実数値変数のみからなる表形式データセットであり、
前記拡張形式データセットは、カテゴリカル変数、テキストデータ、時刻データ、および欠損値の少なくとも1つを含む表形式データセットか、または、サンプルサイズが異なる表形式データセットであり、
前記検証部は、前記標準形式データセットと前記拡張形式データセットとの差異を前記不合格原因として推定する、
請求項7に記載の機械学習自動実行システム。
【請求項10】
前記検証用データセットは、少なくとも1つの標準形式データセットと、少なくとも1つの拡張形式データセットとを含み、
前記検証部は、前記機械学習アルゴリズムを実行してモデル学習の精度試験を実行し、前記標準形式データセットを用いた精度試験の結果が精度基準を満たし、前記拡張形式データセットを用いた精度試験の結果が精度基準を満たさない場合は、前記標準形式データセットと前記拡張形式データセットとのデータ性質の差異から不合格原因を推定し、
前記フィードバック情報生成部は、推定された前記不合格原因を含む前記フィードバック情報を生成する、
請求項1または2に記載の機械学習自動実行システム。
【請求項11】
前記標準形式データセットは、正規化された輝度値のみからなる画像データを入力とし、目的変数となる値やラベルに偏りを持たない画像データセットであり、
前記拡張形式データセットは、入力画像にはずれ値を含むもの、目的変数に値やラベルの偏りを含むもの、画像枚数の異なるもののいずれかであり、
前記検証部は、前記標準形式データセットと前記拡張形式データセットとの差異を前記不合格原因として推定する、
請求項10に記載の機械学習自動実行システム。
【請求項12】
前記標準形式データセットは、正規化された実数値変数のみからなり、目的変数となる値やラベルに偏りを持たない表形式データセットであり、
前記拡張形式データセットは、説明変数にはずれ値を含むもの、目的変数に値やラベルの偏りを含むもの、サンプルサイズの異なるもののいずれかであり、
前記検証部は、前記標準形式データセットと前記拡張形式データセットとの差異を前記不合格原因として推定する、
請求項10に記載の機械学習自動実行システム。
【請求項13】
前記検証用データセットは、少なくとも1つの標準形式データセットと、少なくとも一つの拡張形式データセットとを含み、
前記標準形式データセットを用いた動作検証の結果が合格であり、前記拡張形式データセットを用いた動作検証の結果が不合格である場合、前記拡張形式データセットの項目について、機械学習実行時に適用すべき前処理としてメタデータ記憶部に格納するメタデータ登録部と、
前記メタデータ記憶部を参照して、前記前処理が必要な前記学習用データセットを標準形式へ変換する処理を実行する前処理部と、
をさらに備える、
請求項2に記載の機械学習自動実行システム。
【請求項14】
前記検証用データセットは、少なくとも1つの標準形式データセットと、少なくとも1つの拡張形式データセットとを含み、
前記検証部は、前記機械学習アルゴリズムを実行してモデル学習の精度試験を実行し、
前記標準形式データセットを用いた精度試験の結果が精度基準を満たし、前記拡張形式データセットを用いた精度試験の結果が精度基準を満たさない場合、前記拡張形式データセットの項目について、機械学習実行時に適用すべき前処理としてメタデータ記憶部に格納するメタデータ登録部と、
前記メタデータ記憶部を参照して、前記前処理が必要なデータセットを標準形式へ変換する処理を実行する前処理部と、
をさらに備える、
請求項2に記載の機械学習自動実行システム。
【請求項15】
前記検証部は、精度、実行時間、および計算資源のうちの少なくとも1つについて、前記機械学習アルゴリズムの動作検証の結果と、同種の他の機械学習アルゴリズムの動作検証の結果とを比較する、
請求項1または2に記載の機械学習自動実行システム。
【請求項16】
拡張形式データセットを標準形式データセットの形式へ変換する標準化処理を行う検証用データ編集部をさらに備え、
前記検証部は、標準化されたデータセットを用いて動作検証を行う、
請求項3または4に記載の機械学習自動実行システム。
【請求項17】
前記検証部は、少なくとも1つのコンピューティングリソースの割り当てパターンで前記機械学習アルゴリズムを実行し、
前記第1の表示制御部は、実行の成否、処理速度、および使用メモリ量を含む前記フィードバック情報を表示させる、
請求項1または2に記載の機械学習自動実行システム。
【請求項18】
前記検証部は、複数のコンピューティングリソースの割り当てパターンで前記機械学習アルゴリズムを実行し、
前記制御部は、前記検証部による前記複数のコンピューティングリソースの割り当てパターンでの動作検証の結果に基づいて、機械学習実行時のリソースを割り当てる、
請求項2に記載の機械学習自動実行システム。
【請求項19】
コンピュータが、
機械学習アルゴリズムの登録を受け付け、
検証用データセット記憶部に格納された前記機械学習アルゴリズムの動作検証に用いる検証用データセットを用いて前記機械学習アルゴリズムを実行して動作検証を行い、
前記動作検証の結果に基づくフィードバック情報を生成し、
生成された前記フィードバック情報の表示を制御し、
前記動作検証の結果が特定の基準を満たす前記機械学習アルゴリズムをアルゴリズム記憶部に格納する、
機械学習自動実行方法。
【請求項20】
コンピュータに、
機械学習アルゴリズムの登録を受け付けさせ、
検証用データセット記憶部に格納された前記機械学習アルゴリズムの動作検証に用いる検証用データセットを用いて前記機械学習アルゴリズムを実行して動作検証を行わせ、
前記動作検証の結果に基づくフィードバック情報を生成させ、
生成された前記フィードバック情報の表示を制御させ、
前記動作検証の結果が特定の基準を満たす前記機械学習アルゴリズムをアルゴリズム記憶部に格納させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、機械学習自動実行システム、機械学習自動実行方法、およびプログラムに関する。
【背景技術】
【0002】
機械学習(Artificial Intelligence:AI)技術の発展は、画像認識、文章要約、音声認識等の高度な推論が可能なAIの開発を実現している。AIの分野において、入力データを説明するための記述は、AIモデル(または単にモデル)と呼ばれ、入力データに合わせてモデルを更新する処理は機械学習(または単に学習)と呼ばれる。学習は問題の特性に応じて、教師あり学習、教師無し学習、強化学習に大別される。特に、教師あり学習では、入力データに対してモデルがより望ましい推論結果を出力するようにモデルが更新される。
【0003】
モデルには、ニューラルネットワーク、サポートベクターマシン、決定木等の様々な記述方法がある。ニューラルネットワークと呼ばれるモデルの中にも、オートエンコーダ、畳み込みニューラルネットワーク(Convolutional Neural Network:CNN)、再帰型ニューラルネットワーク(Recurrent Neural Network:RNN)等の様々な記述方法がある。また、それぞれのモデルに対して、そのモデルを学習する様々なアルゴリズムがある。アルゴリズムには、例えば、確率的勾配降下法、遺伝的アルゴリズム、EMアルゴリズム等があり、それらを組み合わせることもありうる。
【0004】
AIが対象とするあらゆる問題に対して最適となる汎用的なアルゴリズムが存在しないことはノーフリーランチ定理として知られている。すなわち、価値のあるモデルを開発しようとする者は、AIが対象とする問題に対してその都度適切なアルゴリズムを選定する必要がある。従って、AIモデルを開発するには、高度な知識と実装能力を有する専門家が要求される。さらに、アルゴリズムの実行に際しては、ハイパーパラメータと呼ばれる外部から与えられる設定が必要であることが一般的であり、同じアルゴリズムを使用したとしても、ハイパーパラメータの違いにより学習後のモデルの精度は大きく変動しうる。ハイパーパラメータは、AIの専門家であっても試行錯誤的に探索する必要があり、AIモデルの開発に時間的コストを要求する。従って、現実の課題にAIを活用しようとする者は、少なくとも、モデルの開発に専門家を要求する点、時間的コストが要求される点の2点において、高コストを強いられることになり、結果としてAI導入の妨げとなっている。
【0005】
上記の問題に対して、モデル開発を自動化することでコストを削減する試みとして、自動機械学習(Automated Machine Learning:AutoML)という概念が提案されている。AutoMLでは、AI専門家への依存や試行錯誤のコストを極力削減することを目的としており、上記のハイパーパラメータの試行錯誤や、複数モデルの比較評価を自動化するための技術開発が活発化している。技術開発の結果として、AIに関する専門的知識を持たない者でも、簡易な操作により、モデルを作成することが可能になりつつある。例えば、様々なアルゴリズムを用いて複数のモデルを作成し、それらの好適性を比較することで、望ましいモデルを自動選択する方法等が提案されている。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
AutoMLシステムは、ユーザからの実行命令に基づいて、あらかじめ登録された複数のアルゴリズムを実行し、さらにそれぞれのハイパーパラメータ探索を行って最適なモデルを提供する。実行されるアルゴリズムは、機械学習理論の発展に伴い、アルゴリズム開発者によって次々と開発されており、最新のアルゴリズムがAutoMLシステムでも迅速に利用可能となることが求められる。また、アルゴリズムは、AIモデルを活用しようとする者の課題やリクエストに応じてカスタマイズされる場合があり、カスタマイズを施したアルゴリズムをAutoMLシステムへ追加できることも求められる。
【0008】
しかしながら、AutoMLシステムに対して新たなアルゴリズムを追加登録するための統合的な仕組みについては、これまで十分検討されて来なかった。様々なアルゴリズムを共通の環境で実行させるには、実行時に外部から与えられるパラメータや実行に必要な条件、リソースを把握し、統合的に管理する必要があった。また、アルゴリズムの特性に応じて、特定の前処理を組み合わせて利用する場合があり、必要な前処理を把握しておかなければならなかった。アルゴリズムをAutoMLシステムに追加する際、実行に必要な条件は、アルゴリズム開発者でも正確に把握していないことがあり、詳細な検証やプログラムの修正は時間を要していた。つまり、検証を自動化し、その結果を統合的に管理する仕組みが無いことは、アルゴリズム開発者が様々なアルゴリズムをAutoMLシステムへ追加することを妨げていた。
【0009】
本発明が解決しようとする課題は、機械学習アルゴリズムを統合的に管理および実行するシステムにおいて、新規の機械学習アルゴリズムの追加登録および管理を容易にすることが可能な機械学習自動実行システム、機械学習自動実行方法、およびプログラムを提供することである。
【課題を解決するための手段】
【0010】
実施形態の機械学習自動実行システムは、登録受付部と、検証用データセット記憶部と、検証部と、フィードバック情報生成部と、第1の表示制御部と、アルゴリズム記憶部とを持つ。登録受付部は、機械学習アルゴリズムの登録を受け付ける。検証用データセット記憶部は、前記機械学習アルゴリズムの動作検証に用いる検証用データセットを格納する。検証部は、前記検証用データセット記憶部に格納された前記検証用データセットを用いて前記機械学習アルゴリズムを実行して動作検証を行う。フィードバック情報生成部は、前記動作検証の結果に基づくフィードバック情報を生成する。第1の表示制御部は、生成された前記フィードバック情報の表示を制御する。アルゴリズム記憶部は、前記動作検証の結果が特定の基準を満たす前記機械学習アルゴリズムを格納する。
【図面の簡単な説明】
【0011】
【
図1】第1の実施形態に係る機械学習自動実行システムSの機能構成の一例を示す機能ブロック図。
【
図2】第1の実施形態に係る機械学習アルゴリズムの動作検証の処理の一例を示すフローチャート。
【
図3】第1の実施形態に係る学習処理の一例を示すフローチャート。
【
図4】第2の実施形態に係る検証用データセットVDの一例を示す図。
【
図5】第2の実施形態に係る機械学習アルゴリズムの動作検証の処理の一例を示すフローチャート。
【
図6A】第2の実施形態に係るフィードバック情報の一例を示す図。
【
図6B】第2の実施形態に係るフィードバック情報の一例を示す図。
【
図6C】第2の実施形態に係るフィードバック情報の一例を示す図。
【
図7】第3の実施形態に係る検証部12Aの機能ブロックの一例を示す図。
【
図8】第3の実施形態に係る機械学習アルゴリズムの動作検証の処理の一例を示すフローチャート。
【
図9】第3の実施形態に係る学習処理の一例を示すフローチャート。
【
図10】第4の実施形態に係る機械学習アルゴリズムの動作検証の処理の一例を示すフローチャート。
【
図11】第5の実施形態に係る検証結果比較画面の一例を示す図。
【
図12】第6の実施形態に係る機械学習アルゴリズムの動作検証の処理の一例を示すフローチャート。
【
図13】第7の実施形態に係る機械学習アルゴリズムの動作検証の処理の一例を示すフローチャート。
【
図14】第8の実施形態に係る機械学習アルゴリズムの動作検証の処理の一例を示すフローチャート。
【発明を実施するための形態】
【0012】
以下、実施形態の機械学習自動実行システム、機械学習自動実行方法、およびプログラムを、図面を参照して説明する。
【0013】
実施形態の機械学習自動実行システムは、機械学習アルゴリズムを統合的に管理するための統合管理環境である。以下の説明において、機械学習自動実行システムは、機械学習アルゴリズム統合管理装置と、機械学習実行装置とにより実現される場合を例に挙げて説明する。しかしながら、機械学習自動実行システムは、単一の装置によって実現されるものであってもよいし、3つ以上の装置によって実現されるものであってもよい。また、機械学習アルゴリズム統合管理装置および機械学習実行装置の一方の装置の各機能は、他方の装置に設けられるものであってもよい。機械学習アルゴリズム統合管理装置および機械学習実行装置の機能の一部は、統合されるものであってもよい。すなわち、機械学習アルゴリズム統合管理装置、機械学習実行装置、およびそれらの組み合わせは、「機械学習自動実行システム」の一例である。
【0014】
<第1の実施形態>
[全体構成]
図1は、第1の実施形態に係る機械学習自動実行システムSの機能構成の一例を示す機能ブロック図である。機械学習自動実行システムSは、例えば、機械学習アルゴリズム統合管理装置1と、機械学習実行装置100とを備える。機械学習アルゴリズム統合管理装置1と、機械学習実行装置100とは、通信ネットワークNWを介して、通信可能に接続されている。通信ネットワークNWは、例えば、インターネット、WAN(Wide Area Network)、LAN(Local1 Area Network)、プロバイダ装置、無線基地局等を含む。
【0015】
機械学習アルゴリズム統合管理装置1は、新規の機械学習アルゴリズムを登録するにあたって、最低限の仕様を満たしていることを自動的に検証および確認する。機械学習アルゴリズム統合管理装置1は、例えば、機械学習アルゴリズムを開発するアルゴリズム開発者D(以下「開発者D」)により操作される。機械学習実行装置100は、機械学習アルゴリズム統合管理装置1による動作検証が完了した機械学習アルゴリズムを用いて学習処理を行い、所望の学習済みのモデルを生成する。機械学習実行装置100は、例えば、モデルを利用するアプリケーションユーザU(以下「ユーザU」)により操作される。
【0016】
[機械学習アルゴリズム統合管理装置]
機械学習アルゴリズム統合管理装置1は、例えば、制御部10と、通信インターフェース20と、表示部30と、入力インターフェース40と、記憶部50とを備える。通信インターフェース20は、機械学習実行装置100等との通信を実行するためのNIC等である。
【0017】
表示部30は、各種の情報を表示する。例えば、表示部30は、開発者Dによる各種操作を受け付けるGUI(Graphical User Interface)や、機械学習アルゴリズムの動作検証の結果を示すフィードバック情報等を表示する。表示部30は、例えば、液晶ディスプレイ、有機EL(Electroluminescence)ディスプレイ、タッチパネル等である。尚、表示部30は、機械学習アルゴリズム統合管理装置1とは別体に設けられ、機械学習アルゴリズム統合管理装置1と通信を行うことで、各種の情報を表示してもよい。また、表示部30は、タッチパネルにより実現される場合、入力インターフェース40の機能を兼ね備えるものであってよい。
【0018】
入力インターフェース40は、開発者Dによる各種の入力操作を受け付け、受け付けた入力操作の内容を示す電気信号を制御部10に出力する。入力インターフェース40は、例えば、キーボード、マウス、タッチパネル等により実現される。
【0019】
制御部10は、例えば、登録受付部11と、検証部12と、フィードバック情報生成部13と、表示制御部14とを備える。制御部10の各機能部は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)等のコンピュータがプログラムを実行することによって、実現される。また、制御部10の機能部の一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)等のハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働することにより実現されてもよい。プログラムは、予め記憶部50(非一過性の記憶媒体を備える記憶装置)に格納されていてもよいし、DVDやCD-ROM等の着脱可能な記憶媒体(非一過性の記憶媒体)に格納されており、記憶媒体がドライブ装置に装着されることでインストールされてもよい。
【0020】
登録受付部11は、入力インターフェース40を介して開発者Dにより入力された新規の機械学習アルゴリズム(アルゴリズムの実装)の登録を受け付ける。この登録には、機械学習アルゴリズムと対応する機械学習タスク、入出力データ形式、計算デバイス(CPU、GPU)、実行環境の定義(Docker(登録商標)イメージ等)、ハイパーパラメータの定義等が含まれていてもよい。アルゴリズムの実装は、Dockerイメージのように仮想環境が同時に定義されたものでもよいし、システムで実行環境が定義されている前提で、実行するプログラムのpythonファイルのみであってもよいし、Jupyter Notebookのような対話型分析環境において記述されたものであってもよい。アルゴリズムの実装を登録する方法は、例えば、ファイルの実体を直接アップロードする方法や、ファイルの保存場所を入力する方法、Docker等で専用のAPI(Application Programming Interface)を使用する方法がある。
【0021】
機械学習タスクの例としては、回帰、分類、異常検知、物体検出、セグメンテーション等が含まれる。また、機械学習タスクは、これらのうち複数を組み合わせたものであってもよい。売り上げ予測、外観検査、プラント異常検知、人物検知、がん細胞の抽出等、応用先を具体化したものでもよい。想定する機械学習タスクが既に他のアルゴリズム開発者によって追加されている場合は、それを選択できるようにしてもよい。そのために、他のアルゴリズム開発者が追加したタスクやアルゴリズムが表示部30に一覧表示されるようにしてもよい。対象タスクが取り扱うデータ形式は、例えば、表形式データ(構造化データ)、画像データ、時系列データ、音声データ等がある。
【0022】
計算デバイスは、実行に必要なリソースが既知の場合はそれを入力してもよい。許容される実行時間を入力してもよい。開発者Dが意図して入力する項目がない場合、デフォルト値や推奨値が表示部30に表示されもよい。また、アルゴリズムを実行する際に指定できるパラメータや調整可能なパラメータ定義を入力してもよい。パラメータ定義を設定する方法は、コマンドラインへの入力、GUIでの入力、json形式やYAML形式等のファイルによる入力であってよい。変数の取りうる値を限定する際には、離散的に値を列挙することも、数値の区間を設定することも可能である。
【0023】
検証部12は、後述する検証用データセット記憶部51に格納された検証用データセットを用いて、登録受付部11により登録を受け付けた機械学習アルゴリズムを実行して動作検証を行う。この動作検証では、システムで要求される最低限の仕様を満たしているか否か(例えば、ファイルの入出力のパスが正しいか等の入出力仕様)の確認が行われる。この動作検証の結果、エラーが生じなかった場合には、機械学習アルゴリズムは、要求される仕様を満たしており、機械学習自動実行システムS上で正常に動作することが保証される。この場合、検証部12は、動作検証済みの機械学習アルゴリズムを、後述するアルゴリズム記憶部52に格納する。
【0024】
一方、動作検証の結果、エラーが生じた場合には、機械学習アルゴリズムは、要求される仕様を満たしておらず、機械学習自動実行システムS上で正常に動作することが保証されない。この場合、機械学習アルゴリズムには修正すべき箇所があることが想定される。フィードバック情報生成部13は、このように検証部12による動作検証にてエラーが生じた場合に、開発者Dに対して、エラーが生じている旨を通知するためのフィードバック情報(機械学習アルゴリズムの修正を促すための情報)を生成する。フィードバック情報生成部13は、検証結果の情報からエラー要因を推定する。エラーの種別はデータ入出力形式の不適合、メモリ不足、タイムアウト、実行環境の不一致などが想定される。プログラムが出力したエラーメッセージをフィードバック情報としてもよい。
【0025】
表示制御部14は、フィードバック情報生成部13により生成されたフィードバック情報等を、表示部30に表示させるための制御を行う。また、表示制御部14は、開発者Dからの各種入力および指示を受け付けるためのGUIを、表示部30に表示させる。表示制御部14は、フィードバック情報を表示部30に表示させ、開発者Dに修正を促す。開発者Dが開発を行う環境と、機械学習自動実行システムSがプログラムを実行する環境は完全に一致しているとは限らないため、予期せぬエラーが発生する場合がある。機械学習自動実行システムSに機械学習アルゴリズムを登録するための検証を自動で行い、開発者Dがそのフィードバックを得ることで、スムーズな対応を行うことが可能となる。表示制御部14は、「第1の表示制御部」の一例である。
【0026】
記憶部50は、例えば、検証用データセット記憶部51と、アルゴリズム記憶部52と、メタデータ記憶部53とを備える。検証用データセット記憶部51は、検証部12による動作検証に用いる検証用データセットを格納する。検証用データセットは、機械学習アルゴリズムの正常動作の確認のみを目的としたものであり、標準的なデータセット(例えば、データサイズが224×224[px]であるjpeg形式のRGB画像データ,以下「標準形式データセット」)である。尚、検証用データセットは、開発者Dが追加できるようにしてもよい。標準的な形式の検証用データは複数個設定してもよい。複数個設定する場合は、全てのデータでエラーが発生しない場合、あるいは基準を満たす場合に機械学習アルゴリズムの登録を許可する。例えば、画像データセットの場合は、JPEG形式の画像からなるデータセットと、PNG形式の画像からなるデータセットの両方を標準形式データセットとして設定してもよい。
【0027】
アルゴリズム記憶部52は、検証部12による動作検証が特定の基準を満たす(動作検証済み(合格扱い))機械学習アルゴリズムを格納する。メタデータ記憶部53は、検証部12による動作検証に関連する各種情報(メタデータ)を格納する。記憶部50は、例えば、HDD(Hard Disk Drive)、RAM(Random Access Memory)、フラッシュメモリ等の記憶装置である。尚、記憶部50は、NAS(Network Attached Storage)や外部ストレージサーバ装置といった通信ネットワークNWを介して接続される他の記憶装置によって実現されてもよい。
【0028】
[機械学習実行装置]
機械学習実行装置100は、例えば、制御部110と、通信インターフェース120と、表示部130と、入力インターフェース140と、記憶部150とを備える。通信インターフェース120は、機械学習アルゴリズム統合管理装置1等との通信を実行するためのNIC等である。
【0029】
表示部130は、各種の情報を表示する。例えば、表示部130は、ユーザUによる各種操作を受け付けるGUIや、機械学習の結果等を表示する。表示部130は、例えば、液晶ディスプレイ、有機ELディスプレイ、タッチパネル等である。尚、表示部130は、機械学習実行装置100とは別体に設けられ、機械学習実行装置100と通信を行うことで、各種の情報を表示してもよい。また、表示部130は、タッチパネルにより実現される場合、入力インターフェース140の機能を兼ね備えるものであってよい。
【0030】
入力インターフェース140は、ユーザUによる各種の入力操作を受け付け、受け付けた入力操作の内容を示す電気信号を制御部110に出力する。入力インターフェース140は、例えば、キーボード、マウス、タッチパネル等により実現される。
【0031】
制御部110は、例えば、取得部111と、学習制御部112と、前処理部113と、学習部114と、表示制御部115とを備える。制御部110の各機能部は、CPU、GPU等のコンピュータがプログラムを実行することによって、実現される。また、制御部110の機能部の一部または全部は、LSIやASIC、FPGA等のハードウェアによって実現されてもよいし、ソフトウェアとハードウェアが協働することにより実現されてもよい。プログラムは、予め記憶部150(非一過性の記憶媒体を備える記憶装置)に格納されていてもよいし、DVDやCD-ROM等の着脱可能な記憶媒体(非一過性の記憶媒体)に格納されており、記憶媒体がドライブ装置に装着されることでインストールされてもよい。
【0032】
取得部111は、入力インターフェース140介して入力されたユーザUによる機械学習の実行要求に応じて、通信インターフェース120を介して、機械学習アルゴリズム統合管理装置1(アルゴリズム記憶部52、メタデータ記憶部53)から、機械学習の対象となる機械学習アルゴリズム、メタデータ等を取得する。また、取得部111は、入力インターフェース140介してユーザUによりアップロードされた学習用データセットを取得し、後述する学習用データセット記憶部151に格納する。
【0033】
学習制御部112は、機械学習時における前処理部113および学習部114による機械学習の実行を制御する。学習制御部112は、例えば、機械学習アルゴリズム統合管理装置1による動作検証の結果に応じて、前処理部113の処理の内容や、学習部114による機械学習の各種パラメータの制御を行う。学習制御部112は、ユーザUから指定を受けない項目について、実行するアルゴリズムや実行のスケジューリング、特定の前処理の有無や前処理実行時のパラメータ、機械学習実行に割り当てる計算リソース等の機械学習実行全般に関わる設定を制御する。学習制御部112は、「制御部」の一例である。
【0034】
前処理部113は、学習制御部112による制御に基づいて、学習用データセット記憶部151に格納された学習用データセットに対する前処理を行う。
【0035】
学習部114は、学習制御部112による制御に基づいて、機械学習アルゴリズム統合管理装置1のアルゴリズム記憶部52に格納された機械学習アルゴリズムを用いて、学習用データセットに対してモデルの学習を実行する。学習部114は、例えば、ニューラルネットワーク、サポートベクターマシン、決定木等の様々な手法を用いた機械学習によりモデルを作成する。
【0036】
表示制御部115は、学習部114による機械学習により生成されるモデルの評価結果等の情報を、表示部130に表示させるための制御を行う。また、表示制御部115は、ユーザUからの各種入力および指示を受け付けるためのGUIを、表示部130に表示させる。表示制御部115は、「第2の表示制御部」の一例である。
【0037】
記憶部150は、例えば、学習用データセット記憶部151と、評価結果記憶部152とを備える。学習用データセット記憶部151は、前処理部113や学習部114の処理の対象となる学習用データセットを格納する。評価結果記憶部152は、学習部114による機械学習により生成されるモデルの評価結果等を格納する。記憶部150は、例えば、HDD、RAM、フラッシュメモリ等の記憶装置である。尚、記憶部150は、NASや外部ストレージサーバ装置といった通信ネットワークNWを介して接続される他の記憶装置によって実現されてもよい。
【0038】
[動作検証の処理]
以下、機械学習アルゴリズム統合管理装置1による機械学習アルゴリズムの動作検証の処理の流れについて説明する。
図2は、第1の実施形態に係る機械学習アルゴリズムの動作検証の処理の一例を示すフローチャートである。
【0039】
まず、登録受付部11は、入力インターフェース40を介して開発者Dにより入力された新規の機械学習アルゴリズムの登録を受け付ける(ステップS101)。この登録には、実行環境の定義(Dockerイメージ等)や、ハイパーパラメータの定義が含まれていてもよい。
【0040】
次に、検証部12は、検証用データセット記憶部51に格納された検証用データセットを用いて、登録受付部11により登録を受け付けた機械学習アルゴリズムを実行して動作検証を行う(ステップS103)。
【0041】
検証部12による動作検証の結果、エラーが生じた場合、機械学習アルゴリズムは、要求される仕様を満たしておらず、機械学習自動実行システムS上で正常に動作することが保証されない状態となる。このように検証部12による動作検証にてエラーが生じた場合(ステップS105:YES)、フィードバック情報生成部13は、開発者Dに対して、エラーが生じている旨を通知するためのフィードバック情報(機械学習アルゴリズムの修正を促すための情報)を生成する(ステップS109)。次に、表示制御部14は、フィードバック情報生成部13により生成されたフィードバック情報を、表示部30に表示させる(ステップS111)。開発者Dは、表示部30に表示されたフィードバック情報を確認することで、機械学習アルゴリズムが仕様を満たしていないことを把握することができ、機械学習アルゴリズムの修正等を行うことができる。開発者Dは、入力インターフェース40を介して、修正後の機械学習アルゴリズムの再登録処理を行い、以後、ステップS101以降の処理が繰り返される。
【0042】
一方、検証部12による動作検証の結果、エラーが生じなかった場合、機械学習アルゴリズムは、要求される仕様を満たしており、機械学習自動実行システムS上で正常に動作することが保証できた状態となる。このように検証部12による動作検証にてエラーが生じなかった場合(ステップS105:NO)、検証部12は、動作検証済み(合格扱い)の機械学習アルゴリズムを、アルゴリズム記憶部52に登録する(ステップS107)。以上により、本フローチャートの処理が完了する。
【0043】
尚、機械学習アルゴリズムの動作検証が正常に終了した場合も、検証結果を保存し、開発者Dに提示されるようにしてもよい。例えば、検証用データセットでモデル学習と評価を行った場合の予測精度、実行時間、使用したメモリ量等を表示し、開発者Dが意図した挙動になっているか確認できるようにしてもよい。
【0044】
[学習処理]
次に、機械学習実行装置100による学習処理の流れについて説明する。
図3は、第1の実施形態に係る学習処理の一例を示すフローチャートである。
【0045】
まず、取得部111は、入力インターフェース140を介して入力されたユーザUによる機械学習の実行要求を受け付ける(ステップS201)。また、取得部111は、入力インターフェース140を介してユーザUによりアップロードされた学習用データセットを取得し、学習用データセット記憶部151に格納する(ステップS203)。尚、学習用データセットは、予め学習用データセット記憶部151に格納されているようにしてもよい。或いは、学習用データセットは、機械学習自動実行システムSにネットワーク接続された外部の1つ以上のストレージから収集されるようにしてもよい。
【0046】
次に、取得部111は、受け付けた実行要求に応じて、通信インターフェース120を介して、機械学習アルゴリズム統合管理装置1(アルゴリズム記憶部52)から、機械学習の対象となる機械学習アルゴリズムを取得し、表示制御部115は、取得された機械学習アルゴリズムの一覧を表示部130に表示させる(ステップS205)。例えば、取得部111は、アルゴリズム記憶部52に登録されている全ての機械学習アルゴリズムを取得する。表示部130は、取得された機械学習アルゴリズムの一覧を表示し、実行するアルゴリズムをユーザUにより選択させる(ステップS207)。表示される機械学習アルゴリズムは、機械学習タスクごとに分類されてもよいし、ユーザUが入力した機械学習タスクでフィルタをかけてもよい。表示の仕方は、実績のあるアルゴリズム等の優先度を設けてソートしたり、優先度の高いアルゴリズムを強調表示したりしてもよい。デフォルトで特定のアルゴリズムが選択されていてもよい。
【0047】
尚、表示部130は、アルゴリズム記憶部52に登録されたアルゴリズムのハイパーパラメータを表示し、各ハイパーパラメータに対するユーザUの指定を受け付けてもよい。ユーザUが、数値や文字列を入力してもよいし、選択肢から選択するようにしてもよい。デフォルトの値があらかじめ設定されていてもよい。
【0048】
次に、学習部114は、学習制御部112による制御に基づいて、ユーザUにより指定された機械学習アルゴリズムを用いて、学習用データセットに対してモデルの学習を実行する(ステップS209)。学習制御部112は、アルゴリズム記憶部52に登録された機械学習アルゴリズムの各ハイパーパラメータが取りうる値の候補から値を選択し、全てのハイパーパラメータの組み合わせを少なくとも1通り設定し、それぞれの設定でモデル学習の実行を学習部114に命令する。ハイパーパラメータの取りうる値の候補は、あらかじめ開発者Dによって指定された候補でもよいし、機械学習タスクなどその他の設定に基づいて都度生成された候補であってもよい。機械学習のモデルは同じアルゴリズムを用いてもハイパーパラメータによって精度が変わるため、異なる複数のハイパーパラメータ設定で学習したモデルの精度を比較してもよい。最適なハイパーパラメータを得るためのハイパーパラメータ探索の戦略が設定されていてもよい。戦略としては、ランダム探索やグリッド探索、ベイズ最適化などの方法が用いられてよい。
【0049】
次に、表示制御部115は、学習部114による機械学習により生成されるモデルの評価結果等の情報を、表示部130に表示させる(ステップS211)。ユーザUは、表示部130を確認することで、モデルの評価結果等の情報を把握することができる。以上により、本フローチャートの処理が完了する。
【0050】
すなわち、第2の表示制御部(表示制御部115)は、アルゴリズム記憶部52に格納された機械学習アルゴリズムの一覧を表示させ、学習部114は、表示された一覧に含まれる機械学習アルゴリズムの内、ユーザUにより指定された機械学習アルゴリズムを用いて、モデルの学習を実行する。また、別の例としては、学習部114は、ユーザUにより指定された機械学習タスクに基づいて、アルゴリズム記憶部52に格納された機械学習アルゴリズムから1つ以上を選択し、選択されたそれぞれの機械学習アルゴリズムを用いて、モデルの学習を実行してもよい。第2の表示制御部は、アルゴリズム記憶部52に格納された機械学習アルゴリズムに定義されたハイパーパラメータの項目を表示させ、学習部114は、表示されたハイパーパラメータの項目に対して、ユーザにより指定されたハイパーパラメータの値を用いて、モデルの学習を実行する。また、別の例としては、学習部114は、アルゴリズム記憶部52に格納された機械学習アルゴリズムに定義されたハイパーパラメータの設定として少なくとも1通りを選択し、選択されたハイパーパラメータのそれぞれの設定を用いて、モデルの学習を実行してもよい。
【0051】
以上において説明した第1の実施形態の機械学習自動実行システムSによれば、新規の機械学習アルゴリズムを機械学習自動実行システムSに登録するにあたって、最低限の仕様を満たしていることを自動的に検証および確認することが可能となる。また、機械学習アルゴリズム実装そのものに加えて、機械学習タスクや、ハイパーパラメータとその定義域や、計算リソースなども含めた設定情報を受け付け、さらに、最低限の仕様を満たしていることを自動的に検証および確認できるようになり、開発者Dによる新規アルゴリズムの追加登録が容易になる。すなわち、開発者Dによって新規に提案されたアルゴリズムの受け口が無い問題や、あるいは受け口があっても、新規に登録するための仕様を満たしているかを開発者自身が確認しなければならないという問題を解決することができる。
【0052】
<第2の実施形態>
以下、第2の実施形態について説明する。第2の実施形態の機械学習自動実行システムSは、第1の実施形態の機械学習自動実行システムSと同様の構成を有する。第2の実施形態の機械学習自動実行システムSでは、動作検証時に使用される検証用データセットの内容が第1の実施形態と異なる。以下、第1の実施形態との相違点を中心として、第2の実施形態の機械学習自動実行システムSについて説明する。
【0053】
図4は、第2の実施形態に係る検証用データセットVDの一例を示す図である。
図4に示すように、検証用データセットVDは、複数種の検証用データセットを含む。例えば、検証用データセットVDは、標準形式データセット(データ1)に加えて、拡張形式の検証用データ(データ2およびデータ3)(以下「拡張形式データセット」)を含んでいる。拡張形式データセットは、データ形式の少なくとも1つを標準形式データセットと異ならせたものである。例えば、データ1(標準形式データセット)は、画像サイズが224×224[px]であるjpeg形式のRGB画像データセットである。一方、データ2(拡張形式1)は、画像サイズが224×224[px]であるTIFF形式のRGB画像データセットである。また、データ3(拡張形式2)は、画像サイズが不均一であるjpeg形式のRGB画像データセットである。
【0054】
画像認識のアルゴリズムは、アルゴリズムの仕様上、特定の解像度にしか対応できないものが存在する。また、精密な実装によって可変サイズの画像に対応できるアルゴリズムでも、実装の難易度から、特定の解像度のみを想定して実装されていることがあり、それ以外の画像は処理できないことがある。このような状況を想定し、複数種の検証用データセットを用いて動作検証を行う。
【0055】
[動作検証の処理]
以下、機械学習アルゴリズム統合管理装置1による機械学習アルゴリズムの動作検証の処理の流れについて説明する。
図5は、第2の実施形態に係る機械学習アルゴリズムの動作検証の処理の一例を示すフローチャートである。
【0056】
まず、登録受付部11は、入力インターフェース40を介して開発者Dにより入力された新規の機械学習アルゴリズムの登録を受け付ける(ステップS301)。
【0057】
次に、検証部12は、検証用データセット記憶部51に格納された複数種の検証用データセットの内のいずれか1つを用いて、登録受付部11により登録を受け付けた機械学習アルゴリズムを実行して動作検証を行う(ステップS303)。
【0058】
次に、検証部12は、検証用データセット記憶部51に格納された全検証用データセットでの動作検証が完了したか否かを判定する(ステップS305)。検証部12は、全検証用データセットでの動作検証が完了していないと判定した場合(ステップS305:NO)、検証用データセット記憶部51に格納された複数種の検証用データセットの内の動作検証が未実施のいずれか1つを用いて、登録受付部11により登録を受け付けた機械学習アルゴリズムを実行して動作検証を行い(ステップS303)、以降の処理を繰り返す。
【0059】
一方、検証部12は、全検証用データセットでの動作検証が完了したと判定した場合(ステップS305:YES)、複数種の検証用データセットでの動作検証のいずれかにおいてエラーが生じているか否かを判定する(ステップS307)。動作検証にてエラーが生じていると判定された場合(ステップS307:YES)、フィードバック情報生成部13は、フィードバック情報を生成する(ステップS311)。次に、表示制御部14は、フィードバック情報生成部13により生成されたフィードバック情報を、表示部30に表示させる(ステップS313)。
【0060】
図6Aから
図6Cは、第2の実施形態に係るフィードバック情報の一例を示す図である。
例えば、
図4に示すようなデータ1(標準形式)、データ2(拡張形式1)、およびデータ3(拡張形式2)の各々を用いて動作検証を実施し、データ1(標準形式)およびデータ2(拡張形式1)ではエラーが生じなかったが(合格)、データ3(拡張形式2)ではエラーが生じた場合(不合格)、
図6Aに示すような「画像サイズが不均一の場合にエラーになります。実装を改良して下さい。」とのメッセージを表示する第1フィードバック画面が、表示部30に表示される。開発者Dは、このようなフィードバック画面を確認することで、機械学習アルゴリズムが仕様を満たしていないことを把握することができ、機械学習アルゴリズムの修正等を行うことができる。開発者Dは、入力インターフェース40を介して、修正後の機械学習アルゴリズムの再登録処理を行い、以後、ステップS301以降の処理が繰り返される。
【0061】
また、
図6Bに示すように、フィードバック情報は、検証用データセットの項目ごとの検証結果を示すものであってもよい。或いは、
図6Cに示すように、検証用データセットごとの精度の指標値(例えば、F値)を示すものであってもよい。
【0062】
一方、検証部12は、動作検証にてエラーが生じていないと判定した場合(ステップS307:NO)、動作検証済み(合格扱い)の機械学習アルゴリズムを、アルゴリズム記憶部52に登録する(ステップS309)。以上により、本フローチャートの処理が完了する。
【0063】
すなわち、検証用データセットは、少なくとも1つの標準形式データセットと、少なくとも一つの拡張形式データセットとを含む。検証部12は、標準形式データセットを用いた動作検証の結果が合格であり、拡張形式データセットを用いた動作検証の結果が不合格である場合、標準形式データセットと拡張形式データセットとのデータ形式の差異から不合格原因を推定する。フィードバック情報生成部13は、推定された不合格原因を含むフィードバック情報を生成する。
【0064】
また、標準形式データセットは、特定のファイル形式、解像度、チャネル数、および色深度で統一された画像データセットであり、拡張形式データセットは、ファイル形式、解像度、チャネル数、色深度、および画像枚数の少なくとも1つが異なる画像データセットか、または、画像の枚数が異なる画像データセットであり、検証部12は、標準形式データセットと拡張形式データセットとの差異を不合格原因として推定するものであってもよい。
【0065】
以上において説明した第2の実施形態の機械学習自動実行システムSによれば、新規の機械学習アルゴリズムを機械学習自動実行システムSに登録するにあたって、最低限の仕様を満たしていることを自動的に検証および確認することが可能となる。また、複数種の検証用データセットを用いて動作検証を行うことで、開発者Dでも網羅的に把握することが困難な新規の機械学習アルゴリズムの実行条件を自動的に検証および管理することが可能となる。すなわち、開発者Dの負担を増やすことなく、新規の機械学習アルゴリズムの現実的なデータセットへの適用可能性を確認することができるという意味で、機械学習アルゴリズムの追加登録が容易になる。
【0066】
尚、他の例として、表形式データの回帰タスクのアルゴリズムを追加する際、標準形式データセットとして、実数値変数のみからなるデータセットを設定したとする。この場合、拡張形式データセットとして、欠損値データを含むもの、カテゴリカル変数を含むもの、テキストデータを含むもの、時刻データを含むもの、あるいはサンプルサイズが異なるデータセット等を設定してもよい。表形式データを対象とする回帰のアルゴリズムは、アルゴリズムの仕様として欠損値が含む場合でもモデルの学習や予測を行うことができるものと、そうでないものが存在する。例えば、ランダムフォレストや勾配ブースティング木は欠損値を含むデータを直接取り扱うことが可能だが、サポートベクターマシンや多層パーセプトロン(MLP)は入力に欠損値が含まれるデータは取り扱えないため、欠損値補完法などを組み合わせて利用する。
【0067】
すなわち、標準形式データセットは、実数値変数のみからなる表形式データセットであり、拡張形式データセットは、カテゴリカル変数、テキストデータ、時刻データ、および欠損値の少なくとも1つを含む表形式データセットか、または、サンプルサイズが異なる表形式データセットである。検証部12は、標準形式データセットと拡張形式データセットとの差異を不合格原因として推定する。
【0068】
拡張形式データセットを設定する際は、拡張形式データセットが標準形式データセットとどのように異なるかを保存しておく。検証結果として、標準形式データセットでエラーが発生せず、拡張形式データセットでエラーが発生した場合、フィードバック情報生成部13は、その差異をエラーの発生要因と推定し、表示部30を通じて開発者Dにフィードバックすることができる。開発者Dは拡張形式データに対しても、アルゴリズムが利用可能となるように、前処理などをアルゴリズムに追加することが可能となる。
【0069】
<第3の実施形態>
以下、第3の実施形態について説明する。第3の実施形態の機械学習自動実行システムSは、動作検証時の処理内容が第1の実施形態と異なる。以下、第1の実施形態との相違点を中心として、第3の実施形態の機械学習自動実行システムSについて説明する。
【0070】
図7は、第3の実施形態に係る機械学習アルゴリズム統合管理装置1に設けられる検証部12Aの機能ブロックの一例を示す図である。
図7に示すように、検証部12Aは、例えば、検証用データ編集部12-1と、メタデータ登録部12-2とを備える。
【0071】
検証用データ編集部12-1は、検証用データセット記憶部51に格納された検証用データセット(データ1,標準形式)を編集して、データ形式の項目の少なくとも1つをデータ1と異ならせたデータを生成する。例えば、検証用データ編集部12-1は、データ1(標準形式,画像サイズが224×224[px]であるjpeg形式のRGB画像データ)を編集して、画像サイズが224×224[px]であるTIFF形式のRGB画像データであるデータ2を生成する。また、検証用データ編集部12-1は、データ1を編集して、画像サイズが不均一であるjpeg形式のRGB画像データであるデータ3を生成する。
【0072】
メタデータ登録部12-2は、上記のような複数種の検証用データを用いた動作検証の結果に基づいて、機械学習実行時に適用すべき前処理を定義したメタデータを、機械学習アルゴリズムと関連付けて、メタデータ記憶部53に登録する。メタデータは、例えば、json形式で表されるものであってよい。
【0073】
[動作検証の処理]
以下、機械学習アルゴリズム統合管理装置1による機械学習アルゴリズムの動作検証の処理の流れについて説明する。
図8は、第3の実施形態に係る機械学習アルゴリズムの動作検証の処理の一例を示すフローチャートである。
【0074】
まず、登録受付部11は、入力インターフェース40を介して開発者Dにより入力された新規の機械学習アルゴリズムの登録を受け付ける(ステップS401)。
【0075】
次に、検証用データ編集部12-1は、検証用データセット記憶部51に格納された検証用データセット(データ1,標準形式)を編集して、データ形式の項目の少なくとも1つをデータ1と異ならせたデータを生成する(ステップS403)。
【0076】
次に、検証部12は、検証用データ編集部12-1により生成された複数種の検証用データセットの内のいずれか1つを用いて、登録受付部11により登録を受け付けた機械学習アルゴリズムを実行して動作検証を行う(ステップS405)。
【0077】
次に、検証部12は、複数種の検証用データセットの全ての動作検証が完了したか否かを判定する(ステップS407)。検証部12は、複数種の検証用データセットの全ての動作検証が完了していないと判定した場合(ステップS407:NO)、複数種の検証用データセットの内の動作検証が未実施のいずれか1つを用いて、登録受付部11により登録を受け付けた機械学習アルゴリズムを実行して動作検証を行い(ステップS405)、以降の処理を繰り返す。
【0078】
検証部12は、複数種の検証用データセットの全ての動作検証が完了したと判定した場合(ステップS407:YES)、複数種の検証用データセットでの動作検証のいずれかにおいてエラーが生じているか否かを判定する(ステップS409)。動作検証にてエラーが生じていると判定された場合(ステップS409:YES)、メタデータ登録部12-2は、複数種の検証用データを用いた動作検証の結果に基づいて、機械学習実行時に適用すべき前処理を定義したメタデータを生成し、メタデータ記憶部53に登録する(ステップS413)。
【0079】
例えば、上記のようなデータ1(標準形式)、データ2(編集済みデータ)、およびデータ3(編集済みデータ)の各々を用いて動作検証を実施し、データ1(標準形式)およびデータ2(編集済みデータ)ではエラーが生じなかったが、データ3(編集済みデータ)ではエラーが生じた場合、メタデータ登録部12-2は、データ1(エラー無し)と、データ3(エラー有り)との差異である、「画像サイズが不均一」という点に基づいて、画像サイズを調整(均一化)する前処理が必要であることを示すメタデータ(ファイル形式の変更は不要であることを示すメタデータ)を生成し、メタデータ記憶部53に登録する。
【0080】
一方、検証部12は、動作検証にてエラーが生じていないと判定した場合(ステップS409:NO)、または、メタデータ登録部12-2によるメタデータの登録が完了した後、動作検証済みの機械学習アルゴリズムを、アルゴリズム記憶部52に登録する(ステップS411)。以上により、本フローチャートの処理が完了する。
【0081】
[学習処理]
次に、機械学習実行装置100による学習処理の流れについて説明する。
図9は、第3の実施形態に係る学習処理の一例を示すフローチャートである。
【0082】
まず、取得部111は、入力インターフェース140介して入力されたユーザUによる機械学習の実行要求を受け付ける(ステップS501)。また、取得部111は、入力インターフェース140介してユーザUによりアップロードされた学習用データセットを取得し、学習用データセット記憶部151に格納する(ステップS503)。
【0083】
次に、取得部111は、受け付けた実行要求に応じて、通信インターフェース120を介して、機械学習アルゴリズム統合管理装置1(アルゴリズム記憶部52、メタデータ記憶部53)から、機械学習の対象となる機械学習アルゴリズムおよびメタデータを取得し、表示制御部115は、取得された機械学習アルゴリズムの一覧を表示部130に表示させる(ステップS505)。表示部130は、取得された機械学習アルゴリズムの一覧を表示し、実行するアルゴリズムをユーザUにより選択させる(ステップS507)。あるいは、表示部130は、機械学習タスクの一覧を表示部130に表示させ、機械学習タスクをユーザUに選択させ、選択された機械学習タスクに対応するアルゴリズム記憶部52に格納された機械学習アルゴリズム1つ以上について、それぞれの機械学習アルゴリズムを用いて、以下のモデルの学習を実行してもよい。
【0084】
次に、前処理部113は、学習制御部112による制御に基づいて、取得部111により取得されたメタデータに基づいて、学習用データセット記憶部151に格納された学習用データセットに前処理を行う(ステップS509)。例えば、機械学習アルゴリズムと関連付けられたメタデータが画像サイズを調整(均一化)する前処理が必要であることを示している場合、前処理部113は、前処理として、学習用データセットに対して、画像サイズの調整(均一化)を行う。
【0085】
尚、拡張形式データセットを標準形式データセットへ変換する前処理は、複数の方法を設定してもよい。例えば、画像認識の機械学習タスクにおいて、長方形画像を正方形画像へ変換する前処理については、アスペクト比を変更する前処理を適用してもよいし、画像をトリミングする処理を行ってもよい。表形式データの回帰タスクにおいて欠損値を補完するタスクにおいては、中央値補完を用いてもよいし、K近傍法を用いて補完してもよいし、多重代入法による補完を行ってもよい。複数の前処理が設定される場合、機械学習実行装置100は、それぞれの処理を実行し、評価結果が良かった方を採用し、表示部130に結果を表示するようにしてもよい。
【0086】
次に、学習部114は、学習制御部112による制御に基づいて、ユーザUにより指定された機械学習アルゴリズムを用いて、前処理部113による前処理済みの学習用データセットに対してモデルの学習を実行する(ステップS511)。この学習で使用される前処理済みの学習用データセットは、画像サイズの調整(均一化)が施されているため、機械学習アルゴリズムの実行時にはエラーが生じない。
【0087】
次に、表示制御部115は、学習部114による機械学習により生成されるモデルの評価結果等の情報を、表示部130に表示させる(ステップS513)。ユーザUは、表示部130を確認することで、モデルの評価結果等の情報を把握することができる。以上により、本フローチャートの処理が完了する。
【0088】
すなわち、検証用データセットは、少なくとも1つの標準形式データセットと、少なくとも一つの拡張形式データセットとを含み、標準形式データセットを用いた動作検証の結果が合格であり、拡張形式データセットを用いた動作検証の結果が不合格である場合、拡張形式データセットの項目について、機械学習実行時に適用すべき前処理としてメタデータ記憶部53に格納するメタデータ登録部12-2と、メタデータ記憶部53を参照して、前処理が必要な学習用データセットを標準形式へ変換する処理を実行する前処理部113と、をさらに備える。
【0089】
以上において説明した第3の実施形態の機械学習自動実行システムSによれば、新規の機械学習アルゴリズムを機械学習自動実行システムSに登録するにあたって、最低限の仕様を満たしていることを自動的に検証および確認することが可能となる。また、機械学習自動実行システムSは、新規の機械学習アルゴリズムを登録する際に開発者Dが把握していなかった機械学習の実行時に必要な前処理を能動的に制御することが可能となる。このため、開発者Dは、実行環境の仕様を細かく意識する必要はなく、機械学習アルゴリズムの登録に係る負担が軽減される。また、余計な前処理が行われることを防ぐことができる。
【0090】
<第4の実施形態>
以下、第4の実施形態について説明する。第4の実施形態の機械学習自動実行システムSは、動作検証時の処理内容が第3の実施形態と異なる。以下、第3の実施形態との相違点を中心として、第4の実施形態の機械学習自動実行システムSについて説明する。
【0091】
検証用データ編集部12-1は、検証用データセット記憶部51に格納された検証用データセット(データ1,標準形式)を編集して、データ構成(正常データおよび異常データの数)をデータ1と異ならせたデータを生成する。例えば、検証用データ編集部12-1は、データ1(画像分類データセット,正常データ500枚,異常データ500枚)を編集して、データ2(画像分類データセット,正常データ5,000枚,異常データ500枚)を生成する。
【0092】
[動作検証の処理]
以下、機械学習アルゴリズム統合管理装置1による機械学習アルゴリズムの動作検証の処理の流れについて説明する。
図10は、第4の実施形態に係る機械学習アルゴリズムの動作検証の処理の一例を示すフローチャートである。
【0093】
まず、登録受付部11は、入力インターフェース40を介して開発者Dにより入力された新規の機械学習アルゴリズムの登録を受け付ける(ステップS601)。
【0094】
次に、検証用データ編集部12-1は、検証用データセット記憶部51に格納された検証用データセット(データ1,標準形式)を編集して、データ構成(正常データおよび異常データの数)をデータ1と異ならせたデータ(正常データと異常データとの数が不均衡であるデータ)を生成する(ステップS603)。
【0095】
次に、検証部12は、検証用データ編集部12-1により生成された複数種の検証用データセットの内のいずれか1つを用いて、登録受付部11により登録を受け付けた機械学習アルゴリズムを実行して動作検証を行う(ステップS605)。
【0096】
次に、検証部12は、複数種の検証用データセットの全ての動作検証が完了したか否かを判定する(ステップS607)。検証部12は、複数種の検証用データセットの全ての動作検証が完了していないと判定した場合(ステップS607:NO)、複数種の検証用データセットの内の動作検証が未実施のいずれか1つを用いて、登録受付部11により登録を受け付けた機械学習アルゴリズムを実行して動作検証を行い(ステップS605)、以降の処理を繰り返す。
【0097】
一方、検証部12は、複数種の検証用データセットの全ての動作検証が完了したと判定した場合(ステップS607:YES)、複数種の検証用データセットでの動作検証における精度(例えば、F値)が所定の閾値よりも低い検証結果が存在しているか否かを判定する(ステップS609)。動作検証にて精度が所定の閾値よりも低い検証結果が存在していると判定された場合(ステップS609:YES)、メタデータ登録部12-2は、複数種の検証用データを用いた動作検証の結果に基づいて、機械学習実行時に適用すべき前処理を定義したメタデータを生成し、メタデータ記憶部53に登録する(ステップS613)。
【0098】
例えば、上記のようなデータ1(標準形式)およびデータ2(編集済みデータ)の各々を用いて動作検証を実施し、データ1(標準形式)の精度は所定の閾値を超えているが、データ2(編集済みデータ)の精度は所定の閾値よりも低い場合、メタデータ登録部12-2は、データ1と、データ2との差異である、「正常データと異常データとの数が不均衡であるデータ」という点に基づいて、データ構成を均衡にする前処理が必要であることを示すメタデータを生成し、メタデータ記憶部53に登録する。このように、不均衡なデータセットを取り扱うことが想定されていない機械学習アルゴリズムでは、予測精度が著しく低下してしまう場合がある。このような場合、データ構成を均衡にする前処理を設定することで、機械学習実行装置100では、アンダーサンプリングで正常データを間引きする前処理を追加することでこの問題を解決し、アルゴリズム開発者の修正の手間を削減できる。
【0099】
一方、検証部12は、動作検証にて精度が所定の閾値よりも低い検証結果が存在していないと判定した場合(ステップS609:NO)、または、メタデータ登録部12-2によるメタデータの登録が完了した後、動作検証済みの機械学習アルゴリズムを、アルゴリズム記憶部52に登録する(ステップS611)。以上により、本フローチャートの処理が完了する。この後に実行される学習処理では、メタデータに基づいて、学習用データのデータ構成を均衡にする前処理が実行される。これにより、精度の低下を回避した上で、適切な学習処理を行うことが可能となる。
【0100】
すなわち、検証用データセットは、少なくとも1つの標準形式データセットと、少なくとも1つの拡張形式データセットとを含み、検証部12は、機械学習アルゴリズムを実行してモデル学習の精度試験を実行し、標準形式データセットを用いた精度試験の結果が精度基準を満たし、拡張形式データセットを用いた精度試験の結果が精度基準を満たさない場合は、標準形式データセットと拡張形式データセットとのデータ性質の差異から不合格原因を推定し、フィードバック情報生成部13は、推定された不合格原因を含むフィードバック情報を生成する。
【0101】
また、標準形式データセットは、正規化された輝度値のみからなる画像データを入力とし、目的変数となる値やラベルに偏りを持たない画像データセットであり、拡張形式データセットは、入力画像にはずれ値を含むもの、目的変数に値やラベルの偏りを含むもの、画像枚数の異なるもののいずれかであり、検証部12は、標準形式データセットと拡張形式データセットとの差異を不合格原因として推定する。
【0102】
また、標準形式データセットは、正規化された実数値変数のみからなり、目的変数となる値やラベルに偏りを持たない表形式データセットであり、拡張形式データセットは、説明変数にはずれ値を含むもの、目的変数に値やラベルの偏りを含むもの、サンプルサイズの異なるもののいずれかであり、検証部12は、標準形式データセットと拡張形式データセットとの差異を不合格原因として推定する。
【0103】
また、検証用データセットは、少なくとも1つの標準形式データセットと、少なくとも1つの拡張形式データセットとを含み、検証部12は、機械学習アルゴリズムを実行してモデル学習の精度試験を実行し、標準形式データセットを用いた精度試験の結果が精度基準を満たし、拡張形式データセットを用いた精度試験の結果が精度基準を満たさない場合、拡張形式データセットの項目について、機械学習実行時に適用すべき前処理としてメタデータ記憶部53に格納するメタデータ登録部12-2と、メタデータ記憶部53を参照して、前処理が必要なデータセットを標準形式へ変換する処理を実行する前処理部113とをさらに備える。
【0104】
以上において説明した第4の実施形態の機械学習自動実行システムSによれば、新規の機械学習アルゴリズムを機械学習自動実行システムSに登録するにあたって、最低限の仕様を満たしていることを自動的に検証および確認することが可能となる。また、機械学習自動実行システムSは、新規の機械学習アルゴリズムを登録する際に開発者Dが把握していなかった機械学習の実行時に必要な前処理を能動的に制御することが可能となる。このため、開発者Dは、実行環境の仕様を細かく意識する必要はなく、機械学習アルゴリズムの登録に係る負担が軽減される。また、余計な前処理が行われることを防ぐことができる。
【0105】
<第5の実施形態>
以下、第5の実施形態について説明する。第5の実施形態の機械学習自動実行システムSは、動作検証時の処理内容が第1の実施形態と異なる。以下、第1の実施形態との相違点を中心として、第5の実施形態の機械学習自動実行システムSについて説明する。
【0106】
第5の実施形態の機械学習自動実行システムSにおいて、機械学習アルゴリズム統合管理装置1のフィードバック情報生成部13は、エラーが生じている旨を通知するためのフィードバック情報に代えて或いは加えて、既存の機械学習アルゴリズムの動作検証の結果と、新規の機械学習アルゴリズムの動作検証の結果との比較を、開発者Dに提示する比較結果情報を生成する。表示制御部14は、比較結果情報を表示部30に表示させる。
【0107】
図11は、第5の実施形態に係る検証結果比較画面の一例を示す図である。
図11に示すように、「精度」、「実行時間」、「GPU使用メモリ」に関して、既存の機械学習アルゴリズム(A,B)の動作検証の結果と、新規の機械学習アルゴリズムの動作検証の結果との比較が提示される。開発者Dは、このような検証結果比較画面を確認した上で、新規の機械学習アルゴリズムの有効性を判断し、登録するか否かを判定することができる。
【0108】
上記のように、機械学習アルゴリズム統合管理装置1は、一つの機械学習タスクに対して、複数の機械学習アルゴリズムの登録を可能にしてもよい。開発者Dが新しいアルゴリズムを登録する際、同種の機械学習タスクに対する他のアルゴリズムが登録されている場合は、そのアルゴリズムに対しても検証を実施し、結果を比較できるようにしてもよい。また、検証結果は、記憶部50に保存しておき、既に検証結果が保存されている場合は、その結果を用いてもよい。
【0109】
また、他のアルゴリズムの検証結果との比較に関して、精度や実行時間、計算資源等に関する1つ以上の基準を設け、基準を満たす場合にのみ新規の機械学習アルゴリズムを登録できるようにしてもよい。また、他のアルゴリズムの検証結果との比較に関して、精度や実行時間、計算資源等の情報を開発者Dに提示し、新規の機械学習アルゴリズムを登録するか否かをアルゴリズム開発者に選択させてよい。
【0110】
すなわち、検証部12は、精度、実行時間、および計算資源のうちの少なくとも1つについて、機械学習アルゴリズムの動作検証の結果と、同種の他の機械学習アルゴリズムの動作検証の結果とを比較する。
【0111】
以上において説明した第5の実施形態の機械学習自動実行システムSによれば、新規の機械学習アルゴリズムを機械学習自動実行システムSに登録するにあたって、最低限の仕様を満たしていることを自動的に検証および確認することが可能となる。また、検証結果比較画面を開発者Dに提示することで、新規の機械学習アルゴリズムの有効性を判断し、登録するか否かを判定することができる。すなわち、新規の機械学習アルゴリズムを登録するか否かを他のアルゴリズムとの相対評価で決定することが可能となる。このことは、新規の機械学習アルゴリズムを開発したアルゴリズム開発者が当該アルゴリズムを機械学習アルゴリズム統合機械学習自動実行システムSに登録するか否かの意思決定を支援したり、相対的に性能を期待できないアルゴリズムがいたずらに登録されることを防いだりすることを可能にする。
【0112】
<第6の実施形態>
以下、第6の実施形態について説明する。第6の実施形態の機械学習自動実行システムSでは、第3の実施形態の機械学習自動実行システムSと同様の構成を有する。第6の実施形態の機械学習自動実行システムSでは、動作検証時に、エラーとなった検証用データセットを標準化して再度の動作検証を行うことで、エラーの解消方法(メタデータの内容)を開発者Dに提示する点が、第3の実施形態と異なる。以下、第3の実施形態との相違点を中心として、第6の実施形態の機械学習自動実行システムSについて説明する。
【0113】
[動作検証の処理]
以下、機械学習アルゴリズム統合管理装置1による機械学習アルゴリズムの動作検証の処理の流れについて説明する。
図12は、第6の実施形態に係る機械学習アルゴリズムの動作検証の処理の一例を示すフローチャートである。尚、検証用データセット記憶部51には、
図4に示すようなデータ1(標準形式)およびデータ3(拡張形式2)が格納されている場合を例に挙げて説明する。
【0114】
まず、登録受付部11は、入力インターフェース40を介して開発者Dにより入力された新規の機械学習アルゴリズムの登録を受け付ける(ステップS701)。
【0115】
次に、検証部12は、検証用データセット記憶部51に格納された複数種の検証用データセットの内のいずれか1つを用いて、登録受付部11により登録を受け付けた機械学習アルゴリズムを実行して動作検証を行う(ステップS703)。
【0116】
次に、検証部12は、動作検証の結果、エラーが生じているか否かを判定する(ステップS705)。検証部12により動作検証にてエラーが生じていると判定された場合(ステップS705:YES)、検証用データ編集部12-1は、エラーとなった検証用データセットを標準化し(ステップS713)、再度の動作検証を行う(ステップS703)。標準化とは、データ形式を、所定の標準形式に変えることである。例えば、データ3(拡張形式2)がエラーとなった場合、検証用データ編集部12-1は、データ3を標準形式とするために、画像サイズを統一する(標準化する)。
【0117】
次に、検証部12は、検証用データセット記憶部51に格納された全検証用データセットでの動作検証が完了したか否かを判定する(ステップS707)。検証部12は、全検証用データセットでの動作検証が完了していないと判定した場合(ステップS707:NO)、検証用データセット記憶部51に格納された複数種の検証用データセットの内の動作検証が未実施のいずれか1つを用いて、登録受付部11により登録を受け付けた機械学習アルゴリズムを実行して動作検証を行い(ステップS703)、以降の処理を繰り返す。
【0118】
一方、検証部12は、検証用データセット記憶部51に格納された全検証用データセットでの動作検証が完了したと判定した場合(ステップS707:YES)、複数種の検証用データセットでの動作検証のいずれかにおいてエラーが生じているか否かを判定する(ステップS709)。動作検証にてエラーが生じていると判定された場合(ステップS709:YES)、フィードバック情報生成部13は、フィードバック情報を生成する(ステップS715)。次に、表示制御部14は、フィードバック情報生成部13により生成されたフィードバック情報を、表示部30に表示させる(ステップS717)。開発者Dが、フィードバック情報を確認して登録を許可する指示を入力した場合、メタデータ登録部12-2は、機械学習実行時に適用すべき前処理を定義したメタデータを生成し、メタデータ記憶部53に登録する(ステップS719)。
【0119】
例えば、動作検証において、データ3(拡張形式2)がエラーとなり、データ3を標準化(画像サイズを統一する)した結果としてエラーが解消された場合、フィードバック情報には、例えば、「画像サイズが不均一なデータではエラーになりましたが、標準化することで対応可能です」といった、エラーの解消方法を示す内容が示される。
【0120】
一方、動作検証にてエラーが生じていないと判定された場合(ステップS709:NO)、或いは、メタデータの登録が完了した場合、検証部12は、動作検証済みの機械学習アルゴリズムを、アルゴリズム記憶部52に登録する(ステップS711)。以上により、本フローチャートの処理が完了する。
【0121】
尚、拡張形式データセットでの実行に問題がなかった場合についても、検証用データ編集部12-1が拡張形式を標準形式データセットに変換する処理を行い、その場合の結果を表示部30に表示してもよい。これにより、一律で前処理を適用することによる副作用を確認できる。また、「前処理を行わなくても機能的には問題ないが、前処理を行う方が性能は向上する」という検証結果になった場合、その機械学習アルゴリズムはその前処理が必要という扱いにしてもよい。
【0122】
すなわち、拡張形式データセットを標準形式データセットの形式へ変換する標準化処理を行う検証用データ編集部12-1をさらに備え、検証部12は、標準化されたデータセットを用いて動作検証を行う。
【0123】
以上において説明した第6の実施形態の機械学習自動実行システムSによれば、新規の機械学習アルゴリズムを機械学習自動実行システムSに登録するにあたって、最低限の仕様を満たしていることを自動的に検証および確認することが可能となる。さらに、標準化によるエラー解消手段(前処理の内容)を開発者Dに提示して確認させることができる。これにより、開発者Dが意図していない前処理が勝手に実施されないかを確認することができる。
【0124】
<第7の実施形態>
以下、第7の実施形態について説明する。第7の実施形態の機械学習自動実行システムSは、第3の実施形態の機械学習自動実行システムSと同様の構成を有する。第7の実施形態の機械学習自動実行システムSでは、動作検証時に、コンピュータリソース(CPU,GPU等)のパターン(以下「検証リソースパターン」)を変えて検証する点が第3の実施形態と異なる。以下、第3の実施形態との相違点を中心として、第7の実施形態の機械学習自動実行システムSについて説明する。
【0125】
[動作検証の処理]
以下、機械学習アルゴリズム統合管理装置1による機械学習アルゴリズムの動作検証の処理の流れについて説明する。
図13は、第7の実施形態に係る機械学習アルゴリズムの動作検証の処理の一例を示すフローチャートである。
【0126】
まず、登録受付部11は、入力インターフェース40を介して開発者Dにより入力された新規の機械学習アルゴリズムの登録を受け付ける(ステップS801)。
【0127】
次に、検証部12は、予め定義された複数の検証リソースパターンの内のいずれか1つを用いて、登録受付部11により登録を受け付けた機械学習アルゴリズムを実行して動作検証を行う(ステップS803)。例えば、検証部12は、検証リソースパターン1(2CPU)を用いて、動作検証を行う。
【0128】
次に、検証部12は、複数の検証リソースパターンの全ての動作検証が完了したか否かを判定する(ステップS805)。検証部12は、複数の検証リソースパターンの全ての動作検証が完了していないと判定した場合(ステップS805:NO)、複数の検証リソースパターンの内の動作検証が未実施のいずれか1つを用いて、登録受付部11により登録を受け付けた機械学習アルゴリズムを実行して動作検証を行い(ステップS803)、以降の処理を繰り返す。例えば、検証部12は、検証リソースパターン2(2CPUと1GPUとの組み合わせ)を用いて、動作検証を行う。
【0129】
一方、検証部12により複数の検証リソースパターンの全ての動作検証が完了したと判定された場合(ステップS805:YES)、メタデータ登録部12-2は、複数の検証リソースパターンでの動作検証の結果に基づいて、機械学習実行時に適用すべきリソース条件を定義したメタデータを生成し、メタデータ記憶部53に登録する(ステップS807)。
【0130】
例えば、検証リソースパターン1(2CPU)での動作検証の処理に4時間を要し、検証リソースパターン2(2CPUと1GPUとの組み合わせ)での動作検証の処理に1時間を要した場合、メタデータには、機械学習の実行環境のリソース状況に応じて、検証リソースパターン1または検証リソースパターン2を選択する旨の内容が記載される。
【0131】
次に、検証部12は、動作検証済みの機械学習アルゴリズムを、アルゴリズム記憶部52に登録する(ステップS809)。以上により、本フローチャートの処理が完了する。
【0132】
上記のように、例えば、計算リソースと計算時間に着目し、ある検証用データセットについて、CPUのみを学習してモデル学習を行った場合と、CPUとGPUを利用してモデルを学習した場合と、について計算時間がメタデータ記憶部53に記録してある状況を想定する。深層学習などのAIアルゴリズムは、GPUを利用することで処理時間を短縮できることが知られているが、GPUはCPUと比較して高価なハードウェアであるため、常にGPUを利用するべきとは限らない。学習制御部112がリソースを設定する方法としては複数の方法が考えられる。例えば、単位時間あたりの利用コストを計算し、CPUのみでモデルを学習する場合と、CPUとGPUでモデルを学習する場合と、でどちらがコストパフォーマンスにすぐれるかを計算し、選択するようにしてもよい。また、どちらか片方を重視する場合、例えば、多少割高でも早く学習を終えられるようにしたい場合、重みづけを含むコスト関数を設定し、その出力を元に計算リソースを決定させてもよい。例えば、コスト関数Jは以下の式(1)ように定義できる。
【0133】
J=CPU使用数×CPU使用時間×単位時間あたり1CPU使用コスト
+GPU使用数×GPU使用時間×単位時間あたり1GPU使用コスト・・式(1)
【0134】
機械学習実行環境では複数のユーザがモデル学習を行うため、学習装置が備えたGPUが他のユーザによって占有されている可能性がある。そのような場合、アルゴリズムがCPUだけでの実行にも対応できるなら、CPUだけでのモデル学習を実行することも考えられる。
【0135】
また、機械学習アルゴリズムの実行条件や設定としてバリエーションが考えらえる場合、複数のパターンについて動作検証が行われてもよい。機械学習アルゴリズムのハイパーパラメータ、例えば、機械学習のモデル構造を決定するパラメータや、モデル学習を制御するためのパラメータとして定義域が与えられる場合には、パラメータとして最大の値を選択した場合や最小の値を選択した場合について検証を行ってもよい。
【0136】
すなわち、検証部12は、少なくとも1つのコンピューティングリソースの割り当てパターンで機械学習アルゴリズムを実行し、第1の表示制御部(表示制御部14)は、実行の成否、処理速度、および使用メモリ量を含むフィードバック情報を表示させる。また、検証部12は、複数のコンピューティングリソースの割り当てパターンで機械学習アルゴリズムを実行し、制御部(学習制御部112)は、検証部12による複数のコンピューティングリソースの割り当てパターンでの動作検証の結果に基づいて、機械学習実行時のリソースを割り当てる。
【0137】
以上において説明した第7の実施形態の機械学習自動実行システムSによれば、新規の機械学習アルゴリズムを機械学習自動実行システムSに登録するにあたって、最低限の仕様を満たしていることを自動的に検証および確認することが可能となる。また、複数の検証用リソースパターンを用いて動作検証を行うことで、開発者でも網羅的に把握することが困難な新規の機械学習アルゴリズムの実行条件を自動的に検証および管理することが可能となる。例えば、計算リソースとして必要なCPUやGPUに関しても、開発者Dが事前の検証および評価を行い、実行時に実態に即して調整を行う手間が削減される。
【0138】
<第8の実施形態>
以下、第8の実施形態について説明する。第8の実施形態の機械学習自動実行システムSは、第3の実施形態の機械学習自動実行システムSと同様の構成を有する。第8の実施形態の機械学習自動実行システムSでは、動作検証時に、使用メモリサイズを測定する点が第3の実施形態と異なる。以下、第3の実施形態との相違点を中心として、第8の実施形態の機械学習自動実行システムSについて説明する。
【0139】
[動作検証の処理]
以下、機械学習アルゴリズム統合管理装置1による機械学習アルゴリズムの動作検証の処理の流れについて説明する。
図14は、第8の実施形態に係る機械学習アルゴリズムの動作検証の処理の一例を示すフローチャートである。尚、検証用データセット記憶部51には、検証パターン1(画像分類データセット,正常データ500枚,異常データ500枚)と、検証パターン2(画像分類データセット,正常データ500枚,異常データ5,000枚)との、データ構成が異なる2つの検証用データセットが格納されている場合を例に挙げて説明する。
【0140】
まず、登録受付部11は、入力インターフェース40を介して開発者Dにより入力された新規の機械学習アルゴリズムの登録を受け付ける(ステップS901)。
【0141】
次に、検証部12は、複数の検証パターンの内のいずれか1つの検証パターン(例えば、検証パターン1)の検証用データセットを用いて、十分な量のメモリ(例えば、256GB)を割り当てて、登録受付部11により登録を受け付けた機械学習アルゴリズムを実行して動作検証を行う(ステップS903)。
【0142】
次に、検証部12は、複数の検証パターンの全ての動作検証が完了したか否かを判定する(ステップS905)。検証部12は、複数の検証パターンの全ての動作検証が完了していないと判定した場合(ステップS905:NO)、複数の検証パターンの内の動作検証が未実施のいずれか1つを用いて、登録受付部11により登録を受け付けた機械学習アルゴリズムを実行して動作検証を行い(ステップS903)、以降の処理を繰り返す。例えば、検証部12は、検証パターン2の検証用データセットを用いて、動作検証を行う。
【0143】
検証部12により複数の検証パターンの全ての動作検証が完了したと判定された場合(ステップS905:YES)、メタデータ登録部12-2は、複数の検証パターンでの動作検証の結果に基づいて、機械学習実行時に適用すべきメモリ使用量に関する条件を定義したメタデータを生成し、メタデータ記憶部53に登録する(ステップS907)。
【0144】
例えば、検証パターン1での動作検証での最大使用メモリが11.2GBであり、検証パターン2での動作検証での最大使用メモリが11.3GBである場合、メタデータには、機械学習に対する割り当てメモリとして「12GB」とする内容が記載される。
【0145】
次に、検証部12は、動作検証済みの機械学習アルゴリズムを、アルゴリズム記憶部52に登録する(ステップS909)。以上により、本フローチャートの処理が完了する。
【0146】
上記のように、検証部12での検証では十分多くのメモリを割り当て、アルゴリズムを実行する際に利用されたメモリ使用量を記録しておく。機械学習実行装置100の学習部114は、検証で利用されたメモリ使用量よりも少し大きいメモリを割り当てて実行することで、実行に必要なメモリを割り当てると同時に、過大なメモリを割り当てることを防ぎ、システム全体としてメモリを効率的に利用することができるようになる。
【0147】
アルゴリズムを実行する際に利用するメモリはデータセットのサイズに依存することがある。そのような場合に対応するため、検証部12はサイズの異なる複数のデータセットで検証を行い、利用されたメモリを記録する。機械学習実行装置100は、その結果の最大の使用メモリサイズより大きい値をモデル学習の際に割り当てるようにしてもよい。また、データセットのサイズと使用メモリ量について、近似直線や近似曲線をフィッティングさせ、データセットのサイズから使用メモリ量を推定できるようにしてもよい。その場合、機械学習実行装置100にユーザUが設定したデータセットに応じて、必要なメモリ量を推定し、それを割り当ててモデル学習を行う。
【0148】
以上において説明した第8の実施形態の機械学習自動実行システムSによれば、新規の機械学習アルゴリズムを機械学習自動実行システムSに登録するにあたって、最低限の仕様を満たしていることを自動的に検証および確認することが可能となる。また、複数の検証用パターンを用いて動作検証を行うことで、開発者でも網羅的に把握することが困難な新規の機械学習アルゴリズムの実行条件を自動的に検証および管理することが可能となる。すなわち、計算リソースとして必要なメモリに関しても、開発者Dが事前の検証および評価を行い、実行時に実態に即して調整を行う手間が削減される。
【0149】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0150】
1…機械学習アルゴリズム統合管理装置、10…制御部、11…登録受付部、12…検証部、12-1…検証用データ編集部、12-2…メタデータ登録部、13…フィードバック情報生成部、14…表示制御部、20…通信インターフェース、30…表示部、40…入力インターフェース、50…記憶部、51…検証用データセット記憶部、52…アルゴリズム記憶部、53…メタデータ記憶部、100…機械学習実行装置、110…制御部、111…取得部、112…学習制御部、113…前処理部、114…学習部、115…表示制御部、120…通信インターフェース、130…表示部、140…入力インターフェース、150…記憶部、151…学習用データセット記憶部、152…評価結果記憶部、S…機械学習自動実行システム