(57)【特許請求の範囲】
【請求項１】
コンピュータによるニューラルネットワーク設計方法であって、
設計対象となるリカレントニューラルネットワーク（ＲＮＮ：Recurrent Neural Network）回路を、固有振動を出力する複数の振動系ＲＮＮ回路と、前記複数の振動系ＲＮＮ回路の出力の和を求める加算回路とを含むように形成する形成手順と、
前記複数の振動系ＲＮＮ回路に離散値データを入力し、前記加算回路から出力される前記離散値データに対するフィッティング曲線を計算する計算手順
を前記コンピュータに実行させることを特徴とする、ニューラルネットワーク設計方法。
【請求項２】
コンピュータによるニューラルネットワークを設計させるプログラムであって、
設計対象となるリカレントニューラルネットワーク（ＲＮＮ：Recurrent Neural Network）回路を、固有振動を出力する複数の振動系ＲＮＮ回路と、前記複数の振動系ＲＮＮ回路の出力の和を求める加算回路とを含むように形成する形成手順と、
前記複数の振動系ＲＮＮ回路に離散値データを入力し、前記加算回路から出力される前記離散値データに対するフィッティング曲線を計算する計算手順
を前記コンピュータに実行させることを特徴とする、プログラム。
【請求項３】
前記計算手順は、
離散値データy0=0, y1,..., y2n-1, y2n=0から次式のa0, a1,..., a2n-1, b1,..., b2n-1を計算して記憶部に格納し、
【数２６】
0005888013.tif 000027
ここで、上記の式中のΨ(x)はガンマ関数の対数の２階微分で定義されるトリガンマ関数（Trigamma Function）であり、a0, a1,..., a2n-1, b1,..., b2n-1は時間tによらない固定値であり、
前記固定値a0, a1,..., a2n-1, b1,..., b2n-1を使って次式で定義されるフィッティング曲線を計算して前記記憶部に格納し、
【数２７】
0005888013.tif 000028
上記の式中、cos(qπt/n), sin(qπt/n)は振動系の関数であり前記複数の振動系のＲＮＮ回路から出力されることを特徴とする、請求項２記載のプログラム。
【請求項４】
前記複数の振動系ＲＮＮ回路の各々の処理は次式の微分方程式で表され、
【数２８】
0005888013.tif 000029
前記複数の振動系ＲＮＮ回路の各々から出力される前記微分方程式の解は
【数２９】
0005888013.tif 000030
で表されることを特徴とする、請求項３記載のプログラム。
【請求項５】
前記フィッティング曲線にフィルタリングを施したのと同等の、フィルタリングされたフィッティング曲線を出力するフィルタ手順
を前記コンピュータにさらに実行させ、
前記フィルタ手順は、前記離散値データにフィルタリングを施すことにより得られる離散値データを前記複数の振動系ＲＮＮ回路に入力することを特徴とする、請求項２乃至４のいずれか１項記載のプログラム。
【請求項６】
リカレントニューラルネットワーク（ＲＮＮ：Recurrent Neural Network）回路によるデジタル／アナログフィッティング方法であって、
離散値データを固有振動を出力する複数の振動系ＲＮＮ回路に入力して前記複数の振動系ＲＮＮ回路から出力される振動系の関数を計算する第１の処理と、
前記複数の振動系ＲＮＮ回路から出力される振動系の関数を加算回路で加算して前記離散値データに対するフィッティング曲線を計算する第２の処理
をコンピュータに実行させることを特徴とする、デジタル／アナログフィッティング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理モデルに適用可能なニューラルネットワークを設計するニューラルネットワーク設計方法、コンピュータにニューラルネットワークを設計させるプログラム、及びデジタルアナログフィッティング方法に関する。本発明は、このようなプログラムを格納したコンピュータ読み取り可能な記憶媒体にも関する。
【背景技術】
【０００２】
リカレントニューラルネットワーク（ＲＮＮ：Recurrent Neural Network）は、ロボットの動作などに適用するために開発されたニューラルネットワークであるが、ロボットの動作のみならず、歩数計や音声解析装置などの様々な電子装置などの物理モデルに対して適用可能である。ＲＮＮ自体は、例えば非特許文献１などにて提案されている。
【０００３】
ＲＮＮは、ニューロンと結線からなるネットワークであり、ニューロンと入出力の結線との関係式は図１のように与えられる。図１において、εiは遅れパラメータ、yi, yjはニューロンの状態量、Cijは重み係数、tは時間を表し、ニューロンの状態量を表すyiをニューロンと同一視する場合もある。
【０００４】
図１の関係式の拡張として、図２のような関係式も考えられる。図２は、図１の構成に加え、値giがニューロンyiに入力されることを示し、値giはこのＲＮＮ回路のニューロン以外で求められた値である。
【０００５】
図３は、ＲＮＮ回路の一例を説明する図である。図３は、２つのニューロンと５つの結線を有するＲＮＮ回路を示す。図３において、εi=1であり、結線に添えられた「１」なる値は重み係数を表す。図３の右上に、このＲＮＮ回路の微分方程式を表し、この微分方程式を解くと図３の右下の解が求められる。このような微分方程式を解くことは、物理的には例えば加速度g(t)が与えられたときの軌道（移動距離）y1(t)を求めることに対応している。従って、図３に示すＲＮＮ回路は、加速度から軌道を求めることができ、ＲＮＮ回路の入出力は連続時間tの関数として表されるため、アナログでの概念となっていることがわかる。
【０００６】
これに対し、加速度センサは、例えば図４に示すように、単位時間毎に値を出力する構成になっており、出力値は離散値（デジタルデータ）である。図４は、加速度センサの出力値の一例を示す図である。図４中、縦軸は加速度センサの出力値を任意単位で示し、横軸は時間を任意単位で示す。図４は、時間t0〜t10における出力値y1〜y10を示す。このため、離散値である加速度センサの出力値を加速度として図３のＲＮＮ回路に代入しようとしても、ＲＮＮ回路がアナログ対応であるためにＲＮＮ回路に入力できない。
【０００７】
図４に示す如き離散値を、図３のＲＮＮ回路に代入するためには、例えば図５に示すように、離散値にフィッティングするアナログ曲線を作成することができれば良い。図５は、離散値にフィッティングするアナログ曲線の一例を示す図である。図５中、図４と同一部分には同一符号を付し、その説明は省略する。離散値にフィッティングするアナログ曲線を作成するには、例えば各離散値を線分でつないだり、スプライン曲線でフィッティングを実現する方法などがある。
【０００８】
そこで、離散値を入力すると、フィッティング曲線が出力されるＲＮＮ回路が実現できれば、このようなＲＮＮ回路と例えば図３のようなＲＮＮ回路を接続することで、より多くのバリエーションの出力が生成可能となる。図６は、離散値の入力からフィッティング曲線を出力するＲＮＮ回路のイメージを示す図である。例えば、図６に示す如きデジタル／アナログ変換を行うＲＮＮ回路と図３のＲＮＮ回路を接合すれば、加速度センサの離散値から軌道を出力できるようになる。しかし、離散値の入力に基づいて、各離散値を線分でつないだ曲線やスプライン曲線を出力するＲＮＮ回路を実現することは困難であることは、以下の理由から容易に理解されよう。
【０００９】
つまり、各離散値を線分でつないだ曲線は、離散値の点で微分不可能であるが、ＲＮＮ回路の出力として得られる全ての曲線は、離散値の点で微分可能であるため、ＲＮＮ回路の出力として得ることはできない。
【００１０】
一方、スプライン曲線は、各離散点を多項式曲線で接続し、多項式曲線はＲＮＮ回路の出力で得ることができる。しかし、各離散点間で多項式曲線を変更するため、各離散点間でＲＮＮ回路の結線の重み係数を変更しなければならず、処理が非常に複雑になる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０００−３１０９９７号公報
【特許文献２】特開平７−２３４６９７号公報
【特許文献３】特開平９−７３４４０号公報
【非特許文献】
【００１２】
【非特許文献１】永嶋史朗、「双線形時間遅れニューラルネットワークによるロボットソフトウェアシステム」、日本ロボット学会誌、Vol.24, No.6, pp.53-64, 2006
【発明の概要】
【発明が解決しようとする課題】
【００１３】
従来技術では、離散値の入力に基づいてフィッティング曲線を出力するＲＮＮ回路を実現することは難しい。
【００１４】
そこで、本発明は、離散値の入力に基づいてフィッティング曲線を出力するＲＮＮ回路を実現可能なニューラルネットワーク設計方法、プログラム及びデジタルアナログフィッティング方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の一観点によれば、コンピュータによるニューラルネットワーク設計方法であって、設計対象となるリカレントニューラルネットワーク（ＲＮＮ：Recurrent Neural Network）回路を、固有振動を出力する複数の振動系ＲＮＮ回路と、前記複数の振動系ＲＮＮ回路の出力の和を求める加算回路とを含むように形成する形成手順と、前記複数の振動系ＲＮＮ回路に離散値データを入力し、前記加算回路から出力される前記離散値データに対するフィッティング曲線を計算する計算手順を前記コンピュータに実行させることを特徴とするニューラルネットワーク設計方法が提供される。
【００１６】
本発明の一観点によれば、コンピュータによるニューラルネットワークを設計させるプログラムであって、設計対象となるリカレントニューラルネットワーク（ＲＮＮ：Recurrent Neural Network）回路を、固有振動を出力する複数の振動系ＲＮＮ回路と、前記複数の振動系ＲＮＮ回路の出力の和を求める加算回路とを含むように形成する形成手順と、前記複数の振動系ＲＮＮ回路に離散値データを入力し、前記加算回路から出力される前記離散値データに対するフィッティング曲線を計算する計算手順を前記コンピュータに実行させることを特徴とするプログラムが提供される。
【００１７】
本発明の一観点によれば、リカレントニューラルネットワーク（ＲＮＮ：Recurrent Neural Network）回路によるデジタル／アナログフィッティング方法であって、離散値データを固有振動を出力する複数の振動系ＲＮＮ回路に入力して前記複数の振動系ＲＮＮ回路から出力される振動系の関数を計算する第１の処理と、前記複数の振動系ＲＮＮ回路から出力される振動系の関数を加算回路で加算して前記離散値データに対するフィッティング曲線を計算する第２の処理をコンピュータに実行させることを特徴とするデジタル／アナログフィッティング方法が提供される。
【発明の効果】
【００１８】
開示のニューラルネットワーク設計方法、プログラム及びデジタルアナログフィッティング方法によれば、離散値の入力に基づいてフィッティング曲線を出力するＲＮＮ回路を実現することができる。
【図面の簡単な説明】
【００１９】
【図１】ニューロンと入出力の結線との関係式を説明する図である
【図２】図１の関係式の拡張を説明する図である。
【図３】ＲＮＮ回路の一例を説明する図である。
【図４】加速度センサの出力値の一例を示す図である。
【図５】離散値にフィッティングするアナログ曲線の一例を示す図である。
【図６】離散値の入力からフィッティング曲線を出力するＲＮＮ回路のイメージを示す図である。
【図７】一実施例で用いるＲＮＮ回路の一例を示す図である。
【図８】一実施例におけるニューラルネットワーク設計方法を、離散値の入力に基づいてフィッティング曲線を出力する場合について示すブロック図である。
【図９】離散値データの一例を示す図である。
【図１０】離散値のフィッティング曲線の一例を示す図である。
【図１１】振動系ＲＮＮ回路の一例を示す図である。
【図１２】フィッティング曲線を出力するためのＲＮＮ回路の一例を示す図である。
【図１３】コンピュータシステムの一例を示すブロック図である。
【図１４】フィッティング曲線のフィルタリングを説明するブロック図である。
【発明を実施するための形態】
【００２０】
開示のニューラルネットワーク設計方法、プログラム及びデジタルアナログフィッティング方法では、リカレントニューラルネットワーク（ＲＮＮ：Recurrent Neural Network）回路を、固有振動を出力する複数の振動系ＲＮＮ回路と、複数の振動系ＲＮＮ回路の出力の和を求める加算回路とを含むように形成する。また、複数の振動系ＲＮＮ回路に離散値データを入力し、加算回路から出力される離散値データに対するフィッティング曲線を計算する。これにより、ＲＮＮ回路を用いたデジタル／アナログフィッティングを実現できる。
【００２１】
以下に、開示のニューラルネットワーク設計方法、プログラム及びデジタルアナログフィッティング方法の各実施例を図面と共に説明する。
【実施例】
【００２２】
例えば図６に示す如きＲＮＮ回路が実現でき、このＲＮＮ回路が離散値の入力に基づいてフィッティング曲線を出力できたとしても、フィッティング曲線は、例えば次式（１）で表される平均処理を満足することが望ましい。
【００２３】
【数１】
0005888013.tif 000002
しかし、フィッティング曲線y(t)の平均を求める場合に、上記の式（１）の左辺のy(t)の積分を直接計算するのでは計算量が多くなり計算処理の負荷が増大して計算時間もかかる。
【００２４】
一方、本発明者は、上記の式（１）の条件を満たしていれば、フィッティング曲線y(t)の積分を直接計算しなくても、元の離散点を足し合わせた結果（即ち、離散点の平均）で、y(t)の積分（即ち、y(t)の平均）が求まることになり、計算量が大幅に減少して計算処理の負荷が軽減されて計算時間も短縮されることを見出した。
【００２５】
そこで、開示のニューラルネットワーク設計方法及びプログラムの一実施例では、元の離散値に対するフィッティング曲線が出力され、さらにこのフィッティング曲線が上記の式（１）のような平均処理を満足するようにするために、ＲＮＮ回路を、固有振動を出力する複数の振動系ＲＮＮ回路と、これら複数の振動系ＲＮＮ回路の出力の和を求める加算回路を含むように構成する。
【００２６】
図７は、一実施例で用いるＲＮＮ回路の一例を示す図である。図７において、ＲＮＮ回路１０は、固有振動を出力する複数の振動系ＲＮＮ回路１１−１〜１１−Ｎ（Ｎは、２以上の自然数）と、これら複数の振動系ＲＮＮ回路１１−１〜１１−Ｎの出力の和を求める加算回路１２とを含むように形成されている。
【００２７】
図８は、一実施例におけるニューラルネットワーク設計方法を、離散値の入力に基づいてフィッティング曲線を出力する場合について示すブロック図である。図８示すパーソナルコンピュータ（ＰＣ：Personal Computer）２０には入力データＩＮが入力され、ＰＣ２０からは出力データＯＵＴが出力される。ＰＣ２０は、汎用コンピュータの一例である。入力データＩＮは、例えば加速度センサ（図示せず）が出力する離散値データである。一方、出力データＯＵＴは、例えば図７に示すＲＮＮ回路１０、または、ＲＮＮ回路１０と図３に示す如き他のＲＮＮ回路との組み合わせにより、入力データＩＮに対して生成される加速度フィッティング曲線または軌道曲線である。この例では、ＰＣ２０はプロセッサの一例であるＣＰＵ（Central Processing Unit）２１と、記憶部の一例であるメモリ２２を有する。ＰＣ２０に入力される入力データＩＮは、入力データファイルとしてメモリ２２に格納されても良く、ＰＣ２０から出力される出力データＯＵＴは、出力データファイルとしてメモリ２２に格納されても良い。なお、ＲＮＮ回路１０と図３に示す如き他のＲＮＮ回路との組み合わせでは、例えばＲＮＮ回路１０の出力が他のＲＮＮ回路に入力される。
【００２８】
メモリ２２は、ＰＣ２０への入力データＩＮ及びＰＣ２０からの出力データＯＵＴを格納すると共に、ＲＮＮ回路のプログラムを格納する。ＲＮＮ回路のプログラムは、ＣＰＵ２１にＲＮＮ回路１０またはＲＮＮ回路１０と図３に示す如き他のＲＮＮ回路との組み合わせの処理を実行させる。ＣＰＵ２１は、メモリ２２に格納されたプログラムと入力データＩＮに基づいて、加速度フィッティング曲線または軌道曲線を計算する。計算された加速度フィッティング曲線または軌道曲線は、出力データＯＵＴとして出力するためにメモリ２２に格納される。ＣＰＵ２１から出力される出力データＯＵＴの応用例としては、例えば出力データＯＵＴ（軌道曲線）をロボット（図示せず）に入力して、ロボットにその軌道曲線上を走行させることも可能である。
【００２９】
離散値データである入力データＩＮをＰＣ２０に入力する際、データ長を設定する必要があるが、図９に示すように実際のデータ長が奇数２ｎ−１（ｎは２以上の自然数）であれば、入力データＩＮのデータ長を実際のデータ長より長い偶数２ｎに設定する。つまり、ＲＮＮ回路１０を形成する際に、入力データＩＮの実際のデータ長が奇数２ｎ−１（即ち、奇数個のデータ）であれば、データ長を２ｎ−１より長い偶数２ｎ（即ち、偶数個のデータ）に設定する。図９は、離散値データの一例を示す図であり、縦軸は離散値を任意単位で示し、横軸は時間を任意単位で示す。また、端点y0とy2nは、y0=0とy2n=0に設定しておく。
【００３０】
次に、離散値データy0=0, y1,..., y2n-1, y2n=0から次式（２）のa0, a1,..., a2n-1, b1,..., b2n-1を計算し、メモリ２２に格納する。
【００３１】
【数２】
0005888013.tif 000003
ここで、上記の式（２）中のΨ(x)はトリガンマ関数（Trigamma Function）であり、ガンマ関数の対数の２階微分で定義される。
【００３２】
また、式（２）で得られたa0, a1,..., a2n-1, b1,..., b2n-1は、時間tによらない固定値である。そして、これらの固定値a0, a1,..., a2n-1, b1,..., b2n-1を使って、フィッティング曲線を次式（３）のように定義する。
【００３３】
【数３】
0005888013.tif 000004
上記の式（３）中、cos(qπt/n), sin(qπt/n)は振動系の関数であり、フィッティング曲線はこれらの振動系の関数を足し合わせることによって得られる。また、上記の式（３）で定義されたフィッティング曲線が上記の式（１）で説明された平均処理を満足することは、次式（４）の式変形によって確認することができる。
【００３４】
【数４】
0005888013.tif 000005
上記の式（３）で定義された関数が、離散値のフィッティング曲線になっているか否かを確認する具体例を、以下に説明する。例えばn=5であり、y0=0, y1=1, y2=-2, y3=3, y4=1, y5=6, y6=-5, y7=-2, y8=-4, y9=2, y10=0の場合、図１０に示す曲線が上記の式（３）で定義されたフィッティング曲線になり、与えられた離散値にフィッティングしていることが確認できる。図１０は、離散値のフィッティング曲線の一例を示す図であり、縦軸は出力値を任意単位で示し、横軸は時間を任意単位で示す。
【００３５】
次に、上記の式（３）で定義されたフィッティング曲線を出力するためのＲＮＮ回路について説明する。図１１は、振動系ＲＮＮ回路の一例を示す図である。上記の式（５）は、図１１の振動系ＲＮＮ回路１１の処理を微分方程式で表したものに相当し、上記の式（６）が振動系ＲＮＮ回路１１から出力される微分方程式の解に相当する。図１１の振動系ＲＮＮ回路１１によって、cos(qπt/n), sin(qπt/n)を得ることができる。
【００３６】
【数５】
0005888013.tif 000006
【００３７】
【数６】
0005888013.tif 000007
図１２は、上記の式（３）の定義で得られるフィッティングの曲線を出力するためのＲＮＮ回路の一例を示す図である。ＲＮＮ回路１０は、２ｎ−１（ｎは２以上の自然数）個の振動系ＲＮＮ回路１１−１〜１１−（２ｎ−１）の和を加算回路１２で求めることで、入力された離散値データに対するフィッティング曲線を計算することができる。また、離散値データy0=0, y1,..., y2n-1, y2n=0から得られた上記の式（２）のa0, a1,..., a2n-1, b1,..., b2n-1の値が、ＲＮＮ回路１０の結線の重み係数となっている。従って、ＲＮＮ回路１０によれば、各離散点間で結線の重み係数を変更しなくても良いため、計算処理が簡単になる。また、ＲＮＮ回路１０によれば、入力された離散値データに基づいてフィッティング曲線を出力することができると共に、出力されるフィッティング曲線は、例えば上記の式（１）で表される平均処理が満足可能であることわかる。
【００３８】
図１３は、コンピュータシステムの一例を示すブロック図である。図１３に示すコンピュータシステム１００は、ＣＰＵ１０１、記憶部１０２、インタフェース（Ｉ／Ｆ）１０３、入力装置１０４、及び表示部１０５がバス１０６により接続された構成を有する。ＣＰＵ１０１は、記憶部１０２に格納されたプログラムを実行することによりコンピュータシステム１００全体を制御する。記憶部１０２は、半導体記憶装置、磁気記録媒体、光記録媒体、光磁気記録媒体などで形成可能であり、上記のプログラムや各種データを格納すると共に、ＣＰＵ１０１が実行する演算の中間結果や演算結果などを一時的に格納する一時メモリとしても機能する。記憶部１０２は、コンピュータシステム１００への入力データ及びコンピュータシステム１００からの出力データを格納しても良い。ＣＰＵ１０１及び記憶部１０２は、図８に示すＣＰＵ２１及びメモリ２２に相当する。
【００３９】
Ｉ／Ｆ１０３は、記憶部１０２に格納するプログラムやデータをネットワーク（図示せず）から受信することができる。入力装置１０４は、キーボードなどにより形成可能である。表示部１０５は、ディスプレイなどにより形成可能である。入力装置１０４及び表示部１０５は、タッチパネルのように入力装置と表示部の両方の機能を有する入出力装置で形成しても良い。
【００４０】
ＣＰＵ１０１は、記憶部１０２に格納されたプログラムを実行することにより、コンピュータシステム１００をニューラルネットワークを設計する装置として機能させる。プログラムは、ＣＰＵ１０１に少なくともニューラルネットワークの設計処理の手順を実行させるものであっても良く、記憶部１０２を含む適切なコンピュータ読み取り可能な記憶媒体に格納されていても良い。この場合、プログラムは、ＲＮＮ回路を、少なくとも図７または図１２に示すように固有振動を出力する複数の振動系ＲＮＮ回路１１−１〜１１−Ｎ（または、１１−（２ｎ−１））と、これら複数の振動系ＲＮＮ回路１１−１〜１１−Ｎ（または、１１−（２ｎ−１））の出力の和を求める加算回路１２をとを含むように形成する処理をＣＰＵ１０１に実行させる。
【００４１】
また、プログラムは、ＣＰＵ１０１に少なくとも図７または図１２に示すように固有振動を出力する複数の振動系ＲＮＮ回路１１−１〜１１−Ｎ（または、１１−（２ｎ−１））と、これら複数の振動系ＲＮＮ回路１１−１〜１１−Ｎ（または、１１−（２ｎ−１））の出力の和を求める加算回路１２を含むＲＮＮ回路１０、または、ＲＮＮ回路１０と図３に示す如き他のＲＮＮ回路との組み合わせの処理を実行させるものであっても良い。つまり、ＣＰＵ１０１に少なくとも離散値のフィッティング曲線を生成するＲＮＮ回路１０の処理を実行させるプログラムは、ＣＰＵ１０１にニューラルネットワークの設計処理の手順を実行させるプログラムに対してプラグイン可能な構成としても良い。この場合、ＣＰＵ１０１に少なくともＲＮＮ回路１０の処理を実行させるプログラムは、ＣＰＵ１０１を離散値にフィッティングするアナログ曲線を出力させるデジタル／アナログフィッティング方法を実行する回路または装置として動作させる。
【００４２】
ＲＮＮ回路１０の出力（フィッティング曲線）は、例えば表示部１０５に表示しても、Ｉ／Ｆ１０３を介してコンピュータシステム１００の外部に出力されても良い。
【００４３】
次に、フィッティング曲線のフィルタリングについて、図１４と共に説明する。図１４は、フィッティング曲線のフィルタリングを説明するブロック図である。
【００４４】
デジタルデータのノイズを低減するために、デジタルフィルタが用いられる。ここで、デジタルデータである離散値データy0=0,y1,...,y2n-1,y2n=0が与えられており、y-1= y2n-1, y-2= y2n-2,...と離散値データを拡張するとき、長さmのローパスフィルタを次式（７）のように定義し、長さmのハイパスフィルタを次式（８）のように定義する。
【００４５】
【数７】
0005888013.tif 000008
【００４６】
【数８】
0005888013.tif 000009
ローパスフィルタは、周期m/k (k=1,2,3,...)の周期関数を除去し、その他の周期関数を強調する。一方、ハイパスフィルタは、周期m/k (k=1,2,3,...)の周期関数を強調し、それ以外の周期関数を抑制する。
【００４７】
これに対し、上記式（３）で定義されたフィッティング曲線y(t)のフィルタリングを、次のように定義する。具体的には、長さmのローパスフィルタを次式（９）のように定義し、長さmのハイパスフィルタを次式（１０）のように定義する。
【００４８】
【数９】
0005888013.tif 000010
【００４９】
【数１０】
0005888013.tif 000011
ここで、次式（１１）のような関数ｆ（ｔ）を定義するとき、上記式（３）で定義されたフィッティング曲線y(t)は、次式（１２）のように表すことができる。次式（１１）中、Ψ(x)はガンマ関数の対数の２階微分で定義されるトリガンマ関数（Trigamma Function）である。
【００５０】
【数１１】
0005888013.tif 000012
【００５１】
【数１２】
0005888013.tif 000013
また、上記式（１１）の関数ｆ（ｔ）を用いることにより、デジタルデータのフィルタリングとフィッティング曲線のフィルタリングとの間の関係を、次式（１３）の関係式で表すことができる。
【００５２】
【数１３】
0005888013.tif 000014
上記の式（１３）は、フィッティング曲線のフィルタリングで得られた上記式（９）及び式（１０）の曲線が、デジタルデータのフィルタリングで得られた上記式（７）及び式（８）の離散値データに対するフィッティング曲線（上記式（１２）のフィッティング曲線）になっていることを表す。これは、図１４中（ａ）で示すように離散値データ（即ち、デジタルデータ）に対するフィッティング曲線をフィッティング回路５０で求めてからフィルタ５１によりこのフィッティング曲線にフィルタリングを施した結果と、図１４中（ｂ）で示すようにデジタルフィルタ５２によりデジタルデータのフィルタリングを行いフィッティング回路５０でフィルタリングされた離散値データ（即ち、デジタルデータ）に対するフィッティング曲線を求めた結果とが同じ結果であることを意味する。図１４中、フィッティング回路５０は、例えば図７に示すＲＮＮ回路１０で形成可能である。
【００５３】
このように、デジタルデータのフィルタリングを行ってからフィッティング曲線を求めることで、デジタルデータに対するフィッティング曲線のフィルタリングを実現する場合の応用例を説明する。この場合、例えばy0,y1,...,y2n-1,y2nが周期mの周期関数となるとき、長さmのローパスフィルタによりzi=0となる。この結果を上記式（１３）に代入することにより、任意のtの値でzm(t)=0 となり、y(t)も周期mの周期関数となることがわかる。
【００５４】
プログラムは、上記ＣＰＵ１０１に少なくとも上記の如く求めた入力離散値データに対するフィッティング曲線にフィルタリングを施したのと同等の、フィルタリングされたフィッティング曲線を出力する処理を実行させるものであっても良い。この場合の処理は、入力離散値データにフィルタリングを施すことにより得られる離散値データに対するフィッティング曲線を、同じ入力離散値データに対するフィッティング曲線にフィルタリングを施すことにより得られるフィルタリングされたフィッティング曲線として出力するものであっても良い。ＣＰＵ１０１に少なくともフィルタリングされたフィッティング曲線を出力する処理を実行させるプログラムは、ＣＰＵ１０１にニューラルネットワークの設計処理の手順を実行させるプログラムに対してプラグイン可能な構成としても良い。この場合、ＣＰＵ１０１に少なくともフィルタリングされたフィッティング曲線を出力する処理を実行させるプログラムは、ＣＰＵ１０１を離散値データにフィッティングするアナログ曲線がフィルタリングされた結果を出力させるデジタル／アナログフィッティング方法を実行する回路または装置として動作させる。また、入力離散値データのフィルタリングを行うフィルタ処理自体は、ハードウェア（即ち、デジタルフィルタ）で行っても、ＣＰＵ１０１により行っても良い。
【００５５】
なお、上記実施例では、ＲＮＮ回路の応用例としてロボットを説明したが、開示の方法で設計されるＲＮＮ回路はロボットの駆動回路などに限定されず、各種装置の制御回路や音声解析回路などを含む各種物理モデルに対して適用可能であることは言うまでもない。
【００５６】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
コンピュータによるニューラルネットワーク設計方法であって、
設計対象となるリカレントニューラルネットワーク（ＲＮＮ：Recurrent Neural Network）回路を、固有振動を出力する複数の振動系ＲＮＮ回路と、前記複数の振動系ＲＮＮ回路の出力の和を求める加算回路とを含むように形成する形成手順と、
前記複数の振動系ＲＮＮ回路に離散値データを入力し、前記加算回路から出力される前記離散値データに対するフィッティング曲線を計算する計算手順
を前記コンピュータに実行させることを特徴とする、ニューラルネットワーク設計方法。
（付記２）
前記形成手順は、前記離散値データの実際のデータ長が奇数２ｎ−１（ｎは２以上の自然数）であると、前記離散値データのデータ長を前記実際のデータ長より長い偶数２ｎに設定することを特徴とする、付記１記載のニューラルネットワーク設計方法。
（付記３）
前記離散値のデータは加速度データであり、前記フィッティング曲線は加速度フィッティング曲線または軌道曲線である、付記１または２記載のニューラルネットワーク設計方法。
（付記４）
前記計算手順は、
離散値データy0=0, y1,..., y2n-1, y2n=0から次式のa0, a1,..., a2n-1, b1,..., b2n-1を計算して記憶部に格納し、
【数１４】
0005888013.tif 000015
ここで、上記の式中のΨ(x)はガンマ関数の対数の２階微分で定義されるトリガンマ関数（Trigamma Function）であり、a0, a1,..., a2n-1, b1,..., b2n-1は時間tによらない固定値であり、
前記固定値a0, a1,..., a2n-1, b1,..., b2n-1を使って次式で定義されるフィッティング曲線を計算して前記記憶部に格納し、
【数１５】
0005888013.tif 000016
上記の式中、cos(qπt/n), sin(qπt/n)は振動系の関数であり前記複数の振動系のＲＮＮ回路から出力されることを特徴とする、付記１乃至３のいずれか１項記載のニューラルネットワーク設計方法。
（付記５）
前記複数の振動系ＲＮＮ回路の各々の処理は次式の微分方程式で表され、
【数１６】
0005888013.tif 000017
前記複数の振動系ＲＮＮ回路の各々から出力される前記微分方程式の解は
【数１７】
0005888013.tif 000018
で表されることを特徴とする、付記４記載のニューラルネットワーク設計方法。
（付記６）
前記フィッティング曲線にフィルタリングを施したのと同等の、フィルタリングされたフィッティング曲線を出力するフィルタ手順
を前記コンピュータにさらに実行させ、
前記フィルタ手順は、前記離散値データにフィルタリングを施すことにより得られる離散値データを前記複数の振動系ＲＮＮ回路に入力することを特徴とする、付記１乃至５のいずれか１項記載のニューラルネットワーク設計方法。
（付記７）
コンピュータによるニューラルネットワークを設計させるプログラムであって、
設計対象となるリカレントニューラルネットワーク（ＲＮＮ：Recurrent Neural Network）回路を、固有振動を出力する複数の振動系ＲＮＮ回路と、前記複数の振動系ＲＮＮ回路の出力の和を求める加算回路とを含むように形成する形成手順と、
前記複数の振動系ＲＮＮ回路に離散値データを入力し、前記加算回路から出力される前記離散値データに対するフィッティング曲線を計算する計算手順
を前記コンピュータに実行させることを特徴とする、プログラム。
（付記８）
前記形成手順は、前記離散値データの実際のデータ長が奇数２ｎ−１（ｎは２以上の自然数）であると、前記離散値データのデータ長を前記実際のデータ長より長い偶数２ｎに設定することを特徴とする、付記７記載のプログラム。
（付記９）
前記離散値のデータは加速度データであり、前記フィッティング曲線は加速度フィッティング曲線または軌道曲線である、付記７または８記載のプログラム。
（付記１０）
前記計算手順は、
離散値データy0=0, y1,..., y2n-1, y2n=0から次式のa0, a1,..., a2n-1, b1,..., b2n-1を計算して記憶部に格納し、
【数１８】
0005888013.tif 000019
ここで、上記の式中のΨ(x)はガンマ関数の対数の２階微分で定義されるトリガンマ関数（Trigamma Function）であり、a0, a1,..., a2n-1, b1,..., b2n-1は時間tによらない固定値であり、
前記固定値a0, a1,..., a2n-1, b1,..., b2n-1を使って次式で定義されるフィッティング曲線を計算して前記記憶部に格納し、
【数１９】
0005888013.tif 000020
上記の式中、cos(qπt/n), sin(qπt/n)は振動系の関数であり前記複数の振動系のＲＮＮ回路から出力されることを特徴とする、付記７乃至９のいずれか１項記載のプログラム。
（付記１１）
前記複数の振動系ＲＮＮ回路の各々の処理は次式の微分方程式で表され、
【数２０】
0005888013.tif 000021
前記複数の振動系ＲＮＮ回路の各々から出力される前記微分方程式の解は
【数２１】
0005888013.tif 000022
で表されることを特徴とする、付記１０記載のプログラム。
（付記１２）
前記フィッティング曲線にフィルタリングを施したのと同等の、フィルタリングされたフィッティング曲線を出力するフィルタ手順
を前記コンピュータにさらに実行させ、
前記フィルタ手順は、前記離散値データにフィルタリングを施すことにより得られる離散値データを前記複数の振動系ＲＮＮ回路に入力することを特徴とする、付記７乃至１１のいずれか１項記載のプログラム。
（付記１３）
リカレントニューラルネットワーク（ＲＮＮ：Recurrent Neural Network）回路によるデジタル／アナログフィッティング方法であって、
離散値データを固有振動を出力する複数の振動系ＲＮＮ回路に入力して前記複数の振動系ＲＮＮ回路から出力される振動系の関数を計算する第１の処理と、
前記複数の振動系ＲＮＮ回路から出力される振動系の関数を加算回路で加算して前記離散値データに対するフィッティング曲線を計算する第２の処理
をコンピュータに実行させることを特徴とする、デジタル／アナログフィッティング方法。
（付記１４）
前記第１の処理は、
離散値データy0=0, y1,..., y2n-1, y2n=0から次式のa0, a1,..., a2n-1, b1,..., b2n-1を計算して記憶部に格納し、
【数２２】
0005888013.tif 000023
ここで、上記の式中のΨ(x)はガンマ関数の対数の２階微分で定義されるトリガンマ関数（Trigamma Function）であり、a0, a1,..., a2n-1, b1,..., b2n-1は時間tによらない固定値であり、
前記第２の処理は、前記固定値a0, a1,..., a2n-1, b1,..., b2n-1を使って次式で定義されるフィッティング曲線を計算して前記記憶部に格納し、
【数２３】
0005888013.tif 000024
上記の式中、cos(qπt/n), sin(qπt/n)は振動系の関数であり前記複数の振動系のＲＮＮ回路から出力されることを特徴とする、付記１３記載のデジタル／アナログフィッティング方法。
（付記１５）
前記複数の振動系ＲＮＮ回路の各々の処理は次式の微分方程式で表され、
【数２４】
0005888013.tif 000025
前記複数の振動系ＲＮＮ回路の各々から出力される前記微分方程式の解は
【数２５】
0005888013.tif 000026
で表されることを特徴とする、付記１４記載のデジタル／アナログフィッティング方法。
（付記１６）
前記フィッティング曲線にフィルタリングを施したのと同等の、フィルタリングされたフィッティング曲線を出力するフィルタ処理
を前記コンピュータにさらに実行させ、
前記フィルタ処理は、前記離散値データにフィルタリングを施すことにより得られる離散値データを前記複数の振動系ＲＮＮ回路に入力することを特徴とする、付記１３乃至１５のいずれか１項記載のデジタル／アナログフィッティング方法。
【００５７】
以上、開示のニューラルネットワーク設計方法、プログラム及びデジタルアナログフィッティング方法を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【符号の説明】
【００５８】
１０      ＲＮＮ回路
１１−１〜１１−Ｎ      振動系ＲＮＮ回路
１２      加算回路
２０      ＰＣ
２１，１０１      ＣＰＵ
２２      メモリ
５２      デジタルフィルタ
１０２      記憶部
１０４      入力装置
１０５      表示装置
【図１】
0005888013.tif 000031
【図２】
0005888013.tif 000032
【図３】
0005888013.tif 000033
【図４】
0005888013.tif 000034
【図５】
0005888013.tif 000035
【図６】
0005888013.tif 000036
【図７】
0005888013.tif 000037
【図８】
0005888013.tif 000038
【図９】
0005888013.tif 000039
【図１０】
0005888013.tif 000040
【図１１】
0005888013.tif 000041
【図１２】
0005888013.tif 000042
【図１３】
0005888013.tif 000043
【図１４】
0005888013.tif 000044