(57)【特許請求の範囲】
【請求項１】
コンピュータにニューラルネットワークを設計させるプログラムであって、
ニューロンと結線を含んだ双一次結合を有するリカレントニューラルネットワーク（ＲＮＮ）回路の理論解析が可能であるか否かを判断する判断手順と、
理論解析が可能であると判断されたＲＮＮ回路を、双一次結合を有さない複数の部分ＲＮＮ回路に分割して記憶部に格納する分割手順と、
各部分ＲＮＮ回路の理論解析を行うことで理論解を求めて、前記記憶部に前記論理解を格納する解析手順と、
各部分ＲＮＮ回路の前記理論解を組み合わせて前記双一次結合を有するＲＮＮ回路の理論解を求めて出力する出力手順、
を前記コンピュータに実行させることを特徴とする、プログラム。
【請求項２】
前記判断手順は、前記双一次結合を有するＲＮＮ回路の任意のニューロンの双一次結合から、前記ニューロンと前記結線をさかのぼっていくと前記任意のニューロン自身に戻る結合が無い場合に前記ＲＮＮ回路を理論解析が可能であると判断することを特徴とする、請求項１記載のプログラム。
【請求項３】
前記分割手順は、前記理論解析が可能であると判断されたＲＮＮ回路から、ニューロン同士が結合している結線のみを取り出して得られる回路を部分ＲＮＮ回路と定義することを特徴とする、請求項１又は２記載のプログラム。
【請求項４】
前記分割手順は、前記部分ＲＮＮ回路に対して、全ての双一次結合を外部入力関数に変換して前記双一次結合を有さない複数の部分ＲＮＮ回路を求め、双一次出力に対しては前記変換を行わないことを特徴とする、請求項３記載のプログラム。
【請求項５】
コンピュータによるニューラルネットワーク設計方法であって、
ニューロンと結線を含んだ双一次結合を有するリカレントニューラルネットワーク（ＲＮＮ）回路の理論解析が可能であるか否かを判断する判断手順と、
理論解析が可能であると判断されたＲＮＮ回路を、双一次結合を有さない複数の部分ＲＮＮ回路に分割して記憶部に格納する分割手順と、
各部分ＲＮＮ回路の理論解析を行うことで理論解を求めて、前記記憶部に前記論理解を格納する解析手順と、
各部分ＲＮＮ回路の前記理論解を組み合わせて前記双一次結合を有するＲＮＮ回路の理論解を求めて出力する出力手順
を前記コンピュータに実行させることを特徴とする、ニューラルネットワーク設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理モデルに適用可能なニューラルネットワークを設計するニューラルネットワーク設計方法、及び、コンピュータにニューラルネットワークを設計させるプログラムに関する。本発明は、このようなプログラムを格納したコンピュータ読み取り可能な記憶媒体にも関する。
【背景技術】
【０００２】
リカレントニューラルネットワーク（ＲＮＮ：Recurrent Neural Network）は、ロボットの動作等に適用するために開発されたニューラルネットワークであるが、ロボットの動作のみならず、歩数計や音声解析装置等の様々な電子装置等の物理モデルに対して適用可能である。ＲＮＮ自体は、例えば特許文献１、非特許文献１等にて提案されている。
【０００３】
ＲＮＮは、ニューロンと結線を有するネットワークであり、ニューロンと入出力の結線との関係式は図１のように与えられる。図１において、εiは遅れパラメータ、yi, yjはニューロンの状態量、Cijは重み係数、tは時間を表し、ニューロンの状態量を表すyiをニューロンと同一視する場合もある。
【０００４】
図１の関係式の拡張として、図２のような関係式も考えられる。図２は、図１の構成に加え値giがニューロンyiに入力されることを示し、値giはこのＲＮＮ回路のニューロン以外で求められた値である。
【０００５】
図３は、２つのニューロンと４つの結線を有するＲＮＮ回路の一例を示す図である。図３において、εi=1であり、結線に添えられた「１」、「−１」は重み係数を表す。図３の右側はこのＲＮＮ回路の微分方程式を表し、この微分方程式を解くとx1=sin(t), y1=cos(t)が求められる。
【０００６】
図４は、双一次結合の一例を説明する図である。図４の双一次結合は、図１及び図２以外の結線の結合の一例である。図４に示すように、双一次結合は掛け算を表し、「y1」の出力と「y2」の出力を掛け合わせた結果が「y3」に入力される。ε３は遅れパラメータである。又、「y1」の出力と「y2」の出力を掛け合わせた結果がニューロンに入力されずに外部出力される場合は、双一次結合と区別して「双一次出力」と定義する。双一次結合は掛け算であるため、例えば加速度センサ等のセンサから出力されたベクトルの距離（又は、ベクトルの距離の２乗）や内積を求めるのに利用できる。
【０００７】
図５は、内積を求める一例を説明する図である。図５の例では。図３に示すＲＮＮ回路が２つ設けられ２つのベクトル(x1, y1)= (sin(t), cos(t)), (x2, y2)= (cos(t), sin(t))を出力する。これらのベクトル出力を双一次結合して足し合わせることにより、ニューロン「i」の出力は２つのベクトルの内積i= x1・x2+ y1・y2 =2sin(t)・cos(t)を得ることができる。
【０００８】
又、双一次結合を用いることにより、より多様な出力を得ることができる。図６は、例えば非特許文献１等で提案されている、２つの双一次結合を有するＲＮＮ回路の一例を示す図である。図６に示すＲＮＮ回路は、ローレンツ方程式（Lorenz's Equations）を表し、カオス（Chaos）を得ることができる。
【０００９】
図７は、双一次結合を有するＲＮＮ回路と双一次結合を有さないＲＮＮ回路の関係を説明する図である。双一次結合を有するＲＮＮ回路は、双一次結合を有さないＲＮＮ回路に比べてより豊富なバリエーションの出力を得ることができる。
【００１０】
しかし、図６に示すＲＮＮ回路の例のように双一次結合を有するＲＮＮ回路は、一般的には理論解析により理論解を求めることはできず、理論解はシミュレーションでしか求めることはできない。又、理論解を求めるシミュレーションには時間がかり、シミュレーションにより求められる理論解の信頼性は低い。一方、双一次結合を有さないＲＮＮ回路は、線型の連立微分方程式に変換することが可能であるため、理論解を求めることが可能であるものの、出力のバリエーションが限られている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平６−１４９７７１号公報
【特許文献２】ＷＯ２００７／１３５７２３号公報
【特許文献３】ＷＯ２００４／１０４９１７号公報
【非特許文献】
【００１２】
【非特許文献１】永嶋史朗、「双線形時間遅れニューラルネットワークによるロボットソフトウェアシステム」、日本ロボット学会誌、Vol.24, No.6, pp.53-64, 2006
【発明の概要】
【発明が解決しようとする課題】
【００１３】
従来のニューラルネットワークの設計方法では、様々なバリエーションの出力が得られ、且つ、理論解を求めることができる双一次結合を有するＲＮＮ回路を得ることは難しいという問題があった。
【００１４】
そこで、本発明は、様々なバリエーションの出力が得られ、且つ、理論解を求めることができる双一次結合を有するＲＮＮ回路を得ることが可能なニューラルネットワーク設計方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の一観点によれば、コンピュータによるニューラルネットワーク設計方法であって、ニューロンと結線を含んだ双一次結合を有するリカレントニューラルネットワーク（ＲＮＮ）回路の理論解析が可能であるか否かを判断する判断手順と、理論解析が可能であると判断されたＲＮＮ回路を、双一次結合を有さない複数の部分ＲＮＮ回路に分割して記憶部に格納する分割手順と、各部分ＲＮＮ回路の理論解析を行うことで理論解を求めて、前記記憶部に前記論理解を格納する解析手順と、各部分ＲＮＮ回路の前記理論解を組み合わせて前記双一次結合を有するＲＮＮ回路の理論解を求めて出力する出力手順を前記コンピュータに実行させることを特徴とするニューラルネットワーク設計方法が提供される。
【００１６】
本発明の一観点によれば、コンピュータにニューラルネットワークを設計させるプログラムであって、ニューロンと結線を含んだ双一次結合を有するリカレントニューラルネットワーク（ＲＮＮ）回路の理論解析が可能であるか否かを判断する判断手順と、理論解析が可能であると判断されたＲＮＮ回路を、双一次結合を有さない複数の部分ＲＮＮ回路に分割して記憶部に格納する分割手順と、各部分ＲＮＮ回路の理論解析を行うことで理論解を求めて、前記記憶部に前記論理解を格納する解析手順と、各部分ＲＮＮ回路の前記理論解を組み合わせて前記双一次結合を有するＲＮＮ回路の理論解を求めて出力する出力手順を前記コンピュータに実行させることを特徴とするプログラムが提供される。
【発明の効果】
【００１７】
開示のニューラルネットワーク設計方法及びプログラムによれば、様々なバリエーションの出力が得られ、且つ、理論解を求めることができる双一次結合を有するＲＮＮ回路を得ることができる。
【図面の簡単な説明】
【００１８】
【図１】ニューロンと入出力の結線との関係式を説明する図である。
【図２】図１の関係式の拡張を説明する図である。
【図３】２つのニューロンと４つの結線を有するＲＮＮ回路の一例を示す図である。
【図４】双一次結合の一例を説明する図である。
【図５】内積を求める一例を説明する図である。
【図６】２つの双一次結合を有するＲＮＮ回路の一例を示す図である。
【図７】双一次結合を有するＲＮＮ回路と双一次結合を有さないＲＮＮ回路の関係を説明する図である。
【図８】ＲＮＮ回路を搭載した電子装置の一例を示すブロック図である。
【図９】自分自身に戻る結合の無い双一次結合を有するＲＮＮ回路の一例を示す図である。
【図１０】双一次結合を有するＲＮＮ回路が理論解析が可能であるか否かを判断する処理を説明するフローチャートである。
【図１１】自分自身に戻る結合の無い双一次結合を有するＲＮＮ回路の他の例を示す図である。
【図１２】部分ＲＮＮ回路を示す図である。
【図１３】部分ＲＮＮ回路を示す図である。
【図１４】部分ＲＮＮ回路を示す図である。
【図１５】双一次結合を有するＲＮＮ回路を示す図である。
【図１６】図１５の全ての双一次結合を外部入力関数に変更する処理を説明する図である。
【図１７】理論解析が可能なＲＮＮ回路を示す図である。
【図１８】変換された部分ＲＮＮ回路を示す図である。
【図１９】変換された部分ＲＮＮ回路を示す図である。
【図２０】変換された部分ＲＮＮ回路を示す図である。
【図２１】規模が比較的大きなＲＮＮ回路の一例を示す図である。
【図２２】図５の理論解析が可能な双一次結合を有するＲＮＮ回路と「x3」を組み合わせたＲＮＮ回路を示す図である。
【図２３】コンピュータシステムの一例を示すブロック図である。
【発明を実施するための形態】
【００１９】
開示のニューラルネットワーク設計方法及びプログラムは、双一次結合を有するＲＮＮ回路の理論解析が可能であるか否かを判断し、理論解析が可能であると判断されたＲＮＮ回路を双一次結合を有さない複数の部分ＲＮＮ回路に分割する。双一次結合を有さない部分ＲＮＮ回路は、理論解析が可能であるため、各部分ＲＮＮ回路の理論解を組み合わせることで、元の双一次結合を有するＲＮＮ回路の理論解を求める。元の一次結合を有するＲＮＮ回路の理論解をシミュレーションで求める場合と比較すると、シミュレーションの場合のように理論解を求めるのに時間がかることはなく、シミュレーションの場合のように理論解の信頼性が低くなることはない。
【００２０】
以下に、開示のニューラルネットワーク設計方法及びプログラムの各実施例を図面と共に説明する。
【実施例】
【００２１】
図８は、ＲＮＮ回路を搭載した電子装置の一例を示すブロック図である。電子装置は、例えば歩数計の機能を備えた携帯電話である。以下の説明においても、図１乃至図６の説明と同様に、εiは遅れパラメータ、yi, yjはニューロンの状態量、Cijは重み係数、tは時間を表し、ニューロンの状態量を表すyiをニューロンと同一視する場合もある。又、giはニューロンyiに入力される値である。
【００２２】
図８の例では、説明の便宜上、ＲＮＮ回路が歩数をカウントする歩数計の機能を実現するものとする。図８の電子装置（即ち、携帯電話）１０は、加速度センサ１１、メモリ１２、プロセッサ（又は、コンピュータ）の一例であるＣＰＵ（Central Processing Unit）１３、及び表示装置１４を有する。加速度センサ１１は、例えば互いに直交する３軸の加速度を検出する３個のセンサを含む。加速度センサ１１の出力値giがメモリ１２に入力され、ＣＰＵ１３がＲＮＮ回路の計算を行って歩数の結果を表示装置１４に出力する。メモリ１２には、ＲＮＮ回路を構成する各yiのニューロン（又は、状態量）の初期値と加速度センサ１１の各出力値giが代入され保存されている。又、メモリ１２には、ＲＮＮ回路の実行プログラムが保存されている。実行プログラムには、ベクトルの内積や距離を求めるための双一次結合処理を実行するプログラムが含まれている。クロック毎に、各yiの値とgiの値が実行プログラムによりＣＰＵ１３で演算される。ＣＰＵ１３の演算により計算された各yiの値はメモリ１２に保存され、次のgiの値がメモリ１２に代入される。このような処理が所定の回数実行された後、出力として欲しいニューロン（又は、状態量）の値、即ち、歩数値がＣＰＵ１３によりメモリ１２から読み出され、表示装置１４に表示されることで歩数計の一連の処理が終了する。
【００２３】
電子装置１０用に設計されたＲＮＮ回路が図６に示すＲＮＮ回路の例のように双一次結合を有するＲＮＮ回路の場合、一般的には理論解析により理論解を求めることはできない。そこで、本実施例では、このように一般的には理論解析が不可能である双一次結合を有するＲＮＮ回路に対し、理論解を求めることができる双一次結合を有するＲＮＮ回路を分類する。
【００２４】
図６のＲＮＮ回路はカオスを出力するので、理論解析が不可能である双一次結合を有するが、ニューロン「z」に入力される双一次結合が有り、これらはニューロン「x」，「y」から出力されている。ここで、ニューロン「y」に着目すると、ニューロン「z」から出力された結果がニューロン「y」に入力される。このようにニューロン「z」への双一次結合から、ニューロンと結線をさかのぼっていくと、ニューロン「z」自身に戻ってしまうような結合がある場合、一般的には理論解析は困難である。そこで、本実施例では、双一次結合から、ニューロンと結線をさかのぼっていくと自分自身に戻ってしまうような結合がある場合には、理論解析が不可能であると判断する。
【００２５】
これに対し、例えば図９の双一次結合を有するＲＮＮ回路は１つの双一次結合を有するが、ニューロン「z」への双一次結合から、ニューロンと結線をさかのぼっていっても、ニューロン「z」自身に戻ってしまうような結合は無い。図９は、自分自身に戻る結合の無い双一次結合を有するＲＮＮ回路の一例を示す図である。このように、双一次結合から、ニューロンと結線をさかのぼっていっても自分自身に戻ってしまうような結合が無い場合、このＲＮＮ回路は理論解析が可能であると判断する。
【００２６】
図１０は、双一次結合を有するＲＮＮ回路が理論解析が可能であるか否かを判断する処理を説明するフローチャートである。図１０の処理は、与えられた双一次結合を有するＲＮＮ回路が理論解析が可能であるか否かを判断し、ニューロン全体の集合から部分ニューロンの集合を得る。この処理により得られた部分ニューロンの集合は、ニューラルネットワークの設計処理において理論解析を行うときに使用される。
【００２７】
（図６のＲＮＮ回路が処理対象の場合）
具体例として図６のＲＮＮ回路に対して図１０の処理を適用した場合について説明する。先ず、ステップＳ１は、初期設定として、Iを空集合φに設定し（I=φ）、wをw=' 'に設定し、処理対象となるＲＮＮ回路のニューロン全体の集合XIを求め、ニューロン全体の集合XIの中の双一次結合を入力に持つニューロンの集合SubIを求める。この場合、ＲＮＮ回路のニューロン全体の集合Xφ={x, y, z}と、集合Xφの中の双一次結合を入力に有するニューロンの集合Subφ={z}とが得られる。ステップＳ２は、SubI=φであるか否かを判定し、この場合はSubφ={z}≠φであり判定結果はＮＯであるため、処理はステップＳ３へ進む。ステップＳ３は、集合SubIから１つのニューロンを取り出して固定（Fix）し、I=I∪{b}を求め、wに'b'を追加し、XI=bへ双一次結合からさかのぼって得られるニューロンの集合を求める。この場合、Subφ={z}は１つのニューロンしか含まない集合であるから、「z」を取り出して固定し、IをI=I∪{z}=φ∪{z}={z}に更新し、wをw=' '+'z'='z'に更新する。「z」への双一次結合からさかのぼって得られるニューロンの集合とは、ニューロン「z」への双一次結合から、ニューロンと結線をさかのぼることによって得られる全てのニューロンの集合である。この場合、双一次結合への出力となるニューロン「x」，「y」と、ニューロン「y」から結線をさかのぼることによって得られるニューロン「z」がさかのぼりの対象となり、X{z}={x, y, z}となる。
【００２８】
ステップＳ４は、XIに「b」が含まれるか否かを判定する。この場合、X{z}にzが含まれるか否かが判定され、X{z}にzが含まれるので判定結果はＹＥＳになる。ステップＳ５は、図６のＲＮＮ回路は理論解析が不可能であると判断し、例えば理論解析が不可能である旨を示すメッセージを表示したり記憶部に格納する等の出力を行い、処理は終了する。
【００２９】
（図９のＲＮＮ回路が処理対象の場合）
次に、具体例として図９のＲＮＮ回路に対して図１０の処理を適用した場合について説明する。先ず、ステップＳ１は、初期設定として、I=φ、w=' '、集合Xφ={x, y, z}、及び集合Subφを得る。この場合、集合Subφは集合Xφの中の双一次結合を入力に持つニューロンの集合なので、Subφ={z}である。ステップＳ２の判定結果は、Subφ={z}≠φであるためＮＯになる。Subφ={z}は１つのニューロンしか含まない集合であるから、ステップＳ３は、「z」を取り出して固定し、IをI=I∪{z}=φ∪{z}={z}に更新し、wをw=' '+'z'='z'に更新する。「z」への双一次結合からさかのぼって得られるニューロンの集合とは、ニューロン「z」への双一次結合から、ニューロンと結線をさかのぼることによって得られる全てのニューロンの集合である。この場合、双一次結合への出力となるニューロン「x」，「y」がさかのぼりの対象となり、X{z}={x, y}となる。ステップＳ４の判定結果は、X{z}は{z}を含まないのでＮＯになるので処理はステップＳ６へ進む。
【００３０】
ステップＳ６は、XIを保存し、SubI=XIの中の双一次結合を入力に持つニューロンの集合を求め、任意のA⊂I-{b}に対してSubA= SubA-{b}を求める。この場合、X{z}を保存し、Sub{z}はX{z}の中の双一次結合を入力に有するニューロンの集合であるものの、X{z}の中の双一次結合を入力に有するニューロンは無いのでSub{z}=φを得、I-{z}={z}-{z}=φより任意のA⊂φに対してこれを満たすのはA=φの場合だけなのでSubφをSubφ= Subφ-{z}={z}-{z}=φに更新する。ステップＳ６の後、処理はステップＳ２へ戻り、Sub{z}=φであるか否かを判定する。この場合、ステップＳ２の判定結果はＹＥＳになるため、処理はステップＳ７へ進む。
【００３１】
ステップＳ７は、I=φであるか否かを判定する。この場合、I={z}≠φであるためステップＳ７の判定結果はＮＯとなり、処理はステップＳ８へ進む。ステップＳ８は、wの最後の文字'b'を取得して除去し、I=I-{b}を求める。この場合、w='z'から文字'z'を除去してwをw=' 'に更新し、IをI=I-{z}={z}-{z}=φに更新する。ステップＳ８の後、処理はステップＳ２へ戻り、Subφ=φであるか否かを判定する。この場合、ステップＳ２の判定結果はＹＥＳになるため、処理はステップＳ７へ進む。更に、I=φであるため、ステップＳ７の判定結果はＹＥＳとなり、処理は終了する。従って、この場合は、理論解析が不可能である出力が無いため、図９のＲＮＮ回路は理論解析が可能であると判断し、例えば理論解析が可能である旨を示すメッセージを表示したり記憶部に格納する等の出力を行ってから処理は終了する。
【００３２】
（図１１のＲＮＮ回路が処理対象の場合）
次に、具体例として図１１のＲＮＮ回路に対して図１０の処理を適用した場合について説明する。図１１は、自分自身に戻る結合の無い双一次結合を有するＲＮＮ回路の他の例を示す図である。先ず、ステップＳ１は、初期設定として。I=φ、w=' '、集合Xφ={a, b, c, d, e, f, g}、及び集合Subφを得る。この場合、集合Subφは集合Xφの中の双一次結合を入力に持つニューロンの集合なので、Subφ={a, b, e}である。ステップＳ２の判定結果は、Subφ={a, b, e}≠φであるためＮＯになる。ステップＳ３は、Subφ={a, b, e}から１つニューロンを取り出すが、ここでは「a」を取り出して固定し、IをI=I∪{a}=φ∪{a}={a}に更新し、wをw=' '+'a'='a'に更新する。「a」への双一次結合からさかのぼって得られるニューロンの集合とは、ニューロン「a」への双一次結合から、ニューロンと結線をさかのぼることによって得られる全てのニューロンの集合である。従って、この場合はX{a}={b, c, d}となる。ステップＳ４の判定結果は、X{a}は{a}を含まないのでＮＯになるので、処理はステップＳ６へ進む。
【００３３】
ステップＳ６は、X{a}を保存し、Sub{a}はX{a}の中の双一次結合を入力に有するニューロンの集合であるためSub{a}={b}を求める。又、I-{a}={a}-{a}=φより、任意のA⊂φに対し、これを満たすのはA=φの場合だけなのでSubφをSubφ= Subφ-{a}={a, b, e}-{a}={b, e}に更新する。ステップＳ６の後、処理はステップＳ２へ戻り、Subφ=φであるか否かを判定する。この場合、ステップＳ２の判定結果はSub{a}={b}≠φよりＮＯになるため、処理はステップＳ３へ進む。
【００３４】
ステップＳ３は、Sub{a}={b}から１つニューロンを取り出すが、Sub{a}は１つのニューロンしかない集合であるから、「b」取り出して固定し、IをI=I∪{b}={a}∪{b}={a, b}に更新し、wをw='a'+'b'='ab'に更新する。「b」への双一次結合からさかのぼって得られるニューロンの集合とは、ニューロン「b」への双一次結合から、ニューロンと結線をさかのぼることによって得られる全てのニューロンの集合である。従って、X{a, b}={c, d}となる。ステップＳ４の判定結果は、X{a, b}は{b}を含まないのでＮＯとなり、処理はステップＳ６へ進む。ステップＳ６は、X{a, b}を保存し、X{a, b}の中の双一次結合を入力に有するニューロンの集合はないのでSub{a, b}=φとなる。又、I-{b}={a, b}-{b}={a}より、任意のA⊂{a}に対しこれを満たすのはA=φ, {a}の場合である。そこで、A=φのときSubφをSubφ= Subφ-{b}={b, e}-{b}={e}に更新し、A={a}のときSub{a}をSub{a}= Sub{a}-{b}={b}-{b}=φに更新する。
【００３５】
ステップＳ６の後、処理はステップＳ２へ戻るが、Sub{a, b}=φなのでステップＳ２の判定結果はＹＥＳになり、処理はステップＳ７へ進む。更に、I= {a, b}≠φであるため、ステップＳ７の判定結果はＮＯになり、処理はステップＳ８へ進む。ステップＳ８は、w='ab'から文字'b'を除去してw='a'に更新し、IをI=I-{b}={a, b}-{b}={a}に更新する。
【００３６】
ステップＳ８の後、処理はステップＳ２へ戻る。この場合、Sub{a}=φであるからステップＳ２の判定結果はＹＥＳになる。ステップＳ７の判定結果は、I= {a}≠φであるからＮＯになる。従って、ステップＳ８は、w='a'から文字'a'を除去してwをw=' 'に更新し、IをI=I-{a}={a}-{a}=φに更新する。
【００３７】
ステップＳ８の後、処理はステップＳ２へ戻るが、Subφ={e}≠φなのでステップＳ２の判定結果はＮＯになり、処理はステップＳ３へ進む。ステップＳ３は、Subφ={e}から１つニューロンを取り出すが、１つのニューロンしかない集合であるから、「e」を取り出して固定し、IをI=I∪{e}=φ∪{e}={e}に更新し、wをw=' '+'e'='e'に更新する。「e」への双一次結合からさかのぼって得られるニューロンの集合とは、ニューロン「e」への双一次結合から、ニューロンと結線をさかのぼることによって得られる全てのニューロンの集合である。従って、X{e}={f, g}となる。ステップＳ４の判定結果は、X{e}は{e}を含まないのでＮＯになり、処理はステップＳ６へ進む。ステップＳ６は、X{e}を保存し、X{e}の中の双一次結合を入力に有するニューロンの集合は無いのでSub{e}=φとなる。又、I-{e}={e}-{e}=φより、任意のA⊂{e}に対しこれを満たすのはA=φの場合である。そこで、A=φのときSubφをSubφ= Subφ-{e}={e}-{e}=φに更新する。
【００３８】
ステップＳ６の後、処理はステップＳ２へ戻るが、Sub{e}=φなのでステップＳ２の判定結果はＹＥＳになり、処理はステップＳ７へ進む。ステップＳ７の判定結果は、I= {e}≠φなのでＮＯとなり、処理はステップＳ８へ進む。ステップＳ８は、w='e'から文字'e'を除去してwをw=' 'に更新し、IをI=I-{e}={e}-{e}=φに更新する。
【００３９】
ステップＳ８の後、処理はステップＳ２へ戻るが、Subφ=φなのでステップＳ２の判定結果はＹＥＳになり、処理はステップＳ７へ進む。ステップＳ７の判定結果は、I=φであるためＹＥＳとなり、処理は終了する。この場合、理論解析が不可能な出力が無いため、図１１のＲＮＮ回路は理論解析が可能であると判断し、例えば理論解析が可能である旨を示すメッセージを表示したり記憶部に格納する等の出力を行ってから処理は終了する。
【００４０】
（部分ＲＮＮ回路）
次に、部分ＲＮＮ回路について説明する。図１１のＲＮＮ回路に対して図１０の処理を行うことにより得られた部分ニューロンの集合は、X{a}={b, c, d}，X{a, b}={c, d}，X{e}={f, g}となる。部分ニューロンの集合に含まれる全てニューロンを取り出し、それらのニューロン同士が結合している結線のみを取り出して得られるＲＮＮ回路を、元のＲＮＮ回路の部分ＲＮＮ回路と定義する。このとき、X{a}={b, c, d}，X{a, b}={c, d}，X{e}={f, g}に対応する部分ＲＮＮ回路は図１２、図１３、及び図１４のようになる。図１２乃至図１４は、部分ＲＮＮ回路を示す図である。
【００４１】
次に、元のＲＮＮ回路と全ての部分ＲＮＮ回路に対して、全ての双一次結合を例えば図１５の状態から図１６に示す如き外部入力関数に変換（又は、変更）する。ただし、双一次出力に対しては、このような変換を行わない。
【００４２】
図１１の元のＲＮＮ回路と、図１２乃至図１４の部分ＲＮＮ回路とにこの変換を施して得られる結果を、夫々図１７乃至図２０に示す。図１７は、理論解析が可能なＲＮＮ回路を示す図であり、図１８乃至図２０は、変換された部分ＲＮＮ回路を示す図である。この結果得られた図１７乃至図２０のＲＮＮ回路は、いずれも双一次結合を有さないＲＮＮ回路となるため、外部入力の関数が分かれば理論解析が可能となる。
【００４３】
元のＲＮＮ回路の理論解析を行うためには、全ての部分ＲＮＮ回路の理論解析を行えば良い。先ず、始めに得られた部分ニューロンの集合のうち、添え字の集合に含まれるニューロン数が一番大きいものから解析を行う。この理由は、添え字の集合に含まれるニューロン数が一番大きい部分ニューロンの集合から得られるＲＮＮ回路には、外部入力への変換が無いためである。この場合、部分ニューロンの集合X{a}，X{a, b}，X{e}のうち、添え字の集合に含まれるニューロン数が一番大きい部分ニューロンの集合はX{a, b}なので、この部分ニューロンの集合X{a, b}に対応する図１９の部分ＲＮＮ回路から解析を行う。図１９の部分ＲＮＮ回路は、外部入力が無いＲＮＮ回路なので、c, dの理論解を求めることができる。
【００４４】
次に、添え字の集合に含まれるニューロン数が２番目に大きい部分ニューロン集合の解析を行う。この場合、添え字の集合に含まれるニューロン数が２番目に大きい部分ニューロン集合はX{a}，X{e}となる。部分ニューロンの集合X{a}に対応する部分ＲＮＮ回路は図１８の部分ＲＮＮ回路であり、１つの外部入力F2を有する。F2はX{a, b}に対応する図１９の部分ＲＮＮ回路から得られ、図１９の部分ＲＮＮ回路は理論解析が可能であるため、F2の理論解を得ることができる。従って、図１８の部分ＲＮＮ回路は理論解析が可能であり、b, c, dの理論解を求めることができる。
【００４５】
又、部分ニューロンの集合X{e}に対応する部分ＲＮＮ回路は図２０の部分ＲＮＮ回路である。図２０の部分ＲＮＮ回路は、外部入力が無いＲＮＮ回路なので、f, gの理論解を求めることができる。
【００４６】
このように、全ての部分ＲＮＮ回路の理論解析を行うことができたため、最後に元のＲＮＮ回路の解析を行うことが可能となる。図１７のＲＮＮ回路は３つの外部入力F1, F2, F3を有する。F1の理論解はX{a}に対応する図１８の部分ＲＮＮ回路から得られ、F2の理論解はX{a, b}に対応する図１９の部分ＲＮＮ回路から得られ、F3の理論解はX{e}に対応する図２０の部分ＲＮＮ回路から得られる。従って、図１７のＲＮＮ回路は理論解析が可能であり、元の図１１のＲＮＮ回路も理論解析が可能であることが確認された。
【００４７】
又、上記の如き処理により得られた理論解析が可能な双一次結合を有するＲＮＮ回路を複数組み合わせることによって、図２１のような規模が比較的大きなＲＮＮ回路を作成することもできる。図２１は、規模が比較的大きなＲＮＮ回路の一例を示す図である。図２１において、Ｐ１〜Ｐ４は、いずれも双一次結合を有する理論解析が可能なＲＮＮ回路である。
【００４８】
図２２は、図５の理論解析が可能な双一次結合を有するＲＮＮ回路と「x3」を組み合わせたＲＮＮ回路の一例を示す図である。図２２は、x3 (t)の速度がdx3 /dt(t)＝2sin(t)cos(t)となるような出力を得るＲＮＮ回路を示す。
【００４９】
このように理論解析が可能な双一次結合を有するＲＮＮ回路を複数組み合わせることにより、様々なバリエーションの出力が得られ、且つ、理論解を求めることができる双一次結合を有するＲＮＮ回路を設計して作成することができる。又、組み合わせることによって得られるＲＮＮ回路全体を解析する際も、最初からシミュレーション等の解析を行うのではなく、上記実施例の手法により理論解析が可能な部分は極力利用することによって解析を行うことで、ＲＮＮ回路の設計を効率良く行うことができる。
【００５０】
図２３は、コンピュータシステムの一例を示すブロック図である。図２３に示すコンピュータシステム１００は、ＣＰＵ１０１、記憶部１０２、インタフェース（Ｉ／Ｆ）１０３、入力装置１０４、及び表示部１０５がバス１０６により接続された構成を有する。ＣＰＵ１０１は、記憶部１０２に格納されたプログラムを実行することによりコンピュータシステム１００全体を制御する。記憶部１０２は、半導体記憶装置、磁気記録媒体、光記録媒体、光磁気記録媒体等で形成可能であり、上記のプログラムや各種データを格納すると共に、ＣＰＵ１０１が実行する演算の中間結果や演算結果等を一時的に格納する一時メモリとしても機能する。Ｉ／Ｆ１０３は、記憶部１０２に格納するプログラムやデータをネットワーク（図示せず）から受信することができる。入力装置１０４は、キーボード等により形成可能である。表示部１０５は、ディスプレイ等により形成可能である。入力装置１０４及び表示部１０５は、タッチパネルのように入力装置と表示部の両方の機能を有する入出力装置で形成しても良い。
【００５１】
ＣＰＵ１０１は、記憶部１０２に格納されたプログラムを実行することにより、コンピュータシステム１００を、ニューラルネットワークを設計する装置として機能させる。プログラムは、ＣＰＵ１０１に少なくともニューラルネットワークの設計処理の手順を実行させるものであっても良く、記憶部１０２を含む適切なコンピュータ読み取り可能な記憶媒体に格納されていても良い。又、プログラムは、ＣＰＵ１０１に少なくとも図１０の双一次結合を有するＲＮＮ回路が理論解析が可能であるか否かを判断する処理を実行させるものであっても良い。つまり、ＣＰＵ１０１に図１０の双一次結合を有するＲＮＮ回路が理論解析が可能であるか否かを判断する処理を実行させるプログラムは、ＣＰＵ１０１にニューラルネットワークの設計処理の手順を実行させるプログラムに対してプラグイン可能な構成としても良い。
【００５２】
処理対象となるＲＮＮ回路、即ち、処理対象となるＲＮＮ回路のニューロンに関する情報は、コンピュータシステム１００の外部からＩ／Ｆ１０３を介して記憶部１０２に格納されても、入力装置１０４から入力されて記憶部１０２に格納されても、ＣＰＵ１０１が行うニューラルネットワーク設計処理中に生成されて記憶部１０２に格納されても良い。又、記憶部１０２に格納される、ＣＰＵ１０１が実行する演算の中間結果や演算結果には、図１０と共に説明した処理の各手順において求められる演算の中間結果や演算結果が含まれる。表示部１０５に表示される情報には、ＲＮＮ回路は理論解析が不可能である旨を示すメッセージ、ＲＮＮ回路は理論解析が可能である旨を示すメッセージ等が含まれる。
【００５３】
尚、コンピュータシステム１００において、ＣＰＵ１０１と他の部分との接続は、図２３に示すバス１０６による接続に限定されないことは言うまでもない。
【００５４】
上記実施例では、ＲＮＮ回路が歩数計に適用されているが、本発明により設計されるＲＮＮ回路は歩数計に限定されず、ロボット等の駆動回路、各種装置の制御回路や音声解析回路等を含む、双一次結合を有するＲＮＮが適用可能な各種物理モデルに対して適用可能であることは言うまでもない。
【００５５】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
コンピュータによるニューラルネットワーク設計方法であって、
ニューロンと結線を含んだ双一次結合を有するリカレントニューラルネットワーク（ＲＮＮ）回路の理論解析が可能であるか否かを判断する判断手順と、
理論解析が可能であると判断されたＲＮＮ回路を、双一次結合を有さない複数の部分ＲＮＮ回路に分割して記憶部に格納する分割手順と、
各部分ＲＮＮ回路の理論解析を行うことで理論解を求めて、前記記憶部に前記論理解を格納する解析手順と、
各部分ＲＮＮ回路の前記理論解を組み合わせて前記双一次結合を有するＲＮＮ回路の理論解を求めて出力する出力手順、
を前記コンピュータに実行させることを特徴とする、ニューラルネットワーク設計方法。
（付記２）
前記判断手順は、前記双一次結合を有するＲＮＮ回路の任意のニューロンの双一次結合から、前記ニューロンと前記結線をさかのぼっていくと前記任意のニューロン自身に戻ってしまう結合が無い場合に前記ＲＮＮ回路を理論解析が可能であると判断することを特徴とする、付記１記載のニューラルネットワーク設計方法。
（付記３）
前記分割手順は、前記理論解析が可能であると判断されたＲＮＮ回路から、ニューロン同士が結合している結線のみを取り出して得られる回路を部分ＲＮＮ回路と定義することを特徴とする、付記１又は２記載のニューラルネットワーク設計方法。
（付記４）
前記分割手順は、前記部分ＲＮＮ回路に対して、全ての双一次結合を外部入力関数に変換して前記双一次結合を有さない複数の部分ＲＮＮ回路を求め、双一次出力に対しては前記変換を行わないことを特徴とする、付記３記載のニューラルネットワーク設計方法。
（付記５）
前記判断手順は、前記双一次結合を有するＲＮＮ回路の任意のニューロンの双一次結合から、前記ニューロンと前記結線をさかのぼっていくと前記任意のニューロン自身に戻ってしまう結合を有すると前記ＲＮＮ回路を理論解析が不可能であると判断することを特徴とする、付記１乃至４のいずれか１項記載のニューラルネットワーク設計方法。
（付記６）
コンピュータにニューラルネットワークを設計させるプログラムであって、
ニューロンと結線を含んだ双一次結合を有するリカレントニューラルネットワーク（ＲＮＮ）回路の理論解析が可能であるか否かを判断する判断手順と、
理論解析が可能であると判断されたＲＮＮ回路を、双一次結合を有さない複数の部分ＲＮＮ回路に分割して記憶部に格納する分割手順と、
各部分ＲＮＮ回路の理論解析を行うことで理論解を求めて、前記記憶部に前記論理解を格納する解析手順と、
各部分ＲＮＮ回路の前記理論解を組み合わせて前記双一次結合を有するＲＮＮ回路の理論解を求めて出力する出力手順
を前記コンピュータに実行させることを特徴とする、プログラム。
（付記７）
前記判断手順は、前記双一次結合を有するＲＮＮ回路の任意のニューロンの双一次結合から、前記ニューロンと前記結線をさかのぼっていくと前記任意のニューロン自身に戻ってしまう結合が無い場合に前記ＲＮＮ回路を理論解析が可能であると判断することを特徴とする、付記６記載のプログラム。
（付記８）
前記分割手順は、前記理論解析が可能であると判断されたＲＮＮ回路から、ニューロン同士が結合している結線のみを取り出して得られる回路を部分ＲＮＮ回路と定義することを特徴とする、付記６又は７記載のプログラム。
（付記９）
前記分割手順は、前記部分ＲＮＮ回路に対して、全ての双一次結合を外部入力関数に変換して前記双一次結合を有さない複数の部分ＲＮＮ回路を求め、双一次出力に対しては前記変換を行わないことを特徴とする、付記８記載のプログラム。
（付記１０）
前記判断手順は、前記双一次結合を有するＲＮＮ回路の任意のニューロンの双一次結合から、前記ニューロンと前記結線をさかのぼっていくと前記任意のニューロン自身に戻ってしまう結合を有すると前記ＲＮＮ回路を理論解析が不可能であると判断することを特徴とする、付記６乃至９のいずれか１項記載のニューラルネットワーク設計方法。
（付記１１）
付記５乃至１０のいずれか１項記載のプログラムを記憶したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【００５６】
以上、開示のニューラルネットワーク設計方法及びプログラムを実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【符号の説明】
【００５７】
１０     電子装置
１１      加速度センサ
１２      メモリ
１３      ＣＰＵ
１４      表示装置
１００      コンピュータシステム
１０１      ＣＰＵ
１０２      記憶部
１０３      Ｉ／Ｆ
１０４      入力装置
１０５      表示部
【図１】
0005682403.tif 000002
【図２】
0005682403.tif 000003
【図３】
0005682403.tif 000004
【図４】
0005682403.tif 000005
【図５】
0005682403.tif 000006
【図６】
0005682403.tif 000007
【図７】
0005682403.tif 000008
【図８】
0005682403.tif 000009
【図９】
0005682403.tif 000010
【図１０】
0005682403.tif 000011
【図１１】
0005682403.tif 000012
【図１２】
0005682403.tif 000013
【図１３】
0005682403.tif 000014
【図１４】
0005682403.tif 000015
【図１５】
0005682403.tif 000016
【図１６】
0005682403.tif 000017
【図１７】
0005682403.tif 000018
【図１８】
0005682403.tif 000019
【図１９】
0005682403.tif 000020
【図２０】
0005682403.tif 000021
【図２１】
0005682403.tif 000022
【図２２】
0005682403.tif 000023
【図２３】
0005682403.tif 000024