図1は、本実施形態に係るハイパーパラメータ調整装置としての解析装置10の構成概略図である。本実施形態に係る解析装置10は、サーバコンピュータにより構成される。しかしながら、以下に説明する機能を発揮可能な限りにおいて、解析装置10としてはどのような装置であってもよい。例えば、解析装置10は、パーソナルコンピュータなどであってもよい。
入出力インターフェース12は、解析装置10に対して種々の情報を入力するためのインターフェース、あるいは、解析装置10から種々の情報を出力するためのインターフェースである。
入出力インターフェース12は、例えば、ネットワークアダプタなどから構成されるネットワークインターフェースであってよい。ネットワークインターフェースによれば、解析装置10は、他の装置と通信可能となり、他の装置から種々の情報を受信することができ、また、他の装置に対して種々の情報を送信することができる。
また、入出力インターフェース12は、例えば、キーボードやマウス、あるいはタッチパネルなどから構成される入力インターフェースであってよい。入力インターフェースによれば、ユーザは、解析装置10に種々の情報を入力することができる。
また、入出力インターフェース12は、例えば、液晶パネルなどから構成されるディスプレイあるいはスピーカなどから構成される出力インターフェースであってよい。出力インターフェースによれば、解析装置10は、ユーザなどに向けて種々の情報を出力することができる。
メモリ14は、例えばHHD(Hard Disk Drive)、SSD(Solid State Drive)、ROM(Read Only Memory)、あるいはRAM(Random Access Memory)などを含んで構成されている。メモリ14は、後述のプロセッサ20とは別に設けられてもよいし、少なくとも一部がプロセッサ20の内部に設けられていてもよい。メモリ14には、解析装置10の各部を動作させるための、ハイパーパラメータ調整プログラムとしての解析プログラムが記憶される。解析プログラムは、コンピュータ(本実施形態では解析装置10)が読み取り可能な非一時的な記録媒体に記録されることができる。その場合、解析装置10は、当該記録媒体から解析プログラムを読み込んで実行することができる。
また、図1に示す通り、メモリ14には第1NN(ニューラルネットワーク)16、及び、学習器としての第2NN18が記憶される。なお、後述するように、第1NN16の実体は、第1NN16の構造を定義するプログラム、第1NN16に関する各種パラメータ、及び、入力データに対して処理を行うための処理実行プログラムなどである。したがって、メモリ14に第1NN16が記憶されるとは、上記プログラムや各種パラメータがメモリ14に記憶されることを意味する。第2NN18についても同様である。
第1NN16は、解析装置10の解析対象データを入力として、当該解析対象データに対応する出力データを出力するものである。解析対象データは何であってもよく、種々の分野のデータを用いることができる。すなわち、第1NN16は幅広い分野で用いられることができる。
第1NN16にはハイパーパラメータセットが設定されるところ、第1NN16のハイパーパラメータセットが、ハイパーパラメータ調整装置としての解析装置10による調整処理の対象となるハイパーパラメータセットである。第1NN16のハイパーパラメータとしては、これらに限られるものではないが、例えば、エポック数、隠れ層数、隠れ層ニューロン数、ドロップアウト数、あるいは、バッチ数などがある。
メモリ14には、設定されたハイパーパラメータセットが互いに異なる複数の第1NN16が記憶される。
図2は、第1NN16の構造の例を示す概念図である。図2に示す通り、第1NN16は、複数の層を含んで構成されている。具体的には、最も入力側に位置する入力層、最も出力側に位置する出力層、及び、入力層と出力層の間に位置する1又は複数の隠れ層を含んで構成されている。各層は、1又は複数のニューロン(ノード)16aから構成される。図2の例においては、各ニューロン16aは全結合されており、ある層のニューロン16aと次の層の全てのニューロン16aとが、複数のエッジ16bにより結合されている。
第1NN16は、入力データに基づいて、当該入力データに対応する出力データを推測して出力するものである。第1NN16は学習され、それにより入力データに対する出力データの精度を向上させることができる。例えば、第1NN16は、教師有り学習によって学習されることができる。この場合、第1NN16は、入力データと、当該入力データに対応する教師データとを含む学習データを用いて学習される。具体的には、学習データの内の入力データが第1NN16に入力され、当該入力データに対する第1NN16の出力データと、学習データに含まれる教師データとの誤差に基づいて、誤差逆伝搬法(バックプロパゲーション)などの手法により、各エッジ16bに定義された重み、及び、各ニューロン16aに定義されているバイアスが変更される。なお、第1NN16はその他の手法、例えば、教師無し学習や強化学習などにより学習されてもよい。
図3は、第1NN16の学習後性能としての学習後誤差を示す概念図である。図3に示された第1NN16は、十分に学習された学習済みのものである。上述の通り、解析対象データ(つまり第1NN16の入力データ)に対する学習済みの第1NN16の出力データと、当該解析対象データに対応する真のデータ(正解データ)との誤差を学習後誤差と呼ぶ。また、学習後性能としては、学習済みの第1NN16に解析対象データを入力してから出力データを出力するまでの時間である学習後解析時間であってもよい。また、学習済みの第1NN16の性能を示す学習後性能としては、学習後誤差及び学習後解析時間に限られない。
図1に戻り、第2NN18は、第1NN16とは異なるNNであり、第1NN16のハイパーパラメータセットを入力とし、当該ハイパーパラメータセットが設定された第1NN16の学習後性能を出力するように学習される学習器である。具体的には、第2NN18は、第1NN16のハイパーパラメータセットと、当該ハイパーパラメータセットが設定された第1NN16の学習後性能(教師データ)とを含む学習データを用いて学習される。教師データとしての学習後性能は、学習後誤差と学習後解析時間との組み合わせなど、複数の評価値の組み合わせであってもよい。なお、第2NN18の構造は、第1NN18(図2参照)と同様であってよい。もちろん、第2NN18のハイパーパラメータは、第1NN16のハイパーパラメータと異なっていてもよい。
なお、本実施形態では、第1NN16の学習後性能を予測する学習器として第2NN18を用いているが、当該学習器としては、NNに限られるものではない。例えば、当該学習器として重回帰分析を行う重回帰モデルを用いるようにしてもよい。重回帰分析は、目的変数(ここでは第1NN16の学習後性能)を複数の説明変数(ここではハイパーパラメータセット)で予測するものであり、以下の式で表される。
y=b1x1+b2x2+・・・+bkxk+e
上式において、yは目的変数であり、xnは説明変数(各xnが第1NN16の各ハイパーパラメータに相当する)であり、bnは説明変数xnの係数であり、eは定数である。上記学習データを用いた学習により、各xnに対応する係数bnが変更されていく。重回帰モデルにおいては、各係数bnが過度に大きくならないようにするための調整パラメータλを設定することができる。当該調整パラメータλが重回帰モデルのハイパーパラメータの1つの例である。
詳しくは後述するが、学習済みの第2NN18は、遺伝的アルゴリズムによる第1NN16のハイパーパラメータの調整処理において用いられる。具体的には、遺伝的アルゴリズムの各世代における処理において、個体としての第1NN16のハイパーパラメータセットに対する適応度を算出するための第1NN16の学習後性能を算出する際に、学習済みの第2NN18が用いられる。
第2NN18のハイパーパラメータの設定方法、及び、第2NN18の学習方法の詳細については、プロセッサ20の処理と共に後述する。
プロセッサ20は、汎用的な処理装置(例えばCPU(Central Processing Unit)など)、及び、専用の処理装置(例えばASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、あるいは、プログラマブル論理デバイスなど)の少なくとも1つを含んで構成される。プロセッサ20としては、1つの処理装置によるものではなく、物理的に離れた位置に存在する複数の処理装置の協働により構成されるものであってもよい。図1に示す通り、プロセッサ20は、メモリ14に記憶された解析プログラムにより、第2NNパラメータ決定部22、学習処理部24、GA(遺伝的アルゴリズム)処理部26、及び、出力部28としての機能を発揮する。
学習器パラメータ決定部としての第2NNパラメータ決定部22は、第1NN16の学習後性能を出力する学習器のハイパーパラメータ(1つのパラメータであってもよい)を決定する。本実施形態では、第2NNパラメータ決定部22は、第2NN18のハイパーパラメータセットを決定する。以下、第1NN16の学習後性能を出力する学習器のハイパーパラメータを決定するための代表的な方法を説明する。
第1の方法として、第2NNパラメータ決定部22は、ユーザからの指示に応じて、第1NN16の学習後性能を出力する学習器のハイパーパラメータ(本実施形態では第2NN18のハイパーパラメータセット)を決定することができる。具体的には、第2NNパラメータ決定部22は、入出力インターフェース12がユーザから取得したハイパーパラメータセットを示すハイパーパラメータ情報に基づいて、第2NN18のハイパーパラメータセットを決定する。
例えば、ユーザがハイパーパラメータセットをユーザ端末(不図示)に入力した上で、入出力インターフェース12としてのネットワークインターフェースは、当該ハイパーパラメータセットを示すハイパーパラメータ情報をユーザ端末から受信することができる。また、ユーザは、入出力インターフェース12としての入力インターフェースを操作することで、第2NN18のハイパーパラメータセットを解析装置10に入力するようにしてもよい。
第1の方法の好適な変形例としては、解析装置10の管理者などが、予め、第2NN18の複数のハイパーパラメータセットを用意しておき、当該複数のハイパーパラメータセットをユーザに提示して、当該複数のハイパーパラメータセットの中から、使用する第2NN18のハイパーパラメータセットをユーザに選択させるようにしてもよい。
複数のハイパーパラメータセットのユーザへの提示は、入出力インターフェース12としてのネットワークインターフェースが、当該複数のハイパーパラメータセットを示す情報をユーザ端末に送信して、ユーザ端末のディスプレイに複数のハイパーパラメータセットを表示させることができる。また、入出力インターフェース12としての出力インターフェースが、当該複数のハイパーパラメータセットを示す情報をユーザに向けて出力してもよい。
第2の方法として、第2NNパラメータ決定部22は、解析装置10の解析対象、つまり、第1NN16に入力される解析対象データに応じて、第1NN16の学習後性能を出力する学習器のハイパーパラメータ(本実施形態では第2NN18のハイパーパラメータセット)を決定することができる。
第1NN16は、種々の解析対象データを入力とすることができるため、解析対象データに応じて、適切なハイパーパラメータセットが大きく異なる場合がある。一方、第2NN18は、第1NN18の解析対象データが何であろうと、その入力データは第1NN18のハイパーパラメータセットであり、その出力データは第1NN16の学習後性能である。したがって、第2NN18の適切なハイパーパラメータセットは、第1NN16のそれに比して、第1NN16の解析対象データに応じて変動し難いものであるとは言える。しかしながら、第2NN18の最適なハイパーパラメータセットも、第1NN16の解析対象データに応じて異なる場合があり、そのような場合に、第1NN16に入力される解析対象データに応じて、第2NN18のハイパーパラメータセットを決定するのが有効である。
具体的には、過去において第1NN16に入力された解析対象データの種別毎に、当該第1NN16のハイパーパラメータセットの調整処理に用いられた第2NN18のハイパーパラメータセットと、学習済みの当該第2NN18の出力誤差とを関連付けてメモリ14にデータベースとして記憶させておく。その上で、第2NNパラメータ決定部22は、ハイパーパラメータセットの調整対象となる第1NN16に入力される予定の解析対象データの種別を取得し、上記データベースを参照し、当該解析対象データの種別に対応した第2NN18のハイパーパラメータセットのうち、出力誤差の小さいものを第2NN18のハイパーパラメータセットとして決定するようにしてもよい。あるいは、当該解析対象データの種別に対応した第2NN18のハイパーパラメータセットのうち、出力誤差の小さい複数のハイパーパラメータセットを特定し、特定した複数のハイパーパラメータセットをユーザに提示して、ユーザに選択させるようにしてもよい。
第3の方法として、第2NNパラメータ決定部22は、従来から学習器のハイパーパラメータの最適化処理に用いられるベイズ最適化によって、第1NN16の学習後性能を出力する学習器のハイパーパラメータ(本実施形態では第2NN18のハイパーパラメータセット)を決定することができる。
学習処理部24は、第1NN16のハイパーパラメータセットを入力とし、当該ハイパーパラメータセットが設定された第1NN16の学習後性能を出力するように第2NN18を学習させる学習処理を実行する。以下、学習処理部24による学習処理の手順を説明する。
まず、学習処理部24は、互いに異なるハイパーパラメータセットが設定された複数の第1NN16を学習させる。複数の第1NN16に設定される各ハイパーパラメータセットはランダムに設定されてよい。ここでの複数の第1NN16の数は、従来方法に比して第1NN16のハイパーパラメータの調整処理の処理量あるいは処理時間についての優位性が失われないような数とする。具体的には、後述のGA処理部26が、遺伝的アルゴリズムにおいてG世代分の処理を実行し、1つの世代の個体としてN個のハイパーパラメータセットが用意される場合、ここでの複数の第1NN16の数をG×N個未満の数とする。あるいは、後述のGA処理部26が、遺伝的アルゴリズムにおいてG世代分の処理を実行し、1つの世代の個体としてN個のハイパーパラメータセットが用意され、各ハイパーパラメータセットの適応度を、同一のハイパーパラメータが設定されたP個の学習済みのNNのP個の学習後性能に基づいて決定する場合、ここでの複数の第1NN16の数をG×N×P個未満の数とする。
学習処理部24は、解析対象データと、解析対象データに対応するデータ(教師データ)とから構成される学習データを用いて、各第1NN16を学習させる。具体的には、解析対象データを第1NN16に入力し、当該解析対象データに対する第1NN16の出力データと、教師データとの出力誤差に基づいて、第1NN16の各エッジ16bの重み、及び各ニューロン16aのバイアスを変更していく。
複数の第1NN16を十分に学習させた後、学習処理部24は、各第1NN16を評価して、各第1NN16の学習後性能を算出する。具体的には、学習後性能として学習後誤差を用いる場合には、図3に示すように、対応する真のデータが既知である評価データとしての解析対象データを学習済みの第1NN16に入力し、当該解析対象データに対する第1NN16の出力データと、真のデータとの誤差である学習後誤差を算出する。学習後誤差は、複数の解析対象データを学習済みの1つの第1NN16に入力したときの、複数の出力データと複数の真のデータとの間の誤差率であってもよい。また、学習後性能として学習後解析時間を用いる場合には、解析対象データを学習済みの第1NN16に入力してから出力データが出力されるまでの時間を計測して学習後解析時間とする。学習後解析時間は、複数回解析対象データを1つの第1NN16に入力したときの複数の解析時間の平均値であってもよい。また、学習後性能としては、学習後誤差及び学習後解析時間の組み合わせなどの、複数の評価値が表現された数値であってもよい。
ここまでの処理により、図4に示すような、第1NN16のハイパーパラメータセットと、それに対応する学習後性能との組を複数取得することができる。なお、図4の例では、学習後性能として学習後誤差が示されている。第1NN16のハイパーパラメータセットと、それに対応する学習後性能との組が第2NN18を学習させるための学習データとなる。当該学習データのうち、各ハイパーパラメータセットに対応する学習後性能が教師データとなる。学習データの数は、十分に学習させた複数の第1NN16の数となる。
次に、学習処理部24は、第2NNパラメータ決定部22が決定したハイパーパラメータを第2NN18のハイパーパラメータに設定する。
その上で、学習処理部24は、第1NN16のハイパーパラメータセットと、それに対応する学習後性能との組を学習データとして用いて、第2NN18を学習させる。具体的には、図5に示すように、第1NN16のハイパーパラメータセットを第2NN18に入力し、当該ハイパーパラメータセットに対する第2NN18の出力データ(これは第1NN18の学習後性能を示すものである)と、教師データとの差分に基づいて、第2NN16の各エッジの重み及び各ニューロンのバイアスを変更していく。
上述のような学習処理により、第2NN18が十分に学習されると、第2NN18は、第1NN16のハイパーパラメータセットを入力することで、当該ハイパーパラメータセットが設定された第1NN16に当該解析対象データが入力されたときの学習後性能を高精度に予測して出力できるようになる。つまり、学習済みの第2NN18によれば、逐一第1NN16を学習させなくても、当該第1NN16の学習後性能を取得することができる。ここで、第2NN18が出力する学習後性能とは、第1NN16の学習後誤差、学習後解析時間、あるいは、これらの評価値の組み合わせを示す値である。
なお、学習処理部24は、図4に示すような学習データを用いて、同一のハイパーパラメータセットが設定された複数の第2NN18を学習させ、複数の学習済みの第2NN18を用意するようにしてもよい。ちなみに、同一のハイパーパラメータセットが設定された複数の学習済みの第2NN18のそれぞれは、同じ入力データに対して同じ出力データを出力するとは限らない。さらに、学習処理部24は、当該学習データの一部である評価データを用いて学習済みの複数の第2NN18の出力精度を評価し、当該複数の第2NN18のうち、最も出力精度が高いものを後述のGA処理部26による遺伝的アルゴリズムに使用する第2NN18として選択するようにしてもよい。
ハイパーパラメータ調整部としてのGA処理部26は、遺伝的アルゴリズムにより、第1NN16のハイパーパラメータセットを調整する調整処理を実行する。図6は、GA処理部26による遺伝的アルゴリズムを用いた第1NN16のハイパーパラメータセットの調整処理の様子を示す概念図である。図6を参照しながら、GA処理部26の処理を具体的に説明する。
図6に示される通り、GA処理部26が用いる遺伝的アルゴリズムの個体は、第1NN16のハイパーパラメータセットである。なお、当該個体を構成する各遺伝子は、当該ハイパーパラメータセットを構成する各ハイパーパラメータである。また、GA処理部26が用いる遺伝的アルゴリズムにおける各個体の適応度は、各個体としての各ハイパーパラメータセットが設定された第1NN16の学習後性能に応じた値である。なお、図8同様、図6においても、第m世代の第n番目のハイパーパラメータセットが、「ハイパーパラメータセットm-n」と記載されている。
GA処理部26は、まず、初期個体群としてN個の個体、すなわち第1世代のN個のハイパーパラメータセットを用意する。GA処理部26は、第1世代のN個のハイパーパラメータセットに含まれる各ハイパーパラメータの値をランダムに選択することができる。
次に、GA処理部26は、第1世代のN個のハイパーパラメータセットそれぞれの適応度を算出する。ここで、従来とは異なり、GA処理部26は、各ハイパーパラメータセットを学習済みの第2NN16に入力することで、各ハイパーパラメータに対応する第1NN16の学習後性能を取得する。なお、図6の例でも、学習後性能として学習後誤差が示されている。そして、取得した学習後性能に基づいて、各ハイパーパラメータの適応度を算出する。複数の学習済みの第2NN18が用意されている場合には、1つのハイパーパラメータを複数の第2NN18に入力して得られた複数の学習後性能に基づいて、当該ハイパーパラメータの適応度を算出するようにしてもよい。例えば、1つのハイパーパラメータを複数の第2NN18に入力して得られた複数の学習後性能の平均値に基づいて、当該ハイパーパラメータの適応度を算出するようにしてもよい。このように、本実施形態においては、GA処理部26は、各ハイパーパラメータの適応度を算出するに当たり、各ハイパーパラメータセットが設定されたN個のNNを学習させる必要がない。
次に、GA処理部26は、算出した第1世代のN個のハイパーパラメータセットそれぞれの適応度に基づいて、既知の方法によって、第2世代のN個のハイパーパラメータセットを生成する。そして、GA処理部26は、第2世代のN個のハイパーパラメータセットそれぞれの適応度を算出する。第2世代においても、第1世代同様、GA処理部26は、各ハイパーパラメータセットを学習済みの第2NN16に入力することで、各ハイパーパラメータに対応する第1NN16の学習後性能を取得する。つまり、第2世代においても、GA処理部26は、各ハイパーパラメータの適応度を算出するに当たり、各ハイパーパラメータセットが設定されたN個のNNを学習させる必要がない。
さらに、GA処理部26は、算出した第2世代のN個のハイパーパラメータセットそれぞれの適応度に基づいて、第3世代のN個のハイパーパラメータセットを生成する。以後、GA処理部26は、上記同様の処理を世代を進めながら繰り返していく。上述の処理を世代を進めながら繰り返していくことが、第1NN16のハイパーパラメータを調整することとなり、やがて適応度が高い個体、すなわち、学習後性能の高い第1NN16のハイパーパラメータセット(理想的には最適なハイパーパラメータセット)を得ることができる。
GA処理部26は、所定の終了条件を満たすまで上述の遺伝的アルゴリズムを実行する。所定の終了条件とは、例えば、所定の世代までの処理が完了した、所定の適応度を超える個体が生成された、あるいは、所定の世代のN個の個体の平均適応度が所定の閾値以上となった、などである。
GA処理部26によって第1NN16のハイパーパラメータセット(理想的には最適なハイパーパラメータ)が取得されると、学習処理部24は、当該ハイパーパラメータセットを第1NN16に設定する。その上で、第1NN16を学習させる。これにより、学習処理部24は、高い学習効率で第1NN16を学習させることができ、また、学習済みの第1NN16の出力誤差を小さくすることができる。
図1に戻り、出力部28は、例えばユーザから入力された解析対象データを学習済みの第1NN16に入力し、第1NN16が出力した当該対象データに対応する出力データをユーザに提供する。上述のように、本実施形態で用いられる第1NN16は、そのハイパーパラメータが調整されたものであるから、出力部28は、解析対象データに対応する高精度な出力データをユーザに提供することができる。
本実施形態に係る解析装置10の概要は以上の通りである。本実施形態に係る解析装置10によれば、第1NN16のハイパーパラメータに基づいて当該第1NN16の学習後性能を出力するように第2NN18が学習され、GA処理部26による遺伝的アルゴリズムを用いた第1NN16のハイパーパラメータの調整処理においては、学習済みの第2NN18を用いて、各第1NN16のハイパーパラメータに対する学習後性能が取得される。したがって、遺伝的アルゴリズムの各世代の処理において、各個体の適応度の算出、すなわち、第1NN16の各ハイパーパラメータの学習後性能を取得する処理において、逐一第1NN16を学習させる必要がなくなる。これにより、遺伝的アルゴリズムによって第1NN16のハイパーパラメータセットを調整する際の処理量又は処理時間が低減される。
以下、図7に示すフローチャートに従って、本実施形態に係る解析装置10の処理の流れを説明する。
第1NN16の学習ステップであるステップS10において、学習処理部24は、互いに異なるハイパーパラメータセットを複数の第1NN16に設定した上で、当該複数の第1NN16を学習させる。
学習データ取得ステップであるステップS12において、学習処理部24は、学習済みの複数の第1NN16を評価して、各第1NN16の学習後性能を算出する。これにより、第2NN18の学習データである、第1NN16のハイパーパラメータセットと、それに対応する学習後性能との組を複数取得する。
第2NN18のハイパーパラメータセット設定ステップであるステップS14において、第2NNパラメータ決定部22は、上述のいずれかの方法によって第2NN18のハイパーパラメータセットを決定し、第2NN18に設定する。
第2NN18の学習ステップであるステップS20において、学習処理部24は、ステップS12で取得された学習データを用いて、第2NN18を学習させる。学習済みの第2NN18は、第1NN16のハイパーパラメータを入力とし、当該ハイパーパラメータが設定された第1NN16の学習後性能を高精度に予測して出力できるようになる。
第1NN16のハイパーパラメータセットの調整ステップであるステップS18において、GA処理部26は、第1NN16のハイパーパラメータセットを個体とし、当該ハイパーパラメータセットが設定された第1NN16の学習後性能に応じた値を適応度とする遺伝的アルゴリズムにより、第1NN16のハイパーパラメータを調整する。遺伝的アルゴリズムの各世代における適応度(つまり各ハイパーパラメータセットに対する学習後性能)は、ステップS16で学習された第2NN18を用いて取得される。当該遺伝的アルゴリズムによる処理により、調整された(理想的には最適化された)第1NN16のハイパーパラメータが取得される。
出力データ提供ステップであるステップS20において、まず、学習処理部24は、ステップS18で取得されたハイパーパラメータセットを第1NN16に設定し、第1NN16を学習させる。その上で、出力部28は、解析対象データを学習済みの第1NN16に入力して得られた出力データをユーザに提供する。
以上、本発明に係る実施形態を説明したが、本発明は上記実施形態に限られるものではなく、本発明の趣旨を逸脱しない限りにおいて種々の変更が可能である。
例えば、本実施形態では、第1NN16のハイパーパラメータセットの調整処理が、GA処理部26による遺伝的アルゴリズムにより実行されていたが、当該調整処理は遺伝的アルゴリズムを用いた方法に限られない。
特に、調整処理は、ヒューリスティックな探索手法を用いることができる。ヒューリスティックな探索手法とは、必ずしも最適解を導き出せるとは限らないが、ある程度最適解に近い答えを出せる方法のことである。特に、ヒューリスティックな探索方法とは、試行錯誤を経て答えを出す手法を含む。本実施形態においては、試行錯誤とは、第1NN16のハイパーパラメータを様々な値に設定してみて、その結果(各第1NN16の学習後性能)に基づいて、第1NN16のハイパーパラメータを調整していくことを意味する。
ヒューリスティックな探索手法としては、種々の方法が考えられる。
例えば、調整処理は、強化学習による方法であってもよい。強化学習とは、ある状態から行動を起こしたときの報酬を設定し、試行錯誤により様々な行動を起こし、その行動に対する報酬に基づいて、最適な行動や状態を探索する手法である。本実施形態の一例としては、第1NN16のあるハイパーパラメータセットが状態に相当し、当該ハイパーパラメータセットを修正する(すなわち他のハイパーパラメータセットに変更する)という処理が行動に相当する。この場合の報酬を、修正後のハイパーパラメータセットを入力とする学習済みの学習器(例えば第2NN18)の出力、すなわち、修正後のハイパーパラメータセットを第1NN16に設定したときの第1NN16の学習後性能に基づいて決定することができる。このような強化学習には、Q学習やDQN(Deep Q-Network)が含まれる。
また、調整処理は、グリッドサーチを用いた方法であってもよい。グリッドサーチとは、複数のパラメータの組み合わせの最適解を探索する手法であり、可能な組み合わせを網羅的に(例えば可能な全組み合わせを)探索して、その中から最良の結果を示す組み合わせを決定する手法である。本実施形態においては、第1NN16のハイパーパラメータセット(ハイパーパラメータの組み合わせ)を網羅的に設定し、学習済みの学習器を用いて得られた、各ハイパーパラメータセットが設定された第1NN16の学習後性能に基づいて、設定した複数のハイパーパラメータセットの中から最良の結果を示すハイパーパラメータセットを決定する。
また、調整処理は、ランダムサーチを用いた方法であってもよい。ランダムサーチとは、グリッドサーチと同じように複数のパラメータの組み合わせの最適解を探索する手法であるが、ランダムに複数決定されたパラメータの組み合わせを探索して、その中から最良の結果を示す組み合わせを決定する手法である。本実施形態においては、第1NN16のハイパーパラメータセット(ハイパーパラメータの組み合わせ)をランダムに設定し、学習済みの学習器を用いて得られた、各ハイパーパラメータセットが設定された第1NN16の学習後性能に基づいて、設定した複数のハイパーパラメータセットの中から最良の結果を示すハイパーパラメータセットを決定する。
また、調整処理は、ベイズ最適化を用いた方法であってもよい。ベイズ最適化とは、複数のパラメータの組み合わせとそれらの評価値を元にAcquisition functionと呼ばれる代理関数を最適化することで、最良の評価値を示す可能性が高い組み合わせを探索する手法である。本実施形態においては、複数の第1NN16のハイパーパラメータセット(ハイパーパラメータの組み合わせ)と、学習済みの学習器を用いて得られた、各ハイパーパラメータセットが設定された第1NN16の学習後性能に基づいて、設定した複数のハイパーパラメータセットの中から最良の結果を示すハイパーパラメータセットを決定する。ベイズ最適化は、本来少ない試行錯誤から最適解を探索する手法であり、現状では学習器を用いることなく、NNのハイパーパラメータセットの探索に用いられている。しかしながら、同じハイパーパラメータセットでも学習後性能に大きなバラツキが生じ得るNNの場合、実際の学習後性能の数値をそのまま用いるとそれらの無意味なバラツキまでも過度に学習した状態(過学習)となって適切な最適解が得られない可能性がある。本実施形態における学習器を用いることで、それらのバラツキを適度に緩和した学習後性能の数値を使用できるため、過学習を回避し、精度よく最適解を探索することができる。