(57)【特許請求の範囲】
【請求項１】
複数の可変パラメータを有し、所定数の入力値と該可変パラメータの値によって所定数の出力値が決定される入出力装置と、入出力値のセットからなる訓練データが与えられた場合、該訓練データの出力値と前記入出力装置に該訓練データの入力値を入力したときの出力値との距離が減少するように前記可変パラメータの値を変更するパラメータ変更装置とを有し、前記訓練データの提示に伴って前記可変パラメータの値を変更する学習モード及び前記入出力装置に任意の入力値を入力したときの出力値を利用する使用モードの２つの動作モードを持つ関数学習装置において、
前記学習モードにおいてアナログメモリーで構成された第１の記憶手段に保持された値と該第１の記憶手段とは異なる第２の記憶手段に保持された値の和または差の形で前記可変パラメータの値を学習可能な精度で保持することができ、前記使用モードにおいて前記第２の記憶手段によって前記可変パラメータの値を、前記入出力装置の入出力関係を許容誤差範囲で維持可能な精度で保持することができるような、第１の記憶手段及び第２の記憶手段を備え、
前記学習モードにおいては前記可変パラメータの値の保持のために前記第１の記憶手段及び前記第２の記憶手段を使用し、前記使用モードにおいては前記可変パラメータの値の保持のために前記第２の記憶手段を使用することを特徴とする関数学習装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、神経回路網を用いた関数学習装置に関する。
【０００２】
【従来の技術】
現在、パターン認識、制御システム、時系列予測等で必要とされる一般に非線形な入出力関係を、訓練データとして提示された入出力データの複数のセットから学習によって推定する手法として神経回路網を用いた手法が注目されている。
【０００３】
ここで学習とは、神経回路網が所望の入出力関係を実現するようにシナプス値と呼ばれる回路網の可変パラメータを最適化して行くことであり、従来一般的な手法としては、入出力値のセットからなる訓練データの入力値に対する回路網の出力値と訓練データの出力値との誤差の二乗が減少するように、全ての神経細胞素子間の結合重み係数、即ちシナプス値を変更して行くＢＰ（Ｂａｃｋ  Ｐｒｏｐａｇａｔｉｏｎ）学習が行われている。
【０００４】
この学習を繰り返すことによって、神経回路網の入出力関係は所望の入出力関係に近いものとなって行き、訓練データとして提示されていない入力値に対する出力に対しても妥当な推定出力が得られるとされ、数多くの工学的応用の検討がなされてきている。
【０００５】
しかしながら神経回路網のアルゴリズムの実行には、特に学習の過程において膨大な計算量が必要となって実時間のソフトウェア処理が困難であるため、応用分野を拡大するためにも専用ＬＳＩの開発が望まれている。
【０００６】
【発明が解決しようとする課題】
神経回路網をアナログＬＳＩで実現するためのポイントの１つに、シナプス値を保持するための記憶手段の実現法がある。神経回路網アルゴリズムを忠実に実行するためにはシナプス値を連続値として保持する必要があるが、高精度で長期間の信頼性を持ったアナログメモリーが現状では無いため、一般にはディジタルメモリーを疑似アナログ的に用いて代用させている。しかしながらこの場合は、離散階調数の増加と共にハードウェア規模が大きくなってしまうという問題が生じる。
【０００７】
これを避けるため、精度を落してディジタルメモリーの階調数を減らす試みもなされている。しかしこの場合、特に学習過程において、シナプスベクトル空間上でのアナログ探索というニューロコンピューテイングの特徴を維持するために必要なだけ多くのシナプスベクトルの状態数が保持されないため、学習不能となってしまう。
【０００８】
本発明は、上記事情を考慮してなされたものであり、シナプス値記憶部全体としてのハードウェア規模を大きくせずに、学習時に望まれるシナプス値の連続性を保持した上で、学習後のシナプス値の長期使用に耐えられるようにした神経回路網を用いた関数学習装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明は、複数の可変パラメータを有し、所定数の入力値と該可変パラメータの値によって所定数の出力値が決定される入出力装置と、入出力値のセットからなる訓練データが与えられた場合、該訓練データの出力値と前記入出力装置に該訓練データの入力値を入力したときの出力値との距離が減少するように前記可変パラメータの値を変更するパラメータ変更装置とを有し、前記訓練データの提示に伴って前記可変パラメータの値を変更する学習モード及び前記入出力装置に任意の入力値を入力したときの出力値を利用する使用モードの２つの動作モードを持つ関数学習装置において、前記学習モードにおいてアナログメモリーで構成された第１の記憶手段に保持された値と該第１の記憶手段とは異なる第２の記憶手段に保持された値の和または差の形で前記可変パラメータの値を学習可能な精度で保持することができ、前記使用モードにおいて前記第２の記憶手段によって前記可変パラメータの値を、前記入出力装置の入出力関係を許容誤差範囲で維持可能な精度で保持することができるような、第１の記憶手段及び第２の記憶手段を備え、前記学習モードにおいては前記可変パラメータの値の保持のために前記第１の記憶手段及び前記第２の記憶手段を使用し、前記使用モードにおいては前記可変パラメータの値の保持のために前記第２の記憶手段を使用することを特徴とする。
【００１２】
本発明によれば、学習時にはアナログメモリーを用いることで連続値をシナプス値として扱え、階調数の少いディジタルメモリーのみでは不可能であったアナログ探索的な学習が行えると同時に、学習後に神経回路網を入出力装置として使用する時点では、学習成果であるシナプス値をディジタルメモリー等を用いて安定に保持することが可能となる。
【００１３】
さらに、学習時はアナログメモリーを用いるため、学習後にディジタルメモリーを使用した場合にそこで必要とされる階調数は、神経回路網の入出力関係を所望の許容誤差範囲で維持可能なだけあれば良い。
【００１４】
従って、その階調数はシナプス値記憶部全体をディジタルメモリーのみで構成した場合に比べ少なくて済み、また一般にアナログメモリーはディジタルメモリーよりはるかに小さなハードウェア規模で作成可能なので、シナプス値記憶部全体のハードウェア規模が、同等の機能をディジタルメモリーのみで構成した場合に比べて削減可能となる。
【００１５】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
（第１の実施形態）
本発明の第１の実施形態について説明する。
【００１６】
図１に、本実施形態に係る関数学習装置の構成を示す。
階層型神経回路網１０およびシナプス更新装置４０はアナログ回路であるとし、入力値ｘと出力値ｙ，ｙ＊は連続値であるとする。
【００１７】
この関数学習装置は、学習モードと使用モードを持つ。
まず、この関数学習装置の学習モードについて説明する。
入力値ｘ（ｘ１  ，…，ｘＮ  ）と出力値ｙ＊（ｙ＊１  ，…，ｙ＊Ｍ  ）のセットからなる訓練データが与えられると、入力値ｘと、第１の記憶部２０に保持されているシナプス値とに基づいて階層型神経回路網１０が出力値ｙ（ｙ１  ，…，ｙＭ  ）を計算して出力する。なお、シナプス値の初期値としては、例えばランダム値を用いるものとする。
【００１８】
ここで、第１の記憶部２０は、アナログメモリーで構成され、階層型神経回路網１０は例えば図２に示すように、入力値ｘ（ｘ１  ，…，ｘＮ  ）に対してシナプスと呼ばれる重み係数による重み付け和を計算し、その値を、一般に単調増加で有界な非線形入出力特性を有したニューロンと呼ばれる素子（図２中の９）に入力し出力させ、これを図２に示すような並列階層的なハードウェア構成によって一回以上繰り返し実行した計算結果を最終的な出力値ｙ（ｙ１  ，…，ｙＭ  ）として出力するものである。
【００１９】
シナプス更新装置４０は、階層型神経回路網１０の出力値ｙ（ｙ１  ，…，ｙＭ  ）が訓練データの出力値ｙ＊（ｙ＊１  ，…，ｙ＊Ｍ  ）と等しくなるように、両者の距離例えば自乗誤差を減少させるようなシナプス更新量を、階層型神経回路網１０内で行われる計算過程の値（例えば各ニューロンの出力値など）および第１の記憶部２０に保持されているシナプス値等を用いて計算し、その値を第１の記憶部２０に保持されているシナプス値に加える。あるいは、更新前のシナプス値にシナプス更新量を加えた値を第１の記憶部２０に記憶させる。
【００２０】
ここで、第１の記憶部２０はアナログメモリーで構成されているためにシナプス値として連続値が扱え、ディジタルメモリーで離散値として保持した場合に比べはるかに円滑に学習が進行すると考えられる。
【００２１】
ここで述べた学習手法は一般に誤差逆伝搬学習法（ｅｒｒｏｒ  ｂａｃｋ−ｐｒｏｐａｇａｔｉｏｎ  ｌｅａｒｎｉｎｇ  ｍｅｔｈｏｄ）と呼ばれており、繰り返し提示された各訓練データ毎にこれを実行することによって、階層型神経回路網１０は訓練データとして提示された全ての入出力関係を近似するようになって行く。
【００２２】
以上の手続きを階層型神経回路網１０の入出力関係が所望の近似精度になるまで、例えば、全ての訓練データに対する出力誤差の自乗和または絶対値等が所定の値以下になるまで繰り返した時点で学習モードは終了である。
【００２３】
上記第１の記憶部２０として例えばキャパシタによるアナログメモリーを採用した場合、電荷リークによって一般に長期安定性を有さないので、記憶保持能力が著しく劣化する以前に上記学習モードを終了させる。
【００２４】
学習モードが終了したら、直ちに、各シナプス値を保持した第１の記憶部２０の各々の値を例えばＡ／Ｄ変換器から構成されたデータ変換部５０によって離散階調値に変換し、その各々の結果の値を例えばディジタルメモリーで構成された第２の記憶部３０に格納する。
【００２５】
これ以後、階層型神経回路網１０を入出力装置として用いる使用モードにおいては、シナプス値としては第２の記憶部３０に保持されている値を、例えばＤ／Ａ変換器から構成されたデータ逆変換部５１によって連続値に変換した上で使用する。
【００２６】
ここで、第２の記憶部３０を構成するディジタルメモリーの階調数は、入出力関係の要求精度によって決定される。すなわち、学習終了時の誤差にシナプス値の離散化によって生じた誤差が上乗せされた最終的な誤差が要求水準を満たせるように決定される。
【００２７】
なお、この要求水準が満たせるのであれば、長期安定性を有するが高精度を求めるのは難しいとされるアナログメモリーであるフローティングゲート素子等で第２の記憶部３０を構成しても良い。この場合には、データ変換部５０およびデータ逆変換部５１は不要となる。
【００２８】
図１は、本実施形態における関数学習装置のハードウエア構成の論理的な概念図であり、実際のハードウェア構成においては、ハード的に実現された階層型神経回路網１０の各ニューロン素子間を結ぶ各シナプス乗算回路の近傍に、それに対応した第１の記憶部２０、第２の記憶部３０、シナプス更新装置４０及びデータ変換部５０などが配置されていても良い。
【００２９】
シナプス値の記憶部としてディジタルメモリーを用いた場合、所望の入出力関係を学習させる過程において必要とされる階調数より、学習後に入出力関係を要求された精度で表現するのに必要な階調数は少なくて済む。従って、学習時にアナログメモリーを、学習後にはシナプス値を長期安定保持可能なディジタルメモリーまたはアナログメモリーを用いる本発明によって、学習時に必要なシナプス値のアナログ性が小規模なハードウェアで実現可能となるので、シナプス記憶部をディジタルメモリーのみで構成した場合に比べてハードウェア規模を削減出来ると同時に、キャパシタ等を用いたアナログメモリーでは実現不能な学習結果の長期安定保持も可能となる。
【００３０】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。
本発明の第２の実施形態は、先の第１の実施形態における学習モード及び第１の記憶部２０から第２の記憶部３０へのシナプス値の変換及び転送が一旦終了した後に、新たに学習が必要となった入出力値のセットからなる訓練データが追加された場合に容易に再学習可能とするものである。
【００３１】
図３に、本実施形態における関数学習装置の構成を示す。本実施形態の構成は、データ逆変換部６０が追加されている点以外は、基本的には第１の実施形態と同様である。
【００３２】
さて、一旦学習を終了した後に、新たに追加学習が必要な訓練データが提示された時点で、例えばディジタルメモリーである第２の記憶部３０にシナプス値として保持されている各々の値を例えばＤ／Ａ変換器であるデータ逆変換部６０によってアナログ値に変換し、その結果の各々の値をアナログメモリーである第１の記憶部２０に転送する。
【００３３】
この後直ちに、以前学習した訓練データのセットに新たに学習が必要となった訓練データを追加したものを新たな訓練データセットとして繰り返し提示し第１の実施形態同様に学習を実行する。それ以降は第１の実施形態で説明したものと同様の過程を経る。
【００３４】
誤差逆伝搬学習法（ｅｒｒｏｒ  ｂａｃｋ−ｐｒｏｐａｇａｔｉｏｎ  ｌｅａｒｎｉｎｇ  ｍｅｔｈｏｄ）は、シナプス値の関数である誤差の自乗を全訓練データに対して和を取ったものをコスト関数とした最適化（厳密にはそのコスト関数に対する確率的降下法）であるので、訓練データの追加はコスト関数の変化をもたらす。従って、最適シナプス値もそれに伴って変化するが、追加した訓練データの数が少なかったり、その入出力関係が学習済の訓練データの入出力関係を補間したものからあまり逸脱していないような場合は、最適シナプス値の変化量は少なくて済む。よって、このような場合、学習再開時に第１の記憶部２０に与える初期シナプス値としては、既学習訓練データに対する最適シナプス値の近似値として第２の記憶部３０に保持されている値を採用する方が、例えばランダムシナプス値を初期値とするより、学習終了までの学習回数が少なくて済むと考えられる。
【００３５】
従って、本発明によって、学習すべき訓練データが追加された場合にも、学習時に必要なシナプス値のアナログ性を小規模なハードウェアで実現出来ると同時に、シナプス記憶部をディジタルメモリーのみで構成した場合に比べてハードウェア規模を削減した上、キャパシタ等を用いたアナログメモリーでは実現不能な学習結果の長期安定保持も可能となり、更に追加学習時の学習終了までの学習回数が少なくて済む初期シナプス値を提供することが可能となる。
【００３６】
なお、フローティングゲート素子等のアナログメモリーで第２の記憶部３０を構成した場合には、データ変換部５０、データ変換部５１およびデータ変換部６０は不要となる。
【００３７】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。
第１および第２の実施形態では、学習モードにおけるシナプス値をアナログメモリーで構成された第１の記憶部に保持させたが、本実施形態は、学習モードにおけるシナプス値を、アナログメモリーで構成された第１の記憶部に保持された値と長期安定保持能力を有する記憶デバイスで構成された第２の記憶部に保持された値の両者の和または差の形で保持するようにしたものである。
【００３８】
図４に、アナログメモリーで構成された第１の記憶部に保持された値と長期安定保持能力を有する記憶デバイスで構成された第２の記憶部に保持された値との和の形でシナプス値を保持する場合の本実施形態における関数学習装置の構成を示す。
【００３９】
階層型神経回路網１０、シナプス更新装置４０および加算器７０（あるいは後述する減算器）はアナログ回路であるとし、入力値ｘと出力値ｙ，ｙ＊は連続値であるとする。
【００４０】
第１の記憶部２０はアナログメモリーで構成され、第２の記憶部３０は例えばディジタルメモリーで構成され、階層型神経回路網１０は第１の実施形態で図２を用いて説明したものと同様とする。
【００４１】
まず、この関数学習装置の学習モードについて説明する。
入力値ｘ（ｘ１  ，…，ｘＮ  ）と出力値ｙ＊（ｙ＊１  ，…，ｙ＊Ｍ  ）のセットからなる訓練データが与えられると、入力値ｘ、および加算器７０によって算出された第１の記憶部２０に保持されている値とこれに対応する第２の記憶部３０に保持されている値との和からなるシナプス値に基づいて階層型神経回路網１０が出力値ｙ（ｙ１  ，…，ｙＭ  ）を計算して出力する。なお、第２の記憶部３０に保持されている値は、例えばＤ／Ａ変換器から構成されたデータ逆変換部５２によって加算器７０に入力される前に連続値に変換される。
【００４２】
シナプス更新装置４０は、階層型神経回路網１０の出力値ｙ（ｙ１  ，…，ｙＭ  ）が訓練データの出力値ｙ＊（ｙ＊１  ，…，ｙ＊Ｍ  ）と等しくなるように、両者の距離例えば自乗誤差を減少させるように、第１の記憶部２０及び第２の記憶部３０に保持された値の更新量を階層型神経回路網１０内で行われる計算過程の値（例えば各ニューロンの出力値など）及び第１の記憶部２０及び第２の記憶部３０に保持されている値等を用いて計算し、その値を第１の記憶部２０及び第２の記憶部３０に保持されている値に加える。あるいは、更新前のシナプス値にシナプス更新量を加えた値を第１の記憶部２０及び第２の記憶部３０に記憶させる。
【００４３】
シナプス更新装置４０は、第１の記憶部２０に保持された値の更新量及び第２の記憶部３０に保持された値の更新量を、それぞれ独立に求めても良い。あるいは、第１の記憶部２０及び第２の記憶部３０に保持された値の和の更新後の値を求め、その後、第１の記憶部２０に保持する更新後の値と第２の記憶部３０に保持する更新後の値に振り分けるようにしても良い。
【００４４】
なお、ここでは第２の記憶部３０に保持された値を入力する際にその値をＤ／Ａ変換するデータ変換部と、第２の記憶部３０に対して値を出力する際にその値をＡ／Ｄ変換するデータ変換部を、第２の記憶部３０とシナプス更新装置４０との間に設け、あるいはシナプス更新装置４０に内蔵するものとする。
【００４５】
ここで、第１の記憶部２０はアナログメモリーで構成されているため、第２の記憶部３０がデイジタルメモリーで構成されていても、シナプス値として連続値が扱え、デイジタルメモリーのみで離散値として保持した場合に比べはるかに円滑に学習が進行すると考えられる。
【００４６】
なお、シナプス値を第１の記憶部２０と第２の記憶部３０に保持されている値の差の形で保持する場合は、図４の加算器７０を減算器に替えれば良い。第１の記憶部２０または第２の記憶部３０のいずれかに保持されている値の符号を逆にしたものがその記憶部で保持されていると考えれば、論理的には和で保持されている場合と全く同じである。従って、以下の議論も両者に共通である。
【００４７】
さて、前述の手続きを階層型神経回路網１０の入出力関係が所望の近似精度になるまで、例えば、全ての訓練データに対する出力誤差の自乗和または絶対値等が所定の値以下になるまで繰り返した時点で学習モードは終了である。
【００４８】
本実施形態においては、学習の終段階において、所望の入出力関係を実現する最終的に望ましいシナプス値の大まかな値が第２の記憶部３０に保持され、その時点では絶対値が小さくなっていると考えられる各訓練データ毎に算出される前記更新量に対応した値が第１の記憶部２０に保持されることが期待出来る。
【００４９】
従って、第２の記憶部３０に保持された値をそのままシナプス値とした場合の階層型神経回路網１０の入出力関係による所望の入出力関係に対する近似誤差が要求水準を満たせるように第２の記憶部３０を構成するディジタルメモリーの階調数が選ばれているのであれば、第１の実施形態のように第１の記憶部２０の記憶保持能力が劣化する以前に学習モードを終了させる必要は無く、常に第１の記憶部２０をアナログコンピューテーション実行のための補助メモリーとして用いた円滑な学習が期待出来る。
【００５０】
この後、階層型神経回路網１０を入出力装置として用いる使用モードにおいては、シナプス値としては第２の記憶部３０に保持されている値を、例えばＤ／Ａ変換器から構成されたデータ逆変換部５３によって連続値に変換した上で使用する。
【００５１】
さらに、学習が一旦終了した後に、新たに学習が必要となった入出力値のセットからなる訓練データが追加された場合、その時点でのシナプス値を初期値として再学習することができる。
【００５２】
また、上に述べた近似誤差に対する要求水準が満たせるのであれば、第１の実施形態と同様に、長期安定性を有するが高精度を求めるのは難しいとされるアナログメモリーであるフローティングゲート素子等で第２の記憶部３０を構成しても良い。
【００５３】
なお、シナプス更新装置４０は、第２の記憶部３０に保持された値を入力する際にその値をＤ／Ａ変換するデータ逆変換部と、第２の記憶部３０に対して値を出力する際にその値をＡ／Ｄ変換するデータ変換部を内蔵するものとしていたが、第２の記憶部３０もアナログメモリーで構成する場合には、データ逆変換部５２、データ逆変換部５３、及びシナプス更新装置４０に内蔵などすると説明したデータ変換部およびデータ逆変換部は不要となる。
【００５４】
図４は、本実施形態における関数学習装置のハードウェア構成の論理的な概念図であり、実際のハードウェア構成においては、ハード的に実現された階層型神経回路網１０の各ニューロン素子間を結ぶ各シナプス乗算回路の近傍にそれに対応した、第１の記憶部２０、第２の記憶部３０、シナプス更新装置４０及び加算器７０などが配置されていても良い。
【００５５】
以上述べたように、学習時にアナログメモリーを補助メモリとして用い、学習後にはシナプス値を長期安定保持可能なディジタルメモリーまたはアナログメモリーを用いる本発明によって、学習時に必要なシナプス値のアナログ性が小規模なハードウェアで実現可能となるので、シナプス記憶部をディジタルメモリーのみで構成した場合に比べてハードウェア規模を削減出来ると同時に、キャパシタ等を用いたアナログメモリーでは実現不能な学習結果の長期安定保持も可能となる。
【００５６】
以上説明してきた各実施形態は、容易にＬＳＩとして実現することが可能である。
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【００５７】
【発明の効果】
本発明によれば、学習時に必要なシナプス値のアナログ性が小規模なハードウェアで実現可能となるので、シナプス記憶部をディジタルメモリーのみで構成した場合に比べてハードウェア規模を削減出来ると同時に、キャパシタ等を用いたアナログメモリーでは実現不能な学習結果の長期安定保持も可能となる。
また、学習すべき訓練データが追加された場合にも、追加学習時の学習終了までの学習回数が少なくて済む初期シナプス値を提供することが可能となる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る関数学習装置の構成を示す図
【図２】階層型神経回路網の一構成例を示す図
【図３】本発明の第２の実施形態に係る関数学習装置の構成を示す図
【図４】本発明の第３の実施形態に係る関数学習装置の構成を示す図
【符号の説明】
１０…階層型神経回路網
２０…第１の記憶部
３０…第２の記憶部
４０…シナプス更新装置
５０…データ変換部
５１，５２，５３，６０…データ逆変換部
７０…加算器
【図１】
0003561096.tif 000002
【図２】
0003561096.tif 000003
【図３】
0003561096.tif 000004
【図４】
0003561096.tif 000005