(57)【要約】【課題】精度と訓練の効率とを向上できるニューラルネット及びその学習方法を提供する。【解決手段】ニューラルネットワーク８０は、入力ベクトル９８の各要素の値を正規化する正規化部９０と、正規化された各要素をそれぞれの入力とする入力ノード１１０、１１２、及び１１４を持つ入力層９２と、各々が、入力ノードの各々からの出力に、それぞれ０以上の整数の第１の重みを乗算した値を受けるように接続された複数のＣＯＳ素子１２０、…、１２８を有する隠れ層９４と、隠れ層９４の出力を、当該隠れ層９４の出力にそれぞれ割当られた第２の重みで乗算した値を受けるように接続され、それらの線形和を出力するΣ素子１４０を含む出力層９６と、第１の重みと、第２の重みとを記憶する重み記憶装置とを含む。複数のＣＯＳ素子１２０、…、１２８の各々の活性化関数は、所定の範囲を周期とする同一の余弦関数である。【選択図】図２
2017049907.tif 000002
【特許請求の範囲】
【請求項１】
入力ベクトルの各要素の値を所定の範囲で正規化する正規化手段と、
前記正規化手段により正規化された前記各要素をそれぞれの入力とする入力ノードを持つ入力層と、
各々が、前記入力ノードの各々からの出力に、それぞれ０以上の整数の第１の重みを乗算した値を受けるように接続された複数の隠れ層素子を有する隠れ層と、
前記隠れ層の出力を、当該隠れ層の出力にそれぞれ割当てられた第２の重みで乗算した値を受けるように接続され、それらの線形和を出力する出力素子を含む出力層と、
前記第１の重みと、前記第２の重みとを記憶する重み記憶手段とを含むニューラルネットワークであって、
前記複数の隠れ層素子の各々の活性化関数は、前記所定の範囲を周期とする同一の周期関数である、ニューラルネットワーク。
【請求項２】
さらに、前記隠れ層の前記複数の隠れ層素子の各入力に対するバイアスを記憶するバイアス記憶手段を含む、請求項１に記載のニューラルネットワーク。
【請求項３】
前記周期関数は余弦関数又は正弦関数若しくはそれらの組み合わせである、請求項１又は請求項２に記載のニューラルネットワーク。
【請求項４】
前記ニューラルネットワークの学習のための学習データを記憶する記憶手段に接続され、当該学習データの値の分布に基づいて、入力データの値を前記所定の範囲に正規化するための正規化関数を算出し、前記正規化手段に設定する正規化関数設定手段をさらに含む、請求項１〜請求項３のいずれかに記載のニューラルネットワーク。
【請求項５】
請求項１に記載のニューラルネットワークの学習方法であって、
前記第１の重みとなる整数を、前記隠れ層素子の入力の各々に対して所定の確率密度関数にしたがってサンプリングし、前記重み記憶手段に記憶する第１ステップと、
前記重み記憶手段に記憶された前記第１の重みを固定して、前記第２の重みを学習データによる学習で最適化する第２ステップと、
前記第２ステップにより最適化された前記第２の重みの絶対値が所定のしきい値未満である隠れ層素子を前記隠れ層から削除する第３ステップと、
新たな隠れ層素子を前記隠れ層に追加する第４ステップと、
前記新たな隠れ層素子の前記第１の重みパラメータを前記所定の確率密度関数にしたがってサンプリングし、前記重み記憶手段に記憶する第５ステップと、
前記第２ステップ、前記第３ステップ、前記第４ステップ及び前記第５ステップを、前記第３ステップにおいて削除すべき隠れ層素子がなくなるまで繰返し実行する第６ステップと、
前記第６ステップの後、前記第１の重みパラメータを最適化する第７ステップとを含む、ニューラルネットワークの学習方法。
【請求項６】
コンピュータを、請求項１〜請求項４のいずれかに記載のニューラルネットワークとして機能させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は機械学習に関し、特に、学習が効率化できる新規なニューラルネットワーク（以下単に「ニューラルネット」と呼ぶ。）に関する。
【背景技術】
【０００２】
機械学習とは、限られた量の事例から、一般的な法則又は傾向を獲得することを目的とした、帰納的な推論に基づく学習方法である。機械学習は、数理的には、事例データが真のデータ分布に従って抽出された標本であることを仮定し、真のデータ分布の密度関数又はデータが存在するデータ空間上の領域を表す識別関数を大域的に推定することとして定式化される。
【０００３】
ニューラルネットは、機械学習で用いられる枠組みの一つであり、入出力の事例から入出力関係を表す関数を学習（近似）する機能がある。この機能を利用して、一般にニューラルネットは、識別誤差を目的関数として設定し、勾配法でパラメータを最適化することにより、事例データか否かを識別する識別関数として利用されてきた。ニューラルネットは、音声・画像認識等の信号処理に関する分野をはじめとして、機械翻訳等の自然言語処理でも広く利用されている。また、ニューラルネットは本質的に関数近似機能を有するため、識別関数の他にも密度関数の推定等、幅広い目的で利用されている。
【０００４】
ニューラルネットは、理論的には２層で万能な関数近似器になることが知られている（非特許文献１）。ニューラルネットにおける学習とは、近似対象の関数とニューラルネット出力との誤差を、ニューラルネットのパラメータについての関数として捉え、この関数を最小化するパラメータを獲得することを指す。誤差関数最小化においては一般に、パラメータに関する誤差関数の勾配を利用する方法が用いられる。一方で、２層のニューラルネットでは、複雑な関数の近似を、現実的な計算時間によって行うことが困難である問題があった。これは、２層ニューラルネットの学習は、非凸関数の最適化問題を含むためである。２層ニューラルネットのパラメータを勾配法で最適化する際に、出力層のパラメータのみを最適化する場合には、凸関数最適化問題であるため比較的高速に大域的最適解を得ることが可能である。一方で、隠れ層のパラメータのみ、又は隠れ層と出力層のパラメータを同時に最適化する場合には、隠れ層のパラメータ最適化は非凸関数の最適化問題となる。これは、隠れ層素子の活性化関数が一般に非線形だからである。このため、パラメータに適切な初期値を与えなければ大域的最適解を得ることが困難である。また、活性化関数の形状によっては、その導関数値が微小な値である区間が広くなる。このため、パラメータの初期値によっては勾配の量が微小な値となり、現実的な計算時間におけるパラメータの更新（すなわちニューラルネットの学習）によって、パラメータを最適な値へ移動することが困難である。
【０００５】
これらの問題に対して、層を３層以上に増やすことで近似性能の向上を果たしたのが、画像認識及び音声認識において高い識別性能が示された深層学習の枠組みである。深層学習の枠組みでは、各層では２層のみの場合よりも簡単な関数近似を行うが、その層を複数個直列に接続して階層的に近似することで、現実的な計算時間における性能向上を果たしている。つまり、各層では従来よりも簡単な関数を近似するだけでよいとして、各層における近似問題を弛緩したことが、近似性能の向上に伴う識別性能の向上を果たした理由である。
【０００６】
一方で、計算構造の観点から２層のニューラルネットを捉えると、一つの関数（出力層素子）は、各隠れ層素子出力の線形結合によって表現されている。つまり、各隠れ層素子は、関数近似における近似対象（関数）の線形結合における要素である。従って、ニューラルネットの最適化による学習とは、近似対象の関数を各要素に分解することである。
【０００７】
関数を要素に分解する手法としては、フーリエ級数展開及びフーリエ変換等の直交関数系を用いた積分変換が知られている。これらは、複素指数関数または正弦関数、余弦関数等からなる直交関数系を基底関数として用いて、関数を基底関数の線形結合に分解する手法である。ある関数をフーリエ変換すると、その関数を線形結合として構成する複数の周期（基底）関数における係数が得られる。このため、フーリエ係数は周波数（及び位相）に関して振幅を返す関数である。周波数と振幅からなる空間は、周波数領域と呼ばれる。フーリエ変換では、基底関数の直交性を利用して、分解対象の関数と基底関数の内積（積分）によって係数を求める。
【０００８】
計算機上でフーリエ変換するためには、離散フーリエ変換及びその計算量を削減した高速フーリエ変換（ＦＦＴ）等が用いられる。ＦＦＴは、離散フーリエ変換で必要な総和計算を、途中の計算結果を再利用することで効率的に行う方法であり、画像処理及び音声処理等、主として信号処理の分野で広く利用されている。さらに、分解する関数が、周波数領域において疎な成分しか持たない場合、ＦＦＴよりもさらに計算量が少ないスパースフーリエ変換（ＳＦＴ）（非特許文献２）が提案されている。ＦＦＴでは、分解対象の離散時間関数における定義域上の全標本点を利用して計算するが、ＳＦＴではランダムに抽出した標本点から周波数成分を推定するため、全標本点を用いるよりも計算量が少なくなる。
【０００９】
画像の圧縮処理においては、ＪＰＥＧに採用された方法のように、画像を（離散）フーリエ変換して高周波成分を除去することで情報量の削減が行われる。これは、自然画像においては、周波数領域における低周波成分が支配的であることによる。同様に、２層ニューラルネットにおいて、余弦関数を活性化関数として用いたニューラルネットにおいても、周波数を表現する重みパラメータを正則化し、低周波成分を重視することにより、素子数あたりの近似精度が向上することが示されている（非特許文献３）。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】Cybenko,  George.  "Approximation  by  superpositions  of  a  sigmoidal  function."  Mathematics  of  control,  signals  and  systems  2.4  (1989):  303-314.
【非特許文献２】Gilbert,  Anna  C.,  et  al.  "Recent  developments  in  the  sparse  Fourier  transform:  A  compressed  Fourier  transform  for  big  data."  Signal  Processing  Magazine,  IEEE  31.5  (2014):  91-100.
【非特許文献３】窪澤駿平,  他.  (2015).  級数展開に基づく表層非線形ネットワーク.  AI学会全国大会予稿集.
【発明の概要】
【発明が解決しようとする課題】
【００１１】
最近の機械学習の分野では、深層学習によって、ニューラルネットの多層化による現実的な計算時間における近似性能の向上が示されている。しかし、多層化は計算グラフの大規模化を意味する。このため、性能向上のためには、深層学習を用いても依然として大規模な計算装置が必要である。また、汎用ＧＰＵ計算機の普及等、計算機の大規模並列化の進展により各層の計算効率は向上しているが、多層モデルでは入力側の層における計算を終えるまで次の層の計算が不可能である。したがって、多層モデルでは層数の増加に比例して必然的に待ち時間が増大し、訓練時のみならず予測時の並列計算効率も低下する。
【００１２】
加えて、深層学習を含む従来のニューラルネットの枠組みでは、既に訓練したニューラルネットにおける近似性能の更なる向上を目的として、新たに素子を追加した場合、ニューラルネット全体で再度訓練しなければ最良の近似を得ることができない問題がある。つまり、性能向上のための調整が非効率である。また、この際に追加した素子が、どの程度近似精度の向上に寄与するかを見積もることが困難であり、いくつ追加すべきかの指標が存在しない問題がある。このため、精度を重視してニューラルネットを設計すると、冗長な構造とせざるを得ない。
【００１３】
それゆえに本発明の目的は、精度の向上と訓練の効率とを向上できるニューラルネット及びその学習方法を提供することである。
【課題を解決するための手段】
【００１４】
本発明の第１の局面に係るニューラルネットは、入力ベクトルの各要素の値を所定の範囲で正規化する正規化手段と、正規化手段により正規化された各要素をそれぞれの入力とする入力ノードを持つ入力層と、各々が、入力ノードの各々からの出力に、それぞれ０以上の整数の第１の重みを乗算した値を受けるように接続された複数の隠れ層素子を有する隠れ層と、隠れ層の出力を、当該隠れ層の出力にそれぞれ割当てられた第２の重みで乗算した値を受けるように接続され、それらの線形和を出力する出力素子を含む出力層と、第１の重みと、第２の重みとを記憶する重み記憶手段とを含むニューラルネットであって、複数の隠れ層素子の各々の活性化関数は、所定の範囲を周期とする同一の周期関数である。
【００１５】
好ましくは、ニューラルネットはさらに、隠れ層の複数の隠れ層素子の各入力に対するバイアスを記憶するバイアス記憶手段を含む。
【００１６】
より好ましくは、周期関数は余弦関数又は正弦関数若しくはそれらの組み合わせである。
【００１７】
より好ましくは、ニューラルネットは、ニューラルネットの学習のための学習データを記憶する記憶手段に接続され、当該学習データの値の分布に基づいて、入力データの値を所定の範囲に正規化するための正規化関数を算出し、正規化手段に設定する正規化関数設定手段をさらに含む。
【００１８】
本発明の第２の局面に係るニューラルネットの学習方法は、上記したいずれかのニューラルネットの学習方法である。この学習方法は、第１の重みとなる整数を、隠れ層素子の入力の各々に対して所定の確率密度関数にしたがってサンプリングし、重み記憶手段に記憶する第１ステップと、重み記憶手段に記憶された第１の重みを固定して、第２の重みを学習データによる学習で最適化する第２ステップと、第２ステップにより最適化された第２の重みの絶対値が所定のしきい値未満である隠れ層素子を隠れ層から削除する第３ステップと、新たな隠れ層素子を隠れ層に追加する第４ステップと、新たな隠れ層素子の第１の重みパラメータを所定の確率密度関数にしたがってサンプリングし、重み記憶手段に記憶する第５ステップと、第２ステップ、第３ステップ、第４ステップ及び第５ステップを、第３ステップにおいて削除すべき隠れ層素子がなくなるまで繰返し実行する第６ステップと、第６ステップの後、第１の重みパラメータを最適化する第７ステップとを含む。
【００１９】
本発明の第３の局面に係るコンピュータプログラムは、コンピュータを、上記したいずれかのニューラルネットとして機能させる。
【図面の簡単な説明】
【００２０】
【図１】ニューラルネットの隠れ層素子にシグモイド状関数を使用したときの近似関数の構成例と、ＣＯＳ関数を使用したときの近似関数の構成例とを説明するための図である。
【図２】この発明の実施の形態に係るニューラルネットのブロック図である。
【図３】本発明の実施の形態において、正規化部による正規化のシフト量及びスケールを決定するためのプログラムによる処理シーケンスを示す図である。
【図４】図２に示すニューラルネットの学習を実現するプログラムの１例の制御構造を示すフローチャートである。
【図５】図２に示すニューラルネットの学習を実現するプログラムの他の１例の制御構造を示すフローチャートである。
【図６】事前学習によりニューラルネットの学習を実現するプログラムの１例の制御構造を示すフローチャートである。
【図７】本発明の１実施の形態に係る文字認識装置を実現するコンピュータシステムの外観図である。
【図８】図７に示すコンピュータのハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【００２１】
以下の説明及び図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。
【００２２】
［構成］
２層ニューラルネットにおける関数近似機能の向上と、素子数の削減を目的として、本実施の形態ではフーリエ級数展開を表現するニューラルネット構造を用いる。
【００２３】
ニューラルネットの本質は、最適化に基づく関数近似器であり、一般には識別タスクにおける識別関数を近似することで識別器として利用される。識別関数には一般に、入力空間を超平面で分割する機能が求められる。このため隠れ層の活性化関数として、単調増加かつ超平面の付近では非線形に形状が変化するシグモイド状の関数が用いられることが多い。式（１）に、隠れ層の素子数がｈであり、活性化関数φを持つ２層ニューラルネットの計算構造を示す。
【００２４】
【数１】
2017049907.tif 000003
ここで、ｘは入力ベクトル、ｆｉは各隠れ層素子の重みベクトル、ｐｉは各隠れ層素子のバイアス、ａｉは出力層の重み、ｄは出力層のバイアスである。
【００２５】
活性化関数にシグモイド状関数を用いると、線形分離という観点からは解釈しやすい。一方で、シグモイド状関数の場合、計算機上での学習可能性の問題に加えて、近似対象の関数が複雑な形状である場合に、素子数が複雑さに比例して増加する問題がある。これは、シグモイド状関数は非線形に変化する区間が原点付近の１箇所に限定されるため、近似対象の関数の導関数値が０である点の数に比例した素子数を最低限必要とするためである。この様子を図１（Ａ）に示す。図１では、太い実線のグラフ３０（中央付近）が近似対象の関数であり、それに重なる太い破線のグラフ３２は入出力層が１素子の２層ニューラルネットによる近似結果である。背後の細い線のグラフは、各隠れ層素子の出力を表しており、図１（Ａ）の場合は１５素子により近似している。
【００２６】
シグモイド状関数のニューラルネットにおける素子数の増加は、局所的な変化の足し合わせによって関数を近似するために生じる。一方で、大域的な変化の足し合わせによって近似することにより、近似対象の関数の複雑さに関して、素子数の削減が見込まれる。そこで、式（１）の活性化関数φを大域的（周期的）に変化し続けるＣＯＳに置き換えた場合の、隠れ層出力と近似結果を示したのが図１（Ｂ）である。このような素子を本明細書ではＣＯＳ素子と呼ぶ。図１（Ｂ）では、太い実線のグラフ４０（中央付近）が近似対象の関数であり、それに重なる太い破線のグラフ４２は入出力層が１素子で隠れ層の各素子がＣＯＳ素子である２層ニューラルネットによる近似結果である。シグモイド状関数の場合と同精度を達成するために、ＣＯＳ素子は４素子で十分であった。近似対象の関数が凹凸を多く含むほど、ＣＯＳ等の周期関数による活性化によって、より少ない素子数で高精度な近似を達成可能である。
【００２７】
以上から、本実施の形態では、隠れ層の各素子にＣＯＳ素子を用いることとした。
【００２８】
本実施の形態で用いるニューラルネットの構造を、１個のラベル分布を近似する関数を例に図２に示す。図２を参照して、この実施の形態に係るニューラルネット８０は、入力に対応するベクトル９８の各要素を受け、後述するようにその各要素を区間［０，２π］に正規化して出力するための正規化部９０と、正規化部９０の出力を受ける入力層９２と、入力層９２の出力を受ける隠れ層９４と、隠れ層９４の出力を受ける出力層９６とを含む。なお、正規化部９０はニューラルネットの一部ではないと考えることもできる。ここでは、隠れ層９４での処理において、入力が正規化されていることが必要であるため、正規化部９０をニューラルネット８０の一部として記載してある。
【００２９】
正規化部９０は、それぞれ、ベクトル９８の第１、第２、及び第３の要素を受け、それらの値を区間［０，２π］に正規化する正規化ノード１００、１０２、及び１０４を含む。なお、正規化する範囲は［０，２π］に限定されるわけではなく、隠れ層素子の周期と一致するように選べばよい。例えば本実施の形態では、［−π，π］の範囲に値を正規化してもよい。なお、入力されるベクトル９８は、本実施の形態では３次元であるが、本発明はそのような実施の形態に限定されるわけではない。入力ベクトル９８は１次元（スカラー）又は２次元でもよいし、任意のＮ次元（Ｎは４以上の任意の自然数）でもよい。
【００３０】
入力層９２は、それぞれ正規化ノード１００、１０２、及び１０４の出力を受け、隠れ層９４に含まれる各素子に分岐して与えるための入力ノード１１０、１１２、及び１１４を含む。
【００３１】
隠れ層９４は、いずれも入力ノード１１０、１１２、及び１１４の出力を受けるように接続されたＣＯＳ素子１２０、…、１２８を含む。ＣＯＳ素子１２０、…、１２８はいずれも余弦関数を活性化関数として用いる素子である。各ＣＯＳ素子への入力には、それぞれ重みが割り当てられており、さらに各ＣＯＳ素子にはバイアス入力が与えられる。例えば、図２の場合にはＣＯＳ素子１２０は、入力ノード１１０、１１２、及び１１４からの３つの入力を持ち、これらにはそれぞれｆ１１、ｆ１２、及びｆ１３という重みが割り当てられている。図では、ベクトル（ｆ１１，ｆ１２，及びｆ１３）をｆ１として表している。また、図を明快にするために図２には示していないが、ＣＯＳ素子１２０には、スカラー量であるバイアスｐ１が与えられている。さらに、他のＣＯＳ素子１２２、１２４、１２６及び１２８もそれぞれベクトルｆｎ及びバイアスｐｎが入力されている。すなわち、ベクトルｆｉの要素の数は入力ノードの数と同じであり、ベクトルｆｉは隠れ層素子の数だけ存在している。したがって、入力ノードの数をｍ、隠れ層のＣＯＳ素子の数をｎとすると、これらベクトルはｍ×ｎ行列で表すことができる。バイアスはベクトルｐ＝（ｐ１，…，ｐｎ）で表すことができる。また、ＣＯＳ素子１２０、…、１２８の出力には、それぞれ重みａ１，…，ａ５が割り当てられている。図２ではこれをベクトルａ＝（ａ１，ａ２，ａ３，ａ４，ａ５）で表している。これらバイアス及び重みが、学習において最適化されるべきパラメータである。これらパラメータは、それぞれ後述するようにコンピュータの記憶装置に記憶されており、適宜読み出すことが可能である。
【００３２】
出力層９６は、ＣＯＳ素子１２０、…、１２８からの出力を受け、これらにそれぞれの重み（ａ１，ａ２，ａ３，ａ４，ａ５）を乗算して線形和をとって出力するΣ素子１４０を含む。Σ素子１４０は恒等写像を活性化関数として用いる素子である。
【００３３】
この実施の形態では、ＣＯＳ素子の活性化関数には余弦関数のみを用いている。しかし本発明はそのような実施の形態には限定されない。活性化関数として正弦関数のみを、あるいは正弦関数と余弦関数を共に用いても良い。さらに、後述するように、所定区間で直交関係を充足するような関数系であれば、いわゆる三角関数ではない関数を用いても良い。
【００３４】
図２に示す例では、入力層９２は３個の入力ノード１１０、１１２、及び１１４を含み、隠れ層９４は５個のＣＯＳ素子１２０、…、１２８を含む。しかし、これらの個数はこの実施の形態に示す値には限定されない。入力ノードの数は、入力ベクトルが持つ要素の数に応じ、２つでも、４個以上でもよい。ＣＯＳ素子の数も５個には限定されない。要求精度、要求規模及び学習にかけられる時間に応じて４個以下でも６個以上でもよい。
【００３５】
また、Σ素子は複数存在してよい。この場合には、重みベクトルａはΣ素子の数だけ必要になる。入力層９２からΣ素子（例えばΣ素子１４０）へ至るニューラルネットにおける計算構造は、フーリエ級数展開における部分和あるいは離散フーリエ変換と等価である。従って、各Σ素子は、無限大の関数値をもたず、かつ区間が限定された任意の連続関数を近似可能である。Σ素子が近似する連続関数の周波数領域において、ＣＯＳ素子の入力側の重みベクトルｆｉの各要素は周波数成分に対応し（周波数パラメータ）、同入力側のバイアスｐｉは位相成分（正弦成分と余弦成分の混合率）に対応し（位相パラメータ）、同出力側の重みベクトルａの各要素は振幅成分（振幅パラメータ）に対応する。ただし、ＣＯＳ素子の活性化関数として、正弦関数と余弦関数を併用する場合、位相パラメータは必要無い。
【００３６】
一方で、ニューラルネット構造をフーリエ級数展開または離散フーリエ変換と等価であるよう設定しても、基底関数すなわち各隠れ層素子（ＣＯＳ素子１２０、…、１２８）により表現される関数同士が直交しなければ、最適化によって得られたパラメータがフーリエ変換と等価である保証は無い。そこで本実施の形態では、訓練後のニューラルネットパラメータがフーリエ級数展開と等価であることを保証するため、各隠れ層素子（ＣＯＳ素子１２０、…、１２８）によって表現される関数が互いに直交するための制約を加える。
【００３７】
訓練後のパラメータをフーリエ級数展開と等価にするための制約としては、以下が考えられる。
【００３８】
（１）入力データの各次元が［０，２π］となるよう入力データをシフト及びスケールする。
【００３９】
（２）その上で最適化によりパラメータを調整する際に、各隠れ層素子の周波数パラメータを表すベクトルは０以上の整数を要素として持つようにする。
【００４０】
（３）さらにどの２つの隠れ層素子の周波数パラメータベクトルをとっても、それらの間では少なくとも１個の要素が異なるようにする。
【００４１】
これらの制約と、余弦関数及び正弦関数の性質により、各ＣＯＳ素子が表す入力に対する関数は区間［０，２π］において直交するため、訓練結果のパラメータはフーリエ係数と等価となる。同様に、離散フーリエ変換と等価である様に設定することも可能である。
【００４２】
なお、訓練データが予め定められている場合には、入力データの最大及び最小値が予め判明しているため、シフト及びスケールのための係数は一つに定まる。したがって、正規化部９０による正規化処理におけるデータのシフト量及びスケールは簡単に決定できる。すなわち、正規化関数が容易に決定できる。しかし、訓練データが将来追加される場合には、最初の正規化関数によっても制約区間を超える可能性がある。そこで、そのような場合には例えば、最初の訓練データによる正規化関数の決定の際に、以下のような手順にしたがって正規化関数を決定する。
【００４３】
図３を参照して、訓練データを読込み（ステップ１６０）、その訓練データの値の分布に基づいて実際のデータの値の分布を統計的処理により推定し、実際に生じる可能性がある値を十分にカバーできるように、データの値の範囲を決定する（ステップ１６２）。さらに、処理できる入力データの値の範囲について余裕を持たせるために、範囲をある割合で拡張する（ステップ１６４）。こうして拡張された値の範囲に基づいて、データの値を制約区間［０，２π］の範囲内に正規化するよう、データのシフト量及びスケールを求め、正規化関数を決定する（ステップ１６６）。
【００４４】
なお、図３の手続による正規化関数の再決定を行わず追加しようとする訓練データが制約区間外に写像された場合には、訓練に使用しないか、制約区間の最近傍の点に置き換えて使用することも可能である。
【００４５】
本実施の形態では、入出力の事例について、誤差が最小となるようパラメータを最適化する。最適化においては、従来のニューラルネットと同様に、最急降下法、確率的勾配効果法、及びＬ−ＢＦＧＳ法等の勾配法を用いてバッチ的に処理することが可能である。また、全てのパラメータを同時に最適化せずに、ＳＦＴのように、振幅の大きい順に、まずは周波数・位相パラメータを推定し、次に振幅パラメータの最適化というステップを繰り返すことで、全体のパラメータを最適化することが可能である。他にも、カーネル法の様に、パラメータを別の空間に写像して、写像した空間で最適化することも可能である。
【００４６】
本実施の形態において、各隠れ層素子が表す関数は、制約により互いに直交するため、対応する振幅パラメータを含む各隠れ層素子は、互いに独立かつ並列に最適化することが可能である。これは、フーリエ級数展開における第ｋ部分和において、近似対象との二乗誤差を最小化するパラメータの値は、ｋの値に依存しないことから明らかである。この特徴により、既に訓練したニューラルネットの近似精度をさらに向上させることを目的として、新たに隠れ層素子を追加する際に、新たに追加する素子の周波数パラメータが既に訓練したニューラルネットの周波数パラメータとは異なる値となるような制約及び直交性に関する制約を加えた上で、新たに追加する素子を最適化し、最適化結果の素子を既に訓練したニューラルネットに追加すると、近似性能は必ず向上する。
【００４７】
本実施の形態における振幅パラメータは、２層ニューラルネットにおける出力層の重みに相当する。従って、周波数・位相パラメータを固定した場合、振幅パラメータ最適化は凸最適化問題であり、大域的最適解への到達が保証される。このため、振幅パラメータのみの最適化であれば、効率的な学習が見込まれる。一方で、少ない素子数で精度よく関数を近似するためには、絶対値が大きな値である振幅パラメータに対応する周波数・位相パラメータを推定する必要がある。そこで、ＪＰＥＧにおける情報圧縮の様に、近似対象の関数は低周波成分が支配的であるという仮定を置く。すると、以下のようにすることで効率的な学習が見込まれる。すなわち、図４を参照して、周波数パラメータについては、直交性制約を満たす上で、０を平均とする多変数ガウス関数等の密度関数をサンプリングすることで０以上の整数となるように決定する（ステップ２００）。周波数パラメータをこの値に固定し、その上で振幅パラメータのみを推定する（ステップ２０２）。この際、位相パラメータも同時に訓練してもよい。また、最適化の結果、振幅パラメータの絶対値が所定のしきい値より小さい隠れ層素子があるか否かを判定する（ステップ２０４）。そのような隠れ層素子についてはニューラルネットから切り離し、新たな隠れ層素子を追加する（ステップ２０４の判定がＹＥＳ、ステップ２０８）。この新たな隠れ層素子の周波数パラメータを密度関数から新たにサンプリングして０以上の整数となるよう決定する（ステップ２１０）。この隠れ層素子を追加した後のニューラルネットを訓練する（ステップ２０２）。以下、この処理を繰り返し、最終的にステップ２０４の判定がＮＯとなった時点でニューラルネットの周波数パラメータと位相パラメータを最適化する（ステップ２０６）。このような処理を行うことで、振幅パラメータの絶対値が大きい隠れ層素子のみを用いた関数近似が可能である。この方法により、少ない素子数による確率的な高精度近似が可能である。なお、新たに追加する素子は、個別に訓練してもよい。
【００４８】
入力データが定義域において均一に分布している場合は、標本化定理により近似可能な最大の周波数が決定される。したがって、離散フーリエ変換の枠組みにおいては、周波数パラメータの最適化における制約として利用することが可能である。また、この場合には、関数値の絶対値の総和は振幅パラメータの絶対値の総和に等しいというパーセバルの定理を利用して、振幅パラメータの最大値を仮定できる。従って、各ＣＯＳ素子をニューラルネットに１素子ずつ追加してパラメータを最適化する場合には、以下の様な手順で最適化を行うことができる。
【００４９】
図５を参照して、まずニューラルネットに最初のＣＯＳ素子を追加する（ステップ２４０）。ニューラルネット内の素子の振幅パラメータの最大値を仮の値で固定する（ステップ２４２）。続いて、周波数パラメータ及び位相パラメータを最適化する（ステップ２４４）。これらが最適化できたら、今度は周波数パラメータ及び位相パラメータを固定して、振幅パラメータを最適化する（ステップ２４６）。振幅パラメータの最適化が終了したら、ステップ２４４とステップ２４６との繰返しの終了条件が充足されたか否かを判定する（ステップ２４８）。ステップ２４８の終了条件としては、例えば繰返しの結果、各パラメータの変化がしきい値以下となった場合が考えられる。ステップ２４８の判定が否定なら、もう一度ステップ２４４及び２４６を実行する。
【００５０】
ステップ２４８の判定が肯定の場合、第２の終了条件が充足されたか否かを判定する（ステップ２５０）。第２の終了条件としては、例えば、ニューラルネットに属するＣＯＳ素子の数が一定数を超えたか、等が考えられる。ステップ２５０の判定がＹＥＳなら処理は終了である。ステップ２５０の判定が否定ならステップ２５２で新たなＣＯＳ素子をニューラルネットに追加し、制御はステップ２４２に戻る。
【００５１】
以上の手順により、ニューラルネットの最適化を行うことができる。ここで、周波数パラメータについて大域的最適解が求められる場合、素子を追加する度に素子数について最高の近似性能が保証される。又は、振幅は大きい順に並べると冪乗則である等の仮定を導入することで、振幅については固定し、周波数・位相パラメータのみを最適化することが可能である。どちらの場合においても、各パラメータの大域的最適解は、離散フーリエ変換の結果と等価である。
【００５２】
しかし、訓練データは離散値である上に、一般に入力データは等間隔には存在しない。このため、フーリエ級数または離散フーリエ変換の枠組みで最適化する際には、訓練データ点を通るような連続関数は無数に存在する。つまり、近似誤差が０となるような周波数・位相・振幅の組み合わせは無数に存在する。これは、離散的な標本から連続関数を再現するために生じる現象である。そこで、離散フーリエ変換の枠組みを用いる場合は、非一様離散フーリエ変換の枠組みを利用し、訓練データ点が入力データについて等間隔となるよう補間する。この補間により、標本化定理を適用し、一意な最適解を想定することが可能になる。一方で、級数展開による枠組みを利用する場合は、低周波成分から順に、あるいは低周波成分が高頻度で選択されるよう分解することで、標本点間が滑らかに補間され、未知の標本点についての近似精度の向上が見込まれる。
【００５３】
本実施の形態では、深層学習において提案された事前学習を適用することが可能である。図６を参照して、まず、事前学習として、入力されるデータが様々なラベルを含むデータか否かを識別するための識別関数（または密度関数）を、出力層素子が１素子のニューラルネットとして学習する（ステップ２７０）。次に、各ラベルを表す出力層素子を用意し、事前学習で最適化した振幅パラメータを各出力層素子にコピーする（ステップ２７２）。最後に、各ラベルを表す出力層素子の振幅パラメータのみを最適化する（ステップ２７４）。こうした手順で、各ラベルの識別関数（または密度関数）を近似することができる。これは、フーリエ変換の線形性によるものであり、各ラベル関数の線形結合がデータ関数であるためである。
【００５４】
［動作］
学習が完了した後のニューラルネット８０の動作はシンプルである。図２を参照して、入力となるベクトル９８が与えられると、ベクトル９８の各要素はそれぞれ正規化部９０内の正規化ノード１００、１０２、及び１０４により［０，２π］の範囲に正規化される。正規化後の値はそれぞれ入力層９２の入力ノード１１０、１１２、及び１１４を介していずれもＣＯＳ素子１２０、…、１２８に与えられる。このとき、ＣＯＳ素子の各入力にはそれぞれ学習により最適化された重みが課される。例えば、図２の場合、ｉ番目のＣＯＳ素子に入力ノードから与えられる正規化後の入力ベクトルｘには、ｆｉ＝（ｆｉ１，ｆｉ２，ｆｉ３）という重みが課される。ｉ番目のＣＯＳ素子には又、バイアスｐｉも与えられる。ｉ番目のＣＯＳ素子はこの結果、以下の式で表される値を出力する。
【００５５】
【数２】
2017049907.tif 000004
ただしφは余弦関数を表す。
【００５６】
ＣＯＳ素子１２０、…、１２８からの出力には、それぞれ重みａｉが加重されてΣ素子１４０に与えられる。Σ素子１４０は、これらの入力の線形和を算出し、式（１）に相当する値を出力する。なお、ここでは、説明を明快にするために、Σ素子１４０の入力のバイアスは示していない。
【００５７】
［作用・効果］
以上のように、本実施の形態に係るニューラルネットでは、多層化を必要とせずに近似性能の向上が可能である。そのため、計算全体における並列計算が占める比率が増大し、並列計算機を用いた場合の計算効率が向上する。また、ニューラルネットの層数が増加することはなく、深層学習のように多層のニューラルネットを用いる場合と比較して、各層における待ち時間が削減され、予測時における計算時間が削減される。
【００５８】
隠れ層のＣＯＳ素子に直交性制約を加えることで、各ＣＯＳ素子は独立した最適化が可能である。このため、計算途中の通信を必要とせず、計算機単位での並列化が可能となり、並列計算の効率が最大化される。
【００５９】
各ＣＯＳ素子は正弦・余弦関数による直交関数系を成すため、各ＣＯＳ素子の入出力側のパラメータは、関数近似のための互いに独立な情報を持つ。このため、ＣＯＳ素子数を増やすと、必ず近似性能が向上することが保証される。また、振幅が大きい順にパラメータを最適化する方法を取った場合、ＣＯＳ素子を増やすことで望みの近似精度を達成することが可能であり、近似精度をニューラルネット設計の指標とすることができる。同様に、近似精度あたりの素子数は、最小であることが保証されるため、ニューラルネット規模の縮小が可能となり、推定時の計算時間が削減される。
【００６０】
最適化によって大域的最適解が得られたならば、訓練後の本ニューラルネットのパラメータは、入出力関係からなる関数のフーリエ変換と等価である。このため、大規模高次元データに対するフーリエ変換の手法として用いることが可能であり、応用対象は飛躍的に増大する。
【００６１】
［コンピュータによる実現］
本発明の実施の形態に係るニューラルネット８０及びその学習装置は、コンピュータハードウェアと、そのコンピュータハードウェア上で実行されるコンピュータプログラムとにより実現できる。図７はこのコンピュータシステム３３０の外観を示し、図８はコンピュータシステム３３０の内部構成を示す。
【００６２】
図７を参照して、このコンピュータシステム３３０は、メモリポート３５２及びＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）ドライブ３５０を有するコンピュータ３４０と、キーボード３４６と、マウス３４８と、モニタ３４２とを含む。
【００６３】
図８を参照して、コンピュータ３４０は、メモリポート３５２及びＤＶＤドライブ３５０に加えて、ＣＰＵ（中央処理装置）３５６と、ＣＰＵ３５６、メモリポート３５２及びＤＶＤドライブ３５０に接続されたバス３６６と、ブートプログラム等を記憶する読出専用メモリ（ＲＯＭ）３５８と、バス３６６に接続され、プログラム命令、システムプログラム及び作業データ等を記憶するランダムアクセスメモリ（ＲＡＭ）３６０と、ハードディスク３５４を含む。コンピュータシステム３３０はさらに、他端末との通信を可能とするネットワーク３６８への接続を提供するネットワークインターフェイス（Ｉ／Ｆ）３４４を含む。
【００６４】
コンピュータシステム３３０を上記した実施の形態に係るニューラルネット８０及びその学習装置の各機能部として機能させるためのコンピュータプログラム、及びネットを構成する各種パラメータ（重みパラメータ及びバイアスパラメータ）は、ＤＶＤドライブ３５０又はメモリポート３５２に装着されるＤＶＤ３６２又はリムーバブルメモリ３６４に記憶され、さらにハードディスク３５４に転送される。又は、プログラムはネットワーク３６８を通じてコンピュータ３４０に送信されハードディスク３５４に記憶されてもよい。プログラム及び各種パラメータはプログラムの実行の際にＲＡＭ３６０にロードされる。ＤＶＤ３６２から、リムーバブルメモリ３６４から又はネットワーク３６８を介して、直接にＲＡＭ３６０にプログラムをロードしてもよい。
【００６５】
このプログラムは、コンピュータ３４０を、上記実施の形態に係るニューラルネット８０及びその学習装置の各機能部として機能させるための複数の命令からなる命令列を含む。コンピュータ３４０にこの動作を行わせるのに必要な基本的機能のいくつかはコンピュータ３４０上で動作するオペレーティングシステム若しくはサードパーティのプログラム又はコンピュータ３４０にインストールされる、ダイナミックリンク可能な各種プログラミングツールキット又はプログラムライブラリにより提供される。たとえば、誤差逆伝搬法、及びＬ−ＢＦＧＳ法については市販の統計処理ライブラリにより提供されるソフトウェアツールを利用できる。したがって、このプログラム自体はこの実施の形態のシステム及び方法を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令のうち、所望の結果が得られるように制御されたやり方で適切な機能又はプログラミングツールキット又はプログラムライブラリ内の適切なプログラムを実行時に動的に呼出すことにより、上記したシステム又は装置としての機能を実現する命令のみを含んでいればよい。もちろん、プログラムのみで必要な機能を全て提供してもよい。
【００６６】
［産業上の利用可能性］
本発明に係るニューラルネットにより、従来よりも小規模な計算によって汎化性能が得られるため、計算性能が限定的なモバイル機器において識別モデルを利用する際に、モバイル機器内で完結したアプリケーション及びサービスの提供が可能となる。
【００６７】
今回開示された実施の形態は単に例示であって、本実施の形態が上記した実施の形態のみに制限されるわけではない。本実施の形態の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。
【符号の説明】
【００６８】
３０，３２，４０，４２  グラフ
８０  ニューラルネット
９０  正規化部
９２  入力層
９４  隠れ層
９６  出力層
９８  ベクトル
１２０，１２２，１２４，１２６，１２８  ＣＯＳ素子
１４０  Σ素子
【図１】
2017049907.tif 000005
【図２】
2017049907.tif 000006
【図３】
2017049907.tif 000007
【図４】
2017049907.tif 000008
【図５】
2017049907.tif 000009
【図６】
2017049907.tif 000010
【図７】
2017049907.tif 000011
【図８】
2017049907.tif 000012