(57)【要約】【課題】ハイパーパラメータの調整の難易度が高くなりにくいニューラルネットワークの評価方法、ニューラルネットワークの生成方法、プログラム及び評価システムを提供する。【解決手段】ニューラルネットワークの評価方法は、関数生成処理と、評価処理Ｐ３と、を有する。関数生成処理は、ニューラルネットワークについて精度と性能とを含む複数次元の評価対象を一次元化した評価関数を生成する処理である。評価処理Ｐ３は、評価関数に基づいて、ニューラルネットワークの評価を行う処理である。【選択図】図１
2020123292.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークについて精度と性能とを含む複数次元の評価対象を一次元化した評価関数を生成する関数生成処理と、
前記評価関数に基づいて、前記ニューラルネットワークの評価を行う評価処理と、を有する、
ニューラルネットワークの評価方法。
【請求項２】
前記ニューラルネットワークは、設計処理及び軽量化処理を経て生成されており、
前記精度は少なくとも前記設計処理に依存し、前記性能は少なくとも前記軽量化処理に依存する、
請求項１に記載のニューラルネットワークの評価方法。
【請求項３】
前記評価処理の評価結果と前記ニューラルネットワークのハイパーパラメータとの関係性を表す統計的モデルを生成するモデル生成処理を更に有する、
請求項１又は２に記載のニューラルネットワークの評価方法。
【請求項４】
前記ハイパーパラメータは、二次元以上の変数を含む、
請求項３に記載のニューラルネットワークの評価方法。
【請求項５】
前記ニューラルネットワークは、設計処理及び軽量化処理を経て生成されており、
前記ハイパーパラメータは、前記設計処理に関連する第１変数と、前記軽量化処理に関連する第２変数とを含む、
請求項４に記載のニューラルネットワークの評価方法。
【請求項６】
前記第１変数と前記第２変数との少なくとも一方は、二次元以上の変数を含む、
請求項５に記載のニューラルネットワークの評価方法。
【請求項７】
前記統計的モデルに基づいて、前記ニューラルネットワークのハイパーパラメータを決定する決定処理を更に有する、
請求項３〜６のいずれか１項に記載のニューラルネットワークの評価方法。
【請求項８】
請求項１〜７のいずれか１項に記載のニューラルネットワークの評価方法を用いたニューラルネットワークの生成方法であって、
ニューラルネットワークを設計する設計処理と、
前記ニューラルネットワークの重みの分布を変換する軽量化処理と、を有し、
前記設計処理及び前記軽量化処理の各々において、前記評価処理の評価結果に基づいてハイパーパラメータを調整可能である、
ニューラルネットワークの生成方法。
【請求項９】
請求項１〜７のいずれか１項に記載のニューラルネットワークの評価方法、
又は請求項８に記載のニューラルネットワークの生成方法を、
１以上のプロセッサに実行させるためのプログラム。
【請求項１０】
ニューラルネットワークについて精度と性能とを含む複数次元の評価対象を一次元化した評価関数を生成する関数生成部を備え、
前記評価関数に基づいて、前記ニューラルネットワークの評価を行う、
評価システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般にニューラルネットワークの評価方法、ニューラルネットワークの生成方法、プログラム及び評価システムに関する。より詳細には、本開示は、ニューラルネットワークの評価を行うニューラルネットワークの評価方法、それを用いたニューラルネットワークの生成方法、プログラム及び評価システムに関する。
【背景技術】
【０００２】
特許文献１には、畳み込みニューラルネットワーク（ＣＮＮ）のハードウエア実装を構成する方法（コンピュータ実装方法）が記載されている。ＣＮＮは、機械学習用途に使用することができる人工ニューラルネットワークの１つのタイプである。特に、ＣＮＮは、画像処理及びコンピュータビジョン用途を含む信号処理用途に使用することができる。
【０００３】
特許文献１に記載されているように、ＣＮＮは、コンピュータビジョンタスクを含む信号処理タスクをＣＮＮが実行することを可能にするために重みを関連付けた複数の相互接続された層を含む人工ニューラルネットワークの形態である。ＣＮＮの機能は重みによって表現される。一例として、入力画像を受信するようにＣＮＮを構成することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−１０６１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上述したようなニューラルネットワークを構成する際には、パラメータ（ハイパーパラメータ）を人が調整する必要がある。ハイパーパラメータ次第で、ニューラルネットワークの性能及び精度の各々が変化する。そして、ニューラルネットワークの性能及び精度のバランスをとるようにハイパーパラメータを調整することが求められる場合があり、このような場合においては、ハイパーパラメータの調整の難易度が高くなる。
【０００６】
本開示は上記事由に鑑みてなされており、ハイパーパラメータの調整の難易度が高くなりにくいニューラルネットワークの評価方法、ニューラルネットワークの生成方法、プログラム及び評価システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本開示の一態様に係るニューラルネットワークの評価方法は、関数生成処理と、評価処理と、を有する。前記関数生成処理は、ニューラルネットワークについて精度と性能とを含む複数次元の評価対象を一次元化した評価関数を生成する処理である。前記評価処理は、前記評価関数に基づいて、前記ニューラルネットワークの評価を行う処理である。
【０００８】
本開示の一態様に係るニューラルネットワークの生成方法は、前記ニューラルネットワークの評価方法を用いたニューラルネットワークの生成方法である。前記ニューラルネットワークの生成方法は、設計処理と、軽量化処理と、を有する。前記設計処理は、ニューラルネットワークを設計する処理である。前記軽量化処理は、前記ニューラルネットワークの重みの分布を変換する処理である。前記ニューラルネットワークの生成方法では、前記設計処理及び前記軽量化処理の各々において、前記評価処理の評価結果に基づいてハイパーパラメータを調整可能である。
【０００９】
本開示の一態様に係るプログラムは、前記ニューラルネットワークの評価方法、又は前記ニューラルネットワークの生成方法を、１以上のプロセッサに実行させるためのプログラムである。
【００１０】
本開示の一態様に係る評価システムは、関数生成部を備える。前記関数生成部は、ニューラルネットワークについて精度と性能とを含む複数次元の評価対象を一次元化した評価関数を生成する。前記評価システムは、前記評価関数に基づいて、前記ニューラルネットワークの評価を行う。
【発明の効果】
【００１１】
本開示によれば、ハイパーパラメータの調整の難易度が高くなりにくい、という利点がある。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施形態１に係るニューラルネットワークの評価方法、及びニューラルネットワークの生成方法を模式的に表す説明図である。
【図２】図２は、同上のニューラルネットワークの生成方法の全体の流れを示すフローチャートである。
【図３】図３Ａ〜図３Ｄは、同上のニューラルネットワークの評価方法における統計的モデルを生成する様子を模式的に表す説明図である。
【図４】図４は、同上のニューラルネットワークの生成方法にて、ハイパーパラメータを調整しつつニューラルネットワークを生成する全体的な流れを模式的に表す説明図である。
【図５】図５は、実施形態１に係るニューラルネットワークの評価システム、及びニューラルネットワークの生成システムの構成を示す概略図である。
【発明を実施するための形態】
【００１３】
（実施形態１）
（１）概要
図１は、本実施形態に係るニューラルネットワークの評価方法、及びニューラルネットワークの生成方法を模式的に表す説明図である。
【００１４】
本実施形態に係るニューラルネットワークの生成方法は、本実施形態に係るニューラルネットワークの評価方法を用いた生成方法であって、設計処理Ｐ１と、軽量化処理Ｐ２と、を有している。設計処理Ｐ１は、ニューラルネットワークを設計する処理である。軽量化処理Ｐ２は、ニューラルネットワークの重みの分布を変換する処理である。つまり、設計処理Ｐ１にて設計されたニューラルネットワークについて、訓練（学習）がされることによりニューラルネットワークＮＮ１が生成される。そして、このニューラルネットワークＮＮ１について、軽量化処理Ｐ２にて、重み分布の変換が行われることにより、ニューラルネットワークＮＮ２が得られる。ニューラルネットワークＮＮ２は、ニューラルネットワークＮＮ１に比べて、軽量化処理Ｐ２により、軽量化、つまりモデル圧縮されたネットワークであって、データサイズの縮小、及び／又は、演算負荷の軽減による高効率化（高速化）等が図られている。
【００１５】
また、本実施形態に係るニューラルネットワークの生成方法は、ニューラルネットワークの評価方法に係る評価処理Ｐ３及び決定処理Ｐ４を、更に有している。つまり、評価処理Ｐ３及び決定処理Ｐ４は、本実施形態に係るニューラルネットワークの評価方法に含まれる処理である。評価処理Ｐ３は、ニューラルネットワークの評価を行う処理である。決定処理Ｐ４は、評価処理Ｐ３の評価結果を用いて、ニューラルネットワークのハイパーパラメータを決定する処理である。
【００１６】
そして、本実施形態に係るニューラルネットワークの生成方法では、設計処理Ｐ１及び軽量化処理Ｐ２の各々において、ニューラルネットワークの評価方法に含まれている評価処理Ｐ３の評価結果に基づいて、ハイパーパラメータを調整可能である。つまり、本実施形態に係るニューラルネットワークの生成方法では、ニューラルネットワークの評価方法を利用して、設計処理Ｐ１及び軽量化処理Ｐ２の各々でのハイパーパラメータの調整を行うことができる。そして、設計処理Ｐ１で調整されるハイパーパラメータ次第で、ニューラルネットワークの「精度」の向上を図ることが可能である。また、軽量化処理Ｐ２で調整されるハイパーパラメータ次第で、ニューラルネットワークの「性能」の向上を図ることが可能である。一方で、軽量化処理Ｐ２後のニューラルネットワークＮＮ２は、軽量化処理Ｐ２前のニューラルネットワークＮＮ１に比較して、「精度」が低下しやすい。
【００１７】
ここで、本実施形態に係るニューラルネットワークの評価方法は、関数生成処理と、評価処理Ｐ３と、を有している。関数生成処理は、ニューラルネットワークについて精度と性能とを含む複数次元の評価対象を一次元化した評価関数を生成する処理である。評価処理Ｐ３は、評価関数に基づいて、ニューラルネットワークの評価を行う処理である。
【００１８】
すなわち、上記ニューラルネットワークの評価方法によれば、ニューラルネットワークの精度と性能との両方を考慮した、ニューラルネットワークの評価が可能となる。そのため、その評価結果をニューラルネットワークの生成方法に利用すれば、設計処理Ｐ１に依存するニューラルネットワークの精度と、軽量化処理Ｐ２に依存するニューラルネットワークの性能と、の両方を考慮したハイパーパラメータの調整が可能となる。そして、上記ニューラルネットワークの評価方法では、ニューラルネットワークの精度及び性能を含む複数次元の指標を一次元化した評価関数を用いて、ニューラルネットワークの評価を行う。つまり、このような評価関数によれば、精度及び性能といった別次元の指標を１つの評価軸上で、同時に評価することが可能である。そのため、ニューラルネットワークの精度及び性能という、互いにトレードオフの関係にあるような指標について、個別に評価する必要がない。したがって、本実施形態に係るニューラルネットワークの評価方法及びニューラルネットワークの生成方法によれば、ハイパーパラメータの調整の難易度が高くなりにくい、という利点がある。
【００１９】
（２）詳細
以下に、本実施形態に係るニューラルネットワークの評価方法、ニューラルネットワークの生成方法、プログラム及び評価システムについて、図２〜図５を参照して詳細に説明する。
【００２０】
本実施形態では、一例として、自動車等の移動体に組み込まれて、カメラで撮像された画像の認識に利用されるニューラルネットワークを、ニューラルネットワークの評価方法等の対象とする。すなわち、本実施形態では、移動体の組み込みシステムに実装され、かつ画像認識用のニューラルネットワークを、評価方法による評価の対象、及び生成方法による生成の対象とする。
【００２１】
学習済みのニューラルネットワークが、移動体の組み込みシステムに実装されることで、移動体の組み込みシステム上で、ニューラルネットワークを動作させることができる。ニューラルネットワークを実装した組み込みシステムが適用される移動体は、自動車に限らず、例えば、二輪車、電車、航空機、ドローン、建設機械及び船舶等の、自動車以外の移動体であってもよい。さらに、ニューラルネットワークを実装した組み込みシステムは、移動体に限らず、例えば、アミューズメント機器、ウェアラブル端末又は医療設備等に適用されてもよい。
【００２２】
また、画像認識用のニューラルネットワークは、例えば、移動体の自動運転技術、先進運転支援システム（ＡＤＡＳ：Advanced Driver Assistance System）、及びドライバモニタリング技術等に利用される。自動運転技術においては、この種のニューラルネットワークにて、例えば、カメラで撮像された移動体の周辺の画像の認識をすることで、移動体の周辺の物体の存在を検知することが可能である。この場合において検知可能となる移動体の周辺の物体の一例として、別の移動体、ガードレール及び信号機等の構造物の他、歩行者及び小動物等がある。
【００２３】
このような画像認識用途のニューラルネットワークとしては、畳み込みニューラルネットワーク（ＣＮＮ：Convolutional Neural Network）が好適に用いられる。そこで、本実施形態に係るニューラルネットワークの評価方法による評価の対象、及び生成方法による生成の対象は、移動体の組み込みシステムに実装され、かつ画像認識用の畳み込みニューラルネットワークであることとする。
【００２４】
（２．１）定義
本開示でいう「精度」は、ニューラルネットワークの評価の指標（評価対象）の１つである。例えば、画像認識のような認識用のニューラルネットワークでは認識の精度（正解率）が、検知用（物体検知用）のニューラルネットワークでは検知の精度が、ニューラルネットワークについての「精度」にそれぞれ該当する。ニューラルネットワークについての「精度」は、少なくともニューラルネットワークの生成方法に含まれる設計処理Ｐ１に依存し、設計処理Ｐ１で用いるハイパーパラメータ如何で変化する。つまり、ニューラルネットワークについての「精度」は、軽量化処理Ｐ２の有無にかかわらず、ニューラルネットワークのパフォーマンスを表す指標である。
【００２５】
本開示でいう「性能」は、ニューラルネットワークの評価の指標（評価対象）の１つであって、「精度」とは別の評価の指標である。例えば、パラメータ数、メモリ量及び演算量のように、ニューラルネットワークでのリソースの使用量に関する指標が、ニューラルネットワークについての「性能」に該当する。ニューラルネットワークについての「性能」は、少なくともニューラルネットワークの生成方法に含まれる軽量化処理Ｐ２に依存し、軽量化処理Ｐ２で用いるハイパーパラメータ如何で変化する。
【００２６】
本開示でいう「評価処理」は、評価関数に基づいて行われ、ニューラルネットワークの評価につながる処理全般を含み、例えば、評価関数に基づく評価値（評価結果）を出力するのみの処理でもよい。
【００２７】
本開示でいう「設計処理」は、上述したように、ニューラルネットワークを設計する処理である。設計処理Ｐ１で調整されるハイパーパラメータ次第で、ニューラルネットワークの「精度」の向上を図ることが可能である。
【００２８】
本開示でいう「軽量化処理」は、上述したように、訓練（学習）されたニューラルネットワークについて、重みの分布を変換する処理である。軽量化処理Ｐ２で調整されるハイパーパラメータ次第で、ニューラルネットワークの「性能」の向上を図ることが可能である。特に、本実施形態のように組み込みシステムに実装されるニューラルネットワークにおいては、組み込みシステムのリソースに鑑みて、ニューラルネットワークの生成方法に、軽量化処理Ｐ２が取り入れられやすい。
【００２９】
本開示でいう「ハイパーパラメータ」は、ニューラルネットワークの生成に際して、人（ユーザ）が設定すべきパラメータである。畳み込みニューラルネットワークにおいて、設計処理Ｐ１で設定（調整）されるハイパーパラメータとしては、例えば、入力データサイズ、各層の特徴マップサイズ、各層のチャネル数、レイヤ数（層の数）及び重みフィルタサイズ等がある。画像認識用のニューラルネットワークでは、入力データサイズは、入力画像サイズ（高さ×幅）で表される。また、軽量化処理Ｐ２で設定（調整）されるハイパーパラメータとしては、例えば、ランク数、クラス数及びビット（bit）精度等がある。
【００３０】
本開示でいう「ニューラルネットワークの生成方法」は、ニューラルネットワークという物（プログラム等を含む）を生産する方法である。
【００３１】
（２．２）ニューラルネットワークの評価方法及び生成方法
以下に、本実施形態に係るニューラルネットワークの評価方法及び生成方法について、図２〜４を参照して説明する。図２は、ニューラルネットワークの生成方法の全体の流れを示すフローチャートであって、図２に示す一連の処理のうちの一部の処理が、ニューラルネットワークの評価方法に相当する。
【００３２】
ニューラルネットワークの生成方法は、上述したように、設計処理Ｐ１（図１参照）及び軽量化処理Ｐ２（図１参照）を有している。図２のフローチャートでは、処理Ｓ１１、処理Ｓ１３がそれぞれ設計処理Ｐ１、軽量化処理Ｐ２に相当する。図２に例示するニューラルネットワークの生成方法は、設計処理及び軽量化処理に加えて、訓練処理（Ｓ１２）を更に有している。その他の処理（Ｓ１４〜Ｓ２３）は、ニューラルネットワークの評価方法に含まれる処理である。そして、図２における処理Ｓ１５、処理Ｓ２０が、それぞれ図１における評価処理Ｐ３、決定処理Ｐ４に相当する。
【００３３】
本実施形態では、ニューラルネットワークの評価方法及び生成方法は、主として、１以上のプロセッサを有するコンピュータシステムによって実行される。言い換えれば、ニューラルネットワークの評価方法及び生成方法の実行主体は、主として１以上のプロセッサである。
【００３４】
図２に示すように、本実施形態に係るニューラルネットワークの生成方法によれば、まず、ニューラルネットワークの設計を行う設計処理を実行する（Ｓ１１）。設計処理Ｓ１１では、ネットワークモデルの設計が行われ、ネットワークパラメータ（重み及びバイアス）の初期値が設定される。さらに、設計処理Ｓ１１では、例えば、入力データサイズ等のハイパーパラメータが設定される。ハイパーパラメータは、テキストデータで記述されるので、コンピュータシステム又は人（ユーザ）がテキストデータを入力することによってハイパーパラメータが設定される。
【００３５】
次に、ニューラルネットワークの訓練、つまり学習を行う訓練処理を実行する（Ｓ１２）。訓練処理Ｓ１２では、訓練データから、ネットワークパラメータの最適化が行われる。つまり、訓練データを用いて、最適なネットワークパラメータ（重み及びバイアス）が自動的に獲得される。
【００３６】
次に、訓練（学習）後のニューラルネットワークについて、重み分布の変換を行う軽量化処理を実行する（Ｓ１３）。軽量化処理Ｓ１３では、影響しないパラメータの削除（parameter pruning and sharing）、及び低ランク行列因数分解（low-rank factorization）等が行われる。さらに、軽量化処理Ｓ１３では、例えば、ランク数等のハイパーパラメータが設定される。ハイパーパラメータは、テキストデータで記述されるので、コンピュータシステム又は人（ユーザ）がテキストデータを入力することによってハイパーパラメータが設定される。
【００３７】
次に、軽量化されたニューラルネットワークに関して、評価関数を生成する関数生成処理を実行する（Ｓ１４）。関数生成処理Ｓ１４は、ニューラルネットワークについて精度と性能とを含む複数次元の評価対象を一次元化した評価関数を生成する処理である。すなわち、本開示でいう「評価関数」は、ニューラルネットワークの評価の指標である精度及び性能を含む複数次元の評価対象を一次元化した関数である。
【００３８】
以下に、評価関数について、より詳細に説明する。本実施形態では、評価関数は、精度を表す精度関数と、性能を表す性能関数と、の組み合わせで表される。より詳しくは、評価関数は、精度関数を性能関数の定数倍で除した関数である。つまり、評価関数は、精度関数と性能関数との比で表される。そのため、評価関数を「ｙ」、精度関数を「ａ（ｘ）」、性能関数を「ｐ（ｘ）」とした場合に、評価関数は下記式１で表される。ここで、「ｘ」は変数であって、「Ｃ」は性能の影響度合いに応じた定数（評価関数パラメータ）である。
【００３９】
【数１】
2020123292.tif 000003
【００４０】
ここで、精度関数ａ（ｘ）としては、例えば、認識精度（正解率）、及び検知精度（ｍＡＰ：mean Average Precision）等がある。
【００４１】
認識精度（正解率）は、画像認識のような認識用のニューラルネットワークにおいて、認識の精度を表す関数であって、テストデータの数（画像認識用のニューラルネットワークではテスト画像の枚数）と、正解データの数との比で表される。そのため、テストデータの数を「Ｎ」、正解データの数を「Ｔ（ｘ）」とした場合に、認識精度（正解率）からなる精度関数ａ（ｘ）は、下記式２で表される。
【００４２】
【数２】
2020123292.tif 000004
【００４３】
一方で、検知精度（ｍＡＰ）は、検知用（物体検知用）のニューラルネットワークにおいて、ある画像（物体）の情報が与えられた時点までの適合率（Precision）の平均値であるＡＰ（Average Precision）の平均である。検知精度（ｍＡＰ）は、正検知（True Positive）の数、及び誤検知（False Positive）の数等を用いて表される。画像中の物体検知において、正検知は、画像中の物体をクラス（例えば、人、自動車、二輪車の別）の認識も含めて正しく検知したケースであって、誤検知は、画像中の物体を誤ったクラスで認識して検知したケースである。そのため、テストデータの数を「Ｎ」、ｎ番目のデータ（ここでは画像）のＡＰを「ＡＰｎ」とした場合に、検知精度（ｍＡＰ）からなる精度関数ａ（ｘ）は、下記式３で表される。ここで、式３中のＡＰｎは、データｎのターゲットの数を「Ｍｎ」、スコアが高い順にソートしたときのインデックスを「ｉ」、はデータｎにおいてｉ番目にスコアが高い物体を「ｘｎ，ｉ」とした場合に、下記式３．１で表される。式３．１において、「ＴＰｉ」はｉ番目の物体までの正検知の数、「ＦＰｉ」はｉ番目の物体までの誤検知の数、「Ｉ（ｘ）」は物体ｘが正検知ならば「１」、誤検知ならば「０」を返す関数である。
【００４４】
【数３】
2020123292.tif 000005
【００４５】
また、性能関数ｐ（ｘ）としては、例えば、パラメータ数、メモリ量及び演算量等がある。
【００４６】
パラメータ数は、ある層（レイヤ）のチャネル数と、これと隣接する層のチャネル数と、重みフィルタサイズと、で表される。そのため、ある層のチャネル数を「Chanel[i]」、隣接する層のチャネル数を「Chanel[i+1]」、ある層の重みフィルタサイズを「k[i]2」、レイヤ数を「ｎ」とした場合に、パラメータ数からなる性能関数ｐ（ｘ）は、下記式４で表される。
【００４７】
【数４】
2020123292.tif 000006
【００４８】
メモリ量は、パラメータ数とビット（bit）精度との積で表される。そのため、パラメータ数を「α」、ビット精度を「β」とした場合に、メモリ量からなる性能関数ｐ（ｘ）は、下記式５で表される。
【００４９】
【数５】
2020123292.tif 000007
【００５０】
演算量は、パラメータ数と入力データサイズと演算強度との積で表される。画像認識用のニューラルネットワークでは、入力データサイズは、入力画像サイズ（高さ×幅）で表される。演算強度は、畳み込みにおいて、どの程度の演算が必要かを表す値であって、例えば、２ビット（bit）である。そのため、レイヤ数を「ｉ」、パラメータ数を「α［ｉ］」、入力データサイズを「γ［ｉ］」、演算強度を「δ［ｉ］」とした場合に、演算量からなる性能関数ｐ（ｘ）は、下記式６で表される。
【００５１】
【数６】
2020123292.tif 000008
【００５２】
そして、式１の精度関数ａ（ｘ）に認識精度（式２）又は検知精度（式３）等を代入し、式１の性能関数ｐ（ｘ）に、パラメータ数（式４）、メモリ量（式５）又は演算量（式６）を代入することで、評価関数ｙが定義される。本実施形態では一例として、精度関数ａ（ｘ）としては、上記式２で表される認識精度（正解率）が適用され、性能関数ｐ（ｘ）としては、上記式４で表されるパラメータ数が適用されることと仮定する。
【００５３】
さて、上述したような評価関数が定義されると、次に、ニューラルネットワークの評価を行う評価処理を実行する（Ｓ１５）。評価処理Ｓ１５では、評価関数に基づいて、ニューラルネットワークの評価を行う。本実施形態では、上記式１にて表される評価関数より評価値を演算する。この評価値が、評価処理Ｓ１５の評価結果となる。
【００５４】
ここにおいて、評価の対象となるニューラルネットワークは、上述したように、設計処理Ｓ１１及び軽量化処理Ｓ１３を経て生成されている。そして、「精度」は少なくとも設計処理Ｓ１１に依存し、「性能」は少なくとも軽量化処理に依存する。すなわち、上述したように、設計処理Ｓ１１で調整されるハイパーパラメータ次第で、ニューラルネットワークの「精度」の向上を図ることが可能である。また、軽量化処理Ｓ１３で調整されるハイパーパラメータ次第で、ニューラルネットワークの「性能」の向上を図ることが可能である。そのため、ニューラルネットワークの精度、性能は、それぞれ少なくとも設計処理Ｓ１１、軽量化処理Ｓ１３に依存する。
【００５５】
次に、評価結果（評価値）が目標範囲内にあるか否かの判定を行う判定処理を行う（Ｓ１６）。判定処理Ｓ１６にて、評価結果が目標範囲内にあれば（Ｓ１６：Ｙｅｓ）、これをもってニューラルネットワークの生成方法の一連の処理が終了する。本開示でいう「目標範囲」は、評価結果（評価値）がとり得る値の範囲として定められる数値範囲であって、少なくとも下限値が決められた数値範囲である。すなわち、評価結果は、ニューラルネットワークの精度及び性能を含む複数次元の評価対象を一次元化した評価関数に基づいた評価の結果であるので、この評価結果には、ニューラルネットワークの精度及び性能の両方の評価結果が反映されることになる。したがって、このような評価結果が目標範囲に収まることで、ニューラルネットワークの完成とみなし、ニューラルネットワークの生成方法の一連の処理は終了する。
【００５６】
一方で、判定処理Ｓ１６にて、評価結果が目標範囲内になければ（Ｓ１６：Ｎｏ）、つまり評価結果が目標範囲外にあれば、ハイパーパラメータを調整するための処理Ｓ１７〜Ｓ２３を実行する。ハイパーパラメータを調整するために必要な処理として、本実施形態に係るニューラルネットワークの評価方法は、モデル生成処理（Ｓ１９）、及び決定処理（Ｓ２０）を有している。モデル生成処理Ｓ１９は、評価処理Ｓ１５の評価結果とニューラルネットワークのハイパーパラメータとの関係性を表す統計的モデルを生成する処理である。決定処理Ｓ２０は、モデル生成処理Ｓ１９で生成した統計的モデルに基づいて、ニューラルネットワークのハイパーパラメータを決定する処理である。
【００５７】
本開示でいう「統計的モデル」は、二つの変数の関係を表す式のうち統計的手法によって推計された式であって、一方の変数（説明変数）によって他方の変数（目的変数）の大きさをどの程度説明できるかを定量的な構造で表したモデルを意味する。本実施形態では、統計的モデルは、評価結果を目的変数（従属変数）とし、ハイパーパラメータの値を説明変数（独立変数）とする、回帰モデルである。
【００５８】
以下に、ハイパーパラメータを調整するための処理Ｓ１７〜Ｓ２３について、詳しく説明する。
【００５９】
すなわち、判定処理Ｓ１６にて、評価結果が目標範囲内になければ（Ｓ１６：Ｎｏ）、まず、評価結果のサンプルを保存するサンプリング処理を実行する（Ｓ１７）。ここでいう「サンプル」は、統計的モデルを生成するために必要となるサンプルであって、評価結果とハイパーパラメータとを組み合わせたデータである。本実施形態では、サンプリング処理でサンプリングされるハイパーパラメータは、二次元以上の変数を含んでいる。つまり、統計的モデルの説明変数として用いられるハイパーパラメータは、二次元以上の変数を含んでいる。
【００６０】
本実施形態では、上述したように、ニューラルネットワークは、設計処理Ｓ１１及び軽量化処理Ｓ１３を経て生成されている。そこで、ハイパーパラメータは、設計処理Ｓ１１に関連する第１変数と、軽量化処理Ｓ１３に関連する第２変数とを含んでいる。つまり、統計的モデルの説明変数として用いられるハイパーパラメータＨは、第１変数Ｌ及び第２変数Ｋを含む、二次元以上の変数で表される（Ｈ＝［Ｋ，Ｌ］）。
【００６１】
さらに、第１変数Ｌと第２変数Ｋとの少なくとも一方は、二次元以上の変数を含んでいる。つまり、統計的モデルの説明変数として用いられるハイパーパラメータＨは、三次元以上の変数を含むことになる。本実施形態では、第１変数Ｌと第２変数Ｋとのそれぞれが、二次元以上の変数を含んでいる。よって、ハイパーパラメータＨは、四次元以上の変数を含むことになる。
【００６２】
次に、保存されているサンプルの数が十分か否かを判定するサンプル判定処理を実行する（Ｓ１８）。ここで、サンプル数が十分であるか否かは、統計的モデルの生成が可能か否かを基準に判定される。つまり、統計的モデルを生成できるだけのサンプルがあれば、サンプル数が十分である（Ｓ１８：Ｙｅｓ）と判定する。一例として、サンプル数と閾値とを比較し、サンプル数が閾値以上であれば、サンプル数が十分である（Ｓ１８：Ｙｅｓ）と判定する。あるいは、統計的モデルの収束度合によって、サンプル数が十分か否かを判定してもよい。収束度合は、例えば、ガウス分布の分散等により算出される。この場合、収束度合が閾値以上であれば、サンプル数が十分である（Ｓ１８：Ｙｅｓ）と判定する。いずれの場合でも、閾値は、例えば、人（ユーザ）の操作に応じて設定可能であることが好ましい。
【００６３】
サンプル判定処理Ｓ１８にて、サンプル数が十分でないと判定されると（Ｓ１８：Ｎｏ）、既定値の読み込み（Ｓ２２）、及びハイパーパラメータの決定を実行し（Ｓ２３）、設計処理Ｓ１１に戻る。つまり、サンプル数が不十分であった場合（Ｓ１８：Ｎｏ）、新たなサンプルを取得するべく、ハイパーパラメータの変更を行った上で、設計処理Ｓ１１を再度実行する。本実施形態では、処理Ｓ２２で読み込んだ既定値を、ハイパーパラメータとするように、処理Ｓ２３でハイパーパラメータを決定（変更）する。
【００６４】
既定値は、例えば、人（ユーザ）の操作に応じて設定可能であることが好ましい。一例として、最初の設計処理Ｓ１１で用いるハイパーパラメータとしての入力データサイズの値（初期値）が「２５６」である場合、１回目の処理Ｓ２２で読み込まれる既定値は「３２」に設定される。これにより、１回目の処理Ｓ２３では、ハイパーパラメータとしての入力データサイズの値が「２５６」から「３２」に変更される。同様に、２回目の処理Ｓ２２で読み込まれる既定値は「５１２」に設定される。これにより、２回目の処理Ｓ２３では、ハイパーパラメータとしての入力データサイズの値が「３２」から「５１２」に変更される。
【００６５】
あるいは、既定値は、例えば、人（ユーザ）の操作に応じて設定された選択範囲内でランダムに決定されてもよい。一例として、設計処理Ｓ１１で用いるハイパーパラメータとしての入力データサイズの選択範囲が「３２〜２５６」に設定されている場合を想定する。この場合、処理Ｓ２２ごとに、「３２〜２５６」の選択範囲からランダムに決定される既定値が読み込まれる。これにより、処理Ｓ２３ごとに、ハイパーパラメータとしての入力データサイズの値は、「３２〜２５６」の選択範囲からランダムに決定される。
【００６６】
このように、ハイパーパラメータを変えながら（Ｓ２２〜Ｓ２３）、設計処理Ｓ１１〜サンプリング処理Ｓ１７の一連の処理を複数回実行することにより、サンプル数は増加する。そして、サンプル判定処理Ｓ１８にて、サンプル数が十分であると判定されると（Ｓ１８：Ｙｅｓ）、モデル生成処理Ｓ１９を実行する。モデル生成処理Ｓ１９では、保存されている複数のサンプルを用いて、統計的モデルを生成する。本実施形態では、設計処理Ｓ１１〜サンプリング処理Ｓ１７の一連の処理を複数回実行し、評価結果とハイパーパラメータとの関係性をガウス過程によりモデル化することで、統計的モデルを生成する。
【００６７】
図３Ａ〜図３Ｄは、統計的モデルを生成する様子を模式的に表す説明図である。図３Ａ〜図３Ｄは、いずれも横軸をハイパーパラメータ、縦軸を評価結果（評価値）として、統計的モデルの生成の様子を模式的に表すグラフである。図３Ａ〜図３Ｄでは、統計的モデルが収束すべきブラックボックス関数を「Ｄ１」（点線）、サンプルを「Ｄ２」（黒丸）、生成した統計的モデルを「Ｄ３」（実線）、統計的モデルの収束度合を「Ｄ４」（網掛領域）でそれぞれ表している。
【００６８】
ここで、本実施形態では、上述したように統計的モデルの説明変数として用いられるハイパーパラメータＨは、二次元以上の変数であるので、図３Ａ〜図３Ｄのようなグラフが、個々の変数ごとに存在する。言い換えれば、図３Ａ〜図３Ｄのグラフは、実際には、複数のハイパーパラメータについて複数次元を持つ多次元（三次元以上）グラフとなる。ただし、ここでは説明を簡略化するために、ハイパーパラメータのうちの一次元の変数に着目した二次元のグラフを例として示している。
【００６９】
図３Ａは、反復回数が４回である状態、つまりサンプル数が「４」の状態の統計的モデル（Ｄ３）を表している。この状態では、統計的モデルの収束度合が十分でなく、サンプル数が不十分である。図３Ｂは、反復回数が５回である状態、つまりサンプル数が「５」の状態の統計的モデル（Ｄ３）を表している。この状態でも、統計的モデルの収束度合が十分でなく、サンプル数が不十分である。図３Ｃは、反復回数が６回である状態、つまりサンプル数が「６」の状態の統計的モデル（Ｄ３）を表している。この状態では、ある程度、統計的モデルが収束してきているものの、収束度合が未だ十分ではない。図３Ｄは、反復回数が７回である状態、つまりサンプル数が「７」の状態の統計的モデル（Ｄ３）を表している。この状態では、図３Ｃの状態よりも更に統計的モデルが収束してきている。
【００７０】
このように、ハイパーパラメータを変えながら、設計処理Ｓ１１〜サンプリング処理Ｓ１７の一連の処理を複数回実行することにより、モデル生成処理Ｓ１９では、十分な数のサンプルから、比較的に収束した統計的モデルを生成することができる。
【００７１】
そして、統計的モデルが生成されると、次に、ハイパーパラメータを決定する決定処理Ｓ２０を実行する。決定処理Ｓ２０では、モデル生成処理Ｓ１９で生成された統計的モデルに基づいて、ハイパーパラメータを決定する。本実施形態では、統計的モデルに基づいて、ベイズ推定により、ハイパーパラメータを決定する。
【００７２】
ハイパーパラメータが決定すると、設計処理Ｓ１１又は軽量化処理Ｓ１３に戻ることで、ハイパーパラメータのフィードバックを行う。つまり、決定処理Ｓ２０にて決定したハイパーパラメータを用いて、設計処理Ｓ１１又は軽量化処理Ｓ１３を再度実行する。これにより、決定処理Ｓ２０で決定されたハイパーパラメータが、設計処理Ｓ１１と軽量化処理Ｓ１３との少なくとも一方に反映されることになる。
【００７３】
ここにおいて、設計処理Ｓ１１又は軽量化処理Ｓ１３のいずれに戻るかは、ニューラルネットワークを再設計するか否かを判断する判断処理（Ｓ２１）にて決まる。判断処理Ｓ２１では、設計処理Ｓ１１に関するハイパーパラメータをフィードバックするか否かを判断し、設計処理Ｓ１１に関するハイパーパラメータをフィードバックする場合には、ニューラルネットワークを再設計すると判断する。ニューラルネットワークを再設計すると判断すれば（Ｓ２１：Ｙｅｓ）、設計処理Ｓ１１に戻ることで、決定処理Ｓ２０で決定されたハイパーパラメータが設計処理Ｓ１１に反映される。一方、ニューラルネットワークを再設計しないと判断すれば（Ｓ２１：Ｎｏ）、軽量化処理Ｓ１３に戻ることで、決定処理Ｓ２０で決定されたハイパーパラメータが軽量化処理Ｓ１３に反映される。
【００７４】
本実施形態では、上述したように、第１変数Ｌと第２変数Ｋとのそれぞれが、二次元以上の変数を含むので、統計的モデルの説明変数として用いられるハイパーパラメータＨは四次元以上の変数を含んでいる。そこで、決定処理Ｓ２０においては、統計的モデルから、ハイパーパラメータＨに含まれる四次元以上の変数が決定される。設計処理Ｓ１１に関するハイパーパラメータＨ，つまり第１変数Ｌに変更が生じる場合、ニューラルネットワークを再設計することと判断し（Ｓ２１：Ｙｅｓ）、設計処理Ｓ１１に戻る。一方、設計処理Ｓ１１に関するハイパーパラメータＨ，つまり第１変数Ｌに変更が生じず、第２変数Ｋにのみ変更が生じる場合、ニューラルネットワークを再設計しないことと判断し（Ｓ２１：Ｎｏ）、軽量化処理Ｓ１３に戻る。
【００７５】
本実施形態に係るニューラルネットワークの生成方法は、評価結果（評価値）が目標範囲内に収まる（Ｓ１６：Ｙｅｓ）まで、上述した一連の処理Ｓ１１〜Ｓ２３を繰り返し実行する。その結果、評価結果（評価値）が目標範囲内に収まるようにハイパーパラメータが調整された、ニューラルネットワークが生成される。
【００７６】
以上説明したニューラルネットワークの評価方法及び生成方法によれば、ニューラルネットワークの精度と性能との両方を考慮した、ニューラルネットワークの評価が可能となる。そのため、その評価結果をニューラルネットワークの生成方法に利用すれば、設計処理Ｐ１に依存するニューラルネットワークの精度と、軽量化処理Ｐ２に依存するニューラルネットワークの性能と、の両方を考慮したハイパーパラメータの調整が可能となる。特に、本実施形態のように組み込みシステムに実装されるニューラルネットワークにおいては、組み込みシステムのリソースに鑑みて、「精度」だけでなく、「性能」についても目標範囲内に収まるように、ハイパーパラメータの調整が要求されやすい。
【００７７】
そして、上記ニューラルネットワークの評価方法では、ニューラルネットワークの精度及び性能を含む複数次元の指標を一次元化した評価関数を用いて、ニューラルネットワークの評価を行う。つまり、このような評価関数によれば、精度及び性能といった別次元の指標を１つの評価軸上で、同時に評価することが可能である。そのため、ニューラルネットワークの精度及び性能という、互いにトレードオフの関係にあるような指標について、個別に評価する必要がない。したがって、本実施形態に係るニューラルネットワークの評価方法及びニューラルネットワークの生成方法によれば、ハイパーパラメータの調整の難易度が高くなりにくい。
【００７８】
図４は、本実施形態に係るニューラルネットワークの生成方法にて、ハイパーパラメータを調整しつつニューラルネットワークを生成する全体的な流れを模式的に表す説明図である。図４には、図３Ａ〜図３Ｄと同様に、横軸をハイパーパラメータ、縦軸を評価結果（評価値）として、統計的モデルの様子を模式的に表すグラフを示している。
【００７９】
まず、図４に示すように、設計処理Ｐ１及び軽量化処理Ｐ２を順次実行することで、ニューラルネットワークの設計及び軽量化を行う。次に、軽量化されたニューラルネットワークについて、評価処理Ｐ３を実行することで、評価関数に基づいた評価を行う。このとき、評価処理Ｐ３の評価結果（評価値）が目標範囲内になければ、目標を未達成であると判断し、モデル生成処理（Ｓ１９）及び決定処理（Ｓ２０）に移行する。
【００８０】
決定処理Ｓ２０では、図４のグラフに示すように、十分な数のサンプル（Ｄ２）から生成された統計的モデル（Ｄ３）に基づいて、ハイパーパラメータを決定する。このとき、決定処理Ｓ２０では、一例として、統計的モデル上で評価結果（評価値）が最大となるハイパーパラメータの値を、ハイパーパラメータに決定する。つまり、統計的モデル上で評価結果（評価値）に対応するハイパーパラメータの値を、決定処理Ｓ２０ではハイパーパラメータとして採用する。このようにして決定されたハイパーパラメータ（図４の例では「７．５」）が、設計処理Ｐ１又は軽量化処理Ｐ２にフィードバックされ、設計処理Ｐ１又は軽量化処理Ｐ２が再度行われる。
【００８１】
そして、評価処理Ｐ３の評価結果（評価値）が目標範囲内にあれば、目標を達成したと判断し、ニューラルネットワークの生成方法の一連の処理を終了する（最適化終了）。
【００８２】
ところで、図２は、ニューラルネットワークの生成方法の一例を概略的に示しており、処理が適宜追加、変更又は省略されてもよいし、処理の順番が適宜変更されてもよい。
【００８３】
例えば、サンプル数が十分でない場合（Ｓ１８：Ｎｏ）、図２の例では、処理Ｓ２３にて決定されたハイパーパラメータを設計処理Ｓ１１にフィードバックしているが、これに限らず、軽量化処理Ｓ１３にフィードバックしてもよい。すなわち、例えば、サンプル数が十分でないと判断されたのが、ハイパーパラメータのうち、軽量化処理Ｓ１３に関連する第２変数のみである場合には、ハイパーパラメータは、軽量化処理Ｓ１３にフィードバックされる。つまり、設計処理Ｓ１１に関連する第１変数についてのサンプル数が十分であれば、ニューラルネットワークを再設計することは必須ではないため、設計処理Ｓ１１及び訓練処理Ｓ１２を飛ばして、軽量化処理Ｓ１３から再開可能である。この場合、ハイパーパラメータの決定（Ｓ２３）後に、統計的モデルに基づいてハイパーパラメータを決定した場合の処理Ｓ２１と同様に、ニューラルネットワークを再設計するか否かの判断ステップが入ることが好ましい。
【００８４】
（２．３）具体例
次に、上記ニューラルネットワークの評価方法及び生成方法を用いた場合の、ハイパーパラメータの調整の具体例を示す。本実施形態では、上述したように精度関数ａ（ｘ）としては、上記式２で表される認識精度（正解率）が適用され、性能関数ｐ（ｘ）としては、上記式４で表されるパラメータ数が適用される。つまり、評価関数ｙを表す上記式１の精度関数ａ（ｘ）に認識精度（式２）を代入し、式１の性能関数ｐ（ｘ）にパラメータ数（式４）を代入することで、評価関数ｙが定義される。
【００８５】
ここでは、テストデータの数（Ｎ）が「１００００」、正解データの数（Ｔ（ｘ））が「８０００」であると仮定する。この場合、認識精度（正解率）からなる精度関数ａ（ｘ）は、上記式２より、「０．８」（＝８０００／１００００）となる。
【００８６】
一方、パラメータ数からなる性能関数ｐ（ｘ）が、上記式４より、「４０１２２０４８≒４０×１０６」で表されると仮定する。
【００８７】
この場合において、評価関数パラメータＣが「１×１０−８」であるとすると、評価関数ｙは、上記式１より「２」（＝０．８／（４×１０−１））で表される。つまり、この場合の評価処理の評価結果（評価値）は「２」となる。
【００８８】
（２．４）システム構成
次に、本実施形態に係るニューラルネットワークの評価システム１０、及びニューラルネットワークの生成システム１００について、図５を参照して説明する。評価システム１０は、本実施形態に係るニューラルネットワークの評価方法を具現化するためのシステムである。生成システム１００は、本実施形態に係るニューラルネットワークの生成方法を具現化するためのシステムである。
【００８９】
生成システム１００は、評価システム１０と、ネットワーク開発システム２０と、ネットワーク訓練システム３０と、軽量化システム４０と、を備えている。言い換えれば、生成システム１００は、評価システム１０を含んでいる。評価システム１０、ネットワーク開発システム２０、ネットワーク訓練システム３０及び軽量化システム４０は、通信等により、データを授受可能な状態に接続されており、生成システム１００を構成する。
【００９０】
生成システム１００は、１以上のプロセッサ及び１以上のメモリを有するコンピュータシステムを主構成とする。プロセッサは、メモリに記録されているプログラムを実行することにより、評価システム１０、ネットワーク開発システム２０、ネットワーク訓練システム３０及び軽量化システム４０の機能を実現する。プログラムは、予めメモリに記録されていてもよいし、メモリカードのような非一時的記録媒体に記録されて提供されたり、電気通信回線を通して提供されたりしてもよい。言い換えれば、上記プログラムは、コンピュータシステムを、生成システム１００として機能させるためのプログラムである。
【００９１】
ネットワーク開発システム２０は、ニューラルネットワークを設計する設計処理（図２の「Ｓ１１」）を実行する。つまり、ネットワーク開発システム２０は、設計処理に関連するハイパーパラメータを用いて、ネットワークモデルの設計、及びネットワークパラメータ（重み及びバイアス）の設定を実行する。
【００９２】
ネットワーク訓練システム３０は、ネットワーク開発システム２０の出力するニューラルネットワークの訓練を行う訓練処理（図２の「Ｓ１２」）を実行する。つまり、ネットワーク訓練システム３０は、外部から入力される訓練データを用いて、ニューラルネットワークの学習を実行する。
【００９３】
軽量化システム４０は、ネットワーク訓練システム３０の出力する、訓練（学習）後のニューラルネットワークについて、重み分布の変換を行う軽量化処理（図２の「Ｓ１３」）を実行する。つまり、軽量化システム４０は、軽量化処理に関連するハイパーパラメータを用いて、ニューラルネットワークの重み分布の変換を実行する。
【００９４】
評価システム１０は、関数生成部１１と、モデル生成部１２と、ハイパーパラメータ決定部１３と、を有している。評価システム１０は、軽量化システム４０から出力される軽量化後のニューラルネットワークと、外部から入力されるテストデータと、を用いて認識処理を実行する。
【００９５】
関数生成部１１は、認識処理にて得られた精度関数ａ（ｘ）、及び評価関数パラメータ（定数Ｃ）を用いて、関数生成処理（図２の「Ｓ１４」）を実行する。モデル生成部１２は、関数生成部１１が出力する評価関数、更に、モデルパラメータ及びモデル作成用サンプルを用いて、モデル生成処理（図２の「Ｓ１９」）を実行する。ハイパーパラメータ決定部１３は、モデル生成部１２が出力する統計的モデルを用いて、決定処理（図２の「Ｓ２０」）を実行する。そして、ハイパーパラメータ決定部１３が出力するハイパーパラメータは、ネットワーク開発システム２０と軽量化システム４０との少なくとも一方にフィードバックされる。
【００９６】
すなわち、本実施形態に係る評価システム１０は、評価関数を生成する関数生成部１１を備えている。評価関数は、ニューラルネットワークについて精度と性能とを含む複数次元の評価対象を一次元化した関数である。評価システム１０は、評価関数に基づいて、ニューラルネットワークの評価を行う。
【００９７】
（３）変形例
実施形態１は、本開示の様々な実施形態の一つに過ぎない。実施形態１は、本開示の目的を達成できれば、設計等に応じて種々の変更が可能である。実施形態１に係るニューラルネットワークの評価方法、及びニューラルネットワークの生成方法は、それぞれ（コンピュータ）プログラム又はプログラムを記録した非一時的記録媒体等で具現化されてもよい。一態様に係るプログラムは、実施形態１に係るニューラルネットワークの評価方法を、１以上のプロセッサに実行させるためのプログラムである。ニューラルネットワークの評価方法は、関数生成処理と、評価処理と、を有する。関数生成処理は、ニューラルネットワークについて精度と性能とを含む複数次元の評価対象を一次元化した評価関数を生成する処理である。評価処理は、評価関数に基づいて、ニューラルネットワークの評価を行う処理である。また、他の一態様に係るプログラムは、実施形態１に係るニューラルネットワークの生成方法を、１以上のプロセッサに実行させるためのプログラムである。ニューラルネットワークの生成方法は、ニューラルネットワークの評価方法を用いた方法であって、設計処理と、軽量化処理と、を有する。設計処理は、ニューラルネットワークを設計する処理である。軽量化処理は、ニューラルネットワークの重みの分布を変換する処理である。この生成方法では、設計処理及び軽量化処理の各々において、評価処理の評価結果に基づいてハイパーパラメータを調整可能である。
【００９８】
以下、実施形態１の変形例を列挙する。以下に説明する変形例は、適宜組み合わせて適用可能である。
【００９９】
実施形態１に係るニューラルネットワークの評価方法及び生成方法は、その全ての処理がコンピュータシステム（生成システム１００）にて実行されることは必須ではない。一例として、ニューラルネットワークの評価方法の一部の処理である決定処理が、コンピュータシステムではなく、人（ユーザ）にて実行されてもよい。この場合、例えば、ユーザは、評価処理の評価結果、又はモデル生成処理にて生成された統計的モデルを参考にして、ハイパーパラメータを決定することが可能である。つまり、評価システム１０は、評価処理の評価結果、又はモデル生成処理にて生成された統計的モデルを、ユーザに提示可能な適宜の態様で出力することにより、ユーザにおいては、これを利用してハイパーパラメータを決定できるようになる。ユーザに提示可能な出力の態様としては、例えば、ディスプレイに表示、非一時的記録媒体への書き出し、情報端末への送信、プリントアウト及び音声出力等がある。そして、このように決定処理をユーザが実行する場合にあっては、開発システム２０及び軽量化システム４０に対するハイパーパラメータのフィードバック（つまりハイパーパラメータの入力）についても、ユーザが実行可能である。要するに、ハイパーパラメータは、テキストデータで記述されるので、キーボード及びポインティングデバイス等の操作デバイスを操作することで、ユーザがハイパーパラメータを入力することが可能である。
【０１００】
本開示における生成システム１００は、例えば、評価システム１０等に、コンピュータシステムを含んでいる。コンピュータシステムは、ハードウェアとしてのプロセッサ及びメモリを主構成とする。コンピュータシステムのメモリに記録されたプログラムをプロセッサが実行することによって、本開示における生成システム１００としての機能が実現される。プログラムは、コンピュータシステムのメモリに予め記録されてもよく、電気通信回線を通じて提供されてもよく、コンピュータシステムで読み取り可能なメモリカード、光学ディスク、ハードディスクドライブ等の非一時的記録媒体に記録されて提供されてもよい。コンピュータシステムのプロセッサは、半導体集積回路（ＩＣ）又は大規模集積回路（ＬＳＩ）を含む１ないし複数の電子回路で構成される。ここでいうＩＣ又はＬＳＩ等の集積回路は、集積の度合いによって呼び方が異なっており、システムＬＳＩ、ＶＬＳＩ（Very Large Scale Integration）、又はＵＬＳＩ（Ultra Large Scale Integration）と呼ばれる集積回路を含む。さらに、ＬＳＩの製造後にプログラムされる、ＦＰＧＡ（Field-Programmable Gate Array）、又はＬＳＩ内部の接合関係の再構成若しくはＬＳＩ内部の回路区画の再構成が可能な論理デバイスについても、プロセッサとして採用することができる。複数の電子回路は、１つのチップに集約されていてもよいし、複数のチップに分散して設けられていてもよい。複数のチップは、１つの装置に集約されていてもよいし、複数の装置に分散して設けられていてもよい。ここでいうコンピュータシステムは、１以上のプロセッサ及び１以上のメモリを有するマイクロコントローラを含む。したがって、マイクロコントローラについても、半導体集積回路又は大規模集積回路を含む１ないし複数の電子回路で構成される。
【０１０１】
また、生成システム１００の少なくとも一部の機能が、１つの筐体内に集約されていることは生成システム１００に必須の構成ではなく、生成システム１００の構成要素は、複数の筐体に分散して設けられていてもよい。例えば、生成システム１００のうちの評価システム１０に設けられている機能の一部が、評価システム１０とは別の筐体に設けられていてもよい。さらに、生成システム１００の少なくとも一部の機能、例えば、評価システム１０の機能がクラウド（クラウドコンピューティング）等によって実現されてもよい。
【０１０２】
反対に、実施形態１において、複数の装置に分散されている生成システム１００の少なくとも一部の機能が、１つの筐体内に集約されていてもよい。例えば、ネットワーク開発システム２０とネットワーク訓練システム３０とに分散されている機能が、１つの筐体内に集約されていてもよい。
【０１０３】
また、実施形態１に係るニューラルネットワークの評価方法等は、組み込みシステムに実装され、かつ画像認識用のニューラルネットワークに限らず、様々なニューラルネットワークに適用可能である。すなわち、実施形態１に係るニューラルネットワークの評価方法による評価の対象、及び生成方法による生成の対象は、組み込みシステムに実装されるニューラルネットワークでなくてもよい。また、実施形態１に係るニューラルネットワークの評価方法による評価の対象、及び生成方法による生成の対象は、画像認識用に限らず、例えば、検知用（物体検知用）又は音声認識用のニューラルネットワークであってもよい。音声データ等の時系列データの認識には、例えば、再帰型ニューラルネットワーク（ＲＮＮ：Recurrent Neural Networks）が好適に用いられる。
【０１０４】
また、統計的モデルの説明変数として用いられるハイパーパラメータＨに関して、第１変数Ｌと第２変数Ｋとのそれぞれが、二次元以上の変数を含んでいなくてもよい。すなわち、第１変数Ｌと、第２変数Ｋとのいずれか一方のみが二次元以上の変数を含んでいてもよい。
【０１０５】
また、統計的モデルの説明変数として用いられるハイパーパラメータＨは、第１変数Ｌと第２変数Ｋとを含んでいなくてもよい。さらに、統計的モデルの説明変数として用いられるハイパーパラメータは、二次元以上の変数を含んでいなくてもよい。つまり、ハイパーパラメータは一次元の変数であってもよい。
【０１０６】
また、決定処理では、統計的モデルに基づいて、ハイパーパラメータを決定すればよく、実施形態１のように、統計的モデル上で評価結果（評価値）が最大となるハイパーパラメータの値を、ハイパーパラメータに決定する構成に限らない。一例として、統計的モデル上で評価結果（評価値）が閾値以上となるハイパーパラメータの値を、ハイパーパラメータに決定してもよい。決定処理でベイズ推定を用いることも必須ではない。
【０１０７】
また、モデル生成処理では、評価処理の評価結果とニューラルネットワークのハイパーパラメータとの関係性を表す統計的モデルを生成すればよく、ガウス過程によりモデル化することは必須ではない。
【０１０８】
（実施形態２）
本実施形態に係るニューラルネットワークの評価方法は、評価関数が複数の性能関数を含む点で、実施形態１に係るニューラルネットワークの評価方法と相違する。以下、実施形態１と同様の構成については、共通の符号を付して適宜説明を省略する。
【０１０９】
すなわち、本実施形態では、関数生成処理で生成される評価関数が、精度を表す精度関数と、性能を表す性能関数と、の組み合わせで表されるものの、実施形態１で説明した評価関数（式１）とは相違する。より詳しくは、本実施形態においても、評価関数は、精度関数を性能関数の定数（評価関数パラメータ）倍で除した関数である。ただし、本実施形態では、評価関数が複数の性能関数を含んでいる。ここでは、複数の性能関数は、第１の性能関数及び第２の性能関数を含んでいる。
【０１１０】
そのため、評価関数を「ｙ」、精度関数を「ａ（ｘ）」、第１の性能関数を「ｐ１（ｘ）」、第２の性能関数を「ｐ２（ｘ）」とした場合に、評価関数は下記式７で表される。ここで、「ｘ」は変数であって、「Ｃ１」は第１の評価関数パラメータ（定数）、「Ｃ２」は第２の評価関数パラメータ（定数）である。
【０１１１】
【数７】
2020123292.tif 000009
【０１１２】
ここで、精度関数ａ（ｘ）としては、実施形態１と同様に、例えば、認識精度（正解率）、及び検知精度（ｍＡＰ）等がある。また、第１の性能関数ｐ１（ｘ）、第２の性能関数ｐ２（ｘ）の各々としては、実施形態１の性能関数ｐ（ｘ）と同様に、例えば、パラメータ数、メモリ量及び演算量等がある。
【０１１３】
要するに、式７の精度関数ａ（ｘ）に認識精度（式２）又は検知精度（式３）を代入し、第１の性能関数ｐ１（ｘ）及び第２の性能関数ｐ２（ｘ）の各々に、パラメータ数（式４）、メモリ量（式５）又は演算量（式６）を代入することで、評価関数ｙが定義される。本実施形態では一例として、精度関数ａ（ｘ）としては上記式２で表される認識精度（正解率）が、第１の性能関数ｐ１（ｘ）としては上記式４で表されるパラメータ数が、第２の性能関数ｐ２（ｘ）として上記数６で表される演算量が、それぞれ適用される。
【０１１４】
次に、本実施形態に係るニューラルネットワークの評価方法及び生成方法を用いた場合の、ハイパーパラメータの調整の具体例を示す。
【０１１５】
ここでは、テストデータの数（Ｎ）が「１００００」、正解データの数（Ｔ（ｘ））が「８０００」であると仮定する。この場合、認識精度（正解率）からなる精度関数ａ（ｘ）は、上記式２より、「０．８」（＝８０００／１００００）となる。
【０１１６】
一方、パラメータ数からなる第１の性能関数ｐ１（ｘ）が、上記式４より、「４０１２２０４８≒４０×１０６」で表されると仮定する。また、演算量からなる第２の性能関数ｐ２（ｘ）が、上記式６より、「２０４３１６６７２００×２≒４０×１０９」で表されると仮定する。
【０１１７】
この場合において、第１の評価関数パラメータＣ１が「１×１０−８」、第２の評価関数パラメータＣ２が「１×１０−１１」であるとすると、評価関数ｙは、上記式７より「４」（＝０．８／（４×１０−１）＋０．８／（４×１０−１））で表される。つまり、この場合の評価処理の評価結果（評価値）は「４」となる。
【０１１８】
実施形態２で説明した種々の構成（変形例を含む）は、実施形態１で説明した種々の構成（変形例を含む）と適宜組み合わせて採用可能である。
【０１１９】
（まとめ）
第１の態様に係るニューラルネットワークの評価方法は、関数生成処理（Ｓ１４）と、評価処理（Ｓ１５，Ｐ３）と、を有する。関数生成処理（Ｓ１４）は、ニューラルネットワークについて精度と性能とを含む複数次元の評価対象を一次元化した評価関数（ｙ）を生成する処理である。評価処理（Ｓ１５，Ｐ３）は、評価関数（ｙ）に基づいて、ニューラルネットワークの評価を行う処理である。
【０１２０】
この態様によれば、ニューラルネットワークの精度と性能との両方を考慮した、ニューラルネットワークの評価が可能となる。そのため、その評価結果を利用すれば、設計処理（Ｓ１１，Ｐ１）に依存するニューラルネットワークの精度と、軽量化処理（Ｓ１３，Ｐ２）に依存するニューラルネットワークの性能と、の両方を考慮したハイパーパラメータの調整が可能となる。そして、上記ニューラルネットワークの評価方法では、ニューラルネットワークの精度及び性能を含む複数次元の指標を一次元化した評価関数（ｙ）を用いて、ニューラルネットワークの評価を行う。つまり、このような評価関数（ｙ）によれば、精度及び性能といった別次元の指標を１つの評価軸上で、同時に評価することが可能である。そのため、ニューラルネットワークの精度及び性能という、互いにトレードオフの関係にあるような指標について、個別に評価する必要がない。したがって、上記ニューラルネットワークの評価方法によれば、ハイパーパラメータの調整の難易度が高くなりにくい、という利点がある。
【０１２１】
第２の態様に係るニューラルネットワークの評価方法では、第１の態様において、ニューラルネットワークは、設計処理（Ｓ１１，Ｐ１）及び軽量化処理（Ｓ１３，Ｐ２）を経て生成されている。精度は少なくとも設計処理（Ｓ１１，Ｐ１）に依存し、性能は少なくとも軽量化処理（Ｓ１３，Ｐ２）に依存する。
【０１２２】
この態様によれば、設計処理（Ｓ１１，Ｐ１）及び軽量化処理（Ｓ１３，Ｐ２）の両方についてハイパーパラメータの調整が可能となる。
【０１２３】
第３の態様に係るニューラルネットワークの評価方法は、第１又は２の態様において、モデル生成処理（Ｓ１９）を更に有する。モデル生成処理（Ｓ１９）は、評価処理（Ｓ１５，Ｐ３）の評価結果とニューラルネットワークのハイパーパラメータとの関係性を表す統計的モデルを生成する処理である。
【０１２４】
この態様によれば、統計的モデルを用いることで、評価処理（Ｓ１５，Ｐ３）の評価結果とニューラルネットワークのハイパーパラメータとの関係性を評価することが可能である。
【０１２５】
第４の態様に係るニューラルネットワークの評価方法では、第３の態様において、ハイパーパラメータは、二次元以上の変数を含む。
【０１２６】
この態様によれば、ニューラルネットワークの精度と性能との両方を考慮して、二次元以上の変数を含むハイパーパラメータの調整が可能となる。
【０１２７】
第５の態様に係るニューラルネットワークの評価方法では、第４の態様において、ニューラルネットワークは、設計処理（Ｓ１１，Ｐ１）及び軽量化処理（Ｓ１３，Ｐ２）を経て生成されている。ハイパーパラメータは、設計処理（Ｓ１１，Ｐ１）に関連する第１変数（Ｌ）と、軽量化処理（Ｓ１３，Ｐ２）に関連する第２変数（Ｋ）とを含む。
【０１２８】
この態様によれば、ニューラルネットワークの精度と性能との両方を考慮して、設計処理（Ｓ１１，Ｐ１）に関連する第１変数（Ｌ）、及び軽量化処理（Ｓ１３，Ｐ２）に関連する第２変数（Ｋ）の調整が可能となる。
【０１２９】
第６の態様に係るニューラルネットワークの評価方法では、第５の態様において、第１変数（Ｌ）と第２変数（Ｋ）との少なくとも一方は、二次元以上の変数を含む。
【０１３０】
この態様によれば、ニューラルネットワークの精度と性能との両方を考慮して、第１変数（Ｌ）と第２変数（Ｋ）との少なくとも一方に二次元以上の変数を含むハイパーパラメータの調整が可能となる。
【０１３１】
第７の態様に係るニューラルネットワークの評価方法は、第３〜６のいずれかの態様において、決定処理（Ｓ２０，Ｐ４）を更に有する。決定処理（Ｓ２０，Ｐ４）は、統計的モデルに基づいて、ニューラルネットワークのハイパーパラメータを決定する処理である。
【０１３２】
この態様によれば、統計的モデルに基づいて、ハイパーパラメータの最適化を図ることが可能である。
【０１３３】
第８の態様に係るニューラルネットワークの生成方法は、第１〜７のいずれかのニューラルネットワークの評価方法を用いたニューラルネットワークの生成方法である。ニューラルネットワークの生成方法は、設計処理（Ｓ１１，Ｐ１）と、軽量化処理（Ｓ１３，Ｐ２）と、を有する。設計処理（Ｓ１１，Ｐ１）は、ニューラルネットワークを設計する処理である。軽量化処理（Ｓ１３，Ｐ２）は、ニューラルネットワークの重みの分布を変換する処理である。ニューラルネットワークの生成方法では、設計処理（Ｓ１１，Ｐ１）及び軽量化処理（Ｓ１３，Ｐ２）の各々において、評価処理（Ｓ１５，Ｐ３）の評価結果に基づいてハイパーパラメータを調整可能である。
【０１３４】
この態様によれば、ニューラルネットワークの精度と性能との両方を考慮した、ニューラルネットワークの評価が可能となる。そのため、その評価結果を利用すれば、設計処理（Ｓ１１，Ｐ１）に依存するニューラルネットワークの精度と、軽量化処理（Ｓ１３，Ｐ２）に依存するニューラルネットワークの性能と、の両方を考慮したハイパーパラメータの調整が可能となる。そして、上記ニューラルネットワークの生成方法では、ニューラルネットワークの精度及び性能を含む複数次元の指標を一次元化した評価関数（ｙ）を用いて、ニューラルネットワークの評価を行う。つまり、このような評価関数（ｙ）によれば、精度及び性能といった別次元の指標を１つの評価軸上で、同時に評価することが可能である。そのため、ニューラルネットワークの精度及び性能という、互いにトレードオフの関係にあるような指標について、個別に評価する必要がない。したがって、上記ニューラルネットワークの生成方法によれば、ハイパーパラメータの調整の難易度が高くなりにくい、という利点がある。
【０１３５】
第９の態様に係るプログラムは、第１〜７のいずれかの態様に係るニューラルネットワークの評価方法、又は第８の態様に係るニューラルネットワークの生成方法を、１以上のプロセッサに実行させるためのプログラムである。
【０１３６】
この態様によれば、ニューラルネットワークの精度と性能との両方を考慮した、ニューラルネットワークの評価が可能となる。そのため、その評価結果を利用すれば、設計処理（Ｓ１１，Ｐ１）に依存するニューラルネットワークの精度と、軽量化処理（Ｓ１３，Ｐ２）に依存するニューラルネットワークの性能と、の両方を考慮したハイパーパラメータの調整が可能となる。そして、上記プログラムでは、ニューラルネットワークの精度及び性能を含む複数次元の指標を一次元化した評価関数（ｙ）を用いて、ニューラルネットワークの評価を行う。つまり、このような評価関数（ｙ）によれば、精度及び性能といった別次元の指標を１つの評価軸上で、同時に評価することが可能である。そのため、ニューラルネットワークの精度及び性能という、互いにトレードオフの関係にあるような指標について、個別に評価する必要がない。したがって、上記プログラムによれば、ハイパーパラメータの調整の難易度が高くなりにくい、という利点がある。
【０１３７】
第１０の態様に係る評価システム（１０）は、関数生成部（１１）を備える。関数生成部（１１）は、ニューラルネットワークについて精度と性能とを含む複数次元の評価対象を一次元化した評価関数（ｙ）を生成する。評価システム（１０）は、評価関数（ｙ）に基づいて、ニューラルネットワークの評価を行う。
【０１３８】
この態様によれば、ニューラルネットワークの精度と性能との両方を考慮した、ニューラルネットワークの評価が可能となる。そのため、その評価結果を利用すれば、設計処理（Ｓ１１，Ｐ１）に依存するニューラルネットワークの精度と、軽量化処理（Ｓ１３，Ｐ２）に依存するニューラルネットワークの性能と、の両方を考慮したハイパーパラメータの調整が可能となる。そして、評価システム（１０）では、ニューラルネットワークの精度及び性能を含む複数次元の指標を一次元化した評価関数（ｙ）を用いて、ニューラルネットワークの評価を行う。つまり、このような評価関数（ｙ）によれば、精度及び性能といった別次元の指標を１つの評価軸上で、同時に評価することが可能である。そのため、ニューラルネットワークの精度及び性能という、互いにトレードオフの関係にあるような指標について、個別に評価する必要がない。したがって、評価システム（１０）によれば、ハイパーパラメータの調整の難易度が高くなりにくい、という利点がある。
【０１３９】
上記態様に限らず、実施形態１及び２に係るニューラルネットワークの評価方法の種々の構成（変形例を含む）は、プログラム又は評価システム（１０）にて具現化可能である。
【０１４０】
上記態様に限らず、実施形態１及び２に係るニューラルネットワークの生成方法の種々の構成（変形例を含む）は、プログラム又は生成システム（１００）にて具現化可能である。
【０１４１】
また、第１１の態様に係るニューラルネットワークの評価方法では、第１〜７のいずれかの態様において、評価関数（ｙ）は、精度を表す精度関数（ａ（ｘ））と、性能を表す性能関数（ｐ（ｘ））と、の組み合わせで定義される。
【０１４２】
この態様によれば、比較的簡単に評価関数（ｙ）を定義することができる。
【０１４３】
第１２の態様に係るニューラルネットワークの評価方法では、第１１の態様において、評価関数（ｙ）は、精度関数（ａ（ｘ））を性能関数（ｐ（ｘ））の定数倍で除した関数である。つまり、評価関数（ｙ）は、精度関数（ａ（ｘ））と性能関数（ｐ（ｘ））との比で表される。
【０１４４】
この態様によれば、比較的簡単に評価関数（ｙ）を定義することができる。
【０１４５】
第１３の態様に係るニューラルネットワークの評価方法では、第１〜７，１１，１２のいずれかの態様において、前記ニューラルネットワークは、畳み込みニューラルネットワークである。
【０１４６】
この態様によれば、画像認識等に好適なニューラルネットワークについての評価が可能である。
【０１４７】
第１４の態様に係るニューラルネットワークの評価方法では、第１〜７，１１〜１３のいずれかの態様において、前記ニューラルネットワークは、組み込みシステムに実装される。
【０１４８】
この態様によれば、性能についても向上が求められやすいニューラルネットワークについての評価が可能である。
【０１４９】
第２〜７，１１〜１４の態様に係る構成については、ニューラルネットワークの評価方法に必須の構成ではなく、適宜省略可能である。
【符号の説明】
【０１５０】
１０  評価システム
１１  関数生成部
Ｓ１１，Ｐ１  設計処理
Ｓ１３，Ｐ２  軽量化処理
Ｓ１４  関数生成処理
Ｓ１５，Ｐ３  評価処理
Ｓ１９  モデル生成処理
Ｓ２０，Ｐ４  決定処理
Ｌ  第１変数
Ｋ  第２変数
ｙ  評価関数
【図１】
2020123292.tif 000010
【図２】
2020123292.tif 000011
【図３】
2020123292.tif 000012
【図４】
2020123292.tif 000013
【図５】
2020123292.tif 000014