(57)【要約】【課題】ニューラルネットワークの過学習を抑制すること。【解決手段】第１入力層と、第１出力層と、前記第１入力層と前記第１出力層との間において前段の層からのデータと第１学習パラメータとを第１活性化関数に与えて計算して後段の層に計算結果を出力する２層以上の第１中間層と、により構成される第１ニューラルネットワークを用いたデータ分析装置は、前記各第１中間層からの出力データを受け付けて、前記各出力データと第２学習パラメータとに基づいて、前記各第１中間層の重みを設定して、前記第１出力層に出力する設定部と、前記第１出力層に含まれ、前記各出力データを、前記第１中間層ごとの重みにより、それぞれ重み付けする重み付け処理部と、前記第１出力層に含まれ、重み付けされた各出力データと第３学習パラメータとに基づいて、予測データを算出する算出部と、を有する。【選択図】図１
2018181187.tif 000002
【特許請求の範囲】
【請求項１】
第１入力層と、第１出力層と、前記第１入力層と前記第１出力層との間において前段の層からのデータと第１学習パラメータとを第１活性化関数に与えて計算して後段の層に計算結果を出力する２層以上の第１中間層と、により構成される第１ニューラルネットワークを用いたデータ分析装置であって、
前記各第１中間層からの出力データを受け付けて、前記各出力データと第２学習パラメータとに基づいて、前記各第１中間層の重みを設定して、前記第１出力層に出力する設定部と、
前記第１出力層に含まれ、前記各出力データを、前記設定部によって設定された前記第１中間層ごとの重みにより、それぞれ重み付けする重み付け処理部と、
前記第１出力層に含まれ、前記重み付け処理部によって重み付けされた各出力データと第３学習パラメータとに基づいて、予測データを算出する算出部と、
を有することを特徴とするデータ分析装置。
【請求項２】
請求項１に記載のデータ分析装置であって、
前記設定部は、前記第１入力層からの出力データを受け付けて、当該出力データと前記第２学習パラメータとに基づいて、前記各第１中間層の重みを設定して、前記第１出力層に出力することを特徴とするデータ分析装置。
【請求項３】
請求項１に記載のデータ分析装置であって、
前記各第１中間層からの出力データを受け付けて、前記各出力データの次元数を縮退させて、縮退後の各出力データを前記設定部に出力する第１縮退部を有し、
前記設定部は、前記第１縮退部からの縮退後の各出力データを受け付けて、前記縮退後の各出力データと前記第２学習パラメータとに基づいて、前記各第１中間層の重みを設定して、前記第１出力層に出力することを特徴とするデータ分析装置。
【請求項４】
請求項１に記載のデータ分析装置であって、
前記第１入力層に訓練データが与えられた場合に、前記第１学習パラメータ、前記第２学習パラメータ、および前記第３学習パラメータを調整する学習部を有することを特徴とするデータ分析装置。
【請求項５】
請求項３に記載のデータ分析装置であって、
前記各第１中間層からの出力データを受け付けて、前記各出力データの次元数を縮退させて、縮退後の各出力データを前記重み付け処理部に出力する第２縮退部を有し、
前記重み付け処理部は、前記第２縮退部からの縮退後の各出力データを、前記第１中間層ごとの重みにより、それぞれ重み付けすることを特徴とするデータ分析装置。
【請求項６】
請求項４に記載のデータ分析装置であって、
前記学習部は、
前記訓練データを受け付ける第２入力層と、前記第１ニューラルネットワークのハイパーパラメータを出力する第２出力層と、前記第２入力層と前記第２出力層との間において前段の層からのデータと第４学習パラメータとを第２活性化関数に与えて計算して後段の層に計算結果を出力する第２中間層と、により構成される第２ニューラルネットワークを用い、前記第２入力層に前記訓練データが与えられた場合に、前記第４学習パラメータを調整し、
前記訓練データを、前記第４学習パラメータが調整された前記第２ニューラルネットワークの前記第２入力層に与えることにより、前記出力層から前記ハイパーパラメータを出力し、
前記ハイパーパラメータにより前記第１ニューラルネットワークの構造を決定し、
前記構造が決定された前記第１ニューラルネットワークの前記第１入力層に前記訓練データが与えられた場合に、前記第１学習パラメータ、前記第２学習パラメータ、および前記第３学習パラメータを調整することを特徴とするデータ分析装置。
【請求項７】
請求項６に記載のデータ分析装置であって、
前記ハイパーパラメータは、前記第１ニューラルネットワークを構成する要素のパターンを決定するハイパーパラメータであることを特徴とするデータ分析装置。
【請求項８】
請求項７に記載のデータ分析装置であって、
前記パターンを決定するハイパーパラメータは、前記第１活性化関数の種類を示すパラメータであることを特徴とするデータ分析装置。
【請求項９】
請求項６に記載のデータ分析装置であって、
前記ハイパーパラメータは、前記第１ニューラルネットワークを構成する要素の順序を決定するハイパーパラメータであることを特徴とするデータ分析装置。
【請求項１０】
請求項９に記載のデータ分析装置であって、
前記順序を決定するハイパーパラメータは、前記第１中間層の層数を示すパラメータであることを特徴とするデータ分析装置。
【請求項１１】
第１入力層と、第１出力層と、前記第１入力層と前記第１出力層との間において前段の層からのデータと第１学習パラメータとを第１活性化関数に与えて計算して後段の層に計算結果を出力する２層以上の第１中間層と、により構成される第１ニューラルネットワークを用いたデータ分析装置によるデータ分析方法であって、
前記データ分析装置は、プロセッサと、前記第１ニューラルネットワークを記憶する記憶デバイスと、を有し、
前記プロセッサは、
前記各第１中間層からの出力データを受け付けて、前記各出力データと第２学習パラメータとに基づいて、前記各第１中間層の重みを設定して、前記第１出力層に出力する設定処理と、
前記第１出力層に含まれ、前記各出力データを、前記設定処理によって設定された前記第１中間層ごとの重みにより、それぞれ重み付けする重み付け処理と、
前記第１出力層に含まれ、前記重み付け処理によって重み付けされた各出力データと第３学習パラメータとに基づいて、予測データを算出する算出処理と、
を実行することを特徴とするデータ分析方法。
【請求項１２】
第１入力層と、第１出力層と、前記第１入力層と前記第１出力層との間において前段の層からのデータと第１学習パラメータとを第１活性化関数に与えて計算して後段の層に計算結果を出力する２層以上の第１中間層と、により構成される第１ニューラルネットワークが記憶された記憶デバイスにアクセス可能なプロセッサに、
前記各第１中間層からの出力データを受け付けて、前記各出力データと第２学習パラメータとに基づいて、前記各第１中間層の重みを設定して、前記第１出力層に出力する設定処理と、
前記第１出力層に含まれ、前記各出力データを、前記設定処理によって設定された前記第１中間層ごとの重みにより、それぞれ重み付けする重み付け処理と、
前記第１出力層に含まれ、前記重み付け処理によって重み付けされた各出力データと第３学習パラメータとに基づいて、予測データを算出する算出処理と、
を実行させることを特徴とするデータ分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを分析するデータ分析装置、データ分析方法、およびデータ分析プログラムに関する。
【背景技術】
【０００２】
入力データから出力データを予測する手法として、パーセプトロンと呼ばれる手法がある。パーセプトロンは、入力ベクトルと重みベクトルの線形結合の演算結果により、予測値を出力する。ニューラルネットワークは、別名、マルチパーセプトロンとも呼ばれ、複数のパーセプトロンを多層的に重ねることで、線形分離不可能問題を解く能力をもたせた技術であり、１９８０年代に登場した。２０１２年頃から、ドロップアウト（下記特許文献１を参照）等の新しい技術を導入したニューラルネットワークはｄｅｅｐ  ｌｅａｒｎｉｎｇと呼ばれている。ドロップアウトは、ニューラルネットワークの学習の際に、各層の学習パラメータをランダムに欠損させる技術であり、下層から上層までの学習が行われることを狙っている。
【０００３】
機械学習分野では、入力ベクトルから得られた予測値と実際の値（真値）の誤差が最小となるように、学習パラメータ（パーセプトロンにおける重みベクトル等）を計算することを学習と呼ぶ。学習のプロセスが完了すると、学習に用いなかったデータ（以降、テストデータと呼ぶ）から新しい予測値を計算することができる。ニューラルネットワークでは、テストデータの予測値と真値の誤差が大きくなる傾向にあることが知られており、この問題は過学習と呼ばれる。過学習が発生する要因の１つとして、パーセプトロンを多層化したことで、下層の学習パラメータの学習が十分に行われない場合がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開ＷＯ２０１４／１０５８６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ドロップアウトを用いた場合でも、１０層程度のネットワークで過学習が発生する場合があり、本質的な改善には至っていない。
【０００６】
本発明は、上記に鑑みてなされたものであって、ニューラルネットワークの過学習の抑制を図ることを目的とする。
【課題を解決するための手段】
【０００７】
本願において開示される発明の一側面となるデータ分析装置は、第１入力層と、第１出力層と、前記第１入力層と前記第１出力層との間において前段の層からのデータと第１学習パラメータとを第１活性化関数に与えて計算して後段の層に計算結果を出力する２層以上の第１中間層と、により構成される第１ニューラルネットワークを用いたデータ分析装置であって、前記各第１中間層からの出力データを受け付けて、前記各出力データと第２学習パラメータとに基づいて、前記各第１中間層の重みを設定して、前記第１出力層に出力する設定部と、前記第１出力層に含まれ、前記各出力データを、前記設定部によって設定された前記第１中間層ごとの重みにより、それぞれ重み付けする重み付け処理部と、前記第１出力層に含まれ、前記重み付け処理部によって重み付けされた各出力データと第３学習パラメータとに基づいて、予測データを算出する算出部と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明の代表的な実施の形態によれば、ニューラルネットワークの過学習の抑制を図ることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例１にかかるニューラルネットワークの構造例を示す説明図である。
【図２】図２は、データ分析システムのシステム構成例を示すブロック図である。
【図３】図３は、データ分析装置の機能的構成例を示すブロック図である。
【図４】図４は、データ分析装置によるデータ分析処理手順例を示すフローチャートである。
【図５】図５は、図４に示したハイパーパラメータ算出処理（ステップＳ４０２）の詳細な処理手順例を示すフローチャートである。
【図６】図６は、データ分析結果の比較例を示す説明図である。
【図７】図７は、実施例２にかかるニューラルネットワークの構造例を示す説明図である。
【図８】図８は、実施例３にかかるニューラルネットワークの構造例を示す説明図である。
【図９】図９は、実施例４にかかるニューラルネットワークの構造例を示す説明図である。
【発明を実施するための形態】
【実施例１】
【００１０】
＜ニューラルネットワーク＞
図１は、実施例１にかかるニューラルネットワーク１００の構造例を示す説明図である。ニューラルネットワーク１００は、データユニット群ＤＵと、レポーティングユニット群ＲＵと、サジェスチョンユニットＳＵと、識別ユニットＩＵと、を有する。データユニット群ＤＵは、複数のデータユニットＤＵｌ（ｌは、階層番号であり、０≦ｌ≦Ｌ。Ｌは最下層の階層番号であり、図１では、Ｌ＝３）を直列に接続した構成である。最上段であるｌ＝０のデータユニットＤＵ０は、ニューラルネットワーク１００の入力層であり、ｌ≦１のデータユニットＤＵｌは、ニューラルネットワーク１００の中間層（隠れ層ともいう）に相当する。データユニットＤＵｌは、前段のデータユニットＤＵ（ｌ−１）からの入力データを自データユニットＤＵｌの学習パラメータを用いて計算して出力データを出力するパーセプトロンである。
【００１１】
ただし、入力層となるデータユニットＤＵ０は、入力データを受け付けず、訓練データやテストデータを出力する。ここで、訓練データは、たとえば、画像ｘｎとそのラベルｙｎとにより構成される（ｎ＝１，２，…，Ｎ。Ｎは画像の枚数）。画像ｘｎは、２次元のマトリックス構造を持つデータであり、以降、行列として取り扱う。説明の容易さのために、「ｘ」と表記した場合は、行列形式の画像ｘｎをラスタスキャンした１次元ベクトルとする。なお、テストデータについても同様の構成である。
【００１２】
ラベルｙｎは、画像ｘｎの種類数Ｋに対して、ｏｎｅｈｏｔ表現で種類（たとえば、犬や猫などの動物）を示すＫ次元のベクトルである。ｏｎｅｈｏｔ表現では、ベクトルのある要素が画像ｘｎの種類に対応しており、ただ１つの要素だけに１．０が格納され、他の要素は全て０．０である。１．０の要素に対応する種類（たとえば、犬）が正解となる種類である。なお、画像ｘｎをＸ線、ＣＴ、ＭＲＩ、超音波等の医療用画像を入力とした場合、疾病の種類や患者の予後（良いまたは悪い）を予測することができる。
【００１３】
データユニットＤＵｌにおける出力ベクトルｈｌＤの計算は、下記式（１）で実施される。
【００１４】
【数１】
2018181187.tif 000003
【００１５】
式（１）中、添え字ｌは、階層番号を示す（以下の式も同様）。ただし、入力層となるデータユニットＤＵ０からの出力ベクトルｈ０Ｄは、訓練データやテストデータとなる。右辺の行列ＷｌＤは、データユニットＤＵｌの学習パラメータの１つである。関数ｇは、活性化関数である。活性化関数は、たとえば、シグモイド関数、双曲線正接関数（ｔａｎｈ関数）、ＲｅＬＵ（Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅａｒ  Ｕｎｉｔ）関数のいずれかの関数である。右辺のベクトルｈｌ−１Ｄは、データユニットＤＵｌに入力される入力ベクトル、すなわち、前段のデータユニットＤＵ（ｌ−１）からの出力ベクトルである。
【００１６】
レポーティングユニットＲＵｌは、同一階層のデータユニットＤＵｌからの出力ベクトルｈｌＤを入力し、当該出力ベクトルｈｌＤの次元数を縮退させる。レポーティングユニットＲＵｌからの出力ベクトルｈｌＲの計算は、下記式（２）で実施される。
【００１７】
【数２】
2018181187.tif 000004
【００１８】
式（２）中、行列ＷｌＲはレポーティングユニットＲＵｌの学習パラメータである。具体的には、たとえば、データユニットＤＵｌからの出力ベクトルｈｌＤの次元数をｄとした場合、行列ＷｌＲは、たとえば、１行目からｍ（ｍ＜ｄ）行目までの成分を行列ＷｌＤと同一成分とし、ｄ−ｍ＋１行からｋ行目までの成分を０とした行列である。これにより、データユニットＤＵｌからのｄ次元の出力ベクトルｈｌＤは、ｍ次元の出力ベクトルｈｌＲに縮退される。
【００１９】
サジェスチョンユニットＳは、各レポーティングユニットＲＵｌからの出力ベクトルｈｌＲを用いて、各データユニットＤＵｌの重み（出力ベクトルｈＳ）を計算する。サジェスチョンユニットＳにおける出力ベクトルｈＳの計算は、下記式（３）で実施される。
【００２０】
【数３】
2018181187.tif 000005
【００２１】
式（３）中、行列ＷＳはサジェスチョンユニットＳの学習パラメータである。下記式（４）に示すように、活性化関数の１つであるｓｏｆｔｍａｘ関数では、層数Ｌ（本例ではＬ＝３）に等しい次元のベクトルｈＳを計算する。右辺のベクトルｈＲはｈｌＲを垂直方向にスタックしたベクトルである。
【００２２】
【数４】
2018181187.tif 000006
【００２３】
したがって、行列ＷＳは、Ｌ行Ｍ列（Ｍは、ベクトルｈＲの要素数）の行列となる。サジェスチョンユニットＳにｓｏｆｔｍａｘ関数を採用することにより、要素数ＬのベクトルｈＳの各要素（全要素の和は１）は、対応するデータユニットＤＵｌの重みをあらわすことになる。
【００２４】
識別ユニットＩＵは、各層のデータユニットＤＵｌ（ｌ≦１）の出力ベクトルｈｌＤを識別する。具体的には、たとえば、識別ユニットＩＵは、ベクトルｈＳにより、中間層のデータユニットＤＵｌ（ｌ≦１）の各出力ベクトルｈｌＤを重み付けする。具体的には、たとえば、識別ユニットＩＵは、中間層のデータユニットＤＵｌ（ｌ≦１）の出力ベクトルｈｌＤを統合して統合ベクトルｈを算出する。統合ベクトルｈの計算は、下記式（５）で実施される。
【００２５】
【数５】
2018181187.tif 000007
【００２６】
式（５）中、右辺のスカラｈＳ［ｌ］は、式（３）に示したベクトルｈＳのｌ次元の要素を示す。スカラｈＳ［ｌ］により、出力ベクトルｈｌＤに重み付けされることになる。つぎに、識別ユニットＩＵは、最終的なラベルの予測値を示す予測ベクトルｔを式（６）で計算する。
【００２７】
【数６】
2018181187.tif 000008
【００２８】
式（６）中、行列Ｗは識別ユニットＩＵの学習パラメータである。活性化関数の１つであるｓｏｆｔｍａｘ関数では、予測値としてＫ次元の予測ベクトルｔを出力する。Ｋは、上述したラベルｙｎの次元数、すなわち、要素数である。なお、予測ベクトルｔの各次元には、それぞれ画像ｘｎの種別を表す確率値が格納される。
【００２９】
本実施例では、式（１）から式（６）の計算方法と、その際に用いた学習パラメータである行列ＷｌＤ，行列ＷｌＲ，行列ＷＳ，行列Ｗの値を含めて予測モデルと呼称する。予測モデルの学習パラメータは、ニューラルネットワークに訓練データ｛ｘｎ，ｙｎ｝を与えることにより生成される。
【００３０】
これにより、テストデータを入力する場合、その予測ベクトルｔの要素のうち、最大確率の要素に対応する出力ベクトルｈｌＤを出力すればよいことになる。すなわち、学習により、正解率の高い階層ｌの重みが高くなるため、階層ｌごとの重みを予測に反映することにより、パーセプトロンを多層化した場合であってもテストデータの予測値と真値との誤差を小さくすることができ、過学習を抑制することができる。
【００３１】
＜システム構成例＞
図２は、データ分析システムのシステム構成例を示すブロック図である。図２では、サーバ−クライアント型のデータ分析システム２を例に挙げて説明するが、スタンドアロン型でもよい。（Ａ）は、データ分析システム２のハードウェア構成例を示すブロック図であり、（Ｂ）は、データ分析システム２の機能的構成例を示すブロック図である。（Ａ）および（Ｂ）において同一構成には同一符号を付す。
【００３２】
データ分析システム２は、クライアント端末２００とサーバであるデータ分析装置２２０とがネットワーク２１０で通信可能に接続される構成である。
【００３３】
（Ａ）において、クライアント端末２００は、補助記憶装置であるＨＤＤ（ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ）２０１、主記憶装置であるメモリ２０２、プロセッサ２０３、キーボードやマウスである入力装置２０４、モニタ２０５を有する。データ分析装置２２０は、補助記憶装置であるＨＤＤ２２１、主記憶装置であるメモリ２２２、プロセッサ２２３、キーボードやマウスである入力装置２２４、モニタ２２５を有する。なお、主記憶装置、補助記憶装置、および、図示しない可搬型の記憶媒体を総称して、記憶デバイスと称す。記憶デバイスは、ニューラルネットワーク１００や後述するハイパーパラメータ計算用ニューラルネットワーク３００およびこれらの学習パラメータを記憶する。
【００３４】
（Ｂ）において、クライアント端末２００は、クライアントデータベース（ＤＢ）２５１を有する。クライアントＤＢ２５１は、ＨＤＤ２０１やメモリ２０２などの記憶デバイスに格納される。クライアントＤＢ２５１には、テストデータ集合２５２と、予測結果２５３と、が格納される。テストデータ集合２５２は、テストデータの集合である。予測結果２５３は、予測部２６２からネットワーク２１０経由で得られたデータである。なお、サーバ−クライアント型の場合、クライアント端末２００は１台以上存在する。
【００３５】
データ分析装置２２０は、学習部２６１と、予測部２６２と、サーバデータベース（ＤＢ）２６３と、を有する。学習部２６１は、図１および図２に示した処理を実行し、学習パラメータ２６５を出力する機能部である。学習パラメータ２６５には、上述した学習パラメータが含まれる。
【００３６】
予測部２６２は、学習パラメータ２６５を用いて、ニューラルネットワーク１００を構築し、ニューラルネットワーク１００にテストデータが与えられることで、予測処理を実行し、予測結果２５３をクライアント端末２００に出力する機能部である。学習部２６１および予測部２６２は、ＨＤＤ２２１、メモリ２２２などの記憶デバイスに記憶されたプログラムをプロセッサ２２３に実行させることによりその機能を実現する。
【００３７】
サーバＤＢ２６３は、訓練データ集合２６４と、学習パラメータ２６５と、を格納する。訓練データ集合２６４は、上述した画像ｘｎと、ラベルｙｎと、を含む。学習パラメータ２６５は、学習部２６１からの出力データであり、行列ＷｌＤ，行列ＷｌＲ，行列ＷＳ，行列Ｗを含む。
【００３８】
なお、データ分析装置２２０は複数台で構成されてもよい。たとえば、負荷分散のため、データ分析装置２２０が複数存在してもよい。また、データ分析装置２２０は、機能ごとに複数台で構成されてもよい。たとえば、学習部２６１およびサーバＤＢ２６３を含む第１のサーバと、予測部２６２およびサーバＤＢ２６３を含む第２のサーバとで構成されてもよい。また、また、学習部２６１および予測部２６２を含む第１のデータ分析装置と、サーバＤＢ２６３を含む第２のデータ分析装置とで構成されてもよい。また、学習部２６１を含む第１のサーバと、予測部２６２を含む第２のデータ分析装置と、サーバＤＢ２６３を含む第３のデータ分析装置とで構成されてもよい。
【００３９】
＜データ分析装置の機能的構成例＞
図３は、データ分析装置２２０の機能的構成例を示すブロック図である。データ分析装置２２０は、図２に示したように、学習部２６１および予測部２６２を有する。学習部２６１は、ニューラルネットワーク１００およびハイパーパラメータ計算用ニューラルネットワーク３００の各学習パラメータを学習する。予測部２６２は、学習パラメータ２６５が決定されたニューラルネットワーク１００にテストデータを与えることにより、予測データｔ´を算出する。
【００４０】
ここで、ハイパーパラメータ計算用ニューラルネットワーク３００は、一般的なニューラルネットワークでよい。図３では、ハイパーパラメータ計算用ニューラルネットワーク３００は１つであるが、ハイパーパラメータ計算用ニューラルネットワーク３００はハイパーパラメータごとに設けられる。ハイパーパラメータ計算用ニューラルネットワーク３００は、入力層となる階層ｌ´＝０のデータユニットｄｕ０、中間層となる階層ｌ´≦１（本例では、層数Ｌ´＝３）のデータユニットｄｕ１〜ｄｕ３、出力層となる識別ユニットｉｕが直列に接続されて構成される。各層は、パーセプトロンにより構成される。
【００４１】
また、データ分析装置２２０は、設定部３０１と、重み付け処理部３０２と、算出部３０３と、縮退部３０４と、を有する。設定部３０１、重み付け処理部３０２、算出部３０３および縮退部３０４は、ＨＤＤ２２１、メモリ２２２などの記憶デバイスに記憶されたプログラムをプロセッサ２２３に実行させることによりその機能を実現する。
【００４２】
設定部３０１は、各中間層のデータユニットＤＵｌからの出力データを受け付けて、各出力データと学習パラメータ（行列ＷＳ）とに基づいて、各中間層のデータユニットＤＵｌの重みを設定して、出力層である識別ユニットＩＵに出力する。設定部３０１は、サジェスチョンユニットが実現する機能である。
【００４３】
重み付け処理部３０２は、中間層のデータユニットＤＵｌからの出力データを、設定部３０１によって設定された中間層のデータユニットＤＵｌごとの重みにより、それぞれ重み付けする。算出部３０３は、重み付け処理部３０２によって重み付けされた各出力データと学習パラメータ（行列Ｗ）とに基づいて、予測データｔ，ｔ´を算出する。重み付け処理部３０２、および算出部３０３は、識別ユニットＩＵが実現する機能である。
【００４４】
縮退部３０４は、各第１中間層からの出力データを受け付けて、各出力データの次元数を縮退させて、縮退後の各出力データを設定部３０１に出力する。縮退部３０４は、レポーティングユニットＲＵｌが実現する機能である。
【００４５】
＜データ分析処理手順例＞
図４は、データ分析装置２２０によるデータ分析処理手順例を示すフローチャートである。図４のうち、ステップＳ４０１〜Ｓ４０４が学習部２６１による学習処理であり、ステップＳ４０５〜Ｓ４０７が予測部２６２による予測処理である。まず、データ分析装置２２０は、訓練データ集合２６４を読み込み（ステップＳ４０１）、ハイパーパラメータ算出処理を実行する（ステップＳ４０２）。ハイパーパラメータとは、ニューラルネットワークの構造を決定するパラメータである。ハイパーパラメータには、パターン（種類）を決定する第１ハイパーパラメータと、順序を決定する第２ハイパーパラメータがある。
【００４６】
第１ハイパーパラメータには、たとえば、活性化関数の種類、損失関数の種類、正則化（関数）の種類、ニューラルネットワーク種などがある。本例では、第１ハイパーパラメータとして活性化関数の種類に関するハイパーパラメータｖＡを用いる。第２ハイパーパラメータには、中間層の層数Ｌ、中間層内のユニット数などがある。本例では、第２ハイパーパラメータとして中間層の層数Ｌに関するハイパーパラメータｖＬを用いる。ハイパーパラメータ算出処理（ステップＳ４０２）の詳細は後述する。
【００４７】
データ分析装置２２０は、ハイパーパラメータ算出処理（ステップＳ４０２）で算出されたハイパーパラメータを用いて、ニューラルネットワーク１００の構造を決定する（ステップＳ４０３）。たとえば、データ分析装置２２０は、活性化関数の種類に関するハイパーパラメータｖＡと中間層の層数Ｌに関するハイパーパラメータｖＬとを設定して、ニューラルネットワーク１００の構造として、識別ユニットＩＵの関数ｆ（ｘ；ｖＡ，ｖＬ）を決定する。
【００４８】
データ分析装置２２０は、構造決定されたニューラルネットワーク１００に、訓練データ｛ｘｎ，ｙｎ｝を与えることにより学習をおこない、学習パラメータ２６５（行列ＷｌＤ，行列ＷｌＲ，行列ＷＳ，行列Ｗ）を生成する（ステップＳ４０４）。学習（ステップＳ４０４）では、たとえば、誤差逆伝播法により、学習パラメータ２６５を調整する。データ分析装置２２０は、生成した学習パラメータ２６５をサーバＤＢ２６３に保存する。
【００４９】
つぎに、データ分析装置２２０は、テストデータ集合２５２を読み込み（ステップＳ４０５）、各テストデータの画像ｘ´ｎを、学習パラメータ２６５が反映されたニューラルネットワーク１００に与えて、予測ベクトルｔ´を算出する（ステップＳ４０６）。そして、データ分析装置２２０は、予測ベクトルｔ´の集合である予測結果２５３をクライアント端末２００に出力する（ステップＳ４０７）。クライアント端末２００は、予測結果２５３をモニタ２０５に表示する。
【００５０】
＜ハイパーパラメータ算出処理（ステップＳ４０２）＞
ハイパーパラメータ算出処理（ステップＳ４０２）では、データ分析装置２２０は、図１に示したニューラルネットワーク１００とは別のハイパーパラメータ計算用ニューラルネットワーク３００を用いて、ハイパーパラメータとして、たとえば、ハイパーパラメータｖＡ，ｖＬを算出する。
【００５１】
ハイパーパラメータＶＡは、活性化関数の種類として、シグモイド関数、双曲線正接関数、ＲｅＬＵ関数のいずれかを示す値がｏｎｅｈｏｔベクトルで格納されたハイパーパラメータである。たとえば、
ｖＡ＝（１，０，０）であれば、シグモイド関数、
ｖＡ＝（０，１，０）であれば、双曲線正接関数、
ｖＡ＝（０，０，１）であれば、ＲｅＬＵ関数を示す。ハイパーパラメータｖＡは、下記式（７）で計算される。
【００５２】
【数７】
2018181187.tif 000009
【００５３】
式（７）中、行列Ｗｌ´Ａは、学習パラメータ２６５の１つである。行列Ｗｌ´Ａの初期値は、ハイパーパラメータ算出処理（ステップＳ４０２）の実行前にあらかじめ設定されているものとする。Ｌ´は、ハイパーパラメータｖＡ計算用ニューラルネットワーク３００の層数を表す。本実施例では、Ｌ´＝３とする。層数Ｌ´は任意に設定可能である。右辺のｇ（Ｗ０Ａ）は、ハイパーパラメータｖＡ計算用ニューラルネットワーク３００の入力層（データユニットｄｕ０）のパーセプトロン（ｇ（）は活性化関数）である。ｇ（Ｗｌ´Ａ）は、ハイパーパラメータｖＡ計算用ニューラルネットワーク３００の第ｌ´層である中間層（データユニットｄｕｌ´）のパーセプトロンである。ｆＡ（ｘ）は、ハイパーパラメータｖＡ計算用ニューラルネットワーク３００の出力層（識別ユニットｉｕ）のパーセプトロン（ｓｏｆｔｍａｘ関数）である。
【００５４】
ハイパーパラメータｖＬは、ニューラルネットワーク１００の中間層の層数Ｌが区間［０，１］に正規化した連続値として格納されたハイパーパラメータである。たとえば、中間層の層数ＬがＬ＝１０、すなわち、最大で中間層を１０層まで構築可能とする場合、ｌ＝１は０．１、ｌ＝２は０．２、…、ｌ＝１０は１．０として正規化される。ハイパーパラメータｖＬは、下記式（８）で計算される。
【００５５】
【数８】
2018181187.tif 000010
【００５６】
式（８）中、行列Ｗｌ´Ｌは、学習パラメータ２６５の１つである。行列Ｗｌ´Ｌの初期値は、ハイパーパラメータ算出処理（ステップＳ４０２）の実行前にあらかじめ設定されているものとする。Ｌ´は、ハイパーパラメータｖＬ計算用ニューラルネットワーク３００の層数を表す。本実施例では、Ｌ´＝３とする。層数Ｌ´は任意に設定可能である。右辺のｇ（ＷＬ０）は、ハイパーパラメータｖＬ計算用ニューラルネットワーク３００の入力層（データユニットｄｕ０）のパーセプトロン（ｇ（）は活性化関数）である。ｇ（Ｗｌ´Ｌ）は、ハイパーパラメータｖＬ計算用ニューラルネットワーク３００の第ｌ´層である中間層（データユニットｄｕｌ´）のパーセプトロンである。ｆＬ（ｘ）は、ハイパーパラメータｖＬ計算用ニューラルネットワークの出力層（識別ユニットｉｕ）のパーセプトロン（ｓｏｆｔｍａｘ関数）である。
【００５７】
なお、ハイパーパラメータｖＬの算出に際し、中間層の層数Ｌが区間［０，１］に正規化されているため、正規化したときの倍率の逆数で非正規化されて、ハイパーパラメータｖＬが得られる。たとえば、中間層の層数ＬをＬ＝１０の場合、１／１０として正規化した場合、ハイパーパラメータｖＬは１０倍されることで、層数を示すことになる。なお、浮動小数は、切捨てる。このように、ハイパーパラメータｖＡ，ｖＬにより識別ユニットＩＵの関数ｆ（ｘ；ｖＡ，ｖＬ）を構成することで、予測ベクトルｔの正解値が上昇する方向に学習パラメータ（行列Ｗｌ´Ａ，Ｗｌ´Ｌ）を決定することができる。
【００５８】
また、ハイパーパラメータ算出処理（ステップＳ４０２）では、データ分析装置２２０は、下記式（９）の行動価値関数を用いて、Ｑ（ｖ）を計算する。
【００５９】
【数９】
2018181187.tif 000011
【００６０】
式（９）中、行列ＷＱｌ´、学習パラメータ２６５の１つである。行列ＷＱｌ´の初期値は、ハイパーパラメータ算出処理（ステップＳ４０２）の実行前にあらかじめ設定されているものとする。左辺のベクトルｖは、下記式（１０）に示すように、ハイパーパラメータｖＡ、ｖＬ、ｘを垂直方向にスタックしたベクトルである。
【００６１】
【数１０】
2018181187.tif 000012
【００６２】
図５は、図４に示したハイパーパラメータ算出処理（ステップＳ４０２）の詳細な処理手順例を示すフローチャートである。データ分析装置２２０は、ステップＳ４０１で読み込んだ訓練データ集合２６４を分割する（ステップＳ５０１）。具体的には、たとえば、データ分析装置２２０は、訓練データ集合２６４をランダムに９：１（分割比率は一例）に分割する。すなわち、訓練データ集合２６４の９０％をハイパーパラメータ用訓練データ集合とし、残余の１０％をハイパーパラメータ用テストデータ集合とする。ハイパーパラメータ用訓練データ集合内のハイパーパラメータ用訓練データをｕｔとし、ハイパーパラメータ用テストデータ集合内のハイパーパラメータ用テストデータをｓｔとする。
【００６３】
つぎに、データ分析装置２２０は、乱数αを計算し（ステップＳ５０２）、乱数αがεより小さいか否かを判断する（ステップＳ５０３）。εは、区間［０，１］内の値であり、例としてε＝０．３とする。乱数αがεより小さい場合（ステップＳ５０３：Ｙｅｓ）、データ分析装置２２０は、ハイパーパラメータｖＡをランダムに生成して、ステップＳ５０６に移行する（ステップＳ５０４）。一方、乱数αがε以上である場合（ステップＳ５０３：Ｎｏ）、式（７）のｆＡ（ｘ）により、ハイパーパラメータｖＡを算出して、ステップＳ５０６に移行する（ステップＳ５０５）。
【００６４】
つぎに、データ分析装置２２０は、上記式（８）を用いて、ハイパーパラメータｖＬを、下記式（１１）により計算する（ステップＳ５０６）。
【００６５】
【数１１】
2018181187.tif 000013
【００６６】
式（１１）中、右辺第２項のＮｔは、区間［０，１］の間で発生された乱数である。これにより、ハイパーパラメータｖＡ，ｖＬが決まるため、ニューラルネットワーク１００の構造として、識別ユニットＩＵの関数ｆ（ｘ；ｖＡ，ｖＬ）が仮決定する。
【００６７】
つぎに、データ分析装置２２０は、仮決定された識別ユニットＩＵの関数ｆ（ｘ；ｖＡ，ｖＬ）を学習する（ステップＳ５０７）。具体的には、たとえば、データ分析装置２２０は、下記式（１２）に示すように、仮決定されたｆ（ｘ；ｖＡ，ｖＬ）に関する交差エントロピーＥに、ハイパーパラメータ用訓練データ集合の各ハイパーパラメータ用訓練データｕｔを与え、交差エントロピーＥを最小化する処理を実行する。当該最小化する処理には、確率的最急降下法が用いられる。これにより、仮決定された識別ユニットＩＵの関数ｆ（ｘ；ｖＡ，ｖＬ）の学習パラメータ２６５（行列ＷｌＤ，行列ＷｌＲ，行列ＷＳ，行列Ｗ）が更新される。
【００６８】
【数１２】
2018181187.tif 000014
【００６９】
式（１２）中、ｔｎ［ｋ］は、ハイパーパラメータ用訓練データｕｔである訓練データｘｎについての予測ベクトルｔのｋ次元目の要素である。たとえば、予測ベクトルｔｎがｔｎ＝［０，０，１］である場合、ｔｎ［ｋ＝１］＝０、ｔｎ［ｋ＝２］＝０、ｔｎ［ｋ＝３］＝１となる。同様に、ｙｎ［ｋ］は、ハイパーパラメータ用訓練データｕｔである訓練データｘｎに対応するラベルｙｎのｋ次元目の要素である。たとえば、ラベルｙｎがｔｎ＝［０，０，１］である場合、ｙｎ［ｋ＝１］＝０、ｙｎ［ｋ＝２］＝０、ｙｎ［ｋ＝３］＝１となる。
【００７０】
つぎに、データ分析装置２２０は、予測値を示す予測ベクトルｔと真値を示すラベルｙｎとから報酬ｒをＡＵＣ（Ａｒｅａ  Ｕｎｄｅｒ  Ｃｕｒｖｅ）として計算する（ステップＳ５０８）。なお、ステップＳ５０７の予測ベクトルｔは、学習（ステップＳ５０７）後のｆ（ｘ；ｖＡ，ｖＬ）にハイパーパラメータ用テストデータｓｔを与えることで計算される。
【００７１】
具体的には、たとえば、データ分析装置２２０は、縦軸を真陽性（Ｔｒｕｅ  Ｐｏｓｉｔｉｖｅ）の確率、横軸を偽陽性（Ｆａｌｓｅ  Ｐｏｓｉｔｉｖｅ）としたグラフ上のＲＯＣ（Ｒｅｃｅｉｖｅｒ  Ｏｐｅｒａｔｉｎｇ  Ｃｈａｒａｃｔｅｒｉｓｔｉｃ）曲線を生成し、曲線下の面積を報酬ｒとして算出する。
【００７２】
真陽性は、陽性者を陽性と判定する性質であり、この場合は、ラベルｙｎ内の要素である真値、すなわち、正解を示す値（１．０）に対応する予測ベクトルｔの要素が正解であると判定することである。たとえば、正解を示す値（１．０）に対応する予測ベクトルｔの要素が「０．６」であり、しきい値が「０．５」であるとすると、当該要素「０．６」は正解を示すため、真陽性を示す。
【００７３】
偽陽性は、陰性者を陽性と判定する性質であり、ラベルｙｎ内の要素である偽値、すなわち、不正解を示す値（０．０）に対応する予測ベクトルｔの要素が正解であると判定することである。たとえば、不正解を示す値（０．０）に対応する予測ベクトルｔの要素が「０．６」であり、しきい値が「０．５」であるとすると、当該要素「０．６」は正解を示すため、偽陽性を示す。
【００７４】
なお、横軸は、偽陰性（Ｆａｌｓｅ  Ｎｅｇａｔｉｖｅ）の確率でもよい。偽陰性とは、陽性者を陰性と判定する性質であり、ラベルｙｎ内の要素である真値、すなわち、正解を示す値（１．０）に対応する予測ベクトルｔの要素が不正解であると判定することである。たとえば、正解を示す値（１．０）に対応する予測ベクトルｔの要素が「０．４」であり、しきい値が「０．５」であるとすると、当該要素「０．４」は不正解を示すため、偽陰性を示す。
【００７５】
つぎに、データ分析装置２２０は、訓練データ集合２６４をランダムに９：１に分割することで、９０％のデータをハイパーパラメータ用訓練データｕｔ＋１とし、１０％のデータをハイパーパラメータ用テストデータｓｔ＋１をとし、データセット（ｓｔ，ｖｔ，ｒｔ，ｓｔ＋１）をメモリ２２２に保存する（ステップＳ５０９）。
【００７６】
ｓｔは、ハイパーパラメータ用テストデータである。ｖｔは、式（１０）において、１次元ベクトルｘをハイパーパラメータ用訓練データｕｔに置き換えて生成されたベクトルである。ｒｔは、予測ベクトルｔの算出元となった報酬ｒである。
【００７７】
つぎに、データ分析装置２２０は、Ｉ個のデータセット（ｓｉ，ｖｉ，ｒｉ，ｓｉ＋１）をメモリ２２２からランダムに取得する（ステップＳ５１０）。
【００７８】
データ分析装置２２０は、下記式（１３）によりロス関数ＥＱを計算する（ステップＳ５１１）。
【００７９】
【数１３】
2018181187.tif 000015
【００８０】
式（１３）中、右辺のＱ（ｖｉ）は、上述した式（９）を、ステップＳ５１０で取得したデータセット（ｓｉ，ｖｉ，ｒｉ，ｓｉ＋１）内のｖｉに適用した値である。また、右辺のｑｉは、下記式（１４）により計算される。
【００８１】
【数１４】
2018181187.tif 000016
【００８２】
式（１４）中、右辺のγは、割引率であり、区間［０．１］の間で設定される値である。
【００８３】
データ分析装置２２０は、確率的勾配降下法を式（１３）のロス関数ＥＱに適用することで、式（９）の学習パラメータＷｌ´Ｑを更新する（ステップＳ５１２）。
【００８４】
そして、データ分析装置２２０は、ロス関数ＥＱをハイパーパラメータｖＡで偏微分した勾配を用いて、勾配法により式（７）のｆＡ（ｘ）の学習パラメータＷＡを更新するとともに、ロス関数ＥＱをハイパーパラメータｖＬで偏微分した勾配を用いて、勾配法により式（８）のｆＬ（ｘ）の学習パラメータＷＬを更新する（ステップＳ５１３）。
【００８５】
このあと、データ分析装置２２０は、ステップＳ５０１からの処理を所定の繰り返し回数（たとえば、１０００回）分実行したか否かを判断する（ステップＳ５１４）。所定の繰り返し回数分実行していない場合（ステップＳ５１４：Ｎｏ）、ステップＳ５０１に戻る。一方、所定の繰り返し回数分実行した場合（ステップＳ５１４：Ｙｅｓ）、データ分析装置２２０は、訓練データｘｎを式（７）のｆＡ（ｘ）に与えることで、最適なハイパーパラメータｖＡを算出し、訓練データｘｎを式（７）のｆＬ（ｘ）に与えることで、最適なハイパーパラメータｖＬを算出する（ステップＳ５１５）。
【００８６】
具体的には、たとえば、データ分析装置２２０は、各訓練データｘｎを式（７）のｆＡ（ｘ）に与えることで、訓練データｘｎごとのハイパーパラメータｖＡを算出する。そして、データ分析装置２２０は、訓練データｘｎごとのハイパーパラメータｖＡの統計値を算出し、当該統計値を最適なハイパーパラメータｖＡとする。統計値とは、訓練データｘｎごとのハイパーパラメータｖＡの中の中央値、平均値、最小値、または最大値である。最適なハイパーパラメータｖＬについても同様である。これにより、最適なハイパーパラメータ（ｖＡ，ｖＬ）が決定され、ステップＳ４０３に移行する。
【００８７】
＜データ分析結果＞
図６は、データ分析結果の比較例を示す説明図である。図６のグラフの縦軸は、ＡＵＣ、すなわち、真陽性の確率である。具体的には、ラベルｙｎ内の要素である正解を示す値（１．０）に対応する予測ベクトルｔの要素が正解である確率である。手法Ａは、従来法、たとえば、特許文献１のニューラルネットワークを用いたデータ分析であり、手法Ｂは、本実施例のニューラルネットワーク１００を用いたデータ分析である。なお、手法Ａおよび手法Ｂともに、ハイパーパラメータとして、層数Ｌを１０層、活性化関数をシグモイド関数とする。
【００８８】
ここでは、クレジットカードの入会信用審査結果を予測するため、ｘｎとして、画像ではなく、クレジットカードの審査情報とした。審査情報ｘｎは、被審査者の収入情報などを格納した１５次元のベクトルデータとした。また、ラベルｙｎは、審査の合否（０：不合格、１：合格）をｏｎｅｈｏｔ表現で表したベクトルである。なお、訓練データ数Ｎは、Ｎ＝６２１、テストデータ数Ｎは、Ｎ＝６９とした。手法Ｂは、手法Ａと比較して、約３０％の精度向上を実現する。
【実施例２】
【００８９】
実施例２は、実施例１のニューラルネットワーク１００の構造の変形例を示す。実施例２のニューラルネットワークは、実施例１に比べて簡素な構成となるため、計算量が低減し、学習処理の高速化を実現する。なお、実施例２では、実施例１との相違点を中心に説明するため、実施例１と同一内容については説明を省略する。
【００９０】
図７は、実施例２にかかるニューラルネットワークの構造例を示す説明図である。ニューラルネットワーク７００には、レポーティングユニットＲＵｌが存在しない。このため、実施例２では、式（２）は不要となる。したがって、実施例２では、式（３）のかわりに、下記式（１５）が適用される。
【００９１】
【数１５】
2018181187.tif 000017
【００９２】
このあと、実施例１と同様、式（５）および式（６）を適用することにより、データ分析装置２２０は、予測ベクトルｔを算出することができる。このように、レポーティングユニットＲＵｌによる計算処理が不要となるため、学習処理の高速化を実現することができる。
【実施例３】
【００９３】
実施例３は、実施例１のニューラルネットワーク１００の構造の変形例を示す。実施例３のニューラルネットワークは、実施例１に比べて簡素な構成となるため、計算量が低減し、学習処理の高速化を実現する。なお、実施例３では、実施例１との相違点を中心に説明するため、実施例１と同一内容については説明を省略する。
【００９４】
図８は、実施例３にかかるニューラルネットワークの構造例を示す説明図である。ニューラルネットワーク８００には、レポーティングユニットＲＵｌが存在しない。このため、実施例２では、式（２）は不要となる。
【００９５】
また、中間層のデータユニットＤＵｌ（ｌ≦１）からの出力データは、識別ユニットＩＵにのみ入力される。入力層のデータユニットＤＵ０からの訓練データｘｎなどの出力データは、サジェスチョンユニットＳＵに入力される。したがって、実施例２では、式（３），式（４）のかわりに、下記式（１６）が適用される。
【００９６】
【数１６】
2018181187.tif 000018
【００９７】
このあと、実施例１と同様、式（５）および式（６）を適用することにより、データ分析装置２２０は、予測ベクトルｔを算出することができる。このように、レポーティングユニットＲＵｌによる計算処理が不要となるため、学習処理の高速化を実現することができる。また、サジェスチョンユニットＳＵへの入力は、入力層のデータユニットＤＵ０からの訓練データｘｎのみとなるため、サジェスチョンユニットＳＵの計算負荷の低減を図り、これにより、学習処理の効率化を図ることができる。
【実施例４】
【００９８】
実施例４は、実施例１のニューラルネットワーク１００の構造の変形例を示す。実施例４のニューラルネットワークは、実施例１にさらにレポーティングユニットＲＵｌと同様、次元縮退させるユニットを追加した構成となるため、学習処理の効率化を実現する。なお、実施例４では、実施例１との相違点を中心に説明するため、実施例１と同一内容については説明を省略する。
【００９９】
図９は、実施例４にかかるニューラルネットワークの構造例を示す説明図である。ニューラルネットワーク９００は、実施例１のニューラルネットワークに、ハーモナイジングユニットが追加された構造となる。ハーモナイジングユニットＨＵｌ（ｌ≦１）は、中間層のデータユニットＤＵｌ（ｌ≦１）と識別ユニットとの間に、中間層のデータユニットＤＵｌ（ｌ≦１）ごとに設けられる。ハーモナイジングユニットＨＵｌは、レポーティングユニットＲＵｌと同様、中間層のデータユニットＤＵｌ（ｌ≦１）からの出力データを次元縮退させる縮退部９０１である。したがって、識別ユニットＩＵには、ハーモナイジングユニットＨＵｌで次元縮退されたデータが入力される。
【０１００】
ハーモナイジングユニットＨＵｌは、同一階層のデータユニットＤＵｌからの出力ベクトルｈｌＤを入力し、出力ベクトルｈｌＤの次元数を縮退させる。ハーモナイジングユニットＨＵｌからの出力ベクトルｈｌＨの計算は、下記式（１７）で実施される。
【０１０１】
【数１７】
2018181187.tif 000019
【０１０２】
式（１７）中、行列ＷｌＨはハーモナイジングユニットＨＵｌの学習パラメータである。具体的には、たとえば、データユニットＤＵｌからの出力ベクトルｈｌＤの次元数をｄとした場合、行列ＷｌＨは、たとえば、１行目からｍ（ｍ＜ｄ）行目までの成分を行列ＷｌＤと同一成分とし、ｄ−ｍ＋１行からｋ行目までの成分を０とした行列である。これにより、データユニットＤＵｌからのｄ次元の出力ベクトルｈｌＤは、ｍ次元の出力ベクトルｈｌＨに縮退される。ｍは、次元縮退を決定するハイパーパラメータである。ｄおよびｍは、レポーティングユニットＲＵｌのｄおよびｍと異なる値でもよい。
【０１０３】
また、識別ユニットＩＵは、ハーモナイジングユニットＨＵｌからの出力ベクトルｈｌＨを入力するため、式（５）のかわりに、下記式（１８）が適用される。
【０１０４】
【数１８】
2018181187.tif 000020
【０１０５】
このあと、実施例１と同様、式（６）を適用することにより、データ分析装置２２０は、予測ベクトルｔを算出することができる。このように、ハーモナイジングユニットＨＵｌを適用することにより、識別ユニットＩＵに入力されるデータユニットからの出力ベクトルｈｌＤが次元縮退されるため、識別ユニットＩＵの計算負荷の低減を図り、学習処理の効率化を図ることができる。
【実施例５】
【０１０６】
実施例５は、実施例１〜４において、式（６）のｆ（ｘ）の計算方法として回帰を実行する例である。実施例５の訓練データおよびテストデータは医療用画像とし、データ分析装置２２０は、手術後の患者の再発までの期間を予測するものとする。
【０１０７】
訓練データは、医療用画像ｘｎと再発までの期間ｙｎとから構成されている（ｎ＝１，２，…，Ｎ。Ｎは画像の枚数）。医療用画像ｘｎは２次元のマトリックス構造を持つデータであり、以降、行列として取り扱う。単に「ｘ」と表記した場合は、行列形式の医療用画像ｘｎをラスタスキャンした１次元ベクトルを示す。なお、テストデータについても同様の構成である。再発までの期間ｙｎは、年齢層別の再発までの期間を格納したＫ次元のベクトルである。Ｋは、年齢層の種類数を示す。
【０１０８】
実施例５では、式（６）に替えて、下記式（１９）が適用される。ｔはスカラであり、再発までの予測期間を示す。
【０１０９】
【数１９】
2018181187.tif 000021
【０１１０】
また、実施例５では、図５のステップＳ５０７において、データ分析装置２２０は、ハイパーパラメータｖＡ，ｖＬにより構成された式（１９）のｆ（ｘ）、すなわち、仮決定された識別ユニットＩＵの関数ｆ（ｘ；ｖＡ，ｖＬ）を学習する（ステップＳ５０７）。
【０１１１】
具体的には、たとえば、データ分析装置２２０は、下記式（２０）に示すように、仮決定された識別ユニットＩＵの関数ｆ（ｘ；ｖＡ，ｖＬ）に関する二乗和誤差Ｅに、ハイパーパラメータ用訓練データ集合の各ハイパーパラメータ用訓練データｕｔを与え、二乗和誤差Ｅを最小化する処理を実行する。当該最小化する処理には、確率的最急降下法が用いられる。これにより、式（１９）で仮決定された識別ユニットＩＵの関数ｆ（ｘ；ｖＡ，ｖＬ）の学習パラメータ２６５（行列ＷｌＤ，行列ＷｌＲ，行列ＷｌＨ，行列ＷＳ，行列Ｗ）が更新される。
【０１１２】
【数２０】
2018181187.tif 000022
【０１１３】
また、ステップＳ５０８の報酬ｒの計算では、データ分析装置２２０は、下記式（２１）により、予測値である再発までの予測期間ｔと真値である再発までの期間ｙｎとから、報酬ｒを決定係数Ｒ２として計算する。
【０１１４】
【数２１】
2018181187.tif 000023
【０１１５】
以上説明したように、本実施例にかかるデータ分析装置２２０は、第１入力層（データユニットＤＵ０）と、第１出力層（識別ユニットＩＵ）と、第１入力層と第１出力層との間において前段の層からのデータと第１学習パラメータ（行列ＷｌＤ）とを第１活性化関数（ｇ（））に与えて計算して後段の層に計算結果を出力する２層以上の第１中間層（データユニットＤＵｌ）と、により構成される第１ニューラルネットワーク（ニューラルネットワーク７００）を用いる。
【０１１６】
データ分析装置２２０は、設定部３０１と、重み付け処理部３０２と、算出部３０３と、を有する。設定部３０１は、各第１中間層からの出力データ（出力ベクトルｈｌＤ）を受け付けて、各出力データと第２学習パラメータ（行列Ｗｓ）とに基づいて、各第１中間層の重み（出力ベクトルｈｓ）を設定して、第１出力層に出力する（サジェスチョンユニットＳＵ）。
【０１１７】
重み付け処理部３０２は、第１出力層に含まれ、各出力データを、設定部３０１によって設定された第１中間層ごとの重みにより、それぞれ重み付けする（識別ユニットＩＵ）。算出部３０３は、第１出力層に含まれ、重み付け処理部３０２によって重み付けされた各出力データ（ベクトルｈ）と第３学習パラメータ（行列Ｗ）とに基づいて、予測データ（予測ベクトルｔ）を算出する。
【０１１８】
これにより、階層ｌごとの重みを予測に反映することにより、中間層を多層化した場合であってもテストデータの予測値と真値との誤差を小さくすることができ、過学習を抑制することができる。
【０１１９】
また、設定部３０１は、ニューラルネットワーク８００に示したように、第１入力層からの出力データ（出力ベクトルｈ０Ｄ＝ｘｎ）を受け付けて、当該出力データと第２学習パラメータとに基づいて、各第１中間層の重みを設定して、第１出力層に出力してもよい。これにより、設定部３０１であるサジェスチョンユニットＳＵの計算負荷の低減を図り、学習処理の効率化を図ることができる。
【０１２０】
また、ニューラルネットワーク１００の場合、データ分析装置２２０は、第１縮退部３０４を有する（レポーティングユニットＲＵｌ）。第１縮退部３０４は、各第１中間層からの出力データを受け付けて、各出力データの次元数を縮退させて、縮退後の各出力データを設定部３０１に出力する。そして、設定部３０１は、第１縮退部３０４からの縮退後の各出力データを受け付けて、縮退後の各出力データと第２学習パラメータとに基づいて、各第１中間層の重みを設定して、第１出力層に出力する。これにより、各第１中間層からの出力データのデータ量を削減することで、設定部３０１での重み設定の負荷低減を図ることができる。
【０１２１】
また、データ分析装置２２０は、第１入力層に訓練データが与えられた場合に、たとえば、誤差逆伝播法により、第１学習パラメータ、第２学習パラメータ、および第３学習パラメータを調整する学習部２６１を有する。したがって、学習パラメータの学習により、正解率の高い階層ｌの重みが高くなる。これにより、階層ｌごとの重みを予測に反映することにより、中間層を多層化した場合であってもテストデータの予測値と真値との誤差を小さくすることができ、過学習を抑制することができる。
【０１２２】
また、ニューラルネットワーク９００の場合、データ分析装置２２０は、第２縮退部９０１を有する（ハーモナイジングユニットＨＵｌ）。第２縮退部９０１は、各第１中間層からの出力データを受け付けて、各出力データの次元数を縮退させて、縮退後の各出力データを重み付け処理部３０２に出力する。そして、重み付け処理部３０２は、第２縮退部９０１からの縮退後の各出力データを、第１中間層ごとの重みにより、それぞれ重み付けする。これにより、各第１中間層からの出力データのデータ量を削減することで、重み付け処理部３０２での重み付け処理の負荷低減を図ることができる。
【０１２３】
また、学習部２６１は、第２ニューラルネットワーク（ハイパーパラメータ計算用ニューラルネットワーク３００）を用いる。第２ニューラルネットワークは、訓練データを受け付ける第２入力層（データユニットｄｕ０）と、第１ニューラルネットワークのハイパーパラメータ（ｖＡ，ｖＬ）を出力する第２出力層（識別ユニットｉｕ）と、第２入力層と第２出力層との間において前段の層からのデータと第４学習パラメータ（行列Ｗｌ´Ａ，Ｗｌ´Ｌ）とを第２活性化関数（ｇ（））に与えて計算して後段の層に計算結果を出力する第２中間層（データユニットｄｕｌ´）と、により構成される。
【０１２４】
学習部２６１は、第２ニューラルネットワークを用い、第２入力層に訓練データが与えられた場合に、たとえば、確率的最急降下法により、第４学習パラメータを調整し、訓練データを、第４学習パラメータが調整された第２ニューラルネットワークの第２入力層に与えることにより、出力層からハイパーパラメータを出力し、ハイパーパラメータにより第１ニューラルネットワークの構造を決定し、構造が決定された第１ニューラルネットワークの第１入力層に訓練データが与えられた場合に、たとえば、誤差逆伝播法により、第１学習パラメータ、第２学習パラメータ、および第３学習パラメータを調整する。これにより、過学習を抑制する最適なハイパーパラメータを自動設定することができる。
【０１２５】
また、ハイパーパラメータは、第１ニューラルネットワークを構成する要素のパターンを決定するハイパーパラメータでもよい。これにより、過学習を抑制する第１ニューラルネットワークを要素のパターンを自動設定することができる。特に、第１活性化関数の種類を決定することにより、ユーザは、どの活性化関数を適用すべきかを考慮する必要がなくなり、ニューラルネットワークの構築の容易化を図ることができる。
【０１２６】
また、ハイパーパラメータは、第１ニューラルネットワークを構成する要素の順序を決定するハイパーパラメータでもよい。これにより、過学習を抑制する第１ニューラルネットワークを要素の順序を自動設定することができる。特に、第１中間層の層数を決定することにより、中間層をどの程度増減すればよいかを考慮する必要がなくなり、ニューラルネットワークの構築の容易化を図ることができる。
【０１２７】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
【０１２８】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【０１２９】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、又は、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード、ＳＤカード、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）の記録媒体に格納することができる。
【０１３０】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【０１３１】
２  データ分析システム
１００  ニューラルネットワーク
２００  クライアント端末
２２０  データ分析装置
２６１  学習部
２６２  予測部
３００  ハイパーパラメータ計算用ニューラルネットワーク
３０１  設定部
３０２  重み付け処理部
３０３  算出部
３０４  縮退部
７００  ニューラルネットワーク
８００  ニューラルネットワーク
９００  ニューラルネットワーク
９０１  縮退部
ＤＵ０  データユニット
ＤＵｌ  データユニット
ＨＵｌ  ハーモナイジングユニット
ＩＵ  識別ユニット
ＲＵｌ  レポーティングユニット
ＳＵ  サジェスチョンユニット
ｖＡ，ｖＬ  ハイパーパラメータ
【図１】
2018181187.tif 000024
【図２】
2018181187.tif 000025
【図３】
2018181187.tif 000026
【図４】
2018181187.tif 000027
【図５】
2018181187.tif 000028
【図６】
2018181187.tif 000029
【図７】
2018181187.tif 000030
【図８】
2018181187.tif 000031
【図９】
2018181187.tif 000032