(57)【特許請求の範囲】
【請求項１】
入力信号をニューラルネットワークで処理する情報処理装置において、
前記入力信号をフーリエ変換し、第１振幅信号と第１位相信号とを出力するフーリエ変換層と、
訓練によって行列内の値を更新する第１重み行列を前記第１振幅信号にかけて第２振幅信号を出力する振幅結合層と、
訓練によって行列内の値を更新する第２重み行列を前記第１位相信号にかけて第２位相信号を出力する位相結合層と、
空間周波数領域の活性化関数である複素活性化関数ｆを用いて、前記第２振幅信号および前記第２位相信号の内、少なくとも前記第２振幅信号を、前記第２位相信号を構成する行列内の値に基づいて更新する複素活性化層と、
前記複素活性化層で更新された前記第２振幅信号と前記第２位相信号とを組み合わせて逆フーリエ変換する逆フーリエ変換層と、
を備えた情報処理装置。
【請求項２】
前記フーリエ変換層と前記逆フーリエ変換層との間に、前記振幅結合層、前記位相結合層および前記複素活性化層をそれぞれ少なくとも１つ備え、前記フーリエ変換層と前記逆フーリエ変換層との間で、連続して空間周波数領域における信号処理を行うものである、
請求項１に記載の情報処理装置。
【請求項３】
前記複素活性化層は、前記第２位相信号を構成する前記行列内の各点ｉにおける前記値である位相θ（ｉ）に対する前記複素活性化関数ｆの応答によって、前記第２振幅信号を構成する行列内の前記点ｉと同位置の点における振幅ｒ（ｉ）の値を更新して、更新された前記第２振幅信号を出力すると共に、前記第２位相信号を更新せずに出力する、
請求項１または請求項２に記載の情報処理装置。
【請求項４】
入力信号をニューラルネットワークで処理する情報処理装置において、
前記入力信号をフーリエ変換し、第１振幅信号と第１位相信号とを出力するフーリエ変換層と、
訓練によって行列内の値を更新する第１重み行列を前記第１振幅信号にかけて第２振幅信号を出力する振幅結合層と、
訓練によって行列内の値を更新する第２重み行列を前記第１位相信号にかけて第２位相信号を出力する位相結合層と、
空間周波数領域の活性化関数である複素活性化関数ｆを用いて、前記第２振幅信号および前記第２位相信号の内、少なくとも前記第２振幅信号である対象信号に対して、Ｎ、ＭをそれぞれＮ≧２、Ｍ≧１である整数とし、前記対象信号を構成する行列の軸方向成分である周波数成分が１／Ｎ、かつ各要素が１／Ｍである微小行列を生成して前記行列に加算することにより前記対象信号を更新する複素活性化層と、
前記複素活性化層で更新された前記第２振幅信号と前記第２位相信号とを組み合わせて逆フーリエ変換する逆フーリエ変換層と、
を備えた情報処理装置。
【請求項５】
前記フーリエ変換層と前記逆フーリエ変換層との間に、前記振幅結合層、前記位相結合層および前記複素活性化層をそれぞれ少なくとも１つ備え、前記フーリエ変換層と前記逆フーリエ変換層との間で、連続して空間周波数領域における信号処理を行うものである、
請求項４に記載の情報処理装置。
【請求項６】
前記複素活性化層で用いる前記複素活性化関数ｆは、基準となる原点での値の絶対値が最大となる関数をカーネルとして、前記第２振幅信号および前記第２位相信号の内、少なくとも前記第２振幅信号である対象信号に対して畳み込み演算を行うものである、
請求項１または請求項２に記載の情報処理装置。
【請求項７】
前記複素活性化関数ｆは、前記第２位相信号における前記位相θ（ｉ）に対し、実軸成分、虚軸成分のいずれか一方が正または０の場合と、負の場合とで異なる応答によって、前記第２振幅信号における前記振幅ｒ（ｉ）の値を更新する複素Ｒｅｌｕ関数である、
請求項３に記載の情報処理装置。
【請求項８】
前記複素活性化関数ｆは、
前記実軸成分が正または０である、（−π／２）≦θ（ｉ）＜（π／２）、において、前記振幅ｒ（ｉ）の値を保持し、前記実軸成分が負である、−π≦θ（ｉ）＜（−π／２）、または、（π／２）≦θ（ｉ）＜π、において、前記振幅ｒ（ｉ）の値を、（ｒ（ｉ）・｜ｓｉｎθ（ｉ）｜）、あるいは、（ｒ（ｉ）・ｓｉｎθ（ｉ））の値に変更する、
請求項７に記載の情報処理装置。
【請求項９】
前記複素活性化関数ｆは、
前記虚軸成分が正または０である、０≦θ（ｉ）＜π、において、前記振幅ｒ（ｉ）の値を保持し、前記虚軸成分が負である、−π≦θ（ｉ）＜０、において、前記振幅ｒ（ｉ）の値を、（ｒ（ｉ）・｜ｃｏｓθ（ｉ）｜）、あるいは、（ｒ（ｉ）・ｃｏｓθ（ｉ））の値に変更する、
請求項７に記載の情報処理装置。
【請求項１０】
前記複素活性化関数ｆは、前記第２位相信号における前記位相θ（ｉ）の大きさに依らず同じ演算式を用いた一定の応答により、前記第２振幅信号における前記振幅ｒ（ｉ）の値を更新する複素ロジスティック関数である、
請求項３に記載の情報処理装置。
【請求項１１】
前記複素活性化関数ｆは、複数個の前記微小行列を用いて前記対象信号を更新するものである、
請求項４または請求項５に記載の情報処理装置。
【請求項１２】
前記Ｎ、Ｍは、それぞれ２のべき乗であり、前記微小行列はシフト演算を行うことで演算する、
請求項４、請求項５、請求項１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記複素活性化関数ｆは、前記カーネルとなる関数にｓｉｎｃ関数を用い、前記対象信号に対して畳み込み演算後に絶対値を算出する、
請求項６に記載の情報処理装置。
【請求項１４】
前記第２振幅信号および前記第２位相信号の内、複素活性化関数ｆによって更新された信号に対して、ローパスフィルタまたはバンドパスフィルタとなる複素プーリング層を、前記複素活性化層の直後に備える、
請求項１から請求項１３のいずれか１項に記載の情報処理装置。
【請求項１５】
前記第１振幅信号の振幅を対数化する振幅対数化層を、前記フーリエ変換層の後段に設け、該対数化を解消する逆振幅対数化層を、前記逆フーリエ変換層の前段に設ける、
請求項１から請求項１４のいずれか１項に記載の情報処理装置。
【請求項１６】
前記第１振幅信号および前記第１位相信号の軸に対して対数化を行う軸対数化層を、前記フーリエ変換層の後段に設ける、
請求項１から請求項１５のいずれか１項に記載の情報処理装置。
【請求項１７】
前記入力信号を前記ニューラルネットワークに入力する入力層と、前記逆フーリエ変換層の後段に配され、入力される信号を所望の形に変換して前記ニューラルネットワークから出力する出力層とを備える、
請求項１から請求項１６のいずれか１項に記載の情報処理装置。
【請求項１８】
前記フーリエ変換層を、前記入力層の前段に、前記ニューラルネットワークの前処理のために配し、前記入力信号が前記フーリエ変換層にてフーリエ変換された後に前記入力層に入力される、
請求項１７に記載の情報処理装置。
【請求項１９】
前記入力層と該入力層の後段に配される前記フーリエ変換層との間、および前記逆フーリエ変換層と該逆フーリエ変換層の後段に配される前記出力層との間、の少なくとも一方に、少なくとも１層の畳み込み層を備える、
請求項１７に記載の情報処理装置。
【請求項２０】
請求項１から請求項１９のいずれか１項に記載の情報処理装置を備えて制御動作を行う電子機器において、
前記電子機器は前記制御動作の為の情報を検出するセンサを備え、
前記情報処理装置は、前記センサの出力信号を前記入力信号とし、該入力信号に基づいて学習を行う学習プロセスと、該学習プロセスで得た情報を元に前記入力信号に基づいて推論を行う推論プロセスとの内、少なくとも前記推論プロセスを備え、該推論プロセスに基づいて前記制御動作を行う、
情報処理装置を備えた電子機器。
【請求項２１】
前記電子機器は、前記センサとして赤外線センサを備えて、風向、風量および温度を制御可能な空気調和機であり、
前記学習プロセスは、生体の位置および温度変化を学習するものである、
請求項２０に記載の情報処理装置を備えた電子機器。
【請求項２２】
前記電子機器は、前記センサとして、ＣＣＤ、ＣＭＯＳイメージセンサ、近傍界アンテナ、遠方界アンテナの少なくとも１つを備え、物品の位置の監視、および該物品に記載された文字、色、バーコードの少なくとも１つを識別可能な自立型ロボットであり、
前記学習プロセスは、前記センサ自体が持つノイズ、あるいは前記センサの使用環境に依存するノイズが印加された文字、色、バーコード、または不良の有無を学習するものである、
請求項２０に記載の情報処理装置を備えた電子機器。
【請求項２３】
前記電子機器は、ステアリング、アクセルおよびブレーキを制御可能な車載機器であって、前記センサとして、ＣＣＤ、ＣＭＯＳイメージセンサ、レーダ、超音波ソナーの少なくとも１つを備えて、前記制御動作の為の情報となる車外環境情報を検出し、
前記学習プロセスは、車外の生体の位置、周囲の車の位置および進行方向、信号機情報、車線情報の少なくとも１つを学習するものである、
請求項２０に記載の情報処理装置を備えた電子機器。
【請求項２４】
前記電子機器は、ドライバを識別および認証可能な車載機器であって、前記センサとして、ＣＣＤ、ＣＭＯＳイメージセンサの少なくとも１つを備えて、前記制御動作の為の情報となる車内環境情報を検出し、
前記情報処理装置は、前記学習プロセスおよび前記推論プロセスを備え、
前記学習プロセスは、前記ドライバの顔、体格の少なくとも顔を学習して、得られた情報を定期的に更新するものである、
請求項２０に記載の情報処理装置を備えた電子機器。
【請求項２５】
前記電子機器は、前記センサにより電磁波を検出して、動作停止、異常物排除の少なくとも一方を制御可能であり、
前記学習プロセスは、物体の位置変化量、電界、磁界、温度の内、少なくとも１つを学習するものである、
請求項２０に記載の情報処理装置を備えた電子機器。
【請求項２６】
請求項１から請求項１９のいずれか１項に記載の情報処理装置を備えて制御動作を行う電子機器において、
前記情報処理装置は、演算により生成された信号を前記入力信号とし、該入力信号に基づいて学習を行う学習プロセスと、該学習プロセスで得た情報を元に前記入力信号に基づいて推論を行う推論プロセスとの内、少なくとも前記推論プロセスを備え、該推論プロセスに基づいて前記制御動作を行う、
情報処理装置を備えた電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、情報処理装置およびそれを備えた電子機器に関するものである。
【背景技術】
【０００２】
画像認識などに用いられるニューラルネットワークは、画像を深層学習によって学習させ、画像内の特徴量を抽出する。近年、畳み込み演算を用いて高い認識性能が得られるＣＮＮ（畳み込みニューラルネットワーク）が注目されている。このＣＮＮは、誤差逆伝搬法によって学習する重み関数を入力画像に対して畳み込み、誤差逆伝搬法によって重み関数の更新を行い、入力画像と出力結果との関連付けを行う。この際、入力画像を高次元空間における点の集合として表現し、重み付け関数を平滑化した行列を用いて、前記入力画像を摂動させ、その摂動させた入力画像に対して離散フーリエ変換または、離散コサイン変換を行い、サブ空間に投影すると共に、上記変換を行った画像を逆変換して、摂動後の画像を取得する方法が知られている（例えば特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−４９９９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のような畳み込み演算を用いるニューラルネットワーク、即ちＣＮＮでは、畳み込み層を多層構造にすることで認識精度の向上が図れる。しかしながら、畳み込み層において計算すべき行列の演算回数は、例えば２０４８画素×２０４８画素の画像のように大きな画像に対しては、おおよそ画像の総画素数に比例して大きくなるため、計算量が膨大になる。このため、必要計算コストが高く、情報処理装置の簡略化は困難であった。
また、従来のＣＮＮにおける各層の演算は、脳の構造を数学モデルに落とし込んで模倣したものであるが、物理的な意味の把握が困難であった。このため、ＣＮＮ全体の演算結果のみに基づいて、構築したＣＮＮ全体を評価する事は可能であるが、各演算における入力信号と出力信号に基づいて、各演算の物理的な機能を解析できずＣＮＮの詳細解析ができないと言う問題点があった。【０００５】
本願は、上記のような課題を解決するための技術を開示するものであり、ニューラルネットワークにおける計算量を削減して低コストで簡略な装置構成にて、ニューラルネットワークによる高い認識精度を得ると共に、ニューラルネットワークの詳細解析が可能な情報処理装置を提供することを目的とする。
さらに、この情報処理装置を用いた学習および推論に基づいて高速高精度な制御動作を行う電子機器を提供する事を目的とする。
【課題を解決するための手段】
【０００６】
本願に開示される情報処理装置は、入力信号をニューラルネットワークで処理するもので、前記入力信号をフーリエ変換し、第１振幅信号と第１位相信号とを出力するフーリエ変換層と、訓練によって行列内の値を更新する第１重み行列を前記第１振幅信号にかけて第２振幅信号を出力する振幅結合層と、訓練によって行列内の値を更新する第２重み行列を前記第１位相信号にかけて第２位相信号を出力する位相結合層と、空間周波数領域の活性化関数である複素活性化関数ｆを用いて、前記第２振幅信号および前記第２位相信号の内、少なくとも前記第２振幅信号を、前記第２位相信号を構成する行列内の値に基づいて更新する複素活性化層と、前記複素活性化層で更新された前記第２振幅信号と前記第２位相信号とを組み合わせて逆フーリエ変換する逆フーリエ変換層と、を備えるものである。
また、本願に開示される情報処理装置は、入力信号をニューラルネットワークで処理するもので、前記入力信号をフーリエ変換し、第１振幅信号と第１位相信号とを出力するフーリエ変換層と、訓練によって行列内の値を更新する第１重み行列を前記第１振幅信号にかけて第２振幅信号を出力する振幅結合層と、訓練によって行列内の値を更新する第２重み行列を前記第１位相信号にかけて第２位相信号を出力する位相結合層と、空間周波数領域の活性化関数である複素活性化関数ｆを用いて、前記第２振幅信号および前記第２位相信号の内、少なくとも前記第２振幅信号である対象信号に対して、Ｎ、ＭをそれぞれＮ≧２、Ｍ≧１である整数とし、前記対象信号を構成する行列の軸方向成分である周波数成分が１／Ｎ、かつ各要素が１／Ｍである微小行列を生成して前記行列に加算することにより前記対象信号を更新する複素活性化層と、前記複素活性化層で更新された前記第２振幅信号と前記第２位相信号とを組み合わせて逆フーリエ変換する逆フーリエ変換層と、を備えるものである。
【０００７】
本願に開示される電子機器は、上記情報処理装置を用いて制御動作を行うものである。
【発明の効果】
【０００８】
本願に開示される情報処理装置によれば、ニューラルネットワークにおける計算量が削減でき、低コストで簡略な装置構成にて、ニューラルネットワークによる高い認識精度が得られると共に、ニューラルネットワークの詳細解析が可能になる。
また、本願に開示される電子機器によれば、高速高精度な制御動作が可能になる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１によるハードウェアの構成例を示す図である。
【図２】第１比較例としてのＣＮＮの構成例を示す図である。
【図３】実施の形態１によるニューラルネットワークの構成例を示す図である。
【図４】図３の部分詳細図である。
【図５】実施の形態１によるフーリエ変換における入力画像の処理を説明する図である。
【図６】実施の形態１による複素活性化関数ｆを用いて振幅値を更新する動作を説明する図である。
【図７】実施の形態１による複素活性化関数ｆの例を説明する図である。
【図８】実施の形態１による複素活性化関数ｆの別例を説明する図である。
【図９】実施の形態１による複素活性化関数ｆの別例を説明する図である。
【図１０】実施の形態１による複素活性化関数ｆの別例を説明する図である。
【図１１】実施の形態１の別例によるニューラルネットワークの構成例を示す図である。
【図１２】実施の形態１によるニューラルネットワークの精度を示す図である。
【図１３】実施の形態１によるニューラルネットワークの高速化効果を説明する図である。
【図１４】実施の形態３による複素活性化関数ｆを用いた動作を説明する図である。
【図１５】実施の形態５によるニューラルネットワークの部分構成例を示す図である。
【図１６】実施の形態６によるニューラルネットワークの部分構成例を示す図である。
【図１７】実施の形態７によるニューラルネットワークの部分構成例を示す図である。
【図１８】実施の形態８によるニューラルネットワークの部分構成例を示す図である。
【図１９】実施の形態９によるニューラルネットワークの構成例を示す図である。
【図２０】実施の形態１０によるニューラルネットワークの構成例を示す図である。
【図２１】実施の形態１１による空気調和機の構成例を示す図である。
【図２２】実施の形態１１の別例による電子機器の構成例を示す図である。
【発明を実施するための形態】
【００１０】
実施の形態１．
＜ハードウェアの構成例＞
図１は、本願の実施の形態１によるニューラルネットワーク（以下、ＮＮと称す）として機能する情報処理装置としてのハードウェア１００の全体構成を示す図である。
ハードウェア１００は、スタンドアロンのコンピュータであっても良いし、クラウド等を利用したサーバクライアン卜システムのサーバ、またはクライアン卜であっても良い。さらにハードウェア１００は、スマートフォンまたはマイコンであっても良い。また工場内などを想定した場合には、エッジコンピューティングと呼ばれる工場内で閉じたネットワーク内での計算機環境であっても良い。
【００１１】
図１に示すように、ハードウェア１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０を内蔵しており、ＣＰＵ３０にはバス配線３４を介して、入出力インタフェース３５が接続されている。ＣＰＵ３０は入出力インタフェース３５を介して、ＮＮを用いるユーザによって、入力部３７が操作等されることにより指令が入力されると、それに従って、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３１に格納されているプログラムを実行する。あるいは、ＣＰＵ３０は、ハードディスク（ＨＤＤ）３３、あるいはＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ、図示せず）に格納されたプログラムを、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３２にロードして、必要に応じて読み書きして実行する。これにより、ＣＰＵ３０は各種の処理を行い、ハードウェア１００を所定の機能を有する装置として機能させる。
【００１２】
ＣＰＵ３０は、各種処理の結果を、必要に応じて入出力インタフェース３５を介して、出力部３６である出力デバイスから出力、あるいは通信部３８である通信デバイスから送信、さらにはハードディスク３３に記録させる。また、ＣＰＵ３０は、各種情報を、必要に応じて入出力インタフェース３５を介して通信部３８から受信し、ハードディスク３３から呼び出して用いる。
入力部３７は、キーボード、マウス、マイクあるいはカメラ等で構成される。また、出力部３６は、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）あるいはスピーカ等で構成される。また、ＣＰＵ３０が実行するプログラムは、ハードウェア１００に内蔵されている記録媒体としてのハードディスク３３またはＲＯＭ３１に予め記録しておくことができる。あるいは、プログラムは、ドライブ３９を介して接続されるリムーバブル記録媒体４０に格納（記録）しておくことができる。
【００１３】
このようなリムーバブル記録媒体４０は、いわゆるパッケージソフトウェアとして提供することができる。リムーバブル記録媒体４０としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＭＯ（Ｍａｇｎｅｔｏ  Ｏｐｔｉｃａｌ）ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、磁気ディスク、半導体メモリ等がある。
また、プログラムは、複数のハードウェア間を有線、無線のいずれか一方あるいは、双方を介して接続するＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）等のシステム（Ｃｏｍ  ｐｏｒｔ）を通して送受信することができる。さらに、後述する訓練を行い、訓練によって得られた重み関数のみを、上記方法で送受信することができる。
【００１４】
例えば、ＣＰＵ３０は、ハードウェア１００を、ＮＮを構成する各層の処理、およびＮＮの生成を行う情報処理装置として機能させる。この場合、ハードウェア１００は、ＮＮとして機能すると共に、ＮＮの生成装置として機能する。
なお、ＮＮの各層は、ＣＰＵあるいはＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の並列演算を得意とする汎用のハードウェアで構成する他、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＦＦＴ（Ｆａｓｔ  Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍ）演算アーキテクチャ、あるいは専用のハードウェアで構成することができる。
【００１５】
また、後述するフーリエ変換および逆フーリエ変換等の行列演算は、専用のハードウェアが行っても構わない。特に、フーリエ変換、逆フーリエ変換を高速に行うことができる高速フーリエ変換、高速逆フーリエ変換用のハードウェアは汎用的なハードウェアとして入手することができる。この専用のハードウェアはＣＰＵあるいはＧＰＵに内蔵されているものもある。
また、音波または可視光を含む電磁波、熱、あるいは振動等の物理現象を数値データに変換する目的でのセンサ、またはハードウェア１００内で設計したＣＡＤ等の画像または計算結果を出力する機構を、ハードウェア１００が備えていても良い。あるいは、上記センサの情報とハードウェア１００の計算結果とを融合する機構を、ハードウェア１００が備えていても良い。さらに、ハードウェア１００は、電源線または内部バッテリを元に駆動する機構を備えている。
【００１６】
さらにハードウェア１００は、通信ポートを経由して複数台で構成されていても良く、後述する訓練と推論とが、別構成のハードウェア１００で実施されていても良い。さらに、ハードウェア１００が、通信ポートを経由して、異なるハードウェア１００に繋がれたセンサ信号を受信する、あるいは通信ポートを経由して複数のセンサ信号を受信してもよい。さらに、１つのハードウェア１００内に、複数の仮想ハードウェア環境を用意し、各仮想ハードウェアを個別のハードウェアとして扱っても構わない。
【００１７】
＜学習に用いるデータ＞
ＮＮで使用するデータは、教師あり学習、教師なし学習、あるいは強化学習によるものが用いられる。ＮＮは深層学習（ディープラーニング）あるいはパーセプトロンとも呼ばれることがある。パーセプトロンに関しては、後述する隠れ層が１層の場合は単一パーセプトロン、２層以上の場合は多層パーセプトロンと呼ばれる。この多層パーセプトロンがＮＮと呼ばれる。
【００１８】
教師あり学習は、学習データに対して、学習データに紐付けられた正解ラベルを学習する方法である。ＮＮにおいては、入力信号と出力信号の対応付けされているものである。
一方、教師なし学習は、学習データに正解ラベルを付けずに学習する方法である。自己符号化器を多層化したＳｔａｃｋｅｄ  Ａｕｔｏ  Ｅｎｃｏｄｅｒ（ＳＡＥ）、制約ボルツマンマシンを多層化したＤｅｅｐ  Ｂｏｌｔｚｍａｎｎ  Ｍａｃｈｉｎｅ（ＤＢＭ）などが知られている。
さらに強化学習は、教師あり学習および教師なし学習とは異なり、正解を与える代わりに時々刻々と変わるデータに対して、将来得られる期待値を最大化するＤＱＮ（Ｄｅｅｐ  Ｑ  Ｌｅａｒｎｉｎｇ）が用いられる場合が多い。
【００１９】
なお、この実施の形態では、教師あり学習を用いる場合を示すが、教師なし学習を用いても良い。教師なし学習を用いる場合は、データ・クラスタリング、主成分分析などの多変量解析を行う。また、入力画像は一般的には２次元以上の画像が用いられるため、強化学習を用いることもできる。
その他にも、一部の学習データに正解ラベルが与えられていない半教師あり学習、あるいは、学習データを用いて学習させたモデルを別の学習データに適用させる転移学習のデータでも、従来のＣＮＮが適用できるものであれば、この実施の形態にも適用できる。
【００２０】
また、学習には、学習の対象となるデータを一括で処理するバッチ学習と、学習の対象となるデータが入るたびに、そのデータを追加して学習を行うオンライン学習とがある。この実施の形態では、バッチ学習を用いる場合を示すが、オンライン学習を用いる事もでき、いずれの場合も、この実施の形態により計算を軽量化、高速化させることができる。
【００２１】
＜第１比較例としてのＣＮＮ構成例＞
この実施の形態で説明するＮＮは、ＣＮＮの代替手段となるものであるため、この実施の形態によるＮＮを説明するに先だって、第１比較例となるＣＮＮについて以下に説明する。ＣＮＮは深層学習で最も代表的な技術であって、推論時に高い精度を持つ手法であり、ネオコグニトロンと呼ばれるパターン認識を応用して作られた技術である。
図２は、第１比較例としてのＣＮＮの構成例を示す図である。図２に示すように、ＣＮＮは、入力層１から順に、畳み込み層２、活性化関数３、畳み込み層２、活性化関数３、プーリング層４、畳み込み層２、活性化関数３、全結合層５、活性化関数３、全結合層５、出力層６、出力７を備えて構成される。
【００２２】
このように、ＣＮＮは、畳み込み層２と活性化関数３とを用いて学習を行うもので、学習データである画像を入力信号とする入力層１に対して、畳み込み層２、活性化関数３を通した後、畳み込み層２、活性化関数３、プーリング層４、全結合層５を複数回組み合わせる。そして、この組み合わせからの出力に対して、ソフトマックス関数等の誤差関数を含む出力層６を通して所望の出力信号（出力７）を得る。
【００２３】
入力層１と出力層６の間の層を隠れ層と呼ぶ。上述したように、隠れ層が２層以上あるものがＮＮであり、ＮＮは、入力層及び出力層を含む複数の層が適宜、組み合わされて構成される。ＮＮにおいて、ある層から見て入力側の層を下位層、出力側の層を上位層ともいう。
従来例においては、１５０層を超える隠れ層を有するＣＮＮも知られており、近年、高精度化のためには層数を増やす傾向にある。
【００２４】
教師あり学習においては正解ラベルが与えられているため、入力層１、隠れ層、出力層６を通して出力された結果と正解ラベルとを比較し、その誤差成分を出力層６から入力層１に向かって伝搬させ、隠れ層で用いた重みとバイアスを最適化する。最適化には各層の演算に対する微分を計算する必要がある。誤差逆伝搬法は、この出力層６から入力層１への誤差の伝搬を表現するための微分を効率よく計算する１つの手法である。
【００２５】
畳み込み層２は、マップに対してカーネル（またはフィルタと呼ばれる）を適用し、畳み込み演算を行う。カーネルは、例えば７ピクセル×７ピクセルの画像、すなわち７×７の行列、つまり４９個の要素で構成される。このカーネルを入力層１のデータ、あるいは結合している下位層のマップに対して適用して畳み込み演算を行い、上位層に信号を出力する。畳み込み演算は、カーネルによって、入力画像が示す特徴的な画像のエッジを、画像から抽出する働きを持つ。ここで、エッジとは、物体と物体、物体と背景画像などの境界のことである。このカーネルを複数用意し、上記の誤差逆伝搬法によってカーネルを構成する行列を更新する過程が学習と呼ばれる過程である。
【００２６】
次に畳み込み演算について説明する。入力画像内の位置（ｉ，ｊ）の値をｘｉｊとする。ｉ、ｊは整数であり、ここでは０以上の整数である。またこの場合、各画素値は０以上の整数とする。カーネルを入力画像より小さい画像とし、そのサイズをＨ×Ｈとする。Ｈは２以上の整数である。カーネルはインデックス（ｐ，ｑ）（（ｐ＝０，１，２，・・・，Ｈ−１），（ｑ＝０，１，２，・・・，Ｈ−１））で表し、画像内の値をｈｐｑとする。この時、ｈｐｑは任意の実数値を取るとする。このような条件においては、畳み込み演算は以下の式（１）で表される。なお、ｕｉｊは、畳み込み演算による出力画像内の値である。
【００２７】
【数１】
0006742554.tif 000002
【００２８】
但し、深層学習における畳み込み演算は、以下の式（２）で定義されるのが一般的である。これは深層学習以外では相互相関、または相関と呼ばれる。この場合の相関は、カーネルを上下、左右方向に反転すると畳み込み演算と同じ結果を与えるため、ここでは、式（２）で表される演算を畳み込み演算と呼ぶ。
【００２９】
【数２】
0006742554.tif 000003
【００３０】
後述するフーリエ変換後の空間周波数領域においては、畳み込み演算と相関との違いは、ｘｉｊ、ｈｐｑの一方におけるフーリエ変換の複素共役に相当する。但し、カーネルは学習によって得る値から成るため、カーネルの初期値をランダムにする場合には複素共役を用いる必要はないが、初期値の重みを変える場合にはカーネルに対して複素共役を用いるのが望ましい。
【００３１】
また、畳み込み演算の計算量を低減するために、ストライドと呼ばれる手法が用いられるときもある。ストライドの幅を２以上の整数ｓとすると、ストライドは以下の式（３）で表すことができる。
【００３２】
【数３】
0006742554.tif 000004
【００３３】
これにより、１／ｓまで出力画像を小さくすることができるが、ｓを大きくすることは、画像の特徴を取りこぼす可能性を意味し、通常は性能を悪化させる方向に働くため、学習あるいは推論の高速化が不可欠な場合以外には行わない。
【００３４】
畳み込み演算では、入力画像に対してカーネルをスライドさせながら計算し、和を取って行くものである。１つの畳み込み層２において、下位層の画像（入力画像）の大きさをＷ×Ｈ、カーネルの大きさをＵ×Ｖとすると、出力画像の大きさは、（Ｗ−２［Ｕ／２］）×（Ｈ−２［Ｖ／２］）となる。この場合、［  ］は小数点以下を切り下げて整数化する演算子とする。［Ｕ／２］および［Ｖ／２］は自然数であるため、畳み込み演算を行うと演算後の画像は、演算前の入力画像よりも小さくなる。
【００３５】
畳み込み演算の前後の画像が同じ大きさになると、誤差逆伝搬時の演算等、計算が平易になることが多いため、畳み込み演算後の画像の外側に、幅［Ｕ／２］および幅［Ｖ／２］の画像を追加して出力画像を大きくする。この手法をパディングと呼ぶ。外側に追加する画像は任意の画像で良いが、０にする場合が多く、特にゼロパディングと呼ぶ。
後述する高速フーリエ変換および高速逆フーリエ変換においては、行列の大きさは２のべき乗である必要があるため、入力する行列と、出力する行列との大きさをパディングによって等しくしておくのが望ましい。
【００３６】
次に、畳み込み層２での畳み込み演算後の出力信号に対して非線形関数である活性化関数３をかける。活性化関数３が非線形であることが、ＮＮ（この場合ＣＮＮ）にとって重要であり、非線形関数が入ることで線形関数だけでは表現することができなかった任意のデータを表現することができる。
簡単な例として、仮に、定数ｃを用いた線形関数ｈ（ｘ）＝ｃｘ、を活性化関数と考える。この線形関数ｈ（ｘ）を３層重ねる関数（ｘからｙへの関数）は、ｙ＝ｈ（ｈ（ｈ（ｘ）））となる。しかし、この関数は、ｙ＝ｃ・ｃ・ｃ・ｘ、即ち、ｙ＝ｃ３ｘ、とも記載でき、これは１層でも表現できる。これは、出力ｙは入力ｘに対して線形の関数しか表現できないことを意味しており、隠れ層を増やす意味がない。そのため、活性化関数には非線形関数を用いる必要がある。
【００３７】
活性化関数３に非線形関数を用いることにより、層数が大きくなるに従い、表現できる関数の自由度が増え、任意の入力信号と正解ラベルの間の関係を精度良くつなぐことができる。
活性化関数３となる非線形関数には、Ｒｅｌｕ関数（正規化線形関数）である
ｇ（ｘ）＝ｍａｘ（ｘ，０）
シグモイド関数(またはロジスティックシグモイド関数とも呼ばれる)である
ｇ（ｘ）＝１／（１＋ｅｘｐ（−ｘ））
あるいは、双極線正接関数である
ｇ（ｘ）＝ｔａｎｈ（ｘ）
が用いられる。
【００３８】
その他にも、Ｌｅａｋｙ  ＲｅＬＵ
ｇ（ｘ）＝ａｘ  ｆｏｒ  ｘ＜０，ｇ（ｘ）＝ｘ  ｆｏｒ  ｘ＞＝０
あるいは、Ｔｈｒｅｓｈｏｌｄｅｄ  ＲｅＬＵ
ｇ（ｘ）＝ｘ  ｆｏｒ  ｘ＞θ，ｇ（ｘ）＝０  ｏｔｈｅｒｗｉｓｅ
など、様々な活性化関数が知られている。
例外として出力層６の直前に、線形関数である恒等関数ｇ（ｘ）＝ｘ、を用いることもある。但し、任意の曲線を表現するためには、非線形関数を活性化関数に用いた、２層以上の隠れ層が必要となるため、ここでは恒等関数に関しては説明しない。
【００３９】
以上のように、畳み込み層２と活性化関数３とを複数用いて構成したＣＮＮを誤差逆伝搬法によって、重みおよびバイアスの値を更新する。この更新を学習プロセス、または単に学習と呼ぶ。学習初期においては、重みおよびバイアスは疑似乱数が用いられる。他にも後述するＸａｖｉｅｒの初期値あるいはＨｅの初期値等が用いられることもある。学習プロセスが完了すると、値が更新された重みおよびバイアスが出力となる。
【００４０】
そして、値が更新された重みおよびバイアスを用いて、入力画像に対して出力を推定する推論を行う。この推論を行うプロセスを推論プロセス、または簡単に推論と呼ぶ。
通常の使用においては、学習プロセスはＧＰＵあるいは専用ハードウェアを搭載したサーバクライアン卜システムで行う。
【００４１】
一方、推論は、正解ラベルとの誤差を減らす学習プロセスが不要で、入力層１から出力層６に向かって、上記の重みおよびバイアスを用いて演算し出力するだけであるため、学習に比べて計算量が小さい。しかしながら、ＣＮＮを構成する層の中では畳み込み層２の計算量が大きく、計算時間を要する。推論プロセスは数秒以内の応答速度が求められることが多いが、畳み込み層２の層数を増やして学習の精度を上げている一般的なＣＮＮにおいては、マイコンなどの簡易なハードウェアでは所望の時間内での応答が困難である場合が多い。スマートフォンなどの比較的演算能力の低い計算機しか持たないエッジコンピュータにおいて、ＣＮＮ用の専用ハードウェアを搭載する場合もあるが、ハードウェア実装面積の増加、処理系統の複雑化あるいは電力使用量の増加などが問題となる。
【００４２】
＜全体像＞
この実施の形態では、音波または可視光を含む電磁波、熱、あるいは振動等の物理現象を数値データに変換するセンサの出力信号、またはハードウェア１００内で演算により設計した信号、またはセンサ信号と演算結果の両方を含む信号を処理するハードウェア１００（情報処理装置）の構成例を示す。ハードウェア１００内での演算は、ＮＮを用いた演算処理である。入力信号は１次元以上であればいずれでも構わないが、この実施の形態では２次元の画像を対象に説明する。
【００４３】
この実施の形態によるＮＮでは、畳み込み演算に相当する演算を空間周波数領域で行い、演算後の信号に対して、空間周波数領域における活性化関数である複素活性化関数をかける。即ち、上記したセンサの出力信号などによる空間領域での入力信号を、フーリエ変換して空間周波数領域の信号に変換し、空間周波数領域において、畳み込み演算に相当する演算と、複素活性化関数を用いた演算とを行う。その後、空間周波数領域の信号を逆フーリエ変換して空間領域の信号に戻して、所望の出力信号を得る。
【００４４】
上記第１比較例で示したＣＮＮ内の畳み込み演算は、一度の畳み込み演算に対して複数回の行列演算を要するものであるが、この空間領域での一度の畳み込み演算は、空間周波数領域では一度の行列演算に置き換えられる。この実施の形態では、この特徴を利用して学習あるいは推論を行うことで、演算回数を大幅に削減でき、計算時間、計算量、計算にかかる消費電力を大幅に低減でき計算コストを大幅に低減できる。以下、空間周波数領域における、畳み込み演算に相当する演算を、便宜上、複素畳み込み演算と称す。
また、空間周波数領域において、複素畳み込み演算による演算後の信号に対して、非線形関数となる複素活性化関数をかける。このように、複素畳み込み演算と、複素活性化関数を用いる演算とを、連続する空間周波数領域での処理の中で行う。これにより、演算回数を大幅に削減できると言う上述した効果を、阻害する事なく確実に実現できる。
【００４５】
仮に、上記第１比較例で示したＣＮＮ内の畳み込み演算を、空間周波数領域での複素畳み込み演算に置き換え、その後、第１比較例で示したＣＮＮ内の活性化関数を用いる場合を考察し、第２比較例と称す。この第２比較例の場合、複素畳み込み演算後に逆フーリエ変換し、逆フーリエ変換の出力結果に対して活性化関数を用いる必要がある。即ち、複素畳み込み演算毎に、その前後にフーリエ変換と逆フーリエ変換とを繰り返し用いる必要があり、計算コストの大幅な低減化を阻害するものである。
この実施の形態では、複素畳み込み演算後に複素活性化関数を用いるため、隠れ層におけるフーリエ変換と逆フーリエ変換とをそれぞれ１度実施すれば、その間に連続する空間周波数領域での処理の中で、複素畳み込み演算と複素活性化関数を用いる演算とを、何度でも行う事ができる。これにより大幅な計算コスト低減が達成できる。
【００４６】
図３は、この実施の形態による最も簡単なＮＮの構成例を示す図である。図３に示すように、ＮＮは、入力層１１から順に、フーリエ変換層１２、振幅結合層１３Ａおよび位相結合層１３Ｂから成り、複素畳み込み演算を行う結合層１３、複素活性化関数ｆを用いた演算を行う複素活性化層１４、逆フーリエ変換層１５、出力層１６および出力１７を備えて構成される。図４は、図３の部分詳細図であり、各層で生成される信号を併せて示す。
このＮＮは、２次元画像を入力信号２０とし、入力層１１は、入力信号２０をＮＮに入力する。フーリエ変換層１２は、空間領域の入力信号２０をフーリエ変換し、空間周波数領域の信号である第１振幅信号２１ｒと第１位相信号２１θとを出力する。この場合、高速フーリエ変換を用いる。
【００４７】
振幅結合層１３Ａは、訓練によって行列内の値を更新する第１重み行列Ｗ１を有し、第１重み行列Ｗ１を第１振幅信号２１ｒにかけて第２振幅信号２２ｒを出力する。位相結合層１３Ｂは、訓練によって行列内の値を更新する第２重み行列Ｗ２を有し、第２重み行列Ｗ２を第１位相信号２１θにかけて第２位相信号２２θを出力する。
複素活性化層１４は、空間周波数領域における複素活性化関数ｆを用いて、第２振幅信号２２ｒおよび第２位相信号２２θの内、少なくとも第２振幅信号２２ｒを更新する。この実施の形態では、第２位相信号２２θを用いて第２振幅信号２２ｒのみを更新して第３振幅信号２３ｒとして出力すると共に、第２位相信号２２θは更新せずに出力する。
【００４８】
逆フーリエ変換層１５は、第３振幅信号２３ｒと第２位相信号２２θとを組み合わせて逆フーリエ変換して、空間領域の信号２５を生成する。この場合、高速逆フーリエ変換を用いる。
そして、出力層１６は、逆フーリエ変換層１５からの信号２５を所望の形に変換し、出力７を得てＮＮから出力する。
【００４９】
なお、図３および図４では、フーリエ変換層１２と逆フーリエ変換層１５との間に、複素畳み込み演算を行う結合層１３と複素活性化関数ｆを用いた演算を行う複素活性化層１４とを、それぞれ１つとして示したが、通常、それぞれ複数回有するものである。
また、第１重み行列Ｗ１の行の数は、第１振幅信号２１ｒである振幅行列の列の数と同じであり、第２重み行列Ｗ２の行の数は、第１位相信号２１θである位相行列の列の数と同じである。また、第１重み行列Ｗ１および第２重み行列Ｗ２の列の数には制約が無い。
また、この実施の形態では、高速フーリエ変換と高速逆フーリエ変換とを用いるため、振幅行列および位相行列は、２のべき乗の行列である必要がある。このため、振幅結合層１３Ａおよび位相結合層１３Ｂでは、振幅行列、位相信号と同じ大きさの行列を出力する第１重み行列Ｗ１と第２重み行列Ｗ２とが用いられる。
【００５０】
＜入力データ＞
入力データには、音波または可視光を含む電磁波を受信するセンサ信号、熱または振動を取得するセンサ信号、あるいはハードウェア１００内で演算されて出力された信号、あるいはセンサ信号と演算結果との両方を融合した信号を用いる。音波に関しては、マイクまたは超音波センサで受信した信号を用いる。電磁波を収集するセンサは、可視光を収集するカメラ、赤外線または紫外線を収集するカメラ、光量センサ、近傍界アンテナ、遠方界アンテナ、磁気センサ、電界/磁界センサ、電流センサ、電圧センサ、あるいは放射線センサで受信した信号を用いる。その他にも加速度センサ、温度センサ、湿度センサ、ガスセンサ、距離センサ、圧力センサ、加速度センサ、あるいはジャイロ等の振動センサを用いても良い。
【００５１】
また、センサ信号は必ずしも同時刻に全てのデータを取得する必要はなく、随時、データを取得後に、処理を行うことで一つの入力データとして扱っても良い。また、接触してセンシングするセンサであっても、非接触でセンシングするセンサであっても構わない。さらに、可視光のカメラの信号と、赤外線カメラ等の信号とを組み合わせた信号を入力データとして用いても構わない。例えば、アクティブフェイズドアレイアンテナまたはレーザ光を使って、遠方の風の状況を測定する装置により、空間内の電磁波または風を高速にスキャンし、２次元以上の画像として入力データを得る事もできる。
また、入力データとなるデータは単体である必要はなく、２つ以上のデータを組合せて用いても良い。その際は、この実施の形態で示す複素活性化関数を用いたＮＮと、従来のパーセプトロンとを組合せて学習することにより、所望の学習を行うことができる。
【００５２】
この実施の形態によるハードウェア１００は、例えば可視光で撮影するカメラから得られる対象物に関する入力信号に対して処理を行い、出力層から出力信号を出す。出力信号は、入力信号を分類したもの、回帰分析した推定量、クラスタリング、または多変量解析の結果とする。出力信号の種類は、入力信号に関連付ける正解ラベルが付けられたデータ（教師データ）によって決められる。
例えば、画像の入力信号を１０通りに分類するハードウェア１００においては、学習時において入力画像と正解ラベルが１対１で対応する形で関連付けられたデータを教師データとして学習させる。学習によって得られたパラメータ（ＮＮの層を構成する重み行列の各要素）に対して、カメラによって撮影された信号と学習済みのパラメータを演算させ、分類に対する出力信号を得る。
【００５３】
また、画像の入力信号から回帰信号を出力する処理について考察する。例えば、画像の場面による安全性を０点から１００点までのアナログ信号に分類する。この場合、１つの画像に対して０点から１００点までの１つの実数を正解ラベルとして与える。その画像と正解ラベルとの組み合わせを複数用意して、学習データとする。そして、学習結果として、ＮＮ内の層のパラメータを決定する。そして、カメラから得られる画像を入力信号として、上記パラメータを演算することで、出力信号として回帰信号を得る。
【００５４】
上記説明は、可視光となる周波数帯で撮影するカメラをセンサとしたものであるが、赤外線、紫外線、あるいは赤外線よりも低周波数の電磁波を受信するアンテナなどのセンサにおいても、センサ信号に対して分類あるいは回帰等の正解ラベルが与えられれば、同様の処理を行うことができる。
また、上記説明では、教師あり学習について説明したが、正解ラベルがない教師なし学習においても同様である。
【００５５】
教師なし学習の一例として自己符号化器について、以下に説明する。自己符号化器は、ＮＮによって教師なし学習を行う様に構成された情報処理装置である。自己符号化器では、入力を学習時のデータとして用い、そのデータを表す特徴、すなわちＮＮの層における行列の各要素を抽出することを目的とする。そのため、ＮＮの出力層では入力層と同じ信号を出力することを目的にし、入力層と出力層との間の隠れ層の行列の大きさを小さくする。このように、小さな行列を通っても入力層と出力層との結果を等しくすることができれば、入力信号はファイルサイズを小さくできる。これを次元圧縮と呼ぶ。
この自己符号化器においても、上述した同様にカメラからの撮影画像を入力信号とする。この際、正解ラベルは不要であり、カメラの出力を自己符号化器に入力していくことで学習を行う。
【００５６】
ハードウェア１００内で演算されて出力された信号を入力信号とする場合は、コンピュータ支援設計ツール（ＣＡＤ）、あるいは、電磁界、熱または応力等のシミュレータ、その他、コンピュータゲームのような環境を模擬するシミュレータを用いた演算であっても良い。
また、センサ信号と演算結果との両方を融合した入力信号については、センサ信号をシミュレータ等に入力して得られた信号を入力信号とする。また、シミュレータの出力に基づいて、センサの種類あるいは位置情報を適宜変更して得られた信号を入力信号としても良い。
【００５７】
さらに、ＣＡＤデータに基づいて、製造またはシミュレーションして得られた物理信号を正解ラベルとすること、あるいは正解ラベルを人為的に変更することも、この実施の形態に適用できる。ＣＡＤデータに基づいて計算される物理信号としては、例えば、電磁波による電磁界分布、電流、電圧、熱等を含む。電磁波に関しては、電磁界シミュレーションの入力をＣＡＤデータ（２次元または３次元画像）とし、正解ラベルを、シミュレーション結果であるＳパラメータ（Ｓｃａｔｔｅｒｉｎｇ  ｐａｒａｍｅｔｅｒｓ）、空間上のある位置での電界/磁界の振幅値、電圧/電流、あるいはポインティング・ベクトルなどとする。このとき、Ｓパラメータおよび電界/磁界の振幅は周波数依存性を持つため、これらの場合は、入力画像１つに対して、複数のデータを正解ラベルとして持つ。
【００５８】
上述したＣＡＤおよびシミュレータによる入力信号は、１次元以上の入力画像を持つ。時系列データのように１次元のデータであっても、横軸を時間、縦軸を周波数、各時間／各周波数での振幅をフーリエ変換の出力の振幅とするスペクトログラムとすることで２次元のデータとして扱うこともできる。このようにスペクトログラムを作成する際のフーリエ変換は、時間毎にフーリエ変換を行う短時間フーリエ変換を用いる。なお、この実施の形態では簡単のため２次元データを用いて説明する。
【００５９】
この実施の形態では、グレースケールの画像を想定するが、カラー画像の場合には、ＲＧＢの場合には、Ｒｅｄ、Ｇｒｅｅｎ、Ｂｌｕｅに入力画像を分離して、入力画像よりも１次元高い画像にする。この次元をチャネルと呼び、ＲＧＢの場合には３チャネルとなる。また、ＣＭＹＫの場合には、Ｃｙａｎ、Ｍａｇｅｎｔａ、Ｙｅｌｌｏｗ、Ｋｅｙ  ｐｌａｔｅの４チャネルとなる。
複数のチャネルを入力とする場合においては、一般的にはカーネルを用いた畳み込み演算によって４チャネルを１チャネルに変換する。この実施の形態では、フーリエ変換層１２の前段に畳み込み層を１層設ける方法、各チャネルに対してフーリエ変換を行い、全結合層によって１チャネルに変換する方法、あるいは単に各チャネルに事前に重み付けを行い、入力層１１に入れる入力信号２０を１チャネルにする方法を用いる事ができる。
【００６０】
入力層１１は、ＮＮへの入力信号２０である入力データを記憶し、ＮＮの上位層に渡す。
この実施の形態では、ＮＮの性能評価に一般的に用いられているＭＮＩＳＴ（Ｍｉｘｅｄ  Ｎａｔｉｏｎａｌ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｓｔａｎｄａｒｄｓ  ａｎｄ  Ｔｅｃｈｎｏｌｏｇｙ  ｄａｔａｂａｓｅ）を用いた学習結果を示す。ＭＮＩＳＴは、縦×横が３２×３２のグレースケールの画像であって、６００００の学習用データと、学習には使わない１００００のテスト用のデータとを有する。
【００６１】
＜フーリエ変換層、逆フーリエ変換層＞
フーリエ変換を行うフーリエ変換層１２について、以下に説明する。なお、逆フーリエ変換は、フーリエ変換の逆変換であるため、逆フーリエ変換および逆フーリエ変換層１５についての詳細は省略する。
フーリエ変換においては、その性質上、フーリエ変換に入力した２次元画像が縦横に無限に接続された２次元平面になっていることを前提に変換を行う。
入力画像を縦横に直接接続した場合は、画像の端部の画像が接続される線上で不連続になり、本来の入力画像が持っていない周波数成分が発生することがある。そのため、通常のフーリエ変換では画像の縦横にそれぞれ窓関数をかけ、端部を０に近づけた信号をフーリエ変換する。
【００６２】
このような窓関数を用いる手法では、ＣＮＮによって抽出したい重要な情報が、画像端部にあると、その情報が失われてしまう。そこで、図５に示すように、フーリエ変換前の入力画像に対して、１つの画像の縦横、対角に対称な画像を配置する手法を用いる。
入力画像の横軸をｘ軸、縦軸をｙ軸とすると、入力画像のｘ軸成分の端部に、ｙ軸と平行な境界線ｌｙと線対称な画像を配置すると共に、入力画像のｙ軸成分の端部に、ｘ軸と平行な境界線ｌｘと線対称な画像を配置する。さらに、入力画像に対して対角の位置には、２つの境界線ｌｘ、ｌｙの交点に対して点対称、即ち、１８０度回転した回転対称な画像を配置する。
【００６３】
このように１つの画像の縦横、対角に対称な画像を配置した計４枚の画像で構成された画像をフーリエ変換することで、窓関数を用いることなく、本来の入力画像が持っていない周波数成分が発生する事を抑止して演算することができる。
この実施の形態では、フーリエ変換に高速フーリエ変換を用いることを前提としているため、入力画像の縦横の大きさは２のべき乗、すなわち偶数になる。１つの画像の縦横、対角に対称な画像を配置する上記手法では、４枚の画像で構成した画像の縦横も偶数になると共に、２のべき乗の大きさを持つため、高速フーリエ変換を用いることができる。
【００６４】
但し、この手法を用いると入力画像が大きくなるため高速フーリエ変換の処理が大きくなる。そのため、ＭＮＩＳＴの画像など、画像の端部に情報がなく、画像を縦横にそのまま接続しても不連続が発生しない場合には適用しない。
また、逆フーリエ変換においても、逆フーリエ変換する前に、同様の処理をしても良い。
【００６５】
フーリエ変換は、空間領域の信号から空間周波数領域の信号への変換である。空間領域の信号を空間信号、フーリエ変換した後の空間周波数領域の信号を空間周波数信号と呼ぶ。
上述したように、空間信号の畳み込み演算は、空間周波数信号に対しては行列の掛け算となる。この掛け算は具体的にはアダマール積であり、以下の数式で表される。但し、Ｆをフーリエ変換、＊を畳み込み演算、◎をアダマール積とする。
Ｆ［ｋ＊ｕ］＝Ｆ［ｋ］◎Ｆ［ｕ］
【００６６】
ｍ×ｎの大きさを持つ空間領域の信号ａ（ｓ，ｔ）のフーリエ変換は、以下の式（４）で表される。この式は、離散フーリエ変換と呼ばれる。このとき、ｊは複素数、ｅはネイピア数、πは円周率を示す。
【００６７】
【数４】
0006742554.tif 000005
【００６８】
フーリエ変換には高速フーリエ変換（ＦＦＴ）を用いる。基数２のＦＦＴは、Ｎ点の信号を半分ずつに分割していくことから、基数２の時間間引きしたフーリエ変換と考えることもできる。
ｎを２次元画像の大きさとすると、通常のフーリエ変換の計算オーダはＯ（ｎ３）で、畳み込み演算の計算オーダも、同様にＯ（ｎ３）である。なお、Ｏ（  ）は計算の回数の概算値を示すものである。
高速フーリエ変換の計算オーダはＯ（ｎ２・ｌｏｇ２ｎ）であり、高速フーリエ変換と高速逆フーリエ変換（ＩＦＦＴ）とを合わせた計算オーダはＯ（２ｎ２・ｌｏｇ２ｎ）となる。また、結合層１３での演算である上述した複素畳み込み演算の計算オーダはＯ（ｎ２）であり、他の計算オーダＯ（ｎ３）、Ｏ（ｎ２・ｌｏｇ２ｎ）に比べて充分小さく無視できる。
【００６９】
このため、従来のＣＮＮの計算オーダがＯ（ｎ３）に対し、この実施の形態によるＮＮの計算オーダはＯ（２ｎ２・ｌｏｇ２ｎ）であり、計算量が低減され高速化できる。
上述したように、１つのＣＮＮにおいて、通常、畳み込み層２は複数あり、畳み込み層２の数をｍとすると、ＣＮＮの計算オーダは、Ｏ（ｍ・ｎ３）となる。また、上述した第２比較例の場合では、畳み込み演算の代わりに複素畳み込み演算を行うが、複素畳み込み演算毎に、その前後にフーリエ変換と逆フーリエ変換とを繰り返し用いるため、高速フーリエ変換と高速逆フーリエ変換とを用いると、計算オーダは、Ｏ（２ｍ・ｎ２・ｌｏｇ２ｎ）となる。なお、第２比較例における複素畳み込み演算の回数は、ＣＮＮ内の畳み込み層２の数αと等しい。
【００７０】
この実施の形態によるＮＮの計算オーダは、結合層１３の数に対応する複素畳み込み演算の回数に拘わらず、Ｏ（２ｎ２・ｌｏｇ２ｎ）であるのに対し、第１比較例であるＣＮＮ、および上記第２比較例では、畳み込み演算または複素畳み込み演算の回数ｍが増加する毎に、計算量が急激に増加する。
【００７１】
ｎ＝６４で（６４×６４）程度の比較的小さい画像の場合、例えばｍ＝１０とすると、畳み込み演算を用いたＣＮＮでは、計算オーダは、Ｏ（ｍ・ｎ３）＝Ｏ（２．６×１０６）となり、上記第２比較例の場合では、計算オーダは、Ｏ（２ｍ・ｎ２・ｌｏｇ２ｎ）＝Ｏ（４．９×１０６）となる。これに対して、この実施の形態によるＮＮの計算オーダは、Ｏ（２ｎ２・ｌｏｇ２ｎ）＝Ｏ（４．９×１０５）であり、１０倍程度の計算量低減および高速化ができる。
【００７２】
ｎ＝１０２４で（１０２４×１０２４）のように、比較的大きい画像の場合、ｍ＝１０の場合、畳み込み演算を用いたＣＮＮでは、計算オーダは、Ｏ（ｍ・ｎ３）＝Ｏ（１．０×１０１０）となり、上記第２比較例の場合では、計算オーダは、Ｏ（２ｍ・ｎ２・ｌｏｇ２ｎ）＝Ｏ（２．１×１０８）となる。これに対して、この実施の形態によるＮＮの計算オーダは、Ｏ（２ｎ２・ｌｏｇ２ｎ）＝Ｏ（２．１×１０７）である。即ち、この実施の形態によるＮＮでは、上記第２比較例と比べると１０倍の計算量低減であり、畳み込み演算を用いた第１比較例のＣＮＮと比べると、３桁程度の計算量低減となる。計算量は計算時間と直結するため、例えば、ＣＮＮで１ヶ月かかる計算が、この実施の形態によるＮＮでは９０分程度で計算できることを意味する。
このように、この実施の形態では、畳み込み演算に対応する複素畳み込み演算の回数が多いほど、また、画像が大きくなるにつれて計算量低減の効果が大きくなる。
【００７３】
ＣＮＮでは、畳み込み層２が数回から数１０回積み重ねて使われることが多く、この実施の形態のＮＮを用いる事により、大幅に計算量を低減でき高速化が図れる。例えば、近年のスマートフォンにおいては画素数が５０００万画素（すなわち７０００×７０００の行列を出力）以上のもの、カメラにおいては１億画素（１００００×１００００の行列を出力）以上のものもある。そのような大きな画像に対して、画素数を落とさず、即ち画像に含まれる情報を劣化させずにＣＮＮの畳み込み演算を行うのは、計算量を考慮すると困難であったが、この実施の形態によるＮＮを用いる事で可能になる。
このように、この実施の形態によるＮＮによると、計算量を低減して高速に演算できると共に、演算の信頼性向上も図れる。
【００７４】
高速フーリエ変換は、２のべき乗の信号のみ用いる、また２次元画像の場合には、２のべき乗に２を掛け算した画像のみを、例えばバタフライ演算を用いて高速に算出する。一般的な信号は、２のべき乗の大きさの行列ではないため、入力信号に対して、２のべき乗の大きさになるように０埋めの処理を行う。これにより、全ての信号に対して高速フーリエ変換を用いることができる。高速逆フーリエ変換に対しても同様である。
【００７５】
また、フーリエ変換層１２を通して得られた第１振幅信号２１ｒ、第１位相信号２１θに対して、データの中心部に低周波成分が集中するように画像の順番を入れ替える周波数シフト演算を行う。これにより、行列の中心部に低周波成分、周辺部に高周波成分が集まる。このような周波数シフト演算は、低周波信号に特徴量を含んでいる信号が多いために用いられることが多い。この実施の形態によるＮＮでは、画像の端部の処理は不連続性が生じて、誤差原因に繋がりやすいため、上記周波数シフト演算はさらに効果的である。数学的には、周波数シフト演算による結果への影響はない。
【００７６】
なお、フーリエ変換層１２でのフーリエ変換は、振幅と位相、または実部と虚部の組み合わせに分離することができるが、後段の複素活性化層１４での演算のために、振幅と位相とに分離して第１振幅信号２１ｒおよび第１位相信号２１θを生成する。このとき、振幅は０以上の実数になる。一方、位相は−π以上π未満の実数になるようにする。また、フーリエ変換の際に、フーリエ変換層１２の入力信号と出力信号が同じ大きさの行列になるように、上述したパディングを行い、通常、ゼロパディングを行う。
【００７７】
また、フーリエ変換、および逆フーリエ変換は係数等が異なる数通りの手法が知られており、いずれの手法を用いても良い。
但し、手法によっては結果に差が生じることがある。それは、フーリエ変換の入力と出力との関係において、空間領域が持つ全エネルギ（体積）と空間周波数領域が持つ全エネルギとが異なるためである。即ち、フーリエ変換した後、逆フーリエ変換すると入力前の信号と出力された信号との間に差異が生じることがある。学習と推論を、同じ隠れ層を持つＮＮで行う場合は、ほぼ問題にならないが、データよってはパーセバルの等式（またはレイリーのエネルギ定理）に従い、空間領域が持つ全エネルギと空間周波数領域が持つ全エネルギとを等しくする演算を行っても良い。また、学習と推論とで用いるハードウェア１００が異なる場合、あるいは丸め誤差が問題となる場合に、パーセバルの等式を用いると良い。これは、逆フーリエ変換においても同様である。
【００７８】
＜結合層＞
空間領域における畳み込み層２の代わりに、この実施の形態では、空間周波数領域において結合層１３を用いる。結合層１３は、全結合層または疎結合層を用いる。特に、入力層１１に近い層に関しては、全結合層、上位層の出力層１６に近い層においては、疎結合層を用いることで、過学習を防止することができる。なお、全結合層を構成する行列においては、すべての重み行列の要素を更新するが、疎結合層を構成する行列においては、確率的に更新しない要素を持つ。
【００７９】
全結合層は結合する層間の重み行列をＷとし、ｘを入力行列、ｕを出力行列、ｂをバイアスとなるベクトルとすると、
ｕ＝Ｗｘ＋ｂ
で表現される演算を行う。
特に出力層１６に近い箇所においては、バイアスベクトルをゼロベクトルとしても良い。Ｗおよびｂの初期値は、通常、疑似乱数値を用いる。また、Ｘａｖｉｅｒの初期値あるいはＨｅの初期値と呼ばれる行列を、初期値に用いても良く、学習が速く進むことが知られている。これについては、空間信号の場合と同様であり、説明を省略する。
【００８０】
結合層１３は、振幅結合層１３Ａおよび位相結合層１３Ｂから成る。フーリエ変換層１２に入力された空間信号は、フーリエ変換によって空間周波数信号である第１振幅信号２１ｒと第１位相信号２１θとに分離される。そして、第１振幅信号２１ｒは振幅結合層１３Ａに入力され、第１位相信号２１θは位相結合層１３Ｂに入力されて、それぞれに、上記重み行列となる第１、第２重み行列Ｗ１、Ｗ２を掛け、第２振幅信号２２ｒと第２位相信号２２θとが出力される。
即ち、振幅結合層１３Ａでは、第１振幅信号２１ｒに第１重み行列Ｗ１を掛けて第２振幅信号２２ｒを出力する。また、位相結合層１３Ｂでは、第１位相信号２１θに第２重み行列Ｗ２を掛けて第２位相信号２２θを出力する。
【００８１】
第１重み行列Ｗ１および第２重み行列Ｗ２の各初期値は、疑似乱数値、あるいは上述した他の初期値を持つ。
そして、振幅結合層１３Ａおよび位相結合層１３Ｂでは、第１重み行列Ｗ１と第２重み行列Ｗ２とのそれぞれに対して、誤差逆伝搬法によって、入力と出力との関係が密接になるように行列内の値を更新する。即ち、第１重み行列Ｗ１と第２重み行列Ｗ２とは、訓練によって行列内の値が更新される。
第１振幅信号２１ｒとなる振幅行列（入力行列）ｘに対して、第１重み行列Ｗ１は、正の実数のみを持つものとする。振幅行列ｘは正の実数であるため、（Ｗ１）ｘの行列の要素に対して絶対値｜（Ｗ１）ｘ｜に変換しても良いが、この場合、第１重み行列Ｗ１に、正の実数のみとする制約を設けて学習させる。
制約を設けることで学習時の探索範囲を小さくでき、演算回数の低減が図れる。また、各要素に対して絶対値変換の演算を不要にして学習の高速化が図れる。
【００８２】
また、第１位相信号２１θとなる位相行列（入力行列）ｘに対しては、第２重み行列Ｗ２に制約はない。位相にラジアンを用いる場合には、０以上、２π未満の値、または−π以上、π未満の値となるように、（Ｗ２）ｘの行列に対して、２πの剰余演算を行う。但し、後段の複素活性化層１４で、三角関数を位相行列に施す複素活性化関数ｆを用いる場合には、剰余演算を行う必要はない。
なお、１８０／πをラジアンにかけることで算出される角度の単位としての度を、位相に用いても良く、この場合は３６０°の剰余演算を行う。
【００８３】
＜複素活性化層＞
複素活性化層１４には、振幅結合層１３Ａおよび位相結合層１３Ｂから出力される第２振幅信号２２ｒと第２位相信号２２θとが入力され、これらの信号に対して空間周波数領域における活性化関数である複素活性化関数ｆを用いて演算する。この場合、複素活性化関数ｆを用いた演算により、第２振幅信号２２ｒは更新されて第３振幅信号２３として出力され、第２位相信号２２θはそのまま出力される。
複素活性化層１４では、第２位相信号２２θを構成する位相行列内の各点ｉにおける位相θ（ｉ）に対する複素活性化関数ｆの応答によって、第２振幅信号２２ｒを構成する振幅行列内の前記点ｉと同位置の点における振幅ｒ（ｉ）の値を更新する。
【００８４】
図６は、複素活性化関数ｆを用いて振幅ｒ（ｉ）の値を更新する動作を説明する図である。位相行列（第２位相信号２２θ）内の点ｉの位置を（ｘｉ，ｙｉ）として、点ｉにおける要素である位相θ（ｘｉ，ｙｉ）に対して複素活性化関数ｆの値を演算し、同じ周波数にある振幅行列（第２振幅信号２２ｒ）における、上記位相行列内の点ｉと同位置（ｘｉ，ｙｉ）の要素である振幅ｒ（ｘｉ，ｙｉ）を書き換える。なお、書き換え後の振幅行列は第３振幅信号２３ｒとなる。
【００８５】
空間周波数領域での活性化関数である複素活性化関数ｆについて以下に説明する。
複素活性化関数ｆは、空間領域での活性化関数と同様、非線形関数を用いる。非線形関数とは、ｋを任意の定数とし、ｘ，ｙを任意の変数とするとき、以下の線形関数ｇの定義
ｇ（ｘ＋ｙ）＝ｇ（ｘ）＋ｇ（ｙ）
ｇ（ｋ・ｘ）＝ｋ・ｇ（ｘ）
のどちらか一方、または双方を満たさない関数として定義できる。
【００８６】
空間領域での活性化関数の一例としてロジスティック関数、双曲線正接関数がある。このような非線形関数をかけることによって、順伝搬と逆伝搬時に差異が生じ、これが線形関数だけでは表せない関数、すなわち重み付けを生み出すことになる。
この実施の形態における複素活性化関数ｆは、この非線形関数を、フーリエ変換後の空間周波数信号に対して用いる為の関数である。
【００８７】
複素活性化関数ｆは、空間信号に対する従来の活性化関数とは異なる。また、活性化関数を含めてフーリエ変換しても複素活性化関数ｆを作ることはできない。これは、以下の式からも明らかである。なお、ｇは空間領域での活性化関数である。
Ｆ［ｇ（ｘ）］≠Ｆ［ｇ］◎Ｆ［ｘ］
即ち、空間領域での値ｘに対して活性化関数ｇを施したものをフーリエ変換する結果と、活性化関数ｇをフーリエ変換すると共に、値ｘをフーリエ変換し、両者をかけ合わせたものは異なる。
例えば、Ｒｅｌｕ関数をフーリエ変換すると、Ｒｅｌｕ関数はｘ≧０の領域で単調増加であるからフーリエ変換は発散する。そのため、Ｒｅｌｕ関数をフーリエ変換したものは、空間周波数領域での活性化関数にはならない。
【００８８】
この実施の形態では、Ｒｅｌｕ関数の特徴に基づく複素活性化関数ｆを、複素Ｒｅｌｕ関数と称して用いる。
空間領域でのＲｅｌｕ関数は、入力値が正または０の場合は入力値と同じ値を、入力値が負の場合は０を、演算する。複素Ｒｅｌｕ関数は、振幅ｒ、または位相θの一方のみで決まるものではなく、三角関数を位相成分に施す関数を用いて、振幅成分を更新する。この場合、三角関数を位相成分に施し、さらに振幅成分を乗じた関数を用いて、実軸成分、虚軸成分のいずれか一方、例えば実軸成分が正または０の場合に、振幅成分を更新せず同じ値とし、負の場合に、その関数による演算値に更新する。
【００８９】
即ち、複素活性化関数ｆは、第２位相信号２２θを構成する行列内の各点ｉにおける位相θ（ｉ）に対して、実軸成分、虚軸成分のいずれか一方が正または０の場合と、負の場合とで異なる応答によって、第２振幅信号２２ｒを構成する行列内の前記点ｉと同位置の点における振幅ｒ（ｉ）の値を更新する。
複素Ｒｅｌｕ関数を用いた複素活性化関数ｆの例を以下の式（５）に示す。
【００９０】
【数５】
0006742554.tif 000006
【００９１】
この場合、θ＝−π／２、またはπ／２の時、ｒ｜ｓｉｎθ｜＝ｒであるため、関数の連続性が確保される。
図７は、上記式（５）を図示したものである。図７に示すように、半径ｒの円に対して、実軸ｕ、虚軸ｊｖとすると、ｕ成分が負の場合に、ｕ成分をｕ＝０、ｊｖ成分を｜ｊｖ｜に変換する。このように、実軸ｕの成分が負の場合に、振幅ｒをｒｓｉｎθの絶対値で置き換える事と同値である。
さらに、複素Ｒｅｌｕ関数を用いた複素活性化関数ｆの別例を以下の式（６）に示す。
【００９２】
【数６】
0006742554.tif 000007
【００９３】
この場合も、関数の連続性が確保される。
図８は、上記式（６）を図示したものである。この場合、虚軸ｊｖ成分が負の場合に、振幅ｒをｒｃｏｓθの絶対値で置き換える事と同値である。これは、上記式（５）のθに対して（θ＋（π／２））を代入したものと同値であるが、プログラム作成の容易性、比較回数の少なさ、すなわち計算の高速化の点で上記式（５）で示す複素Ｒｅｌｕ関数による複素活性化関数ｆよりも勝っている。また、θの比較回数も低減できるため、計算量を削減できる。
【００９４】
上記２式（５）、（６）の変形は、θに対するｒの連続性が確保されている限り、様々な組み合わせを取ることができる。例えば、θ→（θ／２）として、θの領域を変更すること、あるいは｜ｓｉｎθ｜の代わりに双曲線正割ｓｅｃｈθとすることなどが考えられる。
さらに、複素活性化関数ｆを以下の式（７）で定義しても良い。なお、ｋをｌより大きい実数とする。
【００９５】
【数７】
0006742554.tif 000008
【００９６】
以上のように、複素活性化関数ｆは、位相θにより振幅ｒの取り得る値が２以上に分割されていれば良く、θの条件が３つ以上に分割されていても良い。
【００９７】
なお、複素活性化関数ｆが連続関数であるものを説明したが、不連続関数を用いることもできる。
従来、空間領域において、活性化関数に不連続関数であるステップ関数を用いる事もあった。ステップ関数は以下の式（８）で表される。あるいは、ｘ＝０での特異性を考慮して式（９）のように表現することもある。
【００９８】
【数８】
0006742554.tif 000009
【００９９】
【数９】
0006742554.tif 000010
【０１００】
空間周波数領域においても、複素活性化関数ｆの連続性は不可欠な条件ではなく、非線形関数であって、かつ、位相θの値によって算出される出力によって振幅ｒを書き換える構造となっていれば良い。
連続性のない複素Ｒｅｌｕ関数を用いた複素活性化関数ｆは、例えば、以下の式（１０）で表される。
【０１０１】
【数１０】
0006742554.tif 000011
【０１０２】
上記式（１０）は、上記式（６）の絶対値演算を除いたものであり、連続性は失われ、空間領域のＲｅｌｕ関数とは対応しないものであるが、絶対値演算を減らせる分、ＮＮの学習時間を短縮することができる。
図９は、上記式（１０）を図示したものである。図９に示すように、半径ｒの円に対して、虚軸ｊｖの成分が負の場合に、ｊｖ＝０である実軸ｕに写像したものである。
さらに、連続性のない複素活性化関数ｆの別例を以下の式（１１）に示す。
【０１０３】
【数１１】
0006742554.tif 000012
【０１０４】
上記式（１１）は、上記式（５）の絶対値演算を除いたものである。この場合も、連続性は失われ、空間領域のＲｅｌｕ関数とは対応しないものであるが、絶対値演算を減らせる分、ＮＮの学習時間を短縮することができる。
図１０は、上記式（１１）を図示したものである。図１０に示すように、半径ｒの円に対して、実軸ｕの成分が負の場合に、ｕ＝０である虚軸ｊｖに写像したものである。
【０１０５】
＜訓練＞
ＮＮの重み行列Ｗ（第１重み行列Ｗ１、第２重み行列Ｗ２）を更新する際には、ＮＮの出力と教師データとの差である損失Ｌを最小にするために、重み行列Ｗの各要素の最適値を検索する。誤差逆伝搬法は、最適値を探すための手段であり、勾配降下法を基本とするものである。
勾配降下法においては、重み行列Ｗ、学習係数α、および、推論結果と正解ラベルの差の成分である損失Ｌを用いて、以下の式（１２）に基づいて、重み行列Ｗを更新していく。
【０１０６】
【数１２】
0006742554.tif 000013
【０１０７】
そして、勾配降下法において算出したい∂Ｌ／∂Ｗ（損失Ｌを重み行列Ｗで偏微分した演算）を、順伝搬と逆伝搬とを繰り返す誤差逆伝搬法によって算出し、重み行列Ｗを更新する。入力層から出力層への処理を順伝搬、出力層から入力層への処理を逆伝搬と呼ぶ。
この重み行列Ｗの更新を行う演算が学習であり、学習させるプロセスが訓練である。訓練が完了するとＮＮの学習が完了したことになる。なお、訓練に用いるデータを訓練データと呼ぶが、学習データと同じ意味で用いる。
訓練データを用いて訓練している際に、学習前に定めておいた所望の性能を満足した時点で学習をとめる、早期終了を用いても良く、これは過学習防止および学習時間の短縮につながる。この点については、この実施の形態と空間領域で行われるＣＮＮの技術との差異はない。
【０１０８】
勾配降下法について、以下に説明する。
勾配降下法とは、目的関数を最小化（一般的には最適化）する際に用いる解の探索に用いるアルゴリズムである。特に、ＮＮでは、上記式（１２）で示した確率的勾配降下法が用いられ、これは最小化する目的関数が微分可能である際に一般的に用いる方法である。このとき、学習係数αは勾配降下法にとって重要なパラメータとなり、ＡｄａＧｒａｄ法、Ａｄａｍ法、モメンタム法など様々な方法が知られている。これらの方法は、空間周波数領域での学習においても、空間領域での学習と同様であり、詳細な手法については省略する。
【０１０９】
但し、一般的に非線形関数の最小化手法に関しては、目的関数の２次微分が可能な場合、ニュートン法あるいはその派生方法である準ニュートン法の方が解への収束が早い。また、上記のＡｄａＧｒａｄ法、Ａｄａｍ法、モメンタム法などの勾配降下法は、学習係数αの値に収束速度および精度が大きく依存することから、ニュートン法あるいは準ニュートン法を用いる方が望ましい。複雑なＮＮを用いる場合には、２次微分を求めることが困難な場合が多いため、現実的には勾配降下法が用いられる。
【０１１０】
上記のように目的関数の最適化を行うことで入力データと正解ラベルとの間を密接に関連付ける重み行列Ｗを構築することができる。しかし、学習の目的は学習に用いた訓練データ（入力データと正解ラベル）ではなく、学習後に与えられる未知のサンプルに対して正しい推論を行えるようにすることにある。前者の訓練データに対する誤差を訓練誤差、後者の未知のデータに対する誤差の期待値を汎化誤差と呼ぶ。この汎化誤差を小さくすることが、学習の目的であるものの、訓練誤差のように学習時に計算することはできない。
【０１１１】
そこで、訓練データとは別のサンプル集合を準備し、これに対して訓練誤差と同じ方法で計算される誤差を汎化誤差の目安とする方法が用いられる。例えば、ＭＮＩＳＴのデータを用いる場合においては、全データの７０％〜８０％を訓練データ、残りの２０％〜３０％のデータをテストデータとして、学習後にテストデータを用いてテストデータに対する誤差であるテスト誤差を演算する。具体的には訓練データが６００００、テストデータが１００００としている。重み行列Ｗの更新に伴うテスト誤差の変化を学習曲線と呼ぶ。
【０１１２】
訓練を重ねるごとにテスト誤差が小さくなることが期待されるが、訓練データに対する誤差が小さくなっても、テストデータに対する誤差が大きくなることがある。これは、過学習（または過剰適応）と呼ばれ、ＮＮの訓練の際の問題となる現象である。これを防ぐ方法として、過学習防止に向けた重み減衰（または、荷重減衰）とドロップアウトが知られている。この実施の形態においても、これらの方法を、ＣＮＮの場合と同様に適宜使用する。
【０１１３】
重み減衰は、重み行列の値の大きさが大きいほど０に近づいていくように重みを更新する手法である。これにより重みの発散を緩和させる。重み減衰にも正則化手法など様々な方法が知られており、空間領域と同様、空間周波数領域に適用する場合における制約はない。
一方、ドロップアウトは、ドロップアウト層において振幅行列の成分を確率的に０にすることで、過学習を防止できる。通常は、確率として２０％〜５０％を用いる。
【０１１４】
また、学習データが少ない場合においても過学習を起こしやすくなる。この場合、データ水増しを行う。具体的には一つの画像の平行移動、左右の鏡像反転、回転等の幾何学的な変形、その他にも濃淡、色彩の変動、ランダムノイズを一律に加える。このようにデータを増やすことで過学習が防止しやすくなり、この実施の形態においても同様である。
さらに全結合層の代わりに疎結合層を用いる方法、あるいは早期終了、計算結果等の有効数字を下げることを隠れ層に持たせることにより、過学習を防止しても構わない。
【０１１５】
次に、誤差逆伝搬法について説明する。
順伝搬は、学習済みの重み行列を用いて結果を推定する推論の際に用いられる。また、訓練によって重み行列を更新する際には、順伝搬と逆伝搬とを複数回行う。
順伝搬は、隠れ層の行列あるいは関数を随時入力データに施す。一方、逆伝搬は、順伝搬によって得られた推論値と、正解ラベルの差を誤差とする誤差情報を直後の上位層から直前の下位層に逆伝搬させる。
【０１１６】
逆伝搬は、順伝搬の微分の連鎖率で表記できるが、数式の算出が煩雑で計算量が多くなるため、誤差逆伝搬法が用いられる。誤差逆伝搬法は、出力層から始まる誤差成分を上位層から下位層に向かって伝搬させ、順伝搬時の処理の微分項を、誤差成分に演算することによって入力層まで伝搬させる。その誤差成分が小さくなるように、重み行列の値を更新する。
この実施の形態で用いる複素活性化関数ｆについても、微分が必要となる。
複素活性化関数ｆが、上記式（５）で示す場合、即ち、以下の複素Ｒｅｌｕ関数に対して、
【０１１７】
【数１３】
0006742554.tif 000014
【０１１８】
ｙ＝ｆ（ｒ，θ）とすると、偏微分項∂ｒ、∂θは、以下の式（１４）で表される。
【０１１９】
【数１４】
0006742554.tif 000015
【０１２０】
このとき、∂ｒは上位層から下位層へのｒの更新式、∂θは上位層から下位層へのθの更新式となる。そして、第１振幅信号２１ｒにかける第１重み行列Ｗ１、および第１位相信号２１θにかける第２重み行列Ｗ２の各要素に対して代入による更新を施す。
また、複素活性化関数ｆが、上記式（１１）で示す場合、即ち、以下の複素Ｒｅｌｕ関数に対して、
【０１２１】
【数１５】
0006742554.tif 000016
【０１２２】
ｙ＝ｆ（ｒ，θ）とすると、偏微分項∂ｒ、∂θは、以下の式（１６）で表される。
【０１２３】
【数１６】
0006742554.tif 000017
【０１２４】
また、複素活性化関数ｆが、上記式（６）で示す場合、即ち、以下の複素Ｒｅｌｕ関数に対して、
【０１２５】
【数１７】
0006742554.tif 000018
【０１２６】
ｙ＝ｆ（ｒ，θ）とすると、偏微分項∂ｒ、∂θは、以下の式（１８）で表される。
【０１２７】
【数１８】
0006742554.tif 000019
【０１２８】
また、複素活性化関数ｆが、上記式（１０）で示す場合、即ち、以下の複素Ｒｅｌｕ関数に対して、
【０１２９】
【数１９】
0006742554.tif 000020
【０１３０】
ｙ＝ｆ（ｒ，θ）とすると、偏微分項∂ｒ、∂θは、以下の式（２０）で表される。
【０１３１】
【数２０】
0006742554.tif 000021
【０１３２】
複素活性化関数ｆが複雑になるに従い、微分を数式として表現し難くなる。そのような場合は、微小量Δθだけθを動かしたときの変化量Δｙ、つまり（Δｙ／Δθ）を微分とする数値微分を用いる。微分が定式化されていれば代入で計算が終了するのに対し、数値微分は引き算あるいは割り算の必要があるため計算量が多くなるが、任意の複素活性化関数ｆに対して微分を求めることができる。
【０１３３】
上述したように、誤差逆伝搬法において、損失Ｌを逆伝搬させる∂Ｌ／∂Ｗを算出する。ここで、行列を行列に変換する２つの関数を定義し、中間値Ｙ、Ｚとする。入力された行列と出力する行列の大きさは、等しいものとする。そして、入力Ｘ、重み行列Ｗ、中間値Ｙ、Ｚは行列、損失Ｌはスカラとして考える。
誤差逆伝搬法において、∂Ｌ／∂Ｗを算出する際、∂Ｌ／∂Ｚ、∂Ｌ／∂Ｙ、∂Ｌ／∂Ｘ、∂Ｌ／∂Ｗを算出することになるが、このとき、それぞれの行列の大きさは、Ｚ、Ｙ、Ｘ、Ｗと等しくなる。∂Ｌ／∂Ｚ、∂Ｌ／∂Ｙ、∂Ｌ／∂Ｘ、∂Ｌ／∂Ｗがそれぞれ一意に決まるので、これを算出するために、一般的な偏微分の演算である連鎖律を用いる。
この誤差逆伝搬法は、数式をプログラムに落とし込む際に大変都合が良いため、訓練の際には広く用いられる。
【０１３４】
＜出力層＞
出力層１６について、以下に説明する。出力層１６では、所望の出力７を得るために信号を変形させる関数である活性化関数が用いられる。この実施の形態では、出力層１６で用いる活性化関数を出力活性化関数と呼ぶ。
また教師あり学習においては、入力データと正解ラベルのペアが与えられているため、出力活性化関数の出力結果と教師データとの近さの尺度を測る必要がある。この尺度のことをこの実施の形態では誤差関数と呼ぶ。
【０１３５】
一般的な教師あり学習において、ＮＮに求められる出力は大きく分けて３つある。一つ目が回帰分析、二つ目が多値分類、三つ目が二値分類である。以下、順番に説明する。
回帰分析とは出力に連続値をとる関数を対象に、訓練データを再現するような関数を定める手法である。この場合、ＮＮの出力活性化関数に、その値域が、目標とする関数の値域と一致するものを選ぶ。値域が−１以上１以下の場合には、双極線正接関数ｙ＝ｔａｎｈ（ｘ）が適している。値域が−∞から∞の間である場合には、恒等写像ｙ＝ｘを選ぶ場合が多い。また、出力活性化関数の出力結果と正解ラベルとの差に関しては、２乗誤差を用いる。逆伝搬の微分を考慮すると、一般的には２乗誤差に対して１／２をかけたものを誤差関数に用いる。
【０１３６】
次に、多値分類では、入力データに対して有限個のクラスに分類する。例えば、ＭＮＩＳＴは多値分類問題であり、入力の０〜９までの数字が書かれた手書き文字を１０通りに分類する。このような多値分類に対しては、出力活性化関数はソフトマックス関数が用いられる。また、誤差関数には交差エントロピを用いる。ソフトマックス関数および交差エントロピに関しては、空間領域での手法と同様である。
【０１３７】
次に、二値分類では、入力データを二種類に分類する。この場合、出力活性化関数にはロジスティック関数、誤差関数には最尤推定と同じ手法を用いる。ただし、二値分類も多値分類の一種と考え、多値分類と同様、出力活性化関数はソフトマックス関数、誤差関数には交差エントロピを用いても構わない。
【０１３８】
上述したように、この実施の形態では、結合層１３にて重み行列Ｗをかける複素畳み込み演算後に複素活性化関数ｆを用いることにより、隠れ層におけるフーリエ変換と逆フーリエ変換とをそれぞれ１度実施すれば、その間に連続する空間周波数領域での処理の中で、結合層１３および複素活性化層１４での演算を何度でも行える。
図１１は、結合層１３および複素活性化層１４を２層ずつ用いた場合のＮＮの構成例を示す図である。このようなＮＮを用いた場合の、テストデータに対する精度を、第１比較例、即ち、畳み込み層２を２層有するＣＮＮの場合と共に図１２に示す。
【０１３９】
この場合、ＭＮＩＳＴを入力データとして手書き文字を１０通りに分類させたときの、教師あり学習させた結果を、訓練回数（計算回数）に対する計算精度の推移で示した。
図１２内の実線が、この実施の形態によるＮＮを用いた場合であり、点線が、第１比較例のＣＮＮを用いた場合である。またこの場合、この実施の形態によるＮＮでは、上記式（６）で示した複素活性化関数ｆを用いた。
図１２に示すように、この実施の形態によるＮＮでは、計算回数が１５００回を超えるとテストデータに対して９５％程度の精度で推論できる。第１比較例のＣＮＮでは、９７％程度の精度であるから、ほぼ同等な性能と言える。
【０１４０】
図１３は、この実施の形態によるＮＮによる高速化効果を説明する図である。図１３では、畳み込み層２を２層有するＣＮＮによる第１比較例と、複素畳み込み演算を２回行い、各複素畳み込み演算の前後にフーリエ変換と逆フーリエ変換とを行う第２比較例と、この実施の形態によるＮＮとについて、計算速度の違いを示す。この場合、ＣＰＵ演算による計算で、ＭＮＩＳＴを用いた実際の計算、この場合、図１２で示す計算回数２０００回の計算を行う場合にかかった時間を示す。
なお、ＭＮＩＳＴのデータとして、訓練データが６００００、推論時のテストデータが１００００とする。
【０１４１】
ＭＮＩＳＴは３２×３２の比較的小さな画像であるが、第１比較例の計算時間が２６０秒に対し、第２比較例では２００秒、この実施の形態によるＮＮでは７５秒であり、第１比較例と比べ約３０％の時間であり、格段と高速化されることが分かる。
また、訓練データ数を少なくすること、あるいは、計算時間を要するフーリエ変換および逆フーリエ変換について、専用のＩＣを用いることにより、マイコンなどの小さな処理装置でも層数の大きいＮＮの計算が可能になる。
【０１４２】
以上のように、この実施の形態によるＮＮでは、従来のＣＮＮとほぼ同等の精度の演算が行える。また、大きな計算量を要した畳み込み演算を、１度の行列演算による複素畳み込み演算に置き換えるため、計算量を大きく削減できる。さらに、複素活性化関数ｆを用いることにより、隠れ層におけるフーリエ変換と逆フーリエ変換とをそれぞれ１度実施すれば、その間に連続する空間周波数領域での処理の中で、複素畳み込み演算と複素活性化関数ｆとを何度でも用いる事ができ、フーリエ変換および逆フーリエ変換に要する計算量も削減できる。このため、大きな画像に対しても高速処理が可能になり、低コストで簡略なハードウェア１００の構成にて、ＮＮによる高い認識精度が得られる。
【０１４３】
また、この実施の形態では、フーリエ変換と逆フーリエ変換との間の各層の演算は、全て、連続する空間周波数領域内での空間周波数信号を扱う演算となり、演算毎の入力信号と出力信号とから、各演算の物理的な機能を解析することが可能になる。これにより、ＮＮの詳細解析が可能になり、各層の解析結果からＮＮの構成が決定でき、高性能のＮＮが構築できる。
【０１４４】
＜活用例＞
この実施の形態によると、主に２次元の画像を対象に、第１比較例のＣＮＮに比べて高速に処理することができ、特に、畳み込み層２に相当する結合層１３を複数持つＮＮでは、大きな効果を発揮する。画像認識においては、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ−Ｏｘｉｄｅ−Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）などで取得したデータ以外にも、赤外線カメラ、紫外線カメラ、あるいはフェーズドアレイアンテナ等で電磁波を可視化した映像を入力データに用いることができる。
【０１４５】
また、応力、熱伝導、電場、磁場、電磁波、圧電、音波、流体、光学、流体、構造等のシミュレータを用い、２次元以上のＣＡＤ等を利用してＧＵＩで設計した解析モデルを入力データとし、該シミュレータでの解析結果を正解ラベルとするデータを用いた学習を行ってもよい。
さらに、上述したように、１次元のデータであってもスペクトログラムに変換することで２次元のデータとみなすことができるため、この実施の形態による手法を用いることができる。
【０１４６】
また、この実施の形態によるＮＮは、一般に知られているＣｏｎｖｏｌｕｔｉｏｎａｌ  ＬＳＴＭ（Ｌｏｎｇ  ｓｈｏｒｔ−ｔｅｒｍ  ｍｅｍｏｒｙ）のように、畳み込み演算を用いて動画のような時間変化がある入力データを処理する情報処理装置に適用することもできる。
また、スペクトログラムに変換することにより、ＲＮＮ（Ｒｅｃｕｒｒｅｎｔ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ）全般にも、畳み込み演算を要する箇所に、この実施の形態による手法を適用することができる。
【０１４７】
また、ＧＡＮ（Ｇｅｎｅｒａｔｉｖｅ  Ａｄｖｅｒｓａｒｉａｌ  Ｎｅｔｗｏｒｋ）と呼ばれる、生成ネットワーク（ｇｅｎｅｒａｔｏｒ）と識別ネットワーク（ｄｉｓｃｒｉｍｉｎａｔｏｒ）との２つのＮＮを同時に学習させていくＮＮを用いて、訓練データあるいはテストデータに含まれない画像を生成する手法にも、この実施の形態を適用できる。このＧＡＮは、通常、多数の畳み込み層を重ねることで生成ネットワークと識別ネットワークとを構成するが、２つのＮＮを同時に訓練することから畳み込み層の数が増え、計算量が膨大になるが、この実施の形態の手法を用いる事で、大幅な計算コストの削減が図れる。
【０１４８】
ＧＡＮのような計算には、通常、数１０枚から数万枚のＧＰＵボード（ＧＰＵの演算素子が実装されたプリント基板）を用いて学習するため、大規模な計算機が不可欠であったが、この実施の形態を適用することにより、生成する画像の大きさにもよるが、３〜８桁程度の高速化が期待できる。条件によっては、ＧＰＵなどの並列処理機構を持たないハードウェアでも学習が可能になる。
ＧＡＮによれば、入力データは２次元以上の画像であっても構わないため、例えばシミュレーションデータを入力し、所望の設計を行うことも可能である。
【０１４９】
さらに、公知のＣｏｎｄｉｔｉｏｎａｌ  ＧＡＮのように、学習を終えた重み関数を用いて、使用者が条件を定め、出力を限定させることもできる。この場合、ＧＡＮにより所望の設計が可能になり、この実施の形態を適用することにより、その設計を学習させる時間、および推論に要する時間を大幅に削減できる。
【０１５０】
さらにまた、強化学習においても、２次元の画像を入力データとして学習を進める手法が多く用いられており、その多くは複数の畳み込み層を有する。特に、強化学習は正解ラベルを与えるのではなく、エージェントと呼ばれるＮＮが試行錯誤を繰り返す中で学習させるものであるため、計算量が膨大になる。このような強化学習に対しても、この実施の形態を適用することで、ＮＮを効率的に学習させることができる。
【０１５１】
また、教師なし学習である自己符号化器を多層化したｓｔａｃｋｅｄ  ａｕｔｏ  ｅｎｃｏｄｅｒ（ＳＡＥ）、制約ボルツマンマシンを多層化したｄｅｅｐ  Ｂｏｌｔｚｍａｎｎ  ｍａｃｈｉｎｅ（ＤＢＭ）等についても同様である。
自己符号化器は、例えば２次元の画像を入力層に入力すると同じ画像が出力されるように学習させるＮＮであり、入力層と出力層との間には畳み込み層を含む、様々な演算処理があり、必要な情報が欠落しないように、演算処理が行われる。
教師なし学習においても、畳み込み演算は不可欠な技術であるため、この実施の形態を適用することにより、計算コストを大幅に低減させることができる。
【０１５２】
また、入力データは２次元とは限らず、３次元データを平面図の組み合わせ鳥瞰図、断面図、ＣＡＤまたは３Ｄカメラ（ステレオカメラ）などの画像を３次元データとしてそのまま入力データとして用いても構わない。
【０１５３】
実施の形態２．
実施の形態２では、上記実施の形態１で用いた複素Ｒｅｌｕ関数とは異なる複素活性化関数ｆを用いる。この実施の形態では、フーリエ変換層１２において、０以上の実数である振幅成分と、−π以上π未満の実数である位相成分とに分解する。その他の構成は実施の形態１と同様である。
【０１５４】
この実施の形態２においても、上記実施の形態１と同様に、複素活性化層１４には、振幅結合層１３Ａおよび位相結合層１３Ｂから出力される第２振幅信号２２ｒと第２位相信号２２θとが入力され、これらの信号に対して複素活性化関数ｆを用いて演算し、第２振幅信号２２ｒは更新されて第３振幅信号２３ｒとして出力され、第２位相信号２２θはそのまま出力される。
複素活性化層１４では、第２位相信号２２θを構成する位相行列内の各点ｉにおける位相θ（ｉ）に対する複素活性化関数ｆの応答によって、第２振幅信号２２ｒを構成する振幅行列内の前記点ｉと同位置の点における振幅ｒ（ｉ）の値を更新する。
【０１５５】
この実施の形態では、空間領域におけるロジスティック関数の特徴に基づく複素活性化関数ｆを、複素ロジスティック関数と称して用いる。
上記実施の形態１で用いた複素活性化関数ｆは、位相θ（ｉ）の大きさに応じて異なる応答により振幅ｒ（ｉ）の値を更新するものであったが、この実施の形態２で用いる複素活性化関数ｆは、位相θ（ｉ）の大きさによらず同じ演算式による一定の応答により振幅ｒ（ｉ）の値を更新する。
複素ロジスティック関数を用いた複素活性化関数ｆの例を以下の式（２１）に示す。
【０１５６】
【数２１】
0006742554.tif 000022
【０１５７】
但し、ｋは１より大きい実数である。θが−π以上π未満で動くときに、複素活性化関数ｆの出力は０から１の間を動く。この出力で振幅ｒを置き換える。
なお、上記式（２１）において、（（ｋ２−１）／２）は、複素活性化関数ｆの出力の最大値を１にするための定数であるため、必須ではない。このため、以下の式（２２）に示す複素活性化関数ｆを用いても良い。この場合、複素活性化関数ｆの出力の最大値は、（２／（ｋ２−１））となる。複素活性化関数ｆの最小値は０以上の実数となり、振幅成分を０以上の実数とする上記条件を満たす。
【０１５８】
【数２２】
0006742554.tif 000023
【０１５９】
また、複素ロジスティック関数を用いた複素活性化関数ｆの別例を以下の式（２３）に示す。この複素活性化関数ｆは、θ＝０、に対して対象な関数であり、出力の最小値は０、最大値は１になる。
【０１６０】
【数２３】
0006742554.tif 000024
【０１６１】
さらに、複素活性化関数ｆの別例を以下の式（２４）に示す。この複素活性化関数ｆは、ガウスの誤差関数を変形したものである。
【０１６２】
【数２４】
0006742554.tif 000025
【０１６３】
このように、振幅ｒと位相θとの２つの入力信号に基づいて、空間周波数領域における２次元の複素活性化関数ｆを定義することにより、空間領域での活性化関数では表現できない活性化関数を定義できる。これにより、活性化関数の表現の自由度を向上させ、より汎用性の高い学習ができる。
【０１６４】
損失を上位層である出力層から下位層である入力層に伝搬させる誤差逆伝搬法においては、この実施の形態で用いる複素活性化関数ｆについても、微分が必要となる。但し、上記のような複素ロジスティック関数の微分は難しい。そのような場合は、上述した数値微分を行うことで微分することが可能である。
【０１６５】
この実施の形態２においても、上記実施の形態１と同様の効果が得られる。即ち、従来のＣＮＮとほぼ同等の精度の演算が行える。また、大きな計算量を要した畳み込み演算を、１度の行列演算による複素畳み込み演算に置き換えるため、計算量を大きく削減できる。さらに、複素活性化関数ｆを用いることにより、隠れ層におけるフーリエ変換と逆フーリエ変換とをそれぞれ１度実施すれば、その間に連続する空間周波数領域での処理の中で、複素畳み込み演算と複素活性化関数ｆとを何度でも用いる事ができ、フーリエ変換および逆フーリエ変換に要する計算量も削減できる。このため、大きな画像に対しても高速処理が可能になり、低コストで簡略なハードウェア１００の構成にて、ＮＮによる高い認識精度が得られる。
【０１６６】
また、フーリエ変換と逆フーリエ変換との間の各層の演算は、全て、連続する空間周波数領域内での空間周波数信号を扱う演算となり、演算毎の入力信号と出力信号とから、各演算の物理的な機能を解析することが可能になる。これにより、ＮＮの詳細解析が可能になり、各層の解析結果からＮＮの構成が決定でき、高性能のＮＮが構築できる。
【０１６７】
なお、複素ロジスティック関数の計算速度がＮＮにおける律速条件となる際には、実施の形態１で示した複素Ｒｅｌｕ関数のように、微分が理論的に計算できて、計算量が少ない複素活性化関数ｆを用いるのが望ましい。
【０１６８】
実施の形態３．
実施の形態３では、上記実施の形態１、２とは異なる複素活性化関数ｆを用いる。その他の構成は、上記実施の形態１と同様である。
この実施の形態３においても、上記実施の形態１と同様に、複素活性化層１４には、振幅結合層１３Ａおよび位相結合層１３Ｂから出力される第２振幅信号２２ｒと第２位相信号２２θとが入力され、これらの信号に対して複素活性化関数ｆを用いて演算することにより、第２振幅信号２２ｒおよび第２位相信号２２θを更新して出力する。
なお、第２振幅信号２２ｒおよび第２位相信号２２θは、同じ手法で同様に更新するが、第２位相信号２２θをそのまま保持し、第２振幅信号２２ｒのみを更新しても良い。
【０１６９】
図１４は、複素活性化関数ｆを用いて第２振幅信号２２ｒおよび第２位相信号２２θを更新する動作を説明する図である。
ここでは、簡単のために、結合層１３で生成された第２振幅信号２２ｒおよび第２位相信号２２θは、それぞれ２次元の行列である振幅行列および位相行列とする。
振幅行列の各軸は周波数軸を示し、各要素は振幅の値を示す。複素活性化層１４では、Ｎ、ＭをそれぞれＮ≧２、Ｍ≧１とし、周波数軸の成分、即ち周波数成分が１／Ｎ、各要素の振幅が１／Ｍである、縮小された微小行列Ｌｒを生成する。この微小行列Ｌｒを元の振幅行列に加算する。加算後に生成された行列を複素活性化関数ｆの出力（更新された振幅行列）とする。
【０１７０】
また、位相行列に対しても、同様に微小行列Ｌθを生成して加算する演算を行い、加算後に生成された行列を複素活性化関数ｆの出力（更新された位相行列）とする。
なお、この複素活性化関数ｆは、空間周波数領域での非線形関数となっている。
【０１７１】
このような複素活性化関数ｆの演算により、入力された第２振幅信号２２ｒおよび第２位相信号２２θは、信号成分を、より低い周波数成分に効果的に集約させることができる。この複素活性化関数ｆを用いた後に、後述するプーリング層を用いると、プーリング層にて主要な情報の劣化を防ぎつつ、低い周波数成分に情報を集約させることができる。
なお、プーリング層は、複素活性化層１４の後段に設けられて、電気工学におけるローパスフィルタ、より一般にはフィルタになるものである。
また、この実施の形態３による複素活性化関数ｆの演算は、上記実施の形態１または２で示した複素活性化関数ｆの演算よりも、演算時間を要するものであるが、情報を劣化させず、より高精度な計算ができる。
【０１７２】
この実施の形態３による複素活性化関数ｆの演算は、ＮＮの学習において誤差逆伝播法と組み合わせると、上位層と下位層との間を複数回往復する際、各行列の要素ごとの演算になるため計算回数が膨大になる。そのため、Ｎ、Ｍをそれぞれ２のべき乗とし、微小行列Ｌｒ、Ｌθの生成にシフト演算を利用して計算を軽量化する手法が有効である。
シフト演算は１０進数にする必要がなく、計算が得意な２ビットの演算になることから、ノイマン型コンピュータを使った演算においては計算コストが小さい。例えば、Ｃ言語のようなコンパイル言語においては、計算コストは１／１０程度になる。１／２、１／４、１／８など、１／２のべき乗にする演算には右シフトのビット演算を行えばよい。
【０１７３】
具体的な演算例としてＮ＝２、Ｍ＝１の場合を、以下に説明する。
この場合、第２振幅信号２２ｒ、第２位相信号２２θを形成する振幅行列、位相行列の各要素を１つずつ間引きする。その結果、各行列の行、及び列のサイズは１／２になり微小行列Ｌｒ、Ｌθとなる。サイズが小さくなった微小行列Ｌｒ、Ｌθに対して、高周波成分に０埋めをし、間引きをする前の振幅行列、位相行列と同じサイズに加工する。加工後の微小行列Ｌｒ、Ｌθを、間引き前の行列振幅行列、位相行列に足し合わせることにより、最も簡単な複素活性化関数ｆの出力信号を生成することができる。
【０１７４】
なお、微小行列Ｌｒ、Ｌθは、それぞれ複数個用いても良く、１／２だけでなく１／４、１／８等の微小行列Ｌｒ、Ｌθをさらに加算しても良い。
【０１７５】
また、この実施の形態では離散信号を扱っているため、Ｍ＝１以外の場合には端数が発生するが、その場合、端数を丸め込む方法、あるいは補間によって値を推定する方法を用いる。
【０１７６】
この実施の形態３においても、上記実施の形態１と同様に、大きな計算量を要した畳み込み演算を、１度の行列演算による複素畳み込み演算に置き換えるため、計算量を大きく削減できる。さらに、複素活性化関数ｆを用いることにより、隠れ層におけるフーリエ変換と逆フーリエ変換とをそれぞれ１度実施すれば、その間に連続する空間周波数領域での処理の中で、複素畳み込み演算と複素活性化関数ｆとを何度でも用いる事ができ、フーリエ変換および逆フーリエ変換に要する計算量も削減できる。このため、大きな画像に対しても高速処理が可能になり、低コストで簡略なハードウェア１００の構成にて、ＮＮによる高い認識精度が得られる。
【０１７７】
また、フーリエ変換と逆フーリエ変換との間の各層の演算は、全て、連続する空間周波数領域内での空間周波数信号を扱う演算となり、演算毎の入力信号と出力信号とから、各演算の物理的な機能を解析することが可能になる。これにより、ＮＮの詳細解析が可能になり、各層の解析結果からＮＮの構成が決定でき、高性能のＮＮが構築できる。
【０１７８】
実施の形態４．
実施の形態４では、上記実施の形態１〜３とは異なる複素活性化関数ｆを用いる。その他の構成は、上記実施の形態１と同様である。
この実施の形態４においても、上記実施の形態１と同様に、複素活性化層１４には、振幅結合層１３Ａおよび位相結合層１３Ｂから出力される第２振幅信号２２ｒと第２位相信号２２θとが入力され、これらの信号に対して複素活性化関数ｆを用いて演算することにより、第２振幅信号２２ｒおよび第２位相信号２２θを更新して出力する。
なお、第２振幅信号２２ｒおよび第２位相信号２２θは、同じ手法で同様に更新するが、第２位相信号２２θをそのまま保持し、第２振幅信号２２ｒのみを更新しても良い。
【０１７９】
ところで、フーリエ変換においては、ｇ、ｈを任意の関数とする時、以下の等式が成り立つ。但し、Ｆはフーリエ変換、＊は畳み込み演算、◎はアダマール積である。
Ｆ［ｇ◎ｈ］＝Ｆ［ｇ］＊Ｆ［ｈ］
即ち、空間領域でのアダマール積は、空間周波数領域での畳み込みとなることを意味している。この時、Ｆ［ｇ］を入力信号、Ｆ［ｈ］をカーネルと考え、Ｆ［ｈ］をカーネルとして入力信号Ｆ［ｇ］に畳み込み演算することを、複素活性化関数ｆの演算として適用する。
【０１８０】
但し、空間周波数領域において任意のカーネルＦ［ｈ］をＦ［ｇ］にかけると、入力信号Ｆ［ｇ］が持っている情報が劣化してしまう。すなわち、ｇを構成する支配的な周波数成分である、振幅が大きい周波数の情報を失うことになる。このため、カーネルＦ［ｈ］の原点において、振幅（絶対値）が最大となる関数を選択することにより、情報の劣化を防止する。
このような関数の一例として、ｓｉｎｃ関数がある。ｓｉｎｃ関数はｘを周波数とすると（ｓｉｎ（ｘ）／ｘ）で表され、ｘ＝０で最大値を取る。
【０１８１】
このように、複素活性化関数ｆは、基準となる原点での値の絶対値が最大となる関数をカーネルＦ［ｈ］として、入力信号（対象信号）に対して畳み込み演算を行うものである。これにより、空間領域の活性化関数と同等の精度を有する複素活性化関数ｆが得られる。
このＦ［ｈ］を用いて、第２振幅信号２２ｒに対して畳み込み演算を行うが、第２位相信号２２θに対しても同様に畳み込み演算を行ってもよい。
また、カーネルＦ［ｈ］の原点において、振幅が最大となる以外にも正負の両方の値を持つことが望ましい。即ち、カーネルＦ［ｈ］の振幅０の軸を横切る関数になることが望ましい。これにより、畳み込み演算後の結果（Ｆ［ｇ］＊Ｆ［ｈ］）の振幅において、振幅０となる点が存在し、この振幅０の点がＮＮにおける情報となる。
【０１８２】
さらに、第２振幅信号２２ｒの出力は正の実数である必要があるため、畳み込み演算後の出力（Ｆ［ｇ］＊Ｆ［ｈ］）に対して絶対値に変換することが望ましい。
【０１８３】
また、上述したｓｉｎｃ関数の他、Ｒｅｌｕ関数の空間周波数領域でも計算することができる。しかし、一般的なＲｅｌｕ関数であるＲｅｌｕ（ｘ）は、ｘに比例して大きくなるため、フーリエ変換の値が発散する。そのため、画像の軸方向の大きさ(画素数)をｘ０とすると、Ｆ［ｈ］は、以下の式（２５）で表すことができる。
【０１８４】
【数２５】
0006742554.tif 000026
【０１８５】
この場合、誤差逆伝播法による計算を行う場合には、計算量が膨大となる。
その他、以下の式（２６）に示すシグモイド関数は空間周波数領域では収束する関数となっている。
【０１８６】
【数２６】
0006742554.tif 000027
【０１８７】
このため、Ｆ［ｈ］は、
Ｆ［ｈ］（ｘ）＝−ｊπ・ｃｓｃｈ（πｘ）
で算出される関数であっても良い。
また、ｃｓｃｈ（πｘ）はｃｏｓｅｃｈ（ｘ）で表される関数であっても良い。但し、ｘ＝０で発散する関数となるため、実際の計算においては有限の値で丸め込む。
【０１８８】
この実施の形態４においても、複素活性化関数ｆを用いることにより、隠れ層におけるフーリエ変換と逆フーリエ変換とをそれぞれ１度実施すれば、フーリエ変換と逆フーリエ変換との間の各層の演算は、全て、連続する空間周波数領域内での空間周波数信号を扱う演算となる。このため、演算毎の入力信号と出力信号とから、各演算の物理的な機能を解析することが可能になる。これにより、ＮＮの詳細解析が可能になり、各層の解析結果からＮＮの構成が決定でき、高性能のＮＮが構築できる。
【０１８９】
そして、この実施の形態４では、複素活性化関数ｆは、空間周波数領域内でカーネルを用いて畳み込み演算を行うものである。このため、第１比較例のＣＮＮと理論的に等価な演算をすることができ同等の精度が得られるが、計算速度の向上を図るものでは無い。
しかしながら、連続する空間周波数領域内での空間周波数信号を扱う演算で、ＣＮＮの手法を行っていることになり、従来手法であるＣＮＮの詳細解析が可能になる。
【０１９０】
例えば、畳み込み演算（空間周波数領域ではアダマール積）はエッジ（物体と物体の境界線）の強調を担う。活性化関数（空間周波数領域では複素活性化関数）は非線形関数であると共に、入力信号とは異なる周波数成分発生（低周波帯域、高周波帯域ともに発生）を担う。後述するプーリング（空間周波数領域では複素プーリング）はローパスフィルタに代表されるフィルタの役割を担う。このように、各演算を明確に切り分けて解析でき、ＣＮＮを含むＮＮの発展に貢献できる。
【０１９１】
ＮＮ各層における演算の解析について、より詳しく説明する。
空間領域での畳み込み演算では、入力画像の横軸をｘ軸、縦軸をｙ軸とする時、カーネルを例えばガウシアンのｘ軸方向に微分した２次元の信号とすると、このカーネルを入力画像に畳み込むことでｙ軸方向成分のエッジが強調された画像を出力することができる。同様に、ガウシアンを任意の方向で微分したカーネルを入力画像に畳み込むことで、入力画像のあらゆる方向の画像のエッジを抽出することができる。
【０１９２】
ＣＮＮでは、訓練によって得られる複数のカーネルにより、様々な方向のエッジを抽出し、それらを合成することで入力画像を分析している。空間領域ではこのように複数回の演算が伴う畳み込み処理によって画像の特徴を抽出する。そして、これと同じ物理的な意味を持つ処理が、空間周波数領域では、カーネルを用いた畳み込み演算を用いない複素畳み込み演算により行うことができる。
【０１９３】
次に、活性化関数（空間周波数領域では複素活性化関数）についての解析について説明する。
従来、空間領域の処理は脳の神経細胞の発火と似た構造を非線形関数で表現できることが、ネオコグニトロンあるいはＣＮＮの研究を通して分かっている。
しかしながら、この実施の形態による、活性化関数の解析では、後述するプーリング（空間周波数領域では複素プーリング）の機能を併せて解析すると、深層学習における活性化関数の役割の中で最も重要な役割は、入力信号とは異なる周波数成分を発生させることにある、という結果を導くことができる。
【０１９４】
例えば、空間領域のＲｅｌｕ関数は、空間周波数領域では、半波整流を空間周波数領域で処理をすることに帰着できる。すなわち、２つ以上の異なる周期を持つ三角波（一般的な画像）に対する半波整流処理は、元の三角波が持つ周波数成分以外にも、直流成分に近い低周波成分にエネルギの一部が移行する。そのため、近似的に実施の形態３に示すように、信号の一部を低周波成分側に出力させる演算によっても同様の効果が得られることが分かる。
なお、この空間周波数領域での演算は、空間領域での演算と同じ結果とはならないが、演算結果の差は、複素畳み込み演算における訓練によって調整することが可能である。
【０１９５】
実施の形態５．
実施の形態５は、上記実施の形態１〜４によるＮＮに、複素プーリング層を備えたものである。複素プーリング層１８は、空間領域でのプーリング層４に対応する、空間周波数領域での層である。図１５は、この実施の形態５によるＮＮの構成を示す図であり、上記実施の形態１で示した図４に対応する部分詳細図である。
上記実施の形態１と同様に、振幅結合層１３Ａは、第１重み行列Ｗ１を有し、第１重み行列Ｗ１を第１振幅信号２１ｒにかけて第２振幅信号２２ｒを出力する。位相結合層１３Ｂは、第２重み行列Ｗ２を第１位相信号２１θにかけて第２位相信号２２θを出力する。
複素活性化層１４は、複素活性化関数ｆを用いて、第２振幅信号２２ｒおよび第２位相信号２２θの内、第２振幅信号２２ｒのみを更新して第３振幅信号２３ｒとして出力すると共に、第２位相信号２２θは更新せずに出力する。
【０１９６】
複素プーリング層１８は、複素活性化層１４の直後に設けられ、複素活性化層１４で更新された信号に対して演算処理する。この場合、振幅成分のみ更新されているため、入力される第３振幅信号２３ｒに対して演算処理して、振幅信号２３ｒａを出力する。
なお、上記実施の形態３、４に複素プーリング層１８を設けた場合で、複素活性化層１４が第２振幅信号２２ｒおよび第２位相信号２２θの双方を更新している場合には、更新された双方の信号に対して複素プーリング層１８が演算処理する。
【０１９７】
空間領域におけるプーリング層４の演算をプーリングと称し、空間周波数領域における複素プーリング層１８の演算を複素プーリングと称す。
空間領域におけるプーリングは、畳み込み層２で抽出された特徴の位置の感度を低下させるもので、対象とする特徴量の画像内での位置が変化しても同一の特徴量を持つ画像と認識できるものである。これはすなわち画像の「ぼかし」を意味する。
空間周波数領域に「ぼかし」を適用するには、高周波成分を除去することで容易に得ることができる。高周波成分とは、隣り合うピクセルの要素が急激に変化するときに発生する成分であるため、空間周波数領域で高周波成分を除去することにより複素プーリングが得られる。
【０１９８】
この複素プーリング層１８での演算、即ち複素プーリングは、信号処理の分野におけるローパスフィルタに相当する。そして、複素プーリングを行う事により、入力画像の位置ずれ、および回転に対して強固な構造になると共に、ＮＮの過学習を防止すると共に、計算精度が向上する。
【０１９９】
一般に空間領域におけるプーリングは、Ｓ×Ｔ（Ｓ、Ｔは２以上の整数）の画像サイズ毎にマップを切り出し、その最大値を出力する最大値プーリング、あるいは平均値を出力する平均値プーリングが一般的に用いられる。その他、Ｌｐプーリングなどが知られている。これらのプーリングの違いは、空間周波数領域ではローパスフィルタの形状の違いを示すものと考えることができる。
【０２００】
空間周波数領域において、行列の中心部に低周波成分、行列の周辺部に高周波成分とする周波数シフトを施した振幅信号と位相信号の行列を考える。これらの行列に対する複素プーリングに用いる関数は、２次元のガウシアンが望ましい。ガウシアンでは、フーリエ変換してもフィルタの形状が変わらないため、フーリエ変換の際に発生する高周波成分の発生を抑制するフィルタ演算が不要となるためである。
【０２０１】
それ以外にもハン窓、ハミング窓、ハニング窓、ブラックマン窓、カイザー窓などの窓関数を各隠れ層の入力信号の次元にあわせて変形した窓関数を複素プーリングに用いても良い。但し、フラット・トップ窓のように負成分が発生する複素プーリングの関数を振幅信号に演算する場合においては、負成分が発生しないように演算結果に対して絶対値に変換する。この窓関数により、フーリエ変換逆フーリエ変換する際の不連続性も除去できるため、数値処理の影響で発生するノイズ成分も除去することができる。
【０２０２】
さらに、単色、つまり直流に近い低周波成分によりオフセットされている情報を除去するハイパスフィルタを用いることで、背景成分などの単色情報を除去することができる。具体的には、周波数シフトした信号に対して、中心部の数画素分の信号を除去する。この場合、通常１０％以下の中心部の画素を抑圧するハイパスフィルタを設ける。なお、この手法は、直流成分が重要なファクタであるデータに対しては使えない。
【０２０３】
実際のＮＮの設計においては、上記ハイパスフィルタと上記ローパスフィルタとが組み合わされたバンドパスフィルタを用いるのが望ましい。
バンドパスフィルタの例として、Ｄａｖｉｄ  ＨｕｂｅｌとＴｏｒｓｔｅｎ  Ｗｉｅｓｅｌとによって示された三角関数とガウス関数との積で表される関数であるガボールフィルタを用いる方法がある。また、ローパスフィルタとハイパスフィルタとを組み合わせて、任意のバンドパスフィルタを用いても良い。
【０２０４】
ところで、上記実施の形態３または４で示した複素活性化関数ｆ、あるいはＣＮＮで用いる活性化関数は、ＮＮにとって特定の周波数よりも低い周波数成分を発生させる意味を持つ。
例えば、ＣＮＮで振幅がマイナスとなる場合、活性化関数（Ｒｅｌｕ関数）の出力が０となる。出力が０というのは、空間周波数領域では周波数０、すなわち直流成分を意味し、電気工学では半波整流になることを意味する。また、特定の周波数では、半波整流は直流成分から特定の周波数へ連続的に周波数が変化することになるため、活性化関数への入力信号が単一周波数であっても、出力信号は広帯域の周波数成分を持つものになる。
【０２０５】
この実施の形態５では、複素活性化関数ｆの演算後に複素プーリング層１８を設けることで、低い周波数成分にある主要な情報を、効果的に集約させることができる。
ここで述べる情報の集約とはローパスフィルタ(例えば、ガウシアンフィルタ)によって高周波成分が除去されたことを意味する。
【０２０６】
なお、隠れ層を多層化したＮＮにおいて、複素プーリング層１８は、複素活性化層１４の直後だけでなく、複素活性化層１４の前段に設けるのも望ましい。
【０２０７】
また、上記実施の形態４を適用すると、プーリング（空間周波数領域では複素プーリング）についても解析することができ、以下に説明する。
上述したように、空間領域におけるプーリングは大別して最大値プーリングと平均値プーリングがある。例えば２×２のビットで画像を切り取っていき、その２×２のビットの中で最大値、または平均値を出力する演算である。この演算はぼかしの効果がある。また、ぼかすことによって、入力画像の位置がずれたり、回転したりした場合でも同一の画像として認識できる効果を生むことができる。
【０２０８】
一方、上記実施の形態４を適用して空間周波数領域で複素プーリングを解析すると、プーリングの演算は、ローパスフィルタとなっていることが分かる。また、最大値プーリングおよび平均値プーリングは、フィルタのカットオフ周波数でのエッジの鋭さだけの違いであることが分かる。
このため、空間領域でのプーリングは、物理的に曖昧な意味を持つものであったが、空間周波数領域では明示的なフィルタとして複素プーリングを作用させることができる。これにより、複素プーリングは、空間領域でのフィルタよりも、推論における精度の高い深層学習モデルを構築することができる。更に、ローパスフィルタ以外にもＤＣ成分と高周波成分だけを除去するバンドパスフィルタなど、任意のフィルタを構築することができるため、自由度の高い深層学習モデルを構築できる。
【０２０９】
この複素プーリングがローパスフィルタになっていることは、活性化関数（空間周波数領域では複素活性化関数）と大きなつながりがある。上述のとおり活性化関数は低周波成分を生む作用がある。それに対してローパスフィルタをかけると、活性化関数によって発生した低周波成分は残し、入力信号本来の高い周波数成分は除去する構成にすることもできる。但し、ローパスフィルタのカットオフ周波数、即ちローパスフィルタの設計に依存する。
【０２１０】
上記実施の形態４を、この実施の形態５に適用してＣＮＮを解析した内容をまとめると、以下のような結果が得られる。ＣＮＮとは、訓練によって得られるフィルタを畳み込み、画像のエッジを抽出し、活性化関数となる非線形関数によって低周波成分に信号を発生させ、プーリングによって低周波成分に現れた周波数成分を残し、それ以外の成分を除去し学習させる手法である。
【０２１１】
実施の形態６．
実施の形態６は、上記実施の形態１〜５によるＮＮに、複素バッチ正規化層を備えたものである。図１６は、この実施の形態６によるＮＮの構成を示す図であり、上記実施の形態１で示した図４に対応する部分詳細図である。
この場合、結合層１３と複素活性化層１４との間に複素バッチ正規化層１９を設ける例を示すが、これ以外にも、複素活性化層１４の後段、あるいは結合層１３の前段に設けても良い。
【０２１２】
学習に用いるデータの分布（平均値および標準偏差）が訓練時と推論時に異なる、即ち、ずれが発生することを共変量シフトと呼ぶ。ＮＮにおいて、訓練中に各隠れ層の間での共変量シフトを内部共変量シフトと呼び、内部共変量シフトのずれは伝搬する。ＮＮの隠れ層の数が多くなるにつれて、ずれが伝搬し出力層に近い上位層の重み付けにかかる学習に時間がかかる。そして、場合によっては学習が進まなくなることもある。
このため、空間領域では、訓練にかかる時間を短縮するバッチ正規化と呼ばれる手法を用いる場合がある。空間領域でのバッチ正規化は、一つの隠れ層の入力（通常は行列）の平均と標準偏差をとり、その入力から平均値を引いたものを、標準偏差で除算した演算を行う。
【０２１３】
この実施の形態６による複素バッチ正規化層１９は、空間領域でのバッチ正規化に対応する空間周波数領域での複素バッチ正規化を行う隠れ層である。
複素バッチ正規化は、空間周波数領域においても、振幅信号のみに対して空間領域でのバッチ正規化と同様の演算を行うことで、内部共変量シフトの影響を低減でき、訓練にかかる時間を短縮できる。
この場合、複素バッチ正規化層１９を、結合層１３と複素活性化層１４との間に配したため、複素バッチ正規化層１９は、振幅結合層１３Ａが出力する第２振幅信号２２ｒのみを複素バッチ正規化して振幅信号２２ｒａを出力する。
【０２１４】
なお、複素バッチ正規化層１９を設けることによる計算精度へのデメリットは小さいことから、複素プーリング層１８の前または後、あるいは、後述する振幅対数化層、軸対数化層などの隠れ層の前または後に、複素バッチ正規化層１９を設けても良い。
また、複素バッチ正規化層１９自体の演算時間が影響して学習に時間がかかる場合には、複素バッチ正規化層１９の数を減らし、以下の方法で対応するのが望ましい。即ち、複素活性化関数ｆの変更、重み行列Ｗの初期値の事前学習、勾配降下法における学習係数を下げる、ドロップアウト層あるいは疎結合層などによりＮＮの自由度を制約する方法で対応する。
【０２１５】
実施の形態７．
実施の形態７は、上記実施の形態１〜６によるＮＮに、振幅対数化層および逆振幅対数化層を備えたものである。図１７は、この実施の形態７によるＮＮの構成を示す図であり、振幅対数化層および逆振幅対数化層を上記実施の形態６に適用した場合を示し、図１６に対応するＮＮの部分詳細図である。
図１７に示すように、フーリエ変換層１２と結合層１３との間に振幅対数化層１０Ａを設け、さらに、逆フーリエ変換層１５の前段に逆振幅対数化層１０Ｂを設ける。
【０２１６】
入力信号２０がフーリエ変換層１２でフーリエ変換されて、第１振幅信号２１ｒと第１位相信号２１θとに分割されると、第１振幅信号２１ｒにおいて、周波数軸の特定の周波数の振幅信号に大きな振幅を持つ信号が発生することがある。その場合、大きな振幅を持つ信号により、振幅信号となる行列の他の成分がほぼ０になって画像の特徴を失い、大きな振幅の箇所のみを学習することがある。
この実施の形態７では、振幅対数化層１０Ａが、第１振幅信号２１ｒ（振幅行列）の振幅に対して対数を演算し、即ち、振幅を対数化した振幅信号２１ｒａを生成して出力する。これにより、フーリエ変換後に発生する、大きな振幅を持つ信号による悪影響を抑制して学習の信頼性を高めることができる。
【０２１７】
入力信号をｘ、基数をａとすると、振幅を対数化する演算による出力信号ｙは、
ｙ＝ｌｏｇａｘ
となる。ここで、基数ａは自然対数ｅ、２、または１０を使うのが一般的であるが、その他の実数でも良い。
通常の画像においては、入力信号の大きさが２〜３桁程度異なることもあるが、例えば基数１０を使った場合には３桁異なっていても３倍の変化となり、小さな振幅を持つ信号には敏感になり、大きな振幅を持つ信号には鈍感になるように学習させることができる。
【０２１８】
なお、対数化された信号に対して０より大きい実数である定数ｂを乗じ、入力信号が０となるのを回避するための誤差成分δを用いて、以下の演算式を用いて振幅信号２１ｒａを生成しても良い。
ｙ＝ｂ・ｌｏｇａ（ｘ＋δ）
なお、誤差成分δは、振幅行列の要素として０を持たない場合には入力する必要がなく、振幅行列の要素として０を持つ場合は、０を除く最小値よりも一桁以上小さい値を入力するのが望ましい。
【０２１９】
また、定数ｂは、出力値ｙが、情報処理装置の丸め込み誤差よりも小さくなること、あるいは過大になることを避ける目的で用いられるもので、１０または２０が用いられることが多いが、その他の実数でも良い。
【０２２０】
逆フーリエ変換層１５の前段に設けた逆振幅対数化層１０Ｂでは、入力される振幅信号（第３振幅信号２３ｒ）の振幅（対数化された振幅）を真数に戻して振幅信号２３ｒａを生成して出力する。この演算は、入力信号をｘとすると、出力信号をｙとすると、以下の式（２７）または式（２８）が用いられる。
【０２２１】
【数２７】
0006742554.tif 000028
【０２２２】
【数２８】
0006742554.tif 000029
【０２２３】
実施の形態８．
実施の形態８は、上記実施の形態１〜７によるＮＮに、軸対数化層および逆軸対数化層を備えたものである。図１８は、この実施の形態８によるＮＮの構成を示す図であり、軸対数化層および逆軸対数化層を上記実施の形態６に適用した場合を示し、図１６に対応するＮＮの部分詳細図である。
図１８に示すように、フーリエ変換層１２と結合層１３との間に軸対数化層１０Ｃを設け、さらに、逆フーリエ変換層１５の前段に逆軸対数化層１０Ｄを設ける。
【０２２４】
軸対数化層１０Ｃについて、以下に説明する。
この実施の形態においても、簡単のために、学習に用いる入力データは２次元データとする。２次元データの一方の軸をＸ軸、他方の軸をＹ軸と呼ぶ。
フーリエ変換層１２でフーリエ変換された後の第１振幅信号２１ｒおよび第１位相信号２１θのＸ軸、Ｙ軸は、入力データと同様に真数である。第１振幅信号２１ｒおよび第１位相信号２１θは、軸対数化層１０Ｃに入力され、軸対数化層１０Ｃは、第１振幅信号２１ｒおよび第１位相信号２１θのＸ軸、Ｙ軸の各軸に対して対数を用い、即ち、軸対数化した振幅信号２１ｒｂ、位相信号２１θｂを生成して出力する。
なお、基数は０以上の実数であれば良い。
【０２２５】
これにより、振幅信号２１ｒｂ、位相信号２１θｂは、Ｘ軸、Ｙ軸の各軸において、低周波成分を強調した２次元データとすることができる。これはダイナミックレンジが広がったと考えることができ、低周波成分における小さな変化も見逃すことなく、学習させることができる。なお、従来のＣＮＮでは、このような手法を用いる事はできない。
この実施の形態においては、情報量の多い低周波成分の情報を強調し、情報量の少ない高周波成分の情報を抑圧することができ、信頼性の高い学習を効率良く進めることができる。
【０２２６】
逆フーリエ変換層１５の前段に設けた逆軸対数化層１０Ｄでは、入力される振幅信号（第３振幅信号２３ｒ）および位相信号（第２位相信号２２θ）のＸ軸、Ｙ軸を真数に戻して振幅信号２３ｒｂおよび位相信号２２θｂを生成して出力する。但し、Ｘ軸、Ｙ軸を真数に戻す逆軸対数化に関しては、後段の逆フーリエ変換層１５において逆フーリエ変換が可能であれば、必ずしも必要ではない。
【０２２７】
振幅信号２１ｒｂおよび位相信号２１θｂは、軸対数化によって低周波側のサンプリング間隔が荒い画像となる場合がある。そのような場合には、補間を行う。補間は線形補間、多項式補間、スプライン補間など公知の方法を用いる。
さらに、スペクトログラムのようにＸ軸とＹ軸とで物理量が異なる場合においては、一方の軸のみを軸対数化してもよい。また、同じ物理量においても、Ｘ軸とＹ軸とで学習の観点が異なる場合においては、同様に、一方の軸のみ軸対数化しても構わない。
【０２２８】
なお、この実施の形態８を上記実施の形態７に適用した場合、振幅をＺ軸とすると、Ｘ軸、Ｙ軸、Ｚ軸の全ての軸に対して対数化することになり、即ち全対数化の処理となる。上記実施の形態７の振幅対数化層１０Ａ、逆振幅対数化層１０Ｂを、この実施の形態８の軸対数化層１０Ｃ、逆軸対数化層１０Ｄと合成して、全対数化および逆全対数化を行う全対数化層および逆全対数化層を構成することもできる。全対数化層を通すことにより、振幅信号（第１振幅信号２１ｒ）の行列は行、列、各要素ともに対数となり、位相信号（第１位相信号２１θ）の行列は行、列が対数となる。
【０２２９】
実施の形態９．
図１９は、この実施の形態９によるＮＮの構成を示す図である。
図１９に示すように、ＮＮは、入力層１１Ａから順に、振幅結合層１３Ａおよび位相結合層１３Ｂから成り、複素畳み込み演算を行う結合層１３、複素活性化関数ｆを用いた演算を行う複素活性化層１４、複素プーリング層１８、逆フーリエ変換層１５、出力層１６および出力１７を備えて構成される。
そして、ＮＮの前処理でフーリエ変換を行う演算部となるフーリエ変換層１２ＡをＮＮとは別に備え、フーリエ変換層１２Ａは、入力される空間領域の入力信号２０をフーリエ変換し、空間周波数領域の信号である第１振幅信号２１ｒと第１位相信号２１θとを出力する。
【０２３０】
この実施の形態９では、ＮＮの入力層１１Ａは、空間周波数領域の信号である第１振幅信号２１ｒと第１位相信号２１θを入力信号として上位層である結合層１３に受け渡す。
このため、ＮＮの中でフーリエ変換を行わなくても良く、学習時フーリエ変換層での繰り返し計算することが不要になり、またその逆伝搬の計算も不要となるため、計算時間を短縮することができる。
【０２３１】
なお、この場合、複素プーリング層１８を備えた例を示したが、上記各実施の形態１〜８で示したＮＮにおいても、この実施の形態を適用して、フーリエ変換層１２ＡをＮＮとは別にして、フーリエ変換をＮＮの前処理で行うことができる。
【０２３２】
実施の形態１０．
図２０は、この実施の形態１０によるＮＮの構成を示す図である。
図２０に示すように、ＮＮは、入力層１１から順に、畳み込み演算を行う畳み込み層２、活性化関数３、フーリエ変換層１２、振幅結合層１３Ａおよび位相結合層１３Ｂから成り、複素畳み込み演算を行う結合層１３、複素活性化関数ｆを用いた演算を行う複素活性化層１４、複素プーリング層１８、逆フーリエ変換層１５、出力層１６および出力１７を備えて構成される。この場合、上記実施の形態５によるＮＮの入力層１１の後段に、畳み込み層２および活性化関数３を挿入した例である。
【０２３３】
空間信号である入力信号２０は、空間領域において、畳み込み層２においてカーネルを用いて畳み込み演算された後に活性化関数３を用いて演算される。活性化関数３による演算後の空間信号は、フーリエ変換層１２で、第１振幅信号２１ｒと第１位相信号２１θとに分割される。その後の演算は、上記実施の形態５と同様である。
【０２３４】
この実施の形態では、フーリエ変換層１２の前段に、空間領域での隠れ層となる畳み込み層２および活性化関数３を備える。このため、空間領域と空間周波数領域とを組み合わせたＮＮとなる。
例えば、ＲＧＢを組み合わせて構成される入力信号２０に対しては、ＣＮＮにおいては入力層で色彩ごとに入力データを分割する方法が用いられる。カラー画像の場合は通常、縦と横の情報の他に、ＲＧＢの色彩の次元であるチャンネル方向の３次元形状となる。この３次元形状には、空間的に近い画素間は類似する値が多い、等の空間情報が含まれている。また、ＲＧＢの各チャンネルの間にはそれぞれに密接な関係がある、あるいは距離の離れた画素同士はあまり関わりがない等、３次元形状は、画像の本質的な情報を含んでいる場合がある。
畳み込み層２は、これらの情報を抽出して保持することができる。
【０２３５】
この実施の形態では、複素畳み込み演算、複素活性化関数ｆおよび複素プーリング等、空間周波数領域での特有な手法を用いることができ、空間領域では不可能な計算が可能になる。特に、空間領域では画像の局所的な変化量大局的な変化量を調べるのは困難であったが、この実施の形態では、これらの情報を保持したまま学習推論を進めることができる。フーリエ変換によって失われる特徴量の物理的な位置関係については、入力層１１の近くに畳み込み層２および活性化関数３を設けることで、情報を残すことが可能になる。このため、学習と推論とを高い精度で行うことができる。
【０２３６】
上記例では、畳み込み層２および活性化関数３を各１層のみ設けたが、通常、ＮＮは多層化されて構成され、入力層１１とフーリエ変換層１２との間に、畳み込み層２を１〜５層程度有する層数の少ないＣＮＮを挿入して全体のＮＮが構成される。そして、フーリエ変換層１２と出力層１６との間で、上記実施の形態１と同様に訓練を行う。
これにより、３次元以上の多次元の入力データに対しても高速化することができる。
【０２３７】
なお、空間領域のＣＮＮのみの第１比較例と比べて、計算の軽量化が図れるため一度の学習で処理できる画像を多くすることができる。そのため、同じ計算量と考えた場合、第１比較例を用いた場合に比べてより高い精度を期待できる。
【０２３８】
上記実施の形態１０では、フーリエ変換層１２の前段に、空間領域での隠れ層となる畳み込み層２および活性化関数３を設けたものを示したが、逆フーリエ変換層１５と出力層１６との間に、畳み込み層２および活性化関数３を設けても良く、フーリエ変換層１２の前段および逆フーリエ変換層１５の後段の双方に設けても良い。
【０２３９】
実施の形態１１．
この実施の形態１１では、上記各実施の形態１〜１０にて示した情報処理装置によるＮＮを用いて制御動作を行う電子機器について説明する。
本願による情報処理装置は、空気調和機に搭載されるセンサ情報の処理、ファクトリーオートメーションにおける工場で使用されるサーボシステム等のセンサ情報の処理、あるいは、車内屋外に取り付けられたセンサ情報の処理等に用いられる。従来、これらの処理は、ＣＮＮを用いるために、ニューラルネットワーク処理専用のＧＰＵ、ＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、あるいはＦＰＧＡを用意する必要があった。一方、この実施の形態によれば、空気調和機、サーボシステム、車載センサ等の情報を、既存のＣＰＵマイコン、メモリを含む汎用のハードウェアで処理することが可能となる。
【０２４０】
図２１は、この実施の形態１１による電子機器としての空気調和機の構成例を示す図である。空気調和機は、本願による情報処理装置５０と、対象物５８を認識する赤外線センサ５１と、送風部５２とを備える。情報処理装置５０は、データを入力する入力部５３と、入力部５３から入力されたデータを解析する解析部５４と、解析した結果を記録する記憶部５５と、解析した結果を対象物５８と判定する判定部５６と、各部を制御する制御部５７とを備える。
情報処理装置５０は、制御部５７から、少なくとも送風部５２の風向きと風量、温度を制御する。
【０２４１】
この場合、解析部５４、判定部５６および制御部５７が、全体として、図１で示すハードウェア１００のＣＰＵ３０の機能を有し、記憶部５５がハードウェア１００のＲＯＭ３１およびＲＡＭ３２の機能を有する。
そして、情報処理装置５０は、赤外線センサ５１の出力信号を入力信号とし、入力信号から生体の位置および温度変化を学習する学習プロセスと、該学習プロセスで得た情報を元に入力信号に基づいて推論を行う推論プロセスとを備え、該推論プロセスに基づいて制御動作を行う。
【０２４２】
以下に、ＮＮを用いた情報処理装置５０の動作について説明する。
情報処理装置５０では、ＮＮが赤外線センサ５１からの入力信号から生体の位置および生体の温度変化を推論するプロセスを有する。生体の位置は生体の温度を情報処理装置５０を用いて検知することで行う。また、生体の温度変化から各生体にあった温度を予測する処理を情報処理装置５０によって行う。
【０２４３】
空気調和機の使用にあたっては、事前にＮＮに学習させておき、そのＮＮの学習結果である重み行列Ｗを記憶部５５に保存する方法、またはＮＮの重み行列Ｗの一部を空気調和機を取り付け後の環境に合わせて学習により習得させる方法を用いる。事前にＮＮを学習させる場合、情報処理装置５０は、学習プロセスと推論プロセスとの内、推論プロセスのみ備え、推論時に記憶部５５にある重み行列Ｗを呼び出し、赤外線センサ５１からの入力信号に対して演算する。重み行列Ｗの一部を環境に合わせて学習する場合、上記実施の形態１〜１０に記載のＮＮの訓練を行う。
【０２４４】
特に空気調和機の場合には、正解ラベルは、例えば部屋の構造を把握するものとし、各生体と空気調和機との距離、あるいは各生体にとっての適切な温度風量を把握して制御する機構等を設ける。部屋の構造に関しては、例えば温度変化しないものを部屋、家具等と認識し、温度変化するものを扉、生体等と認識する。
また、各生体にとっての適切な温度風量に関して、例えばコントローラの位置を把握できる機構（例えば、コントローラの先に赤外線を吸収あるいは反射する部材）を設け、各生体が空気調和機のコントローラを操作した際の情報を正解ラベルとして用いる。その際、ＮＮにより、例えば、異なる生体を動き、体温、輪郭等の特徴量を抽出して認識する処理を行う。
【０２４５】
その他、ＮＮにより、例えば、冷風あるいは温風を対象物５８に当てたときの温度変化から生体か、調理器などの物体であるかを判断しても良い。さらに、ＮＮにより、各生体に対しても風を当てる/当てないと言う判断を各生体を識別して行う、また、調理器に関しては風を当てないなどの判断を行っても良い。
学習したＮＮの重み行列Ｗは、記憶部５５に保存し、空気調和機の次に起動時に、記憶部５５から読み込み使用する。
【０２４６】
さらに、ＮＮに入力する前に画像データの最大値を１、最小値を０にする正規化を行う、画像データの平均を０、分散を１にする標準化等の前処理を行う、起動時のみに学習するバッチ学習を行う、あるいは、起動中にも状況に応じて随時学習を行うオンライン学習を用いても良い。
【０２４７】
なお、図２１では、空気調和機の送風部５２は１つとしたが、複数個の送風部５２を設けても良い。例えば、異なる温度、風量を出力可能な２つの送風部５２を設け、ＮＮの処理結果に応じて、各生体に応じた温度、風量を送る機構を備える。また、２つの送風部５２により、適切に室内の空気を混ぜ合わせて温度調整することができる。
また、ＮＮの学習により、各生体の識別も実施できるため、その情報を組み合わせて様々な機能を有する空気調和機を構成することができる。また、複数の生体が同時に居る場合にも、各送風部５２が風向きを調整する羽を固定して、各生体にとって適切な温度、風量を持った風を連続して送り続けることができる。
【０２４８】
一般に、空気調和機においては、室内にある物品、人、扉の開閉等を認識するため、赤外線センサ、さらに距離センサ等が用いられる。このシステムにおいては、赤外線センサ等のセンサ信号を入力信号として、室内にある物品、人、扉の開閉等を出力信号とするＮＮとなる。近年、赤外線センサ等の性能向上により、取得する情報量（画素数）は大きくなり、さらに、リアルタイムでの応答が求められる。このため、それに応じて情報を処理するためのハードウェアの大型、大電力化が不可欠となりつつある。
【０２４９】
この実施の形態による空気調和機では、大型、大電力化を抑制して、処理を高速化できる。このため、消費電力を低減でき、放熱のための追加構造も不要となり、室内機の小型化と共に、室内機の高効率化を図ることができる。
【０２５０】
さらに、大規模な計算を要する場合、従来では、ＷＷＷのような情報ネットワークを通じて、計算機サーバのような大規模な計算を得意とする計算機経由で計算を行い、その計算機の結果をＷＷＷを通じて空気調和機に戻す作業が行われていた。この実施の形態による空気調和機では、ＷＷＷのような情報ネットワークを利用する必要が無く、それらの通信にかかる電力およびタイムラグを低減でき、より快適な空気調和機のシステムを、ユーザに提供することができる。
【０２５１】
図２２は、この実施の形態１１の別例による電子機器として、サーボシステムを構成する電子機器の構成を示す図である。電子機器は、本願による情報処理装置５０と、電磁波を検出するセンサ５１ａと、動作部５２ａとを備える。情報処理装置５０は、データを入力する入力部５３と、入力部５３から入力されたデータを解析する解析部５４と、解析した結果を記録する記憶部５５と、解析した結果を判定する判定部５６と、各部を制御する制御部５７とを備える。
情報処理装置５０は、制御部５７から、動作部５２ａの動作停止、異常物排除の少なくとも一方を制御する。
【０２５２】
この場合も、解析部５４、判定部５６および制御部５７が、全体として、図１で示すハードウェア１００のＣＰＵ３０の機能を有し、記憶部５５がハードウェア１００のＲＯＭ３１およびＲＡＭ３２の機能を有する。
そして、情報処理装置５０は、センサ５１ａの出力信号を入力信号とし、入力信号から物体の位置変化量、電界、磁界、温度の内、少なくとも１つを学習する学習プロセスと、該学習プロセスで得た情報を元に入力信号に基づいて推論を行う推論プロセスとを備え、該推論プロセスに基づいて制御動作を行う。
なお、この場合も、事前にＮＮを学習させても良く、情報処理装置５０は、学習プロセスと推論プロセスとの内、少なくとも推論プロセスを備え、推論時に記憶部５５にある重み行列Ｗを呼び出して用いる。
【０２５３】
一般に、サーボシステムに取り付けられる情報処理装置では、ＮＮを用いた演算にて、サーボシステムを用いて生産を行っている物品の位置の監視、物品に記載された文字、色、バーコード、不良の有無等を分析する。ＮＮには、カメラ等のＣＣＤ、ＣＭＯＳイメージセンサ、近傍界アンテナ、あるいは遠方界アンテナで読み取った信号を入力する。
サーボシステムは高速で動作するため、瞬時の判断が求められ、従来から、ＣＮＮが用いられることがあったが、高速化のために探索範囲を小さくして画像を小型化していた。  この実施の形態による電子機器をサーボシステムに用いる事により、大きな画像で同等の処理速度を維持できるため、より少ないセンサで広範囲の情報を処理することができ、より層数の多いＮＮを用いて精度向上を図ることができる。
【０２５４】
この実施の形態によるサーボシステムでは、ＷＷＷのような情報ネットワークを利用する必要が無く、それらの通信にかかる電力およびタイムラグを低減でき、より迅速に応答するサーボシステムを、ユーザに提供することができる。
サーボシステムは複数のサーボモータを連携した同時刻の制御が要求されるためリアルタイム性が重視される。また、動作異常時には迅速に状況を判断し、必要に応じて停止、再開する必要がある。この実施の形態によるサーボシステムでは、迅速な応答により、異常時の製造および動作を迅速に回避できる。このため、廃棄物となる無駄の削減ができ、また、装置が異常な体勢で動作することによる装置間の衝突等に起因する故障の低減ができる。
【０２５５】
また、上述したサーボシステムを構成する電子機器として、例えば以下に示す自立型ロボットがある。自立型ロボットは、センサ５１ａとして、カメラ等のＣＣＤ、ＣＭＯＳイメージセンサ、近傍界アンテナ、遠方界アンテナの少なくとも１つを備え、物品の位置の監視、および該物品に記載された文字、色、バーコードの少なくとも１つを識別して判断可能とする。
センサ５１ａは、自立型ロボットに直接、あるいは周囲に取り付けられる。情報処理装置５０は、センサ５１ａから入力される入力信号からセンサ５１ａ自体が持つノイズ、あるいはセンサ５１ａの使用環境に依存するノイズが印加された文字、色、バーコード、または不良の有無を学習する学習プロセスと、学習プロセスで得た情報を元に入力信号に基づいて推論を行う推論プロセスとを備え、推論プロセスに基づいて制御動作を行う。
【０２５６】
この場合も、情報処理装置５０は、学習プロセスと推論プロセスとの内、少なくとも推論プロセスを備えれば良く、その場合、推論時に記憶部５５にある重み行列Ｗを呼び出して用いる。
【０２５７】
他にも、本願による情報処理装置５０を備える電子機器として、車両の自動運転に向けた車載機器である衝突防止装置がある。この場合の構成も図２２で示す場合と同様であり、同様の効果、即ち、低電力で迅速な応答が得られる。
衝突防止装置は、本願による情報処理装置５０と、センサ５１ａと、動作部５２ａとを備える。情報処理装置５０は、データを入力する入力部５３と、入力部５３から入力されたデータを解析する解析部５４と、解析した結果を記録する記憶部５５と、解析した結果を判定する判定部５６と、各部を制御する制御部５７とを備える。
【０２５８】
センサ５１ａは、制御動作の為の情報となる車外環境情報を検出するもので、カメラ等のＣＣＤ、ＣＭＯＳイメージセンサ、レーダ、超音波ソナーの少なくとも１つが用いられる。レーダの場合は、ライダー（Ｌｉｇｈｔ  Ｄｅｔｅｃｔｉｏｎ  ａｎｄ  Ｒａｎｇｉｎｇ）のようにレーザ光を用いたレーダ、ミリ波を用いたレーダ等が用いられる。また、単体のセンサの他、異なるセンサの組み合わせ、あるいは同じセンサを複数用いても良く、運転時の安全性を高めることができる。
情報処理装置５０は、センサ５１ａから入力される入力信号から車外の生体の位置、周囲の車の位置および進行方向、信号機情報、車線情報の少なくとも１つを学習する学習プロセスと、学習プロセスで得た情報を元に入力信号に基づいて推論を行う推論プロセスとを備え、推論プロセスに基づいて制御動作を行う。なお、この場合も少なくとも推論プロセスを備えれば良い。
【０２５９】
この衝突防止装置は、ステアリング、アクセルおよびブレーキを制御可能であるが、情報処理装置５０の制御部５７からの出力としては、大きく分類して、異常時にドライバに警告を出すもの、またはドライバに警告なく車を制御する２種のものがある。異常時の具体例としては、車が車線の逸脱を検知した場合、走行時、先行車との車間距離が近づいた場合、車が進む向き（前後、左右）に人あるいは物体があり、衝突が予想される場合等があり、音、光あるいは振動によってドライバに警告を与えて異常を伝える。車両の高速走行等により、ドライバへの警告では間に合わないと判断される場合は、情報処理装置５０の制御部５７からの指令により動作部５２ａが直接、車を制御する。具体的には、情報処理装置５０がステアリングを電気的に制御して車線の逸脱を回避すること、先行車あるいは前後左右の物体との距離を制御するようにアクセルあるいはブレーキを駆動させる等である。また、車両の周囲の状況を把握して、車両を安全な位置に停車させる等の制御を行う。
【０２６０】
なお、上記衝突防止装置は、車外環境情報を検出するセンサ５１ａのみを備えたが、さらに、可視光あるいは赤外線によるカメラ等のセンサを車内に搭載し、ドライバの体調を判断して異常を検出しても良い。この場合も、車内センサの出力信号を入力信号として、情報処理装置５０によって演算を行い、ドライバの体調、例えば睡眠状態、飲酒状態等を判断する。その判断によってドライバに音、光あるいは振動によって警告を与えること、あるいは車の周囲の状況を把握して、車を安全な位置に停車させる等の制御を行う。
【０２６１】
また、本願による情報処理装置５０を備える電子機器の別例として、ドライバを識別および認証が可能で、車両の盗難、無免許のドライバによる運転等を未然に防ぐ車載機器を、以下に示す。この場合の構成も図２２で示す場合と同様である。
センサ５１ａは、車内に搭載されて制御動作の為の情報となる車内環境情報を検出するもので、カメラ等のＣＣＤ、ＣＭＯＳイメージセンサの少なくとも１つが用いられる。
情報処理装置５０は、センサ５１ａから入力される入力信号からドライバの顔、体格の少なくとも顔を学習する学習プロセスと、学習プロセスで得た情報を元に入力信号に基づいて推論を行う推論プロセスとを備え、推論プロセスに基づいて制御動作を行う。
【０２６２】
この場合、情報処理装置５０は、学習プロセスと推論プロセスとの双方を備え、特定のドライバを学習して、ドライバを識別および認証して、そのドライバのみが車両を操作可能にすることができる。ただし、人の顔および体型は年齢とともに変わっていくことを考慮すると、学習の対象となるデータが入るたびに、そのデータを追加して学習を行うオンライン学習を用いて定期的に情報を更新する。
この実施の形態による車載機器では、ＷＷＷのような情報ネットワークを利用する必要が無く、それらとの接続環境に拘わらず、省エネルギかつ簡易で安価な構成にてドライバの識別および認証を迅速に行う事ができる。
【０２６３】
さらに、本願による情報処理装置５０を備える電子機器として、監視カメラを適用することもできる。例えば、センサ５１ａとなるカメラからの可視光の映像を情報処理装置５０に入力し、情報処理装置５０は、例えば、各個人に割り振られたＩＤ（日本においてはマイナンバ、パスポートの旅券番号等）を出力する。その他、監視カメラにより各個人の行動をリアルタイムに監視することができる。
この実施の形態では、監視カメラの映像をＷＷＷのような情報ネットワークを介してアップロードする必要が無く、情報処理装置５０で分散処理することによって、情報量を削減できる。例えば、監視カメラ１台あたり、従来では１ＭＢ／ｓの情報量を扱っていたが、この実施の形態では、１ｋＢ／ｓの情報量を処理すれば良く格段と情報量を削減できる。これによって、個人行動の監視が容易で信頼性良く可能になる。
【０２６４】
上述したドライバを識別および認証する車載機器、および個人行動を監視する監視カメラなどの電子機器では、ＣＣＤ、あるいはＣＭＯＳイメージセンサで読み取った入力信号を用い、人の行動、状態等を出力信号とする。画像を入力情報とする際には、ＮＮの多層化により高速化、高精度化が可能である。この場合、上述した空気調和機あるいはサーボシステム等の電子機器に比べると、電力および計算機の使用に制約が少ないが、この実施の形態による電子機器を用いる事で、さらに、高速化、高精度化が図れる。特に、実施の形態１０を適用したＮＮを用いた電子機器により、空間領域と空間周波数領域との双方の演算により、効果的に精度向上が図れる。
【０２６５】
なお、図２１および図２２では、センサ５１、５１ａを備える電子機器を示したが、本願による情報処理装置５０は、センサ５１、５１ａを設けない電子機器にも適用できる。その場合、情報処理装置５０内で演算により生成された信号を入力信号として用いる。この場合も、入力信号に基づいて学習を行う学習プロセスと、学習プロセスで得た情報を元に前記入力信号に基づいて推論を行う推論プロセスとの内、少なくとも前記推論プロセスを備え、該推論プロセスに基づいて前記制御動作を行う。
【０２６６】
また、上述した以外にも、文字、色、光の強さ、寸法、形状、位置、角度、速度または加速度に伴う物体の位置変化量、電界、磁界、温度の内、少なくとも１つを推論する電子機器に、本願による情報処理装置は適用できる。
【０２６７】
本願は、様々な例示的な実施の形態及び実施例が記載されているが、１つ、または複数の実施の形態に記載された様々な特徴、態様、及び機能は特定の実施の形態の適用に限られるのではなく、単独で、または様々な組み合わせで実施の形態に適用可能である。
従って、例示されていない無数の変形例が、本願に開示される技術の範囲内において想定される。例えば、少なくとも１つの構成要素を変形する場合、追加する場合または省略する場合、さらには、少なくとも１つの構成要素を抽出し、他の実施の形態の構成要素と組み合わせる場合が含まれるものとする。
【符号の説明】
【０２６８】
２  畳み込み層、１０Ａ  振幅対数化層、１０Ｂ  逆振幅対数化層、１０Ｃ  軸対数化層、１１，１１Ａ  入力層、１２，１２Ａ  フーリエ変換層、１３Ａ  振幅結合層、１３Ｂ  位相結合層、１４  複素活性化層、１５  逆フーリエ変換層、１６  出力層、１８  複素プーリング層、２０  入力信号、２１ｒ  第１振幅信号、２１θ  第１位相信号、２２ｒ  第２振幅信号、２２θ  第２位相信号、５０  情報処理装置、５１  赤外線センサ、５１ａ  センサ、１００  ハードウェア、ｆ  複素活性化関数、Ｌｒ，Ｌθ  微小行列、Ｗ１  第１重み行列、Ｗ２  第２重み行列。
【要約】
ニューラルネットワークを用いて信号処理する情報処理装置（１００）は、入力信号（２０）をフーリエ変換し、第１振幅信号（２１ｒ）と第１位相信号（２１θ）とを出力するフーリエ変換層（１２）と、訓練によって値を更新する第１重み行列（Ｗ１）を第１振幅信号（２１ｒ）にかけて第２振幅信号（２２ｒ）を出力する振幅結合層（１３Ａ）と、訓練によって値を更新する第２重み行列（Ｗ２）を第１位相信号（２１θ）にかけて第２位相信号（２２θ）を出力する位相結合層（１３Ｂ）と、空間周波数領域の複素活性化関数ｆを用いて、第２振幅信号（２２ｒ）および第２位相信号（２２θ）の内、少なくとも第２振幅信号（２２ｒ）を更新する複素活性化層（１４）と、更新後の信号を組み合わせて逆フーリエ変換する逆フーリエ変換層（１５）とを備える。【図１】
0006742554.tif 000030
【図２】
0006742554.tif 000031
【図３】
0006742554.tif 000032
【図４】
0006742554.tif 000033
【図５】
0006742554.tif 000034
【図６】
0006742554.tif 000035
【図７】
0006742554.tif 000036
【図８】
0006742554.tif 000037
【図９】
0006742554.tif 000038
【図１０】
0006742554.tif 000039
【図１１】
0006742554.tif 000040
【図１２】
0006742554.tif 000041
【図１３】
0006742554.tif 000042
【図１４】
0006742554.tif 000043
【図１５】
0006742554.tif 000044
【図１６】
0006742554.tif 000045
【図１７】
0006742554.tif 000046
【図１８】
0006742554.tif 000047
【図１９】
0006742554.tif 000048
【図２０】
0006742554.tif 000049
【図２１】
0006742554.tif 000050
【図２２】
0006742554.tif 000051