(57)【特許請求の範囲】
【請求項１】
ディープラーニングを実行するためのディープニューラルネットワークを構築し、学習の動作を規定するパラメータを探索するサーバであって、
前記ディープニューラルネットワークのＮ（Ｎは２以上の自然数）個の層のうちの第１層の複数の第１パラメータの複数の候補と、前記第１層以外の１以上の層の第１パラメータセットとを用いて、前記第１層の複数の第１パラメータを探索し、上位Ｍ（Ｍは２以上の自然数）位の第１パラメータの候補を決定し、
前記ディープニューラルネットワークのＮ個の層のうちの第２層の複数の第２パラメータの複数の候補と、前記第２層以外の１以上の層の第２パラメータセットとを用いて、前記第２層の複数の第２パラメータを探索し、上位Ｌ（Ｌは２以上の自然数）位の第２パラメータの候補を決定し、
前記第１層の上位Ｍ位の第１パラメータの候補と、前記第２層の上位Ｌ位の第２パラメータの候補とのパラメータセットを探索する第１処理部を備えるサーバ。
【請求項２】
前記第１処理部によって探索された前記第１層の上位Ｍ位の第１パラメータの候補と、前記第２層の上位Ｌ位の第２パラメータの候補とのパラメータセットを用い、さらに確率分布に基づいてパラメータセットを探索する第２処理部をさらに備える請求項１記載のサーバ。
【請求項３】
前記第１処理部は、前記第１層の上位Ｍ位の第１パラメータの候補と、前記第２層の上位Ｌ位の第２パラメータの候補の探索を、一様分布に基づいて行う請求項１または請求項２に記載のサーバ。
【請求項４】
前記第１処理部は、前記第１層の上位Ｍ位の第１パラメータの候補と、前記第２層の上位Ｌ位の第２パラメータの候補とのパラメータセットの探索を、総当たり探索するグリッドサーチで行う請求項１乃至請求項３のいずれか１項に記載のサーバ。
【請求項５】
ディープラーニングを実行するためのディープニューラルネットワークを構築し、学習の動作を規定するパラメータを探索する第１のサーバと、第２のサーバと、第３のサーバとを備えるシステムであって、
前記第１のサーバは、
前記ディープニューラルネットワークのＮ（Ｎは２以上の自然数）個の層のうちの第１層の複数の第１パラメータの複数の候補と、前記第１層以外の１以上の層の第１パラメータセットとを用いて、前記第１層の複数の第１パラメータを探索し、上位Ｍ（Ｍは２以上の自然数）位の第１パラメータの候補を決定し、
前記ディープニューラルネットワークのＮ個の層のうちの第２層の複数の第２パラメータの複数の候補と、前記第２層以外の１以上の層の第２パラメータセットとを用いて、前記第２層の複数の第２パラメータを探索し、上位Ｌ（Ｌは２以上の自然数）位の第２パラメータの候補を決定し、
前記第１層の上位Ｍ位の第１パラメータの候補と、前記第２層の上位Ｌ位の第２パラメータの候補とのパラメータセットを探索する第１の処理部と、前記第１の処理部によって探索された前記第１層の上位Ｍ位の第１パラメータの候補と、前記第２層の上位Ｌ位の第２パラメータの候補とのパラメータセットを用い、さらに確率分布に基づいてパラメータセットを探索する第２の処理部とを備え、
前記パラメータの探索範囲から前記パラメータセットの組み合わせの初期候補として、前記第１の処理部で前記パラメータセットの第１の組み合わせと前記パラメータセットの第２の組み合わせを生成し、
前記パラメータセットの第１の組み合わせを前記第２のサーバへ送信し、
前記パラメータセットの第２の組み合わせを前記第３のサーバへ送信し、
前記パラメータセットの第１の組み合わせを用いた第１学習結果を前記第２のサーバから受信し、
前記パラメータセットの第２の組み合わせを用いた第２学習結果を前記第３のサーバから受信し、
前記第１学習結果と前記第２学習結果とに基づいて、前記第２の処理部で前記パラメータセットの第３の組み合わせを生成し、
前記パラメータセットの第３の組み合わせを前記第２のサーバまたは前記第３のサーバへ送信し、
前記パラメータセットの第３の組み合わせを用いた第３学習結果を前記第２のサーバまたは前記第３のサーバから受信するシステム。
【請求項６】
ディープラーニングを実行するためのディープニューラルネットワークを構築し、学習の動作を規定するパラメータを探索する探索方法であって、
前記ディープニューラルネットワークのＮ（Ｎは２以上の自然数）個の層のうちの第１層の複数の第１パラメータの複数の候補と、前記第１層以外の１以上の層の第１パラメータセットとを用いて、前記第１層の複数の第１パラメータを探索し、上位Ｍ（Ｍは２以上の自然数）位の第１パラメータの候補を決定し、
前記ディープニューラルネットワークのＮ個の層のうちの第２層の複数の第２パラメータの複数の候補と、前記第２層以外の１以上の層の第２パラメータセットとを用いて、前記第２層の複数の第２パラメータを探索し、上位Ｌ（Ｌは２以上の自然数）位の第２パラメータの候補を決定し、
前記第１層の上位Ｍ位の第１パラメータの候補と、前記第２層の上位Ｌ位の第２パラメータの候補とのパラメータセットを探索する第１の方式を備える探索方法。
【請求項７】
前記第１の方式による探索処理によって探索された前記第１層の上位Ｍ位の第１パラメータの候補と、前記第２層の上位Ｌ位の第２パラメータの候補とのパラメータセットを用い、さらに確率分布に基づいてパラメータセットを探索する第２の方式をさらに備える請求項６記載の探索方法。
【請求項８】
前記第１の方式は、前記第１層の上位Ｍ位の第１パラメータの候補と、前記第２層の上位Ｌ位の第２パラメータの候補の探索を、一様分布に基づいて行う請求項６または請求項７に記載の探索方法。
【請求項９】
前記第１の方式は、前記第１層の上位Ｍ位の第１パラメータの候補と、前記第２層の上位Ｌ位の第２パラメータの候補とのパラメータセットの探索を、総当たり探索するグリッドサーチで行う請求項６乃至請求項８のいずれか１項に記載の探索方法。
【請求項１０】
ディープラーニングを実行するためのディープニューラルネットワークを構築し、学習の動作を規定するパラメータを探索する第１のサーバと、第２のサーバと、第３のサーバとを備えるシステムに用いられる探索方法であって、
前記第１のサーバが、前記ディープニューラルネットワークのＮ（Ｎは２以上の自然数）個の層のうちの第１層の複数の第１パラメータの複数の候補と、前記第１層以外の１以上の層の第１パラメータセットとを用いて、前記第１層の複数の第１パラメータを探索し、上位Ｍ（Ｍは２以上の自然数）位の第１パラメータの候補を決定し、前記ディープニューラルネットワークのＮ個の層のうちの第２層の複数の第２パラメータの複数の候補と、前記第２層以外の１以上の層の第２パラメータセットとを用いて、前記第２層の複数の第２パラメータを探索し、上位Ｌ（Ｌは２以上の自然数）位の第２パラメータの候補を決定し、前記第１層の上位Ｍ位の第１パラメータの候補と、前記第２層の上位Ｌ位の第２パラメータの候補とのパラメータセットを探索する第１の方式と、前記第１の方式によって探索された前記第１層の上位Ｍ位の第１パラメータの候補と、前記第２層の上位Ｌ位の第２パラメータの候補とのパラメータセットを用い、さらに確率分布に基づいてパラメータセットを探索する第２の方式とを備える探索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ、システム及び探索方法に関する。
【背景技術】
【０００２】
画像認識や音声認識を行う分野では、従来からＳＶＭ（Support Vector Machine）などの機械学習を採用することによって徐々に認識性能が向上してきた。近年では、機械学習に多層構造のニューラルネットワークが用いられるようになり、これによって認識性能が大幅に向上するようになった。特に、その多層構造のニューラルネットワークによるディープラーニング手法は注目を浴びており、画像認識や音声認識以外に、自然言語解析などの分野にも用途が広がりつつある。
【０００３】
ただし、上記ディープラーニング手法は、その学習に膨大な計算が必要で、処理に多くの時間を要する。また、ディープラーニングでは、各層のノード数、層数、学習率をどう設定するかなど非常に多くのハイパーパラメータ（学習の動作を規定するパラメータ）が用いられる。さらに、ハイパーパラメータに設定する値によって認識性能が大きく異なる。このことから、認識性能が最も良いハイパーパラメータの組み合わせを探索する必要がある。このハイパーパラメータの組み合わせ探索では、ハイパーパラメータの組み合わせを変えながら学習を行い、個々の組み合わせの学習結果から最も認識性能が良い組み合わせを選択する手法がとられている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】論文：Practical Recommendations for Gradient-Based Training of Deep Architectures (http://arxiv.org/pdf/1206.5533v2.pdf)
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上記ディープラーニングにおいて、認識性能がよいハイパーパラメータの組み合わせを探索するように、多数のパラメータから最適な組み合わせを探索する従来の手法では、パラメータの組み合わせの総数が膨大であるため、探索に時間がかかるという課題があった。
【０００６】
本発明の目的は、認識性能の指標が基準より高いパラメータの組み合わせの探索処理の効率化を図り、探索時間を短縮することのできるサーバ、システム及び探索方法を提供することにある。
【課題を解決するための手段】
【０００７】
実施形態によれば、ディープラーニングを実行するためのディープニューラルネットワークを構築し、学習の動作を規定するパラメータを探索するサーバは、前記ディープニューラルネットワークのＮ（Ｎは２以上の自然数）個の層のうちの第１層の複数の第１パラメータの複数の候補と、前記第１層以外の１以上の層の第１パラメータセットとを用いて、前記第１層の複数の第１パラメータを探索し、上位Ｍ（Ｍは２以上の自然数）位の第１パラメータの候補を決定し、前記ディープニューラルネットワークのＮ個の層のうちの第２層の複数の第２パラメータの複数の候補と、前記第２層以外の１以上の層の第２パラメータセットとを用いて、前記第２層の複数の第２パラメータを探索し、上位Ｌ（Ｌは２以上の自然数）位の第２パラメータの候補を決定し、前記第１層の上位Ｍ位の第１パラメータの候補と、前記第２層の上位Ｌ位の第２パラメータの候補とのパラメータセットを探索する。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係るハイパーパラメータ探索システムの具体的な構成を示すブロック図。
【図２】図１に示すシステムに用いられるサーバの具体的な構成を示すブロック図。
【図３】図１に示すシステムにおいて、マネージャーの具体的な構成を示すブロック図。
【図４】図１に示すシステムに適用されるＬＷＧＳ方式の処理の流れを示すフローチャート。
【図５】図１に示すシステムの階層構造とハイパーパラメータの例を示す図。
【図６】図１に示すシステムのマネージャーの処理の流れを示すフローチャート。
【図７】図１に示すシステムのワーカーの処理の流れを示すフローチャート。
【図８】図１に示すシステムのワーカーにおいて、中断機能を含む場合の処理の流れを示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、図面を参照して実施形態を説明する。
【００１０】
図１は実施形態に係るハイパーパラメータ探索システムの具体的な構成を示すブロック図である。このシステムは、マネージャー（Manager）と称されるサーバ（以下、マネージャー）１１とワーカー（Worker）と称される複数個（本実施形態では４個とする）のサーバ（以下、Worker）１２−ｉ（ｉは１〜４のいずれか）をネットワーク１３に接続したクラスタ構成のサーバシステムであり、ディープラーニング処理を実行するための多層構造のニューラルネットワークを構築している。
【００１１】
上記マネージャー１１及びウォーカー１２−ｉに用いられるサーバは、図２に示すように、プログラムを実行して制御を行うためのＣＰＵ（Central Processing Unit）１０１、プログラムを格納するＲＯＭ（Read Only Memory）１０２、作業空間を提供するＲＡＭ（Random Access Memory）１０３、ネットワークとの間でデータを入出力するＩ／Ｏ（Input-Output）１０４、種々の情報データを格納するＨＤＤ（Hard Disk Drive）１０５をバス１０６に接続して構成される。
【００１２】
上記マネージャー１１は、ハイパーパラメータ探索処理を管理するサーバであり、具体的には図３に示すように、ハイパーパラメータ探索範囲格納部１１１及びハイパーパラメータ候補生成部１１２及びタスク発送部１１３を備える。ハイパーパラメータ探索範囲格納部１１１には、予めディープラーニングで使用されるハイパーパラメータの探索範囲が格納される。ハイパーパラメータ候補生成部１１２は、ハイパーパラメータ探索範囲格納部１１１から探索範囲を順次読み出し、読み出された探索範囲において、探索するハイパーパラメータについてどのハイパーパラメータをどの値にするかの組み合わせの候補を生成する。このとき、各ワーカー１２−ｉから学習結果を受け取った場合には、その学習結果をハイパーパラメータの組み合わせの候補生成に反映させる。候補生成の手法として、ここではランダム（Random）方式（１１２−１）、ＬＷＧＳ（Layer Wise Grid Search）方式（１１２−２）、ベイジアン（Bayesian）方式（１１２−３）が用意されているものとする。
【００１３】
ここで、ランダム方式は、一様分布に基づく探索方式であり、離散パラメータ探索と初期値非依存な探索を得意とする。
【００１４】
ＬＷＧＳ方式は、詳細は後述するが、各層毎のハイパーパラメータ候補の探索はランダムで行うが、層間のハイパーパラメータ候補の探索はグリッドサーチを行うので、離散パラメータ探索と初期値非依存な探索を得意としつつ、ランダム方式よりも探索空間を小さくすることができる。
【００１５】
ベイジアン方式は確率分布に基づく探索方式であり、過去の探索で得られたハイパーパラメタと認識率の結果から確率分布を予測することで最適解を探索し、連続パラメータの探索を得意とする。ベイジアン方式については、  
論文：Practical Bayesian Optimization of Machine Learning Algorithms  
http://papers.nips.cc/paper/4522-practical-bayesian-optimization  
-of-machine-learning-algorithms.pdf  
にその詳細が示されており、  
オープンソース環境：Spearmint（https://github.com/JasperSnoek/spearmint）  
Latest commit 0544113 on Oct 31 2014  
に、ベイジアン探索を実装したオープンソースのハイパーパラメータ探索環境、複数のサーバにタスクを分散する処理を実装した処理が示されている。ベイジアン方式による探索では初期値により最適なハイパーパラメータが見つからない場合があるが、本実施形態ではランダム方式の探索とベイジアン方式の探索を組み合わせ、またはＬＷＧＳ方式の探索とベイジアン方式の探索の組み合わせることにより、最適なハイパーパラメータを探索することができる。
【００１６】
上記タスク発送部１１３は、ハイパーパラメータ候補生成部１１２で生成された各候補の学習処理を、それぞれタスクとしてワーカー１２−ｉに振り分けて発送し、学習を指示する。
【００１７】
一方、上記ワーカー１２−ｉは、それぞれマネージャー１１からハイパーパラメータの組み合わせの候補を受け取り、受け取った候補について学習を行い、認識率やエラー率や交差エントロピーなどの学習結果をマネージャー１１のハイパーパラメータ候補生成部１１２に返す。
【００１８】
ここで、上記ＬＷＧＳ方式について説明する。  
図４はＬＷＧＳ方式によってハイパーパラメータの次候補を作成し選定する場合の処理の流れを示すフローチャートである。ここで、Ｌ（Ｌは２以上の自然数）は１層当たりに探索する回数であり、Ｎ（Ｎは２以上の自然数）はディープニューラルネットワークの層数である。
【００１９】
図４において、ディープニューラルネットワークのハイパーパラメータのうち、第１層の複数のハイパーパラメータ候補を一様分布（ランダム）に生成し、その他の層である第２層から第Ｎ層までのハイパーパラメータ候補については、予め定義した値のハイパーパラメータセットを生成する（ステップＳ１）。ここで、このステップＳ１の第１層目の複数のハイパーパラメータ候補の生成をＬ回実行したか判断し（ステップＳ２）、実行した場合には、第２層から第Ｎ層までのハイパーパラメータ候補を生成したか判断し（ステップＳ３）、実行した場合には、生成したハイパーパラメータでの学習が終了してから、各層毎に上位Ｍ（Ｍは２以上の自然数）位のハイパーパラメータを選択し（ステップＳ４）、選択したＮ層の上位Ｍ位のハイパーパラメータセットによる探索候補を生成する（ステップＳ５）。探索候補は総当たりを探索するグリッドサーチ（探索）でもよいし、ランダムな組み合わせによる探索でもよいが、層間のハイパーパラメータ候補の探索については、少なくとも性能が基準値に達するまで、総当たり探索するグリッドサーチで行う。
【００２０】
なお、非特許文献１（論文：Practical Recommendations for Gradient-Based Training of Deep Architectures）にはLayer-wise方式でハイパーパラメータの最適化を行うが、ＬＷＧＳとは異なる考え方が示されている。すなわち、その論文の3.3.4 において、Layer-wise optimization of hyper-parametersのアルゴリズムとして、以下の処理が示されている。
【００２１】
第１ステップにおいて、レイヤーごとにプリトレーニングを行って、上位Ｋ個の候補を作る。ここでは、１層目探索において、１層目のプリトレーニングを行い、性能の良い上位Ｋ個の候補を残す。２層目探索において、２層目のプリトレーニングを行い、性能の良い上位Ｋ個の候補を残す。以下、同様にして、最終的にＮ層目探索において、Ｎ層目のプリトレーニングを行い、性能の良い上位Ｋ個の候補を残す。次に、第２ステップにおいて、第１ステップで検索した上位Ｋ個の候補についてファインチューニングを行い、最も良い候補を探す。
【００２２】
以上のように、上記論文に示される処理では、第１ステップで１層からＮ層まで順番に探索して上位Ｋ個までの候補を残し、第２ステップで各層において最も良い候補を検索するようしており、１層では上位Ｋ個の候補が残り、十分探索できる。しかし、Ｎ層では１層からＮ-１層までのＫ個の候補に、Ｎ層のハイパーパラメータを追加した候補の中から探索することになり、下位層の候補に大きく影響を受ける。上位層になるほど下位層の探索結果に依存し、探索の自由度が減ってしまう。これに対して、本実施形態に適用するＬＷＣＧ方式では、各層毎に上位Ｋ個までの候補を平等に残すため、広い探索空間をまんべんなく探索することができる利点がある。
【００２３】
なお、図４に示すＬＷＧＳ方式のフローチャートにおいて、各層内のハイパーパラメータ候補を生成するときに、複数の生成方法を実装するとよい。１つ目は疑似乱数であり、２つ目はソボル列のような一様分布列である。ランダムサーチの手法として、疑似乱数では分布に偏りが生じるため、一様分布を望む場合はソボル列を利用するとよい。
【００２４】
上記構成において、以下にハイパーパラメータの組み合わせ探索処理について説明する。  
まず、図５はディープニューラルネットワークの構成とディープニューラルネットワークの各層で処理されるハイパーパラメータの種類を例示している。ディープニューラルネットワークでは、ネットワーク層数が少なく、ハイパーパラメータの種類が３種類でそれぞれのハイパーパラメータの取り得る値が３個ある場合、ハイパーパラメータの組み合わせは３3＝２７通りとなる。しかしながら、ディープニューラルネットワークの層数が図４のように７層で、それぞれのハイパーパラメータの取り得る値が３個ある場合、ハイパーパラメータの組み合わせは３7＝２，１８７通りとなる。もし、このディープニューラルネットワークの１回の学習に１時間かかるとしたら、２，１８７時間（約９１日）もかかるため、最適な組み合わせを求めることは非常に困難な問題である。
【００２５】
そこで、実施形態のシステムでは、マネージャーと呼ばれる１台のサーバ１１と、ワーカーと呼ばれる複数のサーバ１２−ｉにより構築したクラスタ構成のサーバシステムで、ハイパーパラメータの組み合わせを効率良く高速に探索する。
【００２６】
図６は上記マネージャー１１の処理の流れを示すフローチャートである。まず、探索の開始が指示されると、ハイパーパラメータ探索範囲格納部１１１から探索範囲を読み込み（ステップＳ１１）、その探索範囲内で初期ハイパーパラメータの候補を複数個生成する（ステップＳ１２）。この候補生成には、初期値探索となるので、ランダム方式またはＬＷＧＳ方式を採用する。生成された候補をタスクとして発行し、任意のワーカー１２−ｉに発送して学習を指示し（ステップＳ１３）、タスク終了を待機する（ステップＳ１４）。ワーカー１２−ｉからタスク終了の応答があった場合には、そのワーカー１２−ｉから送信する学習結果を受信する（ステップＳ１５）。探索の残りがある場合には、ステップＳ１３に戻ってタスク発行から処理を進める（ステップＳ１６）。
【００２７】
探索の残りがない場合には、ステップＳ１６までの処理で集まった学習結果を反映させて次のハイパーパラメータの候補を生成する（ステップＳ１７）。このときの候補生成には、過去の探索結果があるので、ベイジアン方式を採用する。生成された候補をタスクとして発行し、任意のワーカー１２−ｉに発送して学習を指示し（ステップＳ１８）、タスク終了を待機する（ステップＳ１９）。ワーカー１２−ｉからタスク終了の応答があった場合には、そのワーカー１２−ｉから送信する学習結果を受信する（ステップＳ２０）。探索の残りがある場合には、ステップＳ１７に戻ってタスク発行から処理を進める（ステップＳ２１）。探索の残りがない場合には、終了する。
【００２８】
このようにベイジアン方式は初期値依存により性能が良いハイパーパラメータが見つからない場合もあるため、最初にランダム方式またはＬＷＧＳ方式で探索し、その後ベイジアン方式により探索を継続して行うことで、それぞれの長所を生かして効率よく探索することができる。
【００２９】
図７は上記ワーカー１２−ｉの処理の流れを示すフローチャートである。まず、マネージャー１１から送信されたハイパーパラメータ候補のタスクを受信し（ステップＳ２２）、受信したハイパーパラメータ候補のタスクについて学習処理を実行し（ステップＳ２３）、その学習結果をマネージャー１１に送信する（ステップＳ２４）。学習結果は性能を示す指標であり、例として認識率、エラー率、交差エントロピーが想定される。
【００３０】
上記の手順により、ディープラーニングのハイパーパラメータを効率的に探索することができる。
【００３１】
以下、上記実施形態において、さらなる効率化を実現する実施例を説明する。
【００３２】
（実施例１）  
まず、ニューラルネットワークによるディープラーニングのハイパーパラメータ探索では、固定したニューラルネットワークのハイパーパラメータの値のみを変更して探索するのが一般的である。しかしながら、ハイパーパラメータの値のみの変更ではなく、ニューラルネットワークの層数を変更して探索した方が性能が良い場合がある。
【００３３】
この層数を探索のため、マネージャー１１において、ハイパーパラメータ候補生成部１１２にて層数を変更したパラメータを生成する。ニューラルネットワークのある層のノード数が“0”の場合には、その層はないものとして取り扱う。ワーカー１２−ｉ側では、ある層のノード数が“0”の場合には、その層がないニューラルネットワーク構造として学習を行い、その結果をマネージャー１１に返す。このようにして層数を変更した探索を行うことができる。
【００３４】
（実施例２）  
ニューラルネットワークによるディープラーニングでの学習は、同じデータを数十回以上繰り返し入力して学習を行うことで性能を向上させるため、学習時間が長いことが知られている。素性の良いハイパーパラメータであれば、数十回データを繰り返し入力して性能を上げることに意味がある。しかしながら、素性が悪いハイパーパラメータを数十回もデータを入力して学習しても、性能が悪いハイパーパラメータは使用されないので処理時間が無駄になってしまう。このため、ワーカー１２−ｉにおいて、学習中に認識率などの指標を監視し、学習の途中で素性が悪いと判定したものは学習を中断し、中断した時の学習結果をマネージャー１１に送信する。学習中に監視する指標とマネージャー１１に返す指標は、前述のように例えば認識率、エラー率、交差エントロピーが想定される。
【００３５】
具体例を図８に示す。図８は、ワーカー１２−ｉにおいて、中断処理機能を備える場合の処理の流れを示すフローチャートである。まず、マネージャー１１から送信されたハイパーパラメータ候補のタスクを受信し（ステップＳ３１）、受信したハイパーパラメータ候補のタスクについて学習処理を実行する（ステップＳ３２）。ここで、学習中の処理結果を示す指標を監視して（ステップＳ３３）、その指標が閾値以下か判断する（ステップＳ３４）。この判断で、指標が閾値以下の状態では、学習が完了するまで指標の監視を継続する（ステップＳ３５）。ステップＳ３４で学習の指標が閾値を上回った場合には、直ちに学習を中断する（ステップＳ３６）。ステップＳ３５で学習完了と判定された場合またはステップＳ３６で学習の中断が行われた場合には、学習結果（学習中断の場合は中断情報と中断したときの学習結果）をマネージャー１１に送信する（ステップＳ３７）。前述のように、学習結果は性能を示す指標であり、例として認識率、エラー率、交差エントロピーが想定される。
【００３６】
例えばワーカー１２−ｉでの繰り返し学習の回数を１００回とするとき、５０回学習したときの認識率が９０％以下となる場合は中断し、９０％以上となる場合には学習を１００回まで行うとする。この場合素性の良いハイパーパラメータで５０回での認識率が９３％となった場合には、１００回まで学習を行う。しかし素性が悪いハイパーパラメータで学習を行い、５０回での認識率が８５％となった場合には、１００回まで学習をしないで５０回で学習を中断し、中断した時点での学習結果の指標をマネージャー１１に送信する。これにより、無駄になる学習時間を削減することができ、全体の効率を向上させることができる。
【００３７】
尚、上記の例では認識率を一定のしきい値９０％で判定したが、繰り返し学習を１０回行っても認識率が改善しない場合に学習を中断するようにしたり、学習曲線の傾きが一定値以下になったら学習を中断するなど、他の方式でもよい。
【００３８】
上記の処理により、素性の悪いハイパーパラメータの場合には、学習を中断して無駄な学習時間を省き、効率よくハイパーパラメータ探索を行うことができる。
【００３９】
（実施例３）  
ニューラルネットワークによるディープラーニングは、学習時間が長いことが知られている。学習時間を短縮するために、ワーカー１２−ｉ側での学習時に学習データを１／２に減らして学習を行うようにしてもよい。
【００４０】
（実施例４）  
ニューラルネットワークによるディープラーニングは、重みの初期値をランダムに生成しているが、その初期値により学習後の性能が若干異なる。このため、ワーカー１２−ｉ側で学習を行うときに、１回学習を行うだけではなく、重みの初期値を複数回変更して学習を行い、平均してマネージャー１１に学習結果の指標を送信する。このことにより、安定してハイパーパラメータ探索を行うことができる。
【００４１】
（実施例５）  
ニューラルネットワークによるディープラーニングの初期の重みはランダムで生成している。このため、場合によってはランダムで生成した値により若干の性能差が生じることがある。後で同じハイパーパラメータで学習を再び行っても、同じ性能が出ないこともある。このため、ワーカー１２−ｉにおいて、学習を終えた時に、今までで一番性能が良かったモデル（ディープラーニングの学習結果）を保存しておき、学習結果と共にマネージャー１１に通知するとよい。
【００４２】
（実施例６）  
ニューラルネットワークによるディープラーニングでの学習は、同じデータを数十回以上繰り返し入力して学習を行うことで性能を上げている。しかしながら、一定以上繰り返しても過学習をしてしまい、かえって認識性能などの学習結果の指標が悪化する場合もある。このため、ワーカー１２−ｉにおいて、データを１回入力して学習を行う毎に、認識性能などの学習結果の指標を監視し、最も性能が良いときのモデル（ディープラーニングの学習結果）を保存しておくとよい。
【００４３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００４４】
１１…マネージャー（Manager）、１２−ｉ…ワーカー（Worker）、１３…ネットワーク、１０１…ＣＰＵ（Central Processing Unit）、１０２…ＲＯＭ（Read Only Memory）、１０３…ＲＡＭ（Random Access Memory）、１０４…Ｉ／Ｏ（Input-Output）、１０５…ＨＤＤ（Hard Disk Drive）、１０６…バス、１１１…ハイパーパラメータ探索範囲格納部、１１２…ハイパーパラメータ候補生成部、１１３…タスク発送部、１１２−１…ランダム（Random）方式、１１２−２…ＬＷＧＳ方式、１１２−３…ベイジアン（Bayesian）方式。
【図１】
0006470209.tif 000002
【図２】
0006470209.tif 000003
【図３】
0006470209.tif 000004
【図４】
0006470209.tif 000005
【図５】
0006470209.tif 000006
【図６】
0006470209.tif 000007
【図７】
0006470209.tif 000008
【図８】
0006470209.tif 000009