(57)【特許請求の範囲】
【請求項１】
コンピュータにニューラルネットワークを設計させるプログラムであって、
リカレントニューラルネットワーク（ＲＮＮ）回路にニューロンの遅れパラメータεiがεi＝0である代入ニューロンのうち削除可能な代入ニューロンがあるか否かを記憶部に格納された判定条件に基づいて判定する判定手順と、
前記判定手順が削除可能な代入ニューロンがあると判定すると、削除可能な代入ニューロンの出力値を入力項に持つ全てのニューロンに対し結線の係数を変更する係数変更処理を前記記憶部に格納された係数変更処理情報に基づいて行う変更手順と、
前記係数変更処理が終了すると、削除可能なニューロンとその入出力結線を削除する処理を行い、その結果のＲＮＮ回路を前記記憶部に格納する削除手順
を前記コンピュータに実行させる、プログラム。
【請求項２】
前記判定条件は、出力が他のニューロンの入力になる代入ニューロンを削除可能な代入ニューロンとして定義し、
前記係数変更処理情報は、削除可能ニューロンの出力値を入力項に持つニューロンに対し、結線の係数を変更することを係数変更処理として定義する、請求項１記載のプログラム。
【請求項３】
前記削除処理は、前記削除可能ニューロンとその入出力結線を全て削除する処理を行う、請求項１又は２記載のプログラム。
【請求項４】
前記変更手順及び前記削除手順は、前記判定手順において削除可能な代入ニューロンが無いと判定されるまで繰り返される、請求項１乃至３のいずれか１項記載のプログラム。
【請求項５】
コンピュータによるニューラルネットワーク設計方法であって、
リカレントニューラルネットワーク（ＲＮＮ）回路にニューロンの遅れパラメータεiがεi＝0である代入ニューロンのうち削除可能な代入ニューロンがあるか否かを記憶部に格納された判定条件に基づいて判定する判定手順と、
前記判定手順が削除可能な代入ニューロンがあると判定すると、削除可能な代入ニューロンの出力値を入力項に持つ全てのニューロンに対し結線の係数を変更する係数変更処理を前記記憶部に格納された係数変更処理情報に基づいて行う変更手順と、
前記係数変更処理が終了すると、削除可能なニューロンとその入出力結線を削除する処理を行い、その結果のＲＮＮ回路を前記記憶部に格納する削除手順
を前記コンピュータに実行させる、ニューラルネットワーク設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理モデルに適用可能なニューラルネットワークを設計するニューラルネットワーク設計方法、及び、コンピュータにニューラルネットワークを設計させるプログラムに関する。本発明は、このようなプログラムを格納したコンピュータ読み取り可能な記憶媒体にも関する。
【背景技術】
【０００２】
リカレントニューラルネットワーク（ＲＮＮ：Recurrent Neural Network）は、ロボットの動作等に適用するために開発されたニューラルネットワークであるが、ロボットの動作のみならず、歩数計や音声解析装置等の様々な電子装置等の物理モデルに対して適用可能である。ＲＮＮ自体は、例えば特許文献１、非特許文献１等にて提案されている。
【０００３】
ＲＮＮは、ニューロンと結線からなるネットワークであり、ニューロンと入出力の結線との関係式は図1のように与えられる。図１において、εiは遅れパラメータ、yi, yjはニューロンの状態量、Cijは重み係数、tは時間を表し、ニューロンの状態量を表すyiをニューロンと同一視する場合もある。
【０００４】
図１の関係式の拡張として、図２のような関係式も考えられる。図２は、図１の構成に加え値giがニューロンyiに入力されることを示し、値giはこのＲＮＮ回路のニューロン以外で求められた値である。
【０００５】
図３は、1つのニューロンと３つの結線からなるＲＮＮ回路の一例を示す図である。図３において、ε1=1であり、結線に添えられた「１」は重み係数を表す。又、g1=0（固定）であり、この場合はＲＮＮ回路を図１のように値giの結線が無い簡略化した形式で表すこともできる。図４は、図３のＲＮＮ回路の関係式を説明する図である。図４の微分方程式を解くと、y1=C（定数）が求められる。
【０００６】
図５は、２つのニューロンと６つの結線からなるＲＮＮ回路の一例を示す図である。図５において、εi=1であり、結線に添えられた「１」は重み係数を表す。又、gi=0（固定）であり、この場合はＲＮＮ回路を図１のように値giの結線が無い簡略化した形式で表すこともできる。図６は、図５のＲＮＮ回路の関係式を説明する図である。図６の微分方程式を解くと、y2=C・tの１次関数が求められる。
【０００７】
本明細書では、説明の便宜上、ニューロンを２つのタイプに分け、図７に示すようにεi≠0のニューロンを「通常ニューロン」と定義する。これに対し、図８に示すようにεi＝0のニューロンを「代入ニューロン」と定義する。通常ニューロンは、εi≠0により１階微分の項が消えないため、１階微分方程式を持ったニューロンである。これに対し、代入ニューロンは、εi＝0により１階微分の項が消えてしまうため、微分方程式ではなく代入式となるニューロンである。
【０００８】
図９は、図３のニューロン及び図５のニューロンを代入ニューロンで繋いだＲＮＮ回路の一例を示す図である。図３及び図５のニューロンを繋いだ結果、y4のニューロンの出力はy4=C1・t+ C3となる。
【０００９】
ＲＮＮ回路を用いて電子装置等の出力を得たい場合、最初から直接ＲＮＮ回路を構成するのではなく、図３、図５、図９等の様々なＲＮＮ回路をパーツとして予め用意しておいて、それらのパーツを組み合わせることでより大きなＲＮＮ回路を構成する方が設計手順が分かりやすい場合や設計手順が簡単になる場合がある。図１０は、図９のＲＮＮ回路１と図５のＲＮＮ回路２を組み合わせたＲＮＮ回路を示す図である。図１０では、値g5の入力として状態量y4の値を代入することにより２つのＲＮＮ回路１，２を組み合わせており、ニューロンと入出力の結線との関係式が図１０の右側に示されている。
【００１０】
図１０中、右側の真中の式からもわかるように、状態量y6の２階微分はg5の値になっている。これは、例えばロボットの物理モデルの一例で説明すると、ＲＮＮ回路２は、加速度g5が与えられた時に動作y6を出力する回路となる。又、この例では、ＲＮＮ回路１は加速度y4を求める回路となる。従って、ロボットのアーム等をある加速度で動かしたい場合、ＲＮＮ回路１で所望の加速度を求め、ＲＮＮ回路１をＲＮＮ回路２と組み合わせることによりアームの実際の動きを得ることができる。図１０の例では、ＲＮＮ回路１とＲＮＮ回路２の組み合わせにより、加速度y4=C1・t+C3が与えられたときの動作y6を出力する回路が得られる。
【００１１】
様々なＲＮＮ回路をパーツとして予め用意しておき、それらのパーツを組み合わせることでより大きなＲＮＮ回路を構成する方法は、分かりやすく自然なニューラルネットワークの設計方法である。しかし、設計されたＲＮＮ回路は、計算量やメモリ量が必ず最適になるとは限らない。設計されたＲＮＮ回路の結線やニューロンを減らして、同じ出力結果を得ることのできる、よりコンパクトなＲＮＮ回路を設計できれば、ＲＮＮ回路の最適化を図ることができるが、従来は設計者が手動でＲＮＮの結線やニューロンを減らすという面倒で時間のかかる作業を行うしかない。このため、ＲＮＮ回路の最適化には時間がかかると共に、最適化の結果が設計者の熟練度に依存してしまい安定しない。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】国際出願公開番号ＷＯ２００７／１３５７２３号公報
【特許文献２】特表２００１−５０７７７２号公報
【非特許文献】
【００１３】
【非特許文献１】永嶋史朗、「双線形時間遅れニューラルネットワークによるロボットソフトウェアシステム」、日本ロボット学会誌、Vol.24, No.6, pp.53-64, 2006
【発明の概要】
【発明が解決しようとする課題】
【００１４】
従来のニューラルネットワーク設計方法では、ニューラルネットワーク回路を安定に、且つ、比較的簡単に最適化することは難しいという問題があった。
【００１５】
そこで、本発明は、ニューラルネットワーク回路を安定に、且つ、比較的簡単に最適化することのできるニューラルネットワーク設計方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の一観点によれば、コンピュータによるニューラルネットワーク設計方法であって、リカレントニューラルネットワーク（ＲＮＮ）回路にニューロンの遅れパラメータεiがεi＝0である代入ニューロンのうち削除可能な代入ニューロンがあるか否かを記憶部に格納された判定条件に基づいて判定する判定手順と、前記判定手順が削除可能な代入ニューロンがあると判定すると、削除可能な代入ニューロンの出力値を入力項に持つ全てのニューロンに対し結線の係数を変更する係数変更処理を前記記憶部に格納された係数変更処理情報に基づいて行う変更手順と、前記係数変更処理が終了すると、削除可能なニューロンとその入出力結線を削除する処理を行い、その結果のＲＮＮ回路を前記記憶部に格納する削除手順を前記コンピュータに実行させるニューラルネットワーク設計方法が提供される。
【００１７】
本発明の一観点によれば、コンピュータにニューラルネットワークを設計させるプログラムであって、リカレントニューラルネットワーク（ＲＮＮ）回路にニューロンの遅れパラメータεiがεi＝0である代入ニューロンのうち削除可能な代入ニューロンがあるか否かを記憶部に格納された判定条件に基づいて判定する判定手順と、前記判定手順が削除可能な代入ニューロンがあると判定すると、削除可能な代入ニューロンの出力値を入力項に持つ全てのニューロンに対し結線の係数を変更する係数変更処理を前記記憶部に格納された係数変更処理情報に基づいて行う変更手順と、前記係数変更処理が終了すると、削除可能なニューロンとその入出力結線を削除する処理を行い、その結果のＲＮＮ回路を前記記憶部に格納する削除手順を前記コンピュータに実行させるプログラムが提供される。
【発明の効果】
【００１８】
開示のニューラルネットワーク設計方法及びプログラムによれば、ニューラルネットワーク回路を安定に、且つ、比較的簡単に最適化することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】ニューロンと入出力の結線との関係式を説明する図である
【図２】図１の関係式の拡張を説明する図である。
【図３】1つのニューロンと３つの結線からなるＲＮＮ回路の一例を示す図である。
【図４】図３のＲＮＮ回路の関係式を説明する図である。
【図５】２つのニューロンと６つの結線からなるＲＮＮ回路の一例を示す図である。
【図６】図５のＲＮＮ回路の関係式を説明する図である。
【図７】通常ニューロンを説明する図である。
【図８】代入ニューロンを説明する図である。
【図９】図３のニューロン及び図５のニューロンを代入ニューロンで繋いだＲＮＮ回路の一例を示す図である。
【図１０】図９のＲＮＮ回路と図５のＲＮＮ回路を組み合わせたＲＮＮ回路を示す図である。
【図１１】ＲＮＮ回路を搭載した電子装置の一例を示すブロック図である。
【図１２】削除可能な代入ニューロンを示す図である。
【図１３】削除不可能な代入ニューロンを示す図である。
【図１４】削除可能な代入ニューロンを削除する処理を説明するフローチャートである。
【図１５】図１４のニューロン削除処理で行われる結線の係数の変更処理を説明する図である。
【図１６】yiのニューロンが組(i, εi)、ykニューロンが組(k, εk)を持ち、結線が組(i, k, Cki)、(-1, i, 1)、(k, -1, 1)を持つＲＮＮ回路の一例を示す図である。
【図１７】設計されたＲＮＮ回路の一例を示す図である。
【図１８】y3のニューロンの結線の係数を図１５の係数変更処理により変更した結果を示す図である。
【図１９】y5のニューロンの結線の係数を図１５の係数変更処理により変更した結果を示す図である。
【図２０】y2の削除可能ニューロンと入出力結線が全て削除された結果を示す図である。
【図２１】図１４のニューロン削除処理により図１０のＲＮＮ回路を最適化した結果を示す図である。
【図２２】代入ニューロンの出力が他のニューロンの入力になっていない最適化されたＲＮＮ回路の一例を示す図である。
【図２３】コンピュータシステムの一例を示すブロック図である。
【発明を実施するための形態】
【００２０】
開示のニューラルネットワーク設計方法及びプログラムでは、ニューラルネットワーク回路に対し、不必要なニューロンと結線を除去する。これにより、不必要なニューロンと結線が除去された最適なニューラルネットワーク回路が実現できる。又、結線数を減少させることでニューラルネットワーク回路の演算量を削減でき、ニューロン数を減少させることで演算等で用いるメモリ容量を削減できる。
【００２１】
以下に、開示のニューラルネットワーク設計方法及びプログラムの各実施例を図面と共に説明する。
【実施例】
【００２２】
図１１は、ＲＮＮ回路を搭載した電子装置の一例を示すブロック図である。電子装置は、例えば歩数計の機能を備えた携帯電話である。以下の説明においても、図１乃至図９の説明と同様に、εiは遅れパラメータ、yi, yjはニューロンの状態量、Cijは重み係数、tは時間を表し、ニューロンの状態量を表すyiをニューロンと同一視する場合もある。又、giはニューロンyiに入力される値である。
【００２３】
図１１の例では、説明の便宜上、ＲＮＮ回路が歩数をカウントする歩数計の機能を実現するものとする。図１１の電子装置（即ち、携帯電話）１０は、加速度センサ１１、メモリ１２、ＣＰＵ（Central Processing Unit）１３、及び表示装置１４を有する。加速度センサ１１の出力値giがメモリ１２に入力され、ＣＰＵ１３がＲＮＮ回路の計算を行って歩数の結果を表示装置１４に出力する。メモリ１２には、ＲＮＮ回路を構成する各yiのニューロン（又は、状態量）の初期値と加速度センサ１１の各出力値giが代入され保存されている。又、メモリ１２には、ＲＮＮ回路の実行プログラムが保存されている。クロック毎に、各yiの値とgiの値が実行プログラムによりＣＰＵ１３で演算される。ＣＰＵ１３の演算により計算された各yiの値はメモリ１２に保存され、次のgiの値がメモリ１２に代入される。このような処理が所定の回数実行された後、出力として欲しいニューロン（又は、状態量）の値、即ち、歩数値がＣＰＵ１３によりメモリ１２から読み出され、表示装置１４に表示されることで歩数計の一連の処理が終了する。
【００２４】
電子装置１０用に設計されたＲＮＮ回路において、通常ニューロンは1階の微分方程式を持つため削除は難しい。そこで、本発明の一実施例では、不必要なニューロンを除去するために代入ニューロンに着目し、余分な代入ニューロンを削除してＲＮＮ回路を最適化する。具体的には、代入ニューロンを、「削除可能な代入ニューロン」と「削除不可能な代入ニューロン」とに区別する。
【００２５】
図１２は、削除可能な代入ニューロンを示す図であり、図１３は、削除不可能な代入ニューロンを示す図である。削除可能な代入ニューロンは、図１２に示すように出力が他のニューロンの入力になる代入ニューロンとして定義する。これに対して、削除不可能な代入ニューロンは、図１３に示すように出力が他のニューロンの入力にならない代入ニューロンとして定義する。つまり、図１２に示す削除可能な代入ニューロンは、計算途中のニューロンであり、図１３に示す削除不可能な代入ニューロンは、最終出力を有するニューロンである。
【００２６】
本実施例では、以下に説明する処理で削除可能な代入ニューロンを削除してＲＮＮ回路の最適化を図る。
【００２７】
図１４は、削除可能な代入ニューロンを削除する処理を説明するフローチャートであり、図１５は、図１４のニューロン削除処理（又は、ＲＮＮ回路最適化処理）で行われる結線の係数の変更処理を説明する図である。この係数変更処理により、削除可能ニューロンの出力値を入力項に持つニューロンに対し、結線の係数を変更する。図１５に示すように、ykのニューロンに入力される結線のうち、yiのニューロンと結ばれた結線以外の結線の係数を変更する。又、図１５において、Cijは重み係数であり、Cij=0の時は通常は結線を記載しないこととする。
【００２８】
図１４において、ステップＳ１は、コンピュータシステムの記憶部に格納されている周知の方法で設計されたＲＮＮ回路に削除可能な代入ニューロンがあるか否かを記憶部に格納されている判定条件に基づいて判定し、判定結果がYesであると処理はステップＳ２へ進む。この判定条件は、図８に示すようにεi＝0により１階微分の項が消えてしまうため微分方程式ではなく代入式となる代入ニューロンのうち、出力が他のニューロンの入力になる代入ニューロンを削除可能な代入ニューロンとして定義する。記憶部には、遅れパラメータεi、状態量yi, yj、重み係数Cij、値gi等に加え、ニューロンと入出力の結線との関係式等の結線情報がＲＮＮ回路を形成する各ニューロンについて格納されているので、判定条件は、εi＝0、且つ、出力が他のニューロンの入力となる結線を有する結線情報が記憶部に格納されているニューロンを削除可能な代入ニューロンと判定する情報である。
【００２９】
ステップＳ２は、削除可能な代入ニューロンの出力値を入力項に持つ全てのニューロンに対し、記憶部に格納されている係数変更処理情報に基づいて図１５の係数変更処理を行って結線の係数を変更する。係数変更処理情報は、図１５に示す係数変更処理のアルゴリズム、或いは、係数変更処理を表す計算式を示す。従って、係数変更処理情報は、削除可能ニューロンの出力値を入力項に持つニューロンに対し、結線の係数を変更する任意のアルゴリズムに基づいた係数変更処理を定義する。ステップＳ２の結線の係数変更処理が終了すると、処理は次のステップＳ３へ進む。
【００３０】
ステップＳ３は、削除可能ニューロンとその入出力結線を削除することで、削除可能ニューロンとその入出力結線を全て削除し、その結果（即ち、削除可能ニューロンとその入出力結線を全て削除されたＲＮＮ回路）を記憶部に格納する。ステップＳ３の削除処理の後、処理はステップＳ１へ戻る。従って、ステップＳ１では、ＲＮＮ回路に削除可能な代入ニューロンがあるか否かを再度判定し、削除可能な代入ニューロンが無く判定結果がNoになると処理は終了する。上記の如き処理で余分な代入ニューロンを削除することにより、最適化されたＲＮＮ回路を得ることができる。
【００３１】
本実施例によれば、ＲＮＮ回路の結線やニューロンを減らす作業をコンピュータが自動的に行うため、ＲＮＮ回路の最適化を比較的短時間で行えると共に、最適化の結果が設計者の熟練度に依存しないので常に安定した結果（即ち、最適化されたＲＮＮ回路）を得ることができる。
【００３２】
各ニューロンは、ニューロン番号iと遅れパラメータεの値の組(i, εi)を持ち、結線は出力ニューロン番号i、入力ニューロン番号jと係数Cijの組(i, j, Cij)を持つ。図１６は、yiのニューロンが組(i, εi)、ykのニューロンが組(k, εk)を持ち、結線が組(i, k, Cki)、(-1, i, 1)、(k, -1, 1)を持つＲＮＮ回路の一例を示す図である。ここで、-1はニューロン番号には現れない数字であり、直接入力又は直接出力を示す。
【００３３】
(i, 0)となる代入ニューロンのうち、結線の組(i, j, Cij)でj≧0、且つ、Cij＞0となる代入ニューロンが存在し、(i, -1, 0)となる時（即ち、直接出力が無い時）にこれらの条件を満たす代入ニューロンを削除可能な代入ニューロンであると判断する。これらの条件（即ち、上記判定条件）を満たす代入ニューロンを探し、探し出された代入ニューロンを全て削除すれば良い。図１５で説明した係数変更処理により結線の係数が変更されたとき、結線の組も(j, k, Ckj)から(j, k, Ckj+Cki・Cij)に変更する。
【００３４】
次に、図１４のニューロン削除処理の一例を、図１７と共に説明する。図１７は、周知の方法で設計されたＲＮＮ回路の一例を示す図であり、この例ではこのＲＮＮ回路の最適化を考える。図１７のＲＮＮ回路は、通常ニューロンを３個（y1, y4, y5）、削除不可能な代入ニューロンを1個（y3）、削除可能な代入ニューロンを１個（y2）有する。図１４のステップＳ１は、ＲＮＮ回路に削除可能な代入ニューロンがあるか否かを判定し、図１７のＲＮＮ回路には削除可能な代入ニューロンがあるのでステップＳ１の判定結果がYesとなり、処理はステップＳ２へ進む。ステップＳ２は、削除可能な代入ニューロンの出力値を入力項に持つ全てのニューロンに対し、図１５の係数変更処理により結線の係数を変更する。図１７のＲＮＮ回路では、y3のニューロンとy5のニューロンがy2の削除可能ニューロンと結ばれたニューロンであるため、これら２つのニューロンの結線の係数を変更すれば良い。
【００３５】
図１８は、y3のニューロンの結線の係数を図１５の係数変更処理により変更した結果を示す図である。図１８において、y2が削除可能な代入ニューロンに入力されるニューロンは、y1のニューロンとy4のニューロンである。そこで、y1のニューロンとy3のニューロンを結ぶ結線の係数と、y4のニューロンとy3のニューロンを結ぶ結線の係数を変更すれば良い。y1のニューロンとy3のニューロンを結ぶ結線の変換後の係数値は「4+6・2」となる。「4」はy1のニューロンとy3のニューロンを結ぶ結線の元の係数値、「6」はy2のニューロンとy3のニューロンを結ぶ結線の元の係数値、「2」はy1のニューロンとy2のニューロンを結ぶ結線の元の係数値である。又、y4のニューロンとy3のニューロンを結ぶ結線の変換後の係数値は「0+6・3」となる。「0」はy4のニューロンとy3のニューロンを結ぶ結線の元の係数値（この例では、元々y4のニューロンとy3のニューロンを結ぶ結線は無い）、「6」はy2のニューロンとy3のニューロンを結ぶ結線の元の係数値、「3」はy4のニューロンとy2のニューロンを結ぶ結線の元の係数値である。
【００３６】
図１９は、y5のニューロンの結線の係数を図１５の係数変更処理により変更した結果を示す図である。図１９において、y2の削除可能ニューロンに入力されるニューロンは、y1のニューロンとy4のニューロンである。そこで、y1のニューロンとy5のニューロンを結ぶ結線の係数と、y4のニューロンとy5のニューロンを結ぶ結線の係数を変更すれば良い。y1のニューロンとy5のニューロンを結ぶ結線の変換後の係数値は「0+7・2」となる。「0」はy1のニューロンとy5のニューロンを結ぶ結線の元の係数値（この例では、元々y1のニューロンとy5のニューロンを結ぶ結線は無い）、「7」はy2のニューロンとy5のニューロンを結ぶ結線の元の係数値、「2」はy1のニューロンとy2のニューロンを結ぶ結線の元の係数値である。又、y4のニューロンとy5のニューロンを結ぶ結線の変換後の係数値は「5+7・3」となる。「5」はy4のニューロンとy5のニューロンを結ぶ結線の元の係数値、「7」はy2のニューロンとy5のニューロンを結ぶ結線の元の係数値、「3」はy4のニューロンとy2のニューロンを結ぶ結線の元の係数値である。
【００３７】
ステップＳ２において図１８及び図１９と共に説明した如き結線の係数に対する係数変更処理が終了すると、処理は次のステップＳ３に進む。ステップＳ３は、削除可能ニューロンとその入出力結線を削除することで、例えばy2の削除可能ニューロンとその入出力結線を全て削除する。図２０は、y2の削除可能ニューロンとその入出力結線が全て削除された結果を示す図である。
【００３８】
ステップＳ３において図２０と共に説明した如き削除処理が終了すると、処理はステップＳ１へ戻る。従って、ステップＳ１では、ＲＮＮ回路に削除可能な代入ニューロンがあるか否かを再度判定する。図２０のＲＮＮ回路の場合、削除可能な代入ニューロンは無いのでステップＳ３の判定結果はNoとなり、処理は終了する。上記の処理により、図２０のように最適化されたＲＮＮ回路が得られる。
【００３９】
次に、図１０のＲＮＮ回路についてを再度説明する。図１０のＲＮＮ回路は、図９のＲＮＮ回路1と図５のＲＮＮ回路２の２つのパーツ（即ち、２つのＲＮＮ回路）を組み合わせたＲＮＮ回路である。しかし、図１０のＲＮＮ回路は削除可能ニューロンy4を有するため、最適化されたＲＮＮ回路ではない。そこで、図１４のニューロン削除処理を用いて図１０のＲＮＮ回路を最適化すると、図２１の如き結果を得ることができる。図２１は、図１０のＲＮＮ回路を図１４のニューロン削除処理により最適化した結果を示す図である。図２１のＲＮＮ回路は、削除可能ニューロンを有さない最適化されたＲＮＮ回路であることがわかる。
【００４０】
最適化されたＲＮＮ回路においては、代入ニューロンの出力は他のニューロンの入力になっていないという特徴を有する。図２２は、代入ニューロンの出力が他のニューロンの入力になっていない最適化されたＲＮＮ回路の一例を示す図である。
【００４１】
図２３は、コンピュータシステムの一例を示すブロック図である。図２３に示すコンピュータシステム１００は、ＣＰＵ１０１、記憶部１０２、インタフェース（Ｉ／Ｆ）１０３、入力装置１０４、及び表示部１０５がバス１０６により接続された構成を有する。ＣＰＵ１０１は、記憶部１０２に格納されたプログラムを実行することによりコンピュータシステム１００全体を制御する。記憶部１０２は、半導体記憶装置、磁気記録媒体、光記録媒体、光磁気記録媒体等で形成可能であり、上記のプログラムや各種データを格納すると共に、ＣＰＵ１０１が実行する演算の中間結果や演算結果等を一時的に格納する一時メモリとしても機能する。Ｉ／Ｆ１０３は、記憶部１０２に格納するプログラムやデータをネットワーク（図示せず）から受信することができる。入力装置１０４は、キーボード等により形成可能である。表示部１０５は、ディスプレイ等により形成可能である。入力装置１０４及び表示部１０５は、タッチパネルのように入力装置と表示部の両方の機能を有する入出力装置で形成しても良い。
【００４２】
ＣＰＵ１０１は、記憶部１０２に格納されたプログラムを実行することにより、コンピュータシステム１００をニューラルネットワークを設計する装置として機能させる。プログラムは、ＣＰＵ１０１に少なくともニューラルネットワークの設計処理の手順を実行させるものであっても良く、記憶部１０２を含む適切なコンピュータ読み取り可能な記憶媒体に格納されていても良い。又、プログラムは、ＣＰＵ１０１に少なくとも図１４のニューロン削除処理を実行させるものであっても良い。つまり、ＣＰＵ１０１に図１４のニューロン削除処理を実行させるプログラムは、ＣＰＵ１０１にニューラルネットワークの設計処理の手順を実行させるプログラムに対してプラグイン可能な構成としても良い。
【００４３】
尚、上記実施例では、ＲＮＮ回路が歩数計に適用されているが、本発明により設計されるＲＮＮ回路は歩数計に限定されず、ロボット等の駆動回路、各種装置の制御回路や音声解析回路等を含む各種物理モデルに対して適用可能であることは言うまでもない。
【００４４】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
コンピュータによるニューラルネットワーク設計方法であって、
リカレントニューラルネットワーク（ＲＮＮ）回路にニューロンの遅れパラメータεiがεi＝0である代入ニューロンのうち削除可能な代入ニューロンがあるか否かを記憶部に格納された判定条件に基づいて判定する判定手順と、
前記判定手順が削除可能な代入ニューロンがあると判定すると、削除可能な代入ニューロンの出力値を入力項に持つ全てのニューロンに対し結線の係数を変更する係数変更処理を前記記憶部に格納された係数変更処理情報に基づいて行う変更手順と、
前記係数変更処理が終了すると、削除可能なニューロンとその入出力結線を削除する処理を行い、その結果のＲＮＮ回路を前記記憶部に格納する削除手順
を前記コンピュータに実行させる、ニューラルネットワーク設計方法。
（付記２）
前記判定条件は、出力が他のニューロンの入力になる代入ニューロンを削除可能な代入ニューロンとして定義し、
前記係数変更処理情報は、削除可能ニューロンの出力値を入力項に持つニューロンに対し、結線の係数を変更することを係数変更処理として定義する、付記１記載のニューラルネットワーク設計方法。
（付記３）
前記削除処理は、前記削除可能ニューロンとその入出力結線を全て削除する処理を行う、付記１又は２記載のニューラルネットワーク設計方法。
（付記４）
前記変更手順及び前記削除手順は、前記判定手順において削除可能な代入ニューロンが無いと判定されるまで繰り返される、付記１乃至３のいずれか１項記載のニューラルネットワーク設計方法。
（付記５）
各ニューロンは、ニューロン番号iと遅れパラメータεの値の組(i, εi)を持ち、
結線は出力ニューロン番号i、入力ニューロン番号jと係数Cijの組(i, j, Cij)を持ち、
yiのニューロンが組(i, εi)、ykのニューロンが組(k, εk)を持ち、
結線が組(i, k, Cki)、(-1, i, 1)、(k, -1, 1)を持ち、
-1はニューロン番号には現れない数字であり直接入力又は直接出力を示すＲＮＮ回路に対して、
前記判定手順は、(i, 0)となる代入ニューロンのうち、結線の組(i, j, Cij)でj≧0、且つ、Cij＞0となる代入ニューロンが存在し、(i, -1, 0)となる時にこれらの所定条件を満たす代入ニューロンを削除可能な代入ニューロンであると判断し、
前記変更手順は、結線の係数が変更されたとき、結線の組を(j, k, Ckj)から(j, k, Ckj+Cki・Cij)に変更し、
前記削除手順は、前記所定条件を満たす代入ニューロンを全て削除する、付記１乃至４のいずれか１項記載のニューラルネットワーク設計方法。
（付記６）
コンピュータにニューラルネットワークを設計させるプログラムであって、
リカレントニューラルネットワーク（ＲＮＮ）回路にニューロンの遅れパラメータεiがεi＝0である代入ニューロンのうち削除可能な代入ニューロンがあるか否かを記憶部に格納された判定条件に基づいて判定する判定手順と、
前記判定手順が削除可能な代入ニューロンがあると判定すると、削除可能な代入ニューロンの出力値を入力項に持つ全てのニューロンに対し結線の係数を変更する係数変更処理を前記記憶部に格納された係数変更処理情報に基づいて行う変更手順と、
前記係数変更処理が終了すると、削除可能なニューロンとその入出力結線を削除する処理を行い、その結果のＲＮＮ回路を前記記憶部に格納する削除手順
を前記コンピュータに実行させる、プログラム。
（付記７）
前記判定条件は、出力が他のニューロンの入力になる代入ニューロンを削除可能な代入ニューロンとして定義し、
前記係数変更処理情報は、削除可能ニューロンの出力値を入力項に持つニューロンに対し、結線の係数を変更することを係数変更処理として定義する、付記６記載のプログラム。
（付記８）
前記削除処理は、前記削除可能ニューロンとその入出力結線を全て削除する処理を行う、付記６又は７記載のプログラム。
（付記９）
前記変更手順及び前記削除手順は、前記判定手順において削除可能な代入ニューロンが無いと判定されるまで繰り返される、付記６乃至８のいずれか１項記載のプログラム。
（付記１０）
各ニューロンは、ニューロン番号iと遅れパラメータεの値の組(i, εi)を持ち、
結線は出力ニューロン番号i、入力ニューロン番号jと係数Cijの組(i, j, Cij)を持ち、
yiのニューロンが組(i, εi)、ykのニューロンが組(k, εk)を持ち、
結線が組(i, k, Cki)、(-1, i, 1)、(k, -1, 1)を持ち、
-1はニューロン番号には現れない数字であり直接入力又は直接出力を示すＲＮＮ回路に対して、
前記判定手順は、(i, 0)となる代入ニューロンのうち、結線の組(i, j, Cij)でj≧0、且つ、Cij＞0となる代入ニューロンが存在し、(i, -1, 0)となる時にこれらの所定条件を満たす代入ニューロンを削除可能な代入ニューロンであると判断し、
前記変更手順は、結線の係数が変更されたとき、結線の組を(j, k, Ckj)から(j, k, Ckj+Cki・Cij)に変更し、
前記削除手順は、前記所定条件を満たす代入ニューロンを全て削除する、付記６乃至９のいずれか１項記載のプログラム。
（付記１１）
付記６乃至１０のいずれか１項記載のプログラムを記載した、コンピュータ読み取り可能な記憶媒体。
【００４５】
以上、開示のニューラルネットワーク設計方法及びプログラムを実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【符号の説明】
【００４６】
１０     電子装置
１１      加速度センサ
１２      メモリ
１３      ＣＰＵ
１４      表示装置
１００      コンピュータシステム
１０１      ＣＰＵ
１０２      記憶部
１０３      Ｉ／Ｆ
１０４      入力装置
１０５      表示部
【図１】
0005510014.tif 000002
【図２】
0005510014.tif 000003
【図３】
0005510014.tif 000004
【図４】
0005510014.tif 000005
【図５】
0005510014.tif 000006
【図６】
0005510014.tif 000007
【図７】
0005510014.tif 000008
【図８】
0005510014.tif 000009
【図９】
0005510014.tif 000010
【図１０】
0005510014.tif 000011
【図１１】
0005510014.tif 000012
【図１２】
0005510014.tif 000013
【図１３】
0005510014.tif 000014
【図１４】
0005510014.tif 000015
【図１５】
0005510014.tif 000016
【図１６】
0005510014.tif 000017
【図１７】
0005510014.tif 000018
【図１８】
0005510014.tif 000019
【図１９】
0005510014.tif 000020
【図２０】
0005510014.tif 000021
【図２１】
0005510014.tif 000022
【図２２】
0005510014.tif 000023
【図２３】
0005510014.tif 000024