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

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

▶ 窪田 望の特許一覧

<>
  • 特許-機械学習における分散学習 図1
  • 特許-機械学習における分散学習 図2
  • 特許-機械学習における分散学習 図3
  • 特許-機械学習における分散学習 図4
  • 特許-機械学習における分散学習 図5
  • 特許-機械学習における分散学習 図6
  • 特許-機械学習における分散学習 図7
  • 特許-機械学習における分散学習 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-12-22
(45)【発行日】2023-01-05
(54)【発明の名称】機械学習における分散学習
(51)【国際特許分類】
   G06N 20/00 20190101AFI20221223BHJP
【FI】
G06N20/00
G06N20/00 130
【請求項の数】 9
(21)【出願番号】P 2021204794
(22)【出願日】2021-12-17
【審査請求日】2021-12-17
【早期審査対象出願】
(73)【特許権者】
【識別番号】520040304
【氏名又は名称】窪田 望
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】窪田 望
【審査官】関口 明紀
(56)【参考文献】
【文献】国際公開第2021/205828(WO,A1)
【文献】特開2016-218869(JP,A)
【文献】特開2018-159992(JP,A)
【文献】特開2019-003408(JP,A)
【文献】WEI, Y., et al.,Meta-learning Hyperparameter Performance Prediction with Neural Processes,Proceedings of the 38th International Conference on Machine Learning,PMLR Vol. 139,2021年07月18日,pp. 11058-11067,[retrieved on 2022-03-15], Retrieved from the Internet: <URL: https://proceedings.mlr.press/v139/wei21c.html>
【文献】GUPTA, S., et al.,Model Accuracy and Runtime Tradeoff in Distributed Deep Learning: A Systematic Study,2016 IEEE 16th International Conference on Data Mining (ICDM) [online],2016年12月12日,pp. 171-180,[retrieved on 2022-06-24], Retrieved from the Internet: <URL: https://ieeexplore.ieee.org/abstract/document/7837841>,<DOI: 10.1109/ICDM.2016.0028>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
所定の学習モデルを記憶する記憶装置とプロセッサとを有する情報処理装置により実行される情報処理方法であって、
前記プロセッサは、
1又は複数のデータセットに対して、並列して学習されるインスタンス数及びハイパーパラメータが任意に変更されたそれぞれの組み合わせで、前記所定の学習モデルを用いて他の各情報処理装置に機械学習を行わせること、
前記各情報処理装置から、前記それぞれの組み合わせに対応する学習性能を取得すること、
前記それぞれの組み合わせと、前記それぞれの組み合わせに対応する学習性能とを含む学習データを用いて教師あり学習を行うこと、
前記教師あり学習により、インスタンス数及びハイパーパラメータの組み合わせごとに、学習性能を予測する予測モデルを生成すること、
を実行する、情報処理方法。
【請求項2】
前記プロセッサは、
所定のデータセットを前記予測モデルに入力し、前記所定の学習モデルの機械学習を実行した場合の学習性能を、前記組み合わせごとに予測することを実行する、請求項1に記載の情報処理方法。
【請求項3】
前記取得することは、
前記学習性能とともに学習時間を取得すること、
前記教師あり学習を行うことは、
前記それぞれの組み合わせと、前記それぞれの組み合わせに対応する学習性能及び学習時間とを含む学習データを用いて教師あり学習を行うことを含み、
前記予測モデルを生成することは、
前記教師あり学習により、インスタンス数及びハイパーパラメータの組み合わせごとに、学習性能及び学習時間を予測する予測モデルを生成することを含む、請求項1に記載の情報処理方法。
【請求項4】
前記プロセッサは、
所定のデータセットを前記予測モデルに入力し、前記所定の学習モデルの機械学習を実行した場合の学習性能及び学習時間を、前記それぞれの組み合わせについて予測することを含む、請求項3に記載の情報処理方法。
【請求項5】
前記プロセッサは、
前記学習性能を第1変数、前記学習時間を第2変数とし、前記第1変数及び前記第2変数と、前記インスタンス数及び前記ハイパーパラメータとを対応付ける関係情報を生成すること、
を実行する請求項3又は4に記載の情報処理方法。
【請求項6】
前記プロセッサは、
前記第1変数の第1値及び前記第2変数の第2値を取得すること、
前記関係情報に基づいて、前記第1値及び前記第2値に対応するインスタンス数及びハイパーパラメータを特定すること、
を実行する請求項5に記載の情報処理方法。
【請求項7】
前記プロセッサは、
特定された前記インスタンス数及び前記ハイパーパラメータを表示装置に表示制御することを実行する請求項6に記載の情報処理方法。
【請求項8】
記憶装置とプロセッサとを有する情報処理装置であって、
前記記憶装置は、
所定の学習モデルを記憶し、
前記プロセッサは、
1又は複数のデータセットに対して、並列して学習されるインスタンス数及びハイパーパラメータが任意に変更されたそれぞれの組み合わせで、前記所定の学習モデルを用いて他の各情報処理装置に機械学習を行わせること、
前記各情報処理装置から、前記それぞれの組み合わせに対応する学習性能を取得すること、
前記それぞれの組み合わせと、前記それぞれの組み合わせに対応する学習性能とを含む学習データを用いて教師あり学習を行うこと、
前記教師あり学習により、インスタンス数及びハイパーパラメータの組み合わせごとに、学習性能を予測する予測モデルを生成すること、
を実行する、情報処理装置。
【請求項9】
所定の学習モデルを記憶する記憶装置とプロセッサとを有する情報処理装置の前記プロセッサに、
1又は複数のデータセットに対して、並列して学習されるインスタンス数及びハイパーパラメータが任意に変更されたそれぞれの組み合わせで、前記所定の学習モデルを用いて他の各情報処理装置に機械学習を行わせること、
前記各情報処理装置から、前記それぞれの組み合わせに対応する学習性能を取得すること、
前記それぞれの組み合わせと、前記それぞれの組み合わせに対応する学習性能とを含む学習データを用いて教師あり学習を行うこと、
前記教師あり学習により、インスタンス数及びハイパーパラメータの組み合わせごとに、学習性能を予測する予測モデルを生成すること、
を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習における分散学習を実行するための情報処理方法、情報処理装置及びプログラムに関する。
【背景技術】
【0002】
近年、いわゆる人工知能を様々な問題に応用する試みがなされている。例えば、下記特許文献1には、様々な現実的な事象における問題の解決に用いることを目的としたモデル選択装置が記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2019-220063号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、機械学習を行う際に、処理時間を軽減させるために例えばタスクを分散して並列処理することが行われうる。これにより、機械学習を負荷分散させることで、予測結果をより早く出力することができるようになる。
【0005】
しかしながら、機械学習を分散して学習を行わせる分散学習では、分散学習させる際に、ハイパーパラメータを調整する必要がある。その際、分散学習を行っても、ハイパーパラメータの調整が異なるだけで、予測結果が大きく変わってしまうことが発明者の実験により分かってきた。例えば、ハイパーパラメータの1つであるweight decay(荷重衰退)の設定を変えるだけでも、精度や頑健性が変わってしまう。
【0006】
そこで、本発明は、所定のデータセットに対して適切な分散インスタンス数又はハイパーパラメータを特定可能な新たな仕組みを提供する。
【課題を解決するための手段】
【0007】
本発明の一態様に係る情報処理方法は、所定の学習モデルを記憶する記憶装置とプロセッサとを有する情報処理装置により実行される情報処理方法であって、前記プロセッサは、1又は複数のデータセットに対して、並列して学習されるインスタンス数及び/又はハイパーパラメータが任意に変更されたそれぞれの組み合わせで、前記所定の学習モデルを用いて他の各情報処理装置に機械学習を行わせること、前記各情報処理装置から、前記それぞれの組み合わせに対応する学習性能を取得すること、前記それぞれの組み合わせと、前記それぞれの組み合わせに対応する学習性能とを含む学習データを用いて教師あり学習を行うこと、前記教師あり学習により、インスタンス数及び/又はハイパーパラメータの組み合わせごとに、学習性能を予測する予測モデルを生成すること、を実行する。
【発明の効果】
【0008】
本発明によれば、所定のデータセットに対して適切な分散インスタンス数又はハイパーパラメータを特定可能な新たな仕組みを提供することができる。
【図面の簡単な説明】
【0009】
図1】実施形態に係るシステム構成の一例を示す図である。
図2】実施形態に係る情報処理装置の物理的構成の一例を示す図である。
図3】実施形態に係るサーバ装置の処理ブロックの一例を示す図である。
図4】実施形態に係る情報処理装置の処理ブロックの一例を示す図である。
図5】実施形態に係る関係情報の一例を示す図である。
図6】実施形態に係る関係情報の表示例を示す図である。
図7】実施形態に係るサーバ及び各情報処理装置の処理例を示すシーケンス図である。
図8】実施形態に係るサーバの関係情報の利用に関する処理例を示すフローチャートである。
【発明を実施するための形態】
【0010】
添付図面を参照して、本発明の実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
【0011】
<システム構成>
図1は、実施形態に係るシステム構成の一例を示す図である。図1に示す例では、サーバ10と、各情報処理装置20A、20B、20C、20Dとが、ネットワークを介してデータ送受信可能なように接続される。情報処理装置を個別に区別しない場合は情報処理装置20とも表記する。
【0012】
サーバ10は、データを収集、分析可能な情報処理装置であり、1つ又は複数の情報処理装置から構成されてもよい。情報処理装置20は、スマートフォン、パーソナルコンピュータ、タブレット端末、サーバ、コネクティッドカーなど、機械学習を実行可能な情報処理装置である。なお、情報処理装置20は、脳波をセンシングする侵襲型又は非侵襲型の電極に直接的又は間接的に接続されており、脳波データを解析、送受信可能な装置でもよい。
【0013】
図1に示すシステムでは、サーバ10は、所定の機械学習に対する分散学習を制御する。例えば、サーバ10は、所定の機械学習を行う際に、ミニバッチを複数の情報処理装置に分散するデータ並列、又は、1つのモデルを複数の情報処理装置に分散するモデル並列のいずれかを行って分散させる。
【0014】
ここで、分散学習の場合、従来はエンジニアがハイパーパラメータ調整や分散インスタンス数の決定を行っており、実験してみないと結果がどうなるのかわからなかった。時間をかけて分散学習を行っても、結果が良くない場合は、ハイパーパラメータが調整されたり、分散インスタンス数が変更されたりした後に再度実験が行われ、非効率であった。
【0015】
そこで、サーバ10は、事前に任意のデータセットに対して分散学習を行い、各情報処理装置20から取得した学習性能又は学習時間(各学習時間の最大値など)を、学習時の分散インスタンス数及び/又はハイパーパラメータの組にラベル付けしておく。次に、サーバ10は、分散インスタンス数及び/又はハイパーパラメータの組と、学習性能及び/又は学習時間とを含む学習データとする教師あり学習を行う。この教師あり学習の結果、所定のデータセットに対して、分散インスタンス数及び/又はハイパーパラメータの組ごとに、学習性能又は学習時間を予測する予測モデルが生成される。
【0016】
これにより、分散学習の際に、エンジニアが実験してみてハイパーパラメータや分散インスタンス数を調整する必要がなくなり、所定のデータセットに対して、所望の学習性能又は学習時間に対応する分散インスタンス数及び/又はハイパーパラメータを特定することができる。以下、本実施形態の各装置の構成について説明する。
【0017】
<ハードウェア構成>
図2は、実施形態に係る情報処理装置10の物理的構成の一例を示す図である。情報処理装置10は、演算部に相当するCPU(Central Processing Unit)10aと、記憶部に相当するRAM(Random Access Memory)10bと、記憶部に相当するROM(Read only Memory)10cと、通信部10dと、入力部10eと、表示部10fと、を有する。これらの各構成は、バスを介して相互にデータ送受信可能に接続される。
【0018】
本実施形態では、情報処理装置10が一台のコンピュータで構成される場合について説明するが、情報処理装置10は、複数のコンピュータ又は複数の演算部が組み合わされて実現されてもよい。また、図1で示す構成は一例であり、情報処理装置10はこれら以外の構成を有してもよいし、これらの構成のうち一部を有さなくてもよい。
【0019】
CPU10aは、プロセッサの一例であり、RAM10b又はROM10cに記憶されたプログラムの実行に関する制御やデータの演算、加工を行う制御部である。CPU10aは、例えば、所定の学習モデルを用いて学習を行うプログラム(学習プログラム)を実行する演算部である。CPU10aは、入力部10eや通信部10dから種々のデータを受け取り、データの演算結果を表示部10fに表示したり、RAM10bに格納したりする。
【0020】
RAM10bは、記憶部のうちデータの書き換えが可能なものであり、例えば半導体記憶素子で構成されてよい。RAM10bは、CPU10aが実行するプログラム、各学習モデル(予測モデル、分散学習用の学習モデルなど)、各学習モデルのパラメータに関するデータ、学習対象データの特徴量に関するデータなどを記憶してもよい。なお、これらは例示であって、RAM10bには、これら以外のデータが記憶されていてもよいし、これらの一部が記憶されていなくてもよい。
【0021】
ROM10cは、記憶部のうちデータの読み出しが可能なものであり、例えば半導体記憶素子で構成されてよい。ROM10cは、例えば学習プログラムや、書き換えが行われないデータを記憶してよい。
【0022】
通信部10dは、情報処理装置10を他の機器に接続するインターフェースである。通信部10dは、インターネット等の通信ネットワークに接続されてよい。
【0023】
入力部10eは、ユーザからデータの入力を受け付けるものであり、例えば、キーボード及びタッチパネルを含んでよい。
【0024】
表示部10fは、CPU10aによる演算結果を視覚的に表示するものであり、例えば、LCD(Liquid Crystal Display)により構成されてよい。表示部10fが演算結果を表示することは、XAI(eXplainable AI:説明可能なAI)に貢献し得る。表示部10fは、例えば、学習結果や、学習に関連するデータを表示してもよい。
【0025】
学習プログラムは、RAM10bやROM10c等のコンピュータによって読み取り可能な非一時的な記憶媒体に記憶されて提供されてもよいし、通信部10dにより接続される通信ネットワークを介して提供されてもよい。情報処理装置10では、CPU10aが学習プログラムを実行することにより、後述する図3を用いて説明する様々な動作が実現される。なお、これらの物理的な構成は例示であって、必ずしも独立した構成でなくてもよい。例えば、情報処理装置10は、CPU10aとRAM10bやROM10cが一体化したLSI(Large-Scale Integration)を備えていてもよい。また、情報処理装置10は、GPU(Graphical Processing Unit)やASIC(Application Specific Integrated Circuit)を備えていてもよい。
【0026】
なお、情報処理装置20の構成は、図2に示す情報処理装置10の構成と同様であるため、その説明を省略する。また、情報処理装置10と情報処理装置20とは、データ処理を行う基本的な構成であるCPU10aやRAM10b等を有していればよく、入力部10eや表示部10fは設けられなくてもよい。また、入力部10eや表示部10fは、外部からインターフェースを用いて接続されてもよい。
【0027】
<処理構成>
図3は、実施形態に係る情報処理装置(サーバ装置)10の処理ブロックの一例を示す図である。情報処理装置10は、分散制御部11、取得部12、学習部13、生成部14、予測部15、特定部16、表示制御部17、及び記憶部18を備える。情報処理装置10は、汎用のコンピュータで構成されてもよい。
【0028】
分散制御部11は、1又は複数のデータセットに対して、並列して学習されるインスタンス数及び/又はハイパーパラメータが任意に変更されたそれぞれの組み合わせで、所定の学習モデルを用いて各情報処理装置20に機械学習を行わせる。例えば、分散制御部11は、分散インスタンス数Nを2に設定し、ハイパーパラメータHを所定の値に設定する。ハイパーパラメータHは、例えば1又は複数のパラメータがあり、各パラメータに対してそれぞれの値が設定される。ハイパーパラメータH、複数のパラメータの集合を表してもよい。
【0029】
データセットは、例えば、画像データ、系列データ及びテキストデータの少なくともいずれかを含む。ここで、画像データは、静止画のデータと、動画のデータとを含む。系列データは、音声データや株価のデータなどを含む。
【0030】
分散制御部11は、分散インスタンス数とハイパーパラメータとを設定した場合、分散インスタンス数Nに応じた数の情報処理装置20に、設定したハイパーパラメータを出力して分散学習を行わせる。このとき、分散制御部11は、分散学習に用いる学習モデルを情報処理装置20に出力してもよい。また、分散制御部11は、自装置を分散学習の1つに含めるようにしてもよい。
【0031】
分散制御部11は、分散インスタンス数Nを変更する度、又はハイパーパラメータHを変更する度に、各情報処理装置20に分散学習を行うよう指示する。例えば、分散制御部11は分散インスタンス数Nを固定したまま、ハイパーパラメータHを変更し、ハイパーパラメータHの変更が全て終わると、分散インスタンス数を1つインクリメントする。この処理は、分散インスタンス数が上限に達するまで繰り返される。これにより、分散制御部11は、様々な分散インスタンス数とハイパーパラメータとの組み合わせによる分散学習を、各情報処理装置20に実行させることが可能になる。
【0032】
取得部12は、各情報処理装置20から、分散インスタンス数とハイパーパラメータとのそれぞれの組み合わせに対応する学習性能を取得する。例えば、取得部12は、分散学習を行った各情報処理装置20から、各学習結果を取得する。学習結果には少なくとも学習性能が含まれる。
【0033】
例えば、学習モデルの学習性能は、F値で表したり、F値/(学習処理の計算時間)で表したり、損失関数の値で表したりしてよい。なお、F値は、適合率(precision)をPと表し、再現率(recall)をRと表すとき、2PR/(P+R)により算出される値である。また、学習性能は、例えば、ME(平均誤差)、MAE(平均絶対誤差)、RMSE(平均平方二乗誤差)、MPE(平均誤差率)、MAPE(平均絶対誤差率)、RMSPE(平均平方二乗誤差率)、ROC(Receiver Operating Characteristic)曲線及びAUC(Area Under the Curve)、Gini Norm、Kolmogorov-Smirnov又はPrecision/Recall等を用いて表してもよい。
【0034】
また、取得部12は、分散インスタンス数とハイパーパラメータとのある組み合わせに対する学習性能として、各情報処理装置20から取得された複数の学習性能を用いて、1つの学習性能、例えば平均値、中央値、最大値、又は最小値を求めてもよい。
【0035】
学習部13は、任意のデータセットに対する分散インスタンス数とハイパーパラメータとの各組み合せと、各組み合わせに対応する学習性能とを含む学習データを用いて教師あり学習を行う。この教師あり学習には所定の学習モデル13aが用いられる。例えば、学習モデル13aは、任意のデータセットを入力として、分散インスタンス数とハイパーパラメータとの組み合わせごとに、学習性能を予測するモデルである。
【0036】
所定の学習モデル13aは、例えば、予測モデルであり、画像認識モデル、系列データ解析モデル、ロボットの制御モデル、強化学習モデル、音声認識モデル、音声生成モデル、画像生成モデル、自然言語処理モデル等の少なくとも1つを含む。また、所定の学習モデル13aの具体例としては、CNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、DNN(Deep Neural Network)、LSTM(Long Short-Term Memory)、双方向LSTM、DQN(Deep Q-Network)、VAE(Variational AutoEncoder)、GANs(Generative Adversarial Networks)、flow-based生成モデル等のいずれかでもよい。
【0037】
また、学習モデル13aは、学習済みモデルを枝刈り(Pruning)、量子化(Quantization)、蒸留(Distillation)又は転移(Transfer)して得られるモデルを含む。なお、これらは一例に過ぎず、学習部13は、これら以外の問題について、学習モデルの機械学習を行ってもよい。学習部13は、学習するデータセットの特徴に応じて学習モデル13aを選択し、この学習モデルを用いて教師あり学習を行ってもよい。また、学習部13において使用される損失関数は、学習モデル13aの出力とラベルデータとに関する2乗誤差関数であったり、クロスエントロピー関数であったりしてよい。学習部13は、損失関数の値が小さくなるように、所定の条件が満たされるまで誤差逆伝搬法を用いてハイパーパラメータを調整しながら学習を繰り返す。
【0038】
生成部14は、学習部13による教師あり学習によって予測モデルを生成する。予測モデルは、学習モデル13aが学習された結果として生成されるモデルを含む。例えば、予測モデルは、任意のデータセットを入力として、分散インスタンス数とハイパーパラメータとの組み合わせごとに、学習性能を予測するモデルである。
【0039】
以上の処理により、所定のデータセットに対して適切な分散インスタンス数又はハイパーパラメータを特定可能な新たな仕組みを提供することができる。例えば、様々なデータセットに対し、任意の分散インスタンス数又はハイパーパラメータを用いて分散学習を行っておくことで多数の教師データを生成することができる。また、サーバ10は、分散学習の結果を取得して、これらを教師データとする教師あり学習を行うことで、任意のデータセットに対して分散インスタンス数又はハイパーパラメータの組み合わせごとに、学習性能を予測することが可能になる
【0040】
予測部15は、所定のデータセットを予測モデルに入力し、所定の学習モデルの機械学習を実行した場合の学習性能を、分散インスタンス数又はハイパーパラメータのそれぞれの組み合わせについて予測する。例えば、予測部15は、組み合せそれぞれに対して学習性能を予測し、学習性能が高い順に組み合わせを並べ替えてもよい。
【0041】
以上の処理により、サーバ10は、新たなデータセットに対して、分散インスタンス数又はハイパーパラメータのそれぞれの組み合わせに対する学習性能を予測することが可能になる。したがって、エンジニアが分散インスタンス数やハイパーパラメータを調整しなくてもよくなり、サーバ10や各情報処理装置20のコンピュータ資源を有効に活用することが可能になる。
【0042】
また、取得部12は、分散学習を指示した各情報処理装置20から、学習結果として学習性能とともに学習時間を取得することを含んでもよい。学習時間について、例えば学習が開始されてから結果がでるまでの時間を情報処理装置20が計測する。学習時間は、各情報処理装置20から取得された各学習時間の平均値、最大値、中央値、又は最小値のいずれかが用いられてもよい。
【0043】
学習部13は、分散インスタンス数やハイパーパラメータのそれぞれの組み合わせと、それぞれの組み合わせに対応する組み合わせの学習性能及び学習時間とを含む学習データを用いて教師あり学習を行うことを含んでもよい。例えば、学習部13は、所定のデータセットが学習モデル13aに入力され、分散インスタンス数やハイパーパラメータの組み合わせそれぞれについて、学習性能及び学習時間を予測するように教師あり学習を行う。
【0044】
生成部14は、学習時間を含む学習データを用いて教師あり学習が行われることにより、分散インスタンス数やハイパーパラメータの組み合わせそれぞれについて、学習性能及び学習時間を予測する予測モデルを生成してもよい。
【0045】
以上の処理により、分散学習する場合の学習性能だけではなく、学習時間も予測することが可能になる。学習性能と学習時間とを考慮した分散インスタンス数やハイパーパラメータの選択が可能になる。例えば、学習時間又は学習性能は最適ではなくても、許容可能な学習時間又は学習性能に対応する分散インスタンス数やハイパーパラメータの組み合わせが選択可能になる。
【0046】
予測部15は、所定のデータセットを予測モデルに入力し、所定の学習モデルの機械学習を実行した場合の学習性能及び学習時間を、分散インスタンス数やハイパーパラメータの各組み合わせについて予測することを含んでもよい。
【0047】
以上の処理により、サーバ10は、新たなデータセットに対して、分散インスタンス数又はハイパーパラメータのそれぞれの組み合わせに対する学習性能及び学習時間を予測することが可能になる。したがって、エンジニアが分散インスタンス数やハイパーパラメータを調整しなくてもよくなり、サーバ10や各情報処理装置20のコンピュータ資源を有効に活用することが可能になる。
【0048】
また、生成部14は、予測部15による予測された結果を用いて、学習性能を第1変数、学習時間を第2変数とし、第1変数及び第2変数と、インスタンス数及び/又はハイパーパラメータとを対応付ける関係情報(予測関係情報)を生成する。例えば、生成部14は、縦軸を第1変数、横軸を第2変数とする場合に、それぞれの変数の交点に分散インスタンス数やハイパーパラメータを対応付けたマトリックスを生成してもよい。また、生成部14は、各情報処理装置20から取得された学習性能や学習時間に基づいて、第1変数及び第2変数と、インスタンス数及び/又はハイパーパラメータとを対応付ける関係情報(実測関係情報)を生成してもよい。
【0049】
以上の処理により、第1変数又は第2変数が変更された場合に、対応する分散インスタンス数やハイパーパラメータを迅速に特定することが可能になる。また、第1変数と第2変数とは、適宜変更されてもよい。例えば、第1変数として学習性能、第2変数として分散インスタンス数を適用し、特定される情報はハイパーパラメータと学習時間との組み合わせでもよい。
【0050】
また、取得部12は、第1変数の第1値及び第2変数の第2値を取得してもよい。例えば、取得部12は、ユーザから指定される第1変数の第1値及び第2変数の第2値を取得する。第1値又は第2値はユーザにより適宜指定される。
【0051】
この場合、特定部16は、生成部14により生成された関係情報に基づいて、第1変数の第1値及び第2変数の第2値に対応するインスタンス数及び/又はハイパーパラメータを特定する。例えば、特定部16は、関係情報を用いて、変更される第1変数の値、又は第2変数の値に対応するインスタンス数及び/又はハイパーパラメータを特定する。
【0052】
表示制御部17は、特定部16により特定されたインスタンス数及び/又はハイパーパラメータを表示装置(表示部10f)に表示制御する。また、表示制御部17は、第1変数及び第2変数を変更可能にしたマトリックスをGUI(Graphical User Interface)で表してもよい(例えば、後述する図6等)。
【0053】
以上の処理により、ユーザにより指定された第1変数又は第2変数に応じて特定される分散インスタンス数やハイパーパラメータを、ユーザに対して可視化することが可能になる。ユーザは、第1変数又は第2変数を変更することで、所望の分散インスタンス数やハイパーパラメータを特定し、分散学習に適用することができる。
【0054】
図4は、実施形態に係る情報処理装置20の処理ブロックの一例を示す図である。情報処理装置20は、取得部21、学習部22、出力部23、及び記憶部24を備える。情報処理装置20は、汎用のコンピュータで構成されてもよい。
【0055】
取得部21は、他の情報処理装置(例えばサーバ10)により、分散学習の指示とともに、所定の学習モデルに関する情報や所定のデータセットに関する情報を取得してもよい。所定の学習モデルに関する情報は、ハイパーパラメータのみでもよく、所定の学習モデル自体でもよい。所定のデータセットに関する情報は、データセット自体でもよく、所定のデータセットが格納された格納先を示す情報でもよい。
【0056】
学習部22は、所定の学習を行う学習モデル22aに学習対象の所定のデータセットを入力して学習を行う。学習部22は、学習後の学習結果をサーバ10にフィードバックするように制御する。学習結果は、例えば、調整後のハイパーパラメータや、学習性能などを含み、学習時間をさらに含んでもよい。学習部22は、学習対象のデータセットの種類、及び/又は、解くべき問題に応じて、学習モデル22aを選択してもよい。
【0057】
また、所定の学習モデル22aは、ニューラルネットワークを含む学習モデルであり、例えば、画像認識モデル、系列データ解析モデル、ロボットの制御モデル、強化学習モデル、音声認識モデル、音声生成モデル、画像生成モデル、自然言語処理モデル等の少なくとも1つを含む。また、具体例としては、所定の学習モデル22aは、CNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、DNN(Deep Neural Network)、LSTM(Long Short-Term Memory)、双方向LSTM、DQN(Deep Q-Network)、VAE(Variational AutoEncoder)、GANs(Generative Adversarial Networks)、flow-based生成モデル等のいずれかでもよい。
【0058】
また、学習モデル22aは、学習済みモデルを枝刈り(Pruning)、量子化(Quantization)、蒸留(Distillation)又は転移(Transfer)して得られるモデルを含む。なお、これらは一例に過ぎず、学習部22は、これら以外の問題について、学習モデルの機械学習を行ってもよい。また、学習部22において使用される損失関数は、学習モデル22aの出力とラベルデータとに関する2乗誤差関数であったり、クロスエントロピー関数であったりしてよい。学習部22は、損失関数の値が小さくなるように、所定の条件が満たされるまで誤差逆伝搬法を用いてハイパーパラメータを調整しながら学習を繰り返す。
【0059】
出力部23は、分散学習の学習結果に関する情報を他の情報処理装置に出力する。例えば、出力部23は、学習部22による学習結果に関する情報をサーバ10に出力する。例えば、分散学習の学習結果に関する情報は、上述したように、学習性能、調整後のハイパーパラメータを含み、学習時間をさらに含んでもよい。
【0060】
記憶部24は、学習部22に関するデータを記憶する。記憶部24は、所定のデータセット25aや、サーバ10から取得したデータ、学習途中のデータ、学習結果に関する情報などを記憶する。
【0061】
これにより、情報処理装置20は、他の情報処理装置(例えばサーバ10)からの指示により、所定のデータセットに対して分散学習を実行し、学習結果をサーバ10にフィードバックすることが可能になる。
【0062】
また、新たなデータセットに対して、サーバ10により予測されたハイパーパラメータや分散インスタンス数を利用して各情報処理装置20に分散学習を実行させることが可能になる。これにより、各情報処理装置20において、エンジニア等がハイパーパラメータや分散インスタンス数を調整しなくてもよくなり、各情報処理装置20のハードウェア資源やソフトウェア資源を効率よく使用することができるようになる。
【0063】
<データ例>
図5は、実施形態に係る関係情報の一例を示す図である。図5に示す例では、関係情報は、分散学習により得られた情報を集約した実測関係情報であり、各第1変数(例、P11)及び各第2変数(例、P21)に対応する分散インスタンス数(例、N1)とハイパーパラメータ(H1)とを含む。第1変数P1nは、例えば学習性能であり、第2変数P2nは学習時間であり、変数としてはいずれかの変数だけでもよい。ハイパーパラメータHは、機械学習に用いられるパラメータの集合でもよく、例えば、weight decay、中間層のユニット数などであり、学習モデルに特有なパラメータを含んでもよい。
【0064】
図5に示す関係情報について、サーバ10は、所定の分散インスタンス数とハイパーパラメータの組み合わせで分散学習を行わせた情報処理装置20から、学習性能(第1変数)と、学習時間(第2変数)とを取得する。サーバ10は、取得された学習性能と学習時間に、所定の分散インスタンス数とハイパーパラメータとを対応付ける。この対応付けを、各情報処理装置20から学習性能と学習時間とを取得するたびに行うことで、図5に示す関係情報を生成することが可能になる。また、関係情報は、予測部15により予測された結果に基づいて、任意のデータセットに対する予測関係情報が生成されてもよい。
【0065】
<ユーザインタフェースの例>
図6は、実施形態に係る関係情報の表示例を示す図である。図6に示す例では、予測関係情報に含まれる第1変数と第2変数とをスライドバーを用いて変更可能にする。ユーザが第1変数又は第2変数に対してスライドバーを用いて移動させることで、例えば、移動後の第1変数(P1n)又は第2変数(P2m)に対応する学習性能、ハイパーパラメータの組み合わせ(N(P1n,P2m),H(P1n,P2m))が、対応する点に関連付けて表示される。
【0066】
また、ユーザは、第1変数及び第2変数の二次元のグラフ上に所定の点を指定することで、指定された点に対応する学習性能Nと、ハイパーパラメータHとの組み合わせが表示されるようにしてもよい。なお、ハイパーパラメータHに複数のパラメータが含まれる場合は、さらにハイパーパラメータHを選択することで複数のパラメータが表示されるようにしてもよい。
【0067】
これにより、サーバ10は、第1変数と第2変数との組み合わせに対応する、学習性能と学習時間との組み合わせを表示可能になる。また、視覚的に対応関係をユーザに示しながら、これから分散学習が行われる任意のデータセットに対して適切な分散インスタンス数やハイパーパラメータを選択させるユーザインタフェースを提供することが可能になる。
【0068】
<処理例>
図7は、実施形態に係るサーバ10及び各情報処理装置20の処理例を示すシーケンス図である。図7に示す例では、情報処理装置を「処理装置」と表記し、分散学習を実行する装置を表す。
【0069】
ステップS102において、サーバ10の分散制御部11は、所定の分散インスタンス数の処理装置20に、所定のハイパーパラメータを適用して学習を行わせるように制御する。例えば、分散制御部11は、所定の分散インスタンス数の処理装置20を選択し、選択された分散インスタンス数の処理装置20に、設定された所定のハイパーパラメータとともに学習を行うよう指示する。
【0070】
ステップS104において、分散学習を実行した各処理装置20は、学習結果に関する情報をサーバ10に送信する。学習結果に関する情報は、例えば学習性能、及び/又は、学習時間を含む。サーバ10の取得部12は、各処理装置20から学習結果に関する情報を取得する。
【0071】
ステップS106において、サーバ10の学習部13は、学習性能や学習時間を予測する学習モデル(予測モデル)13aと、所定のデータセットにおける分散インスタンス数やハイパーパラメータの各組み合わせに対し、各処理装置20から取得された学習性能や学習時間を正解ラベルとする学習データとを用いて、教師あり学習を実行する。
【0072】
ステップS108において、サーバ10の生成部14は、学習部13の学習により生成されるモデルを予測モデルとして生成する。例えば、予測モデルは、任意のデータセットを入力として、分散インスタンス数とハイパーパラメータとの組み合わせごとに、学習性能又は学習時間を予測するモデルである。
【0073】
ステップS110において、サーバ10の予測部15は、新たな任意のデータセットを予測モデルに入力し、分散インスタンス数及びハイパーパラメータの組み合わせごとに、学習性能及び/又は学習時間を予測する。
【0074】
ステップS112において、サーバ10の生成部14は、予測部15の予測結果に基づいて、学習性能を第1変数、学習時間を第2変数とし、第1変数及び第2変数と、インスタンス数及び/又はハイパーパラメータとを対応付ける関係情報を生成する。
【0075】
以上の処理により、サーバ10は、分散学習を行わせた各処理装置20から学習結果を用いて、所定のデータセットに対する分散インスタンス数及びハイパーパラメータの組合せごとに、学習性能及び/又は学習時間を予測する予測モデルを生成することができる。これにより、データセットごとに、分散インスタンス数やハイパーパラメータを調整しなくてもよくなり、効率よく分散学習を行わせることができるようになる。
【0076】
また、サーバ10は、分散学習を行わせる学習モデルごとに、分散インスタンス数やハイパーパラメータの組み合わせを適宜変更して分散学習を行わせ、学習結果を取得することで、学習モデルに応じた関係情報を構築することも可能である。これにより、サーバ10は、所定の学習モデルに対応する予測モデルを用いて、所定のデータセットに対する適切な分散インスタンス数やハイパーパラメータを特定することが可能になる。
【0077】
次に、関係情報の利用例について説明する。図8は、実施形態に係るサーバ10の関係情報の利用に関する処理例を示すフローチャートである。図8に示す例では、図6に示すように関係情報をグラフ化して画面に表示し、ユーザ操作に応じた分散インスタンス数やハイパーパラメータを表示するようにする。
【0078】
ステップS202において、サーバ10の取得部12は、入力部10eを介してユーザ操作を受け付け、第1変数の第1値を取得する。第1値は、ユーザ操作(例えばスライドバーの移動)に応じて変更される値である。
【0079】
ステップS204において、サーバ10の取得部12は、入力部10eを介してユーザ操作を受け付け、第2変数の第2値を取得する。第2値は、ユーザ操作(例えばスライドバーの移動)に応じて変更される値である。
【0080】
ステップS206において、特定部16は、生成部14により生成された関係情報(例えば予測関係情報)に基づいて、第1変数の第1値及び第2変数の第2値に対応するインスタンス数及び/又はハイパーパラメータを特定する。例えば、特定部16は、関係情報を用いて、変更される第1変数の値、又は第2変数の値に対応するインスタンス数及び/又はハイパーパラメータを特定する。
【0081】
ステップS208において、表示制御部17は、特定部16により特定されたインスタンス数及び/又はハイパーパラメータを表示装置(表示部10f)に出力する。また、表示制御部17は、第1変数及び第2変数を変更可能にしたマトリックスをGUIで表してもよい。
【0082】
以上の処理により、ユーザは、所定のデータセットと所定の学習モデルとを用いて分散学習を行う際に、分散インスタンス数とハイパーパラメータとの組み合わせごとに、学習性能や学習時間を把握することが可能になる。また、ユーザが学習性能や学習時間のパラメータ値を変更することで、変更後のパラメータ値に対応する分散インスタンス数やハイパーパラメータを特定することが可能になる。
【0083】
以上、実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
【0084】
上記実施形態では、情報処理装置10の学習部22は、他の装置に実装されてもよく、この場合、情報処理装置10は、予測モデルを生成するための学習処理を他の装置に指示してもよい。
【符号の説明】
【0085】
10、20…情報処理装置、10a…CPU、10b…RAM、10c…ROM、10d…通信部、10e…入力部、10f…表示部、11…分散制御部、12…取得部、13…学習部、13a…学習モデル、14…生成部、15…予測部、16…特定部、17…表示制御部、18…記憶部、21…取得部、22…学習部、22a…学習モデル、23…出力部、24…記憶部
【要約】
【課題】所定のデータセットに対して適切な分散インスタンス数又はハイパーパラメータを特定可能な新たな仕組みを提供する。
【解決手段】所定の学習モデルを記憶する記憶装置とプロセッサとを有する情報処理装置により実行される情報処理方法であって、プロセッサは、1又は複数のデータセットに対して、並列して学習されるインスタンス数及び/又はハイパーパラメータが任意に変更されたそれぞれの組み合わせで、所定の学習モデルを用いて他の各情報処理装置に機械学習を行わせること、他の各情報処理装置から、それぞれの組み合わせに対応する学習性能を取得すること、それぞれの組み合わせと、それぞれの組み合わせに対応する学習性能とを含む学習データを用いて教師あり学習を行うこと、教師あり学習により、インスタンス数及び/又はハイパーパラメータの組み合わせごとに、学習性能を予測する予測モデルを生成すること、を実行する。
【選択図】図7
図1
図2
図3
図4
図5
図6
図7
図8