(57)【要約】【課題】従来の確率的演算によるニューラル・ネットワーク回路の学習法では、荷重係数等の値が非常に大きくなる場合があった。このため、これをそのまま回路として実装するには困難であるという課題を有していた。【解決手段】スケーリング因子のデジタル値λ1、λ2を投入できるレジスター２７７、２７９、２８１，２８３を備え、積分器で積分された荷重係数値がある値の範囲を越えると荷重係数の値とスケーリング因子の値をそれぞれ半分にする事によって、荷重係数がある決められた値の範囲に収めることができるため処理が破綻することなく、最適な荷重係数値へ収束するまで演算を実行でき、混合信号が分離できる。【選択図】図２
2009129302.tif 000002
【特許請求の範囲】
【請求項１】
確率的演算法によるニューラルネットワーク素子を用いて混合信号を分離する際の学習法であって、
荷重係数が所定の範囲を越える場合に、０より大きく１より小さい更新係数αを、前記荷重係数とスケーリング因子に乗算することを特徴とする確率的演算法によるニューラルネットワーク素子の学習法。
【請求項２】
前記荷重係数がデジタル値としてレジスタに格納されるニューラルネットワーク素子の学習法であって、
前記荷重係数または前記スケーリング因子の値を表すデジタル値と、これらの前記所定の範囲の中心値を表すデジタル値の夫々を低ビット側に１つシフトし、これらを加算することで更新係数αを０．５とする請求項１に記載の確率的演算法によるニューラルネットワーク素子の学習法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は混ざり合った信号を独立な信号に分ける混合信号分離ニューラルネットワーク素子の学習法に関するものであり、特に確率的演算法（ストカスティック・コンピューティング法）により演算を実行する素子の学習法に関するものである。
【背景技術】
【０００２】
混合信号分離は将来的に非常に汎用的な応用が期待できる技術である。混合信号とはいくつかの信号が重ね合わされた信号をいう。混合信号分離問題とは、いくつかの源信号があり、センサーでそれらを観測すると源信号が混ざり合った混合信号が観測されるが、混合信号のみから如何に源信号を推測するかという問題である。従来、混合信号分離問題を解く手法として、ニューラルネットワークを用いるものが提案されている（例えば、非特許文献１参照）。
【０００３】
ここで、非特許文献１は、確率的演算（ストカスティック・コンピューティング（ＳＣ））と呼ばれる確率的に発生するパルスを用いて情報処理を行うシステム（非特許文献３参照）によって混合信号分離演算を実行している。この確率的演算は、特に、情報がパルスの頻度に変換され処理されるという理由でその回路構成が簡素化できるという効果があり、近年ニューラルネットワーク素子で着目されている技術である。
【０００４】
図４は２入力の場合の回路概略図である。夫々のパーツは確率的演算の様式に従っていて、夫々の基本演算を確率的に実行する。まず、混合信号ｙ1、ｙ2に荷重係数を乗算器３０１、３０３によってそれぞれ乗算し、その出力をお互いに減算器３０５、３０７で減算し、出力信号ｓ1、ｓ2を出力する。そして、学習アルゴリズム３０９によって出力信号ｓ1、ｓ2の状態に応じて荷重係数を調節する。学習法の計算式を下に示す。
【０００５】
【数１】
2009129302.tif 000003
【０００６】
ここで、ｗ12、ｗ21は荷重係数、μは学習係数、φ（ｓ）、ψ（ｓ）はそれぞれの出力信号をパラメーターとする非線形関数である。時間毎に出力信号の値の代入を繰り返す事によって、この式の解である荷重係数ｗ12、ｗ21へと収束させることができ、混合信号を分離できるのである。図４において、この学習式を回路化し模式化した図が学習アルゴリズム３０９である。パーツ３１１、３１３、３１５、３１７は非線形関数変換器である。非線形関数変換器とはあるアナログ値に対応したパルス列が入るとそのアナログ値をパラメーターとした非線形関数の値のパルス列を出力するものである。その出力をそれぞれ乗算器３１９、３２１で乗算し、その出力を積分器３２３、３２５に入力する。そして、その出力にはそれぞれの荷重係数ｗ12、ｗ21が計算され、その値のパルス密度が出力されるように動作する。
【０００７】
しかしながら、非特許文献１で用いられた混合信号分離問題の学習法は分離する源信号が全く違うスケールの時には分離できず、また、収束安定性で問題があり、混合信号ｙ1、ｙ2の混合の仕方が非常に限られた場合にのみ分離が可能であるということで、実用的なものではなかった。そこで、非特許文献２に記載されている別の学習則が提案された。
【０００８】
図５は、非特許文献２に記載された信号分離学習法を模式的に示した図である。同図において、入力した混合信号ｘ1（ｔ）、ｘ2（ｔ）にそれぞれの荷重係数を乗算器４０１、４０３、４０５、４０７でそれぞれ乗算し、それぞれの出力を和算器４０９、４１１を用いて和算し、出力信号ｙ1（ｔ）、ｙ2（ｔ）を出力する。そして、学習アルゴリズム４１３によって出力信号ｙ1（ｔ）、ｙ2（ｔ）の状態に応じて荷重係数を調節して最適値へ収束させることで、混合信号をより安定的に分離することができるのである。
【非特許文献１】"K. Fanghanel and K. Kollmann and H. Zeidler and R. Plesmann and K. Riemschneider"著, "Parallel Bit-Stream Neurohardware for Blind Separation of Sources", 雑誌 "1997 IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP'97)", Vol. 5, p4149, 1997年発行
【非特許文献２】"A. Cichocki and R. Unbehauen"著, "Robust Neural Networks with On-Line Learning for Blind Identification and Blind Separation of Sources", 雑誌  "IEEE Transactions on Circuits and Systems : Fundamental Theory and Applications", Vol. 43, No. 11, p894〜p906, 1996年発行
【非特許文献３】"B. R. Gaines"著, "Stochastic Computing Systems",  本  "Advances in Information Systems Science" J. F. Tou編(Plenum, New York), Vol. 2, Chap. 2, p37, 1969年発行
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、この非特許文献２の学習法では、荷重係数等の値が非常に大きくなる場合があった。このため、これをそのまま回路として実装するには困難であるという課題を有していた。
【課題を解決するための手段】
【００１０】
このような課題を解決するため、本発明のニューラルネットワーク素子の学習法は、荷重係数が所定の範囲を越えそうになった際に、０より大きく１より小さい更新係数αを乗じると同時に、出力信号振幅に関わるスケーリング因子にもαを乗じることを特徴とする。
【発明の効果】
【００１１】
本発明のニューラルネットワーク素子の学習法によれば、初期状態がｗ11＝ｗ12かつｗ21＝ｗ22という場合を除いて、どのような場合であっても荷重係数が常に所定範囲内にあるようにすることができ、安定した信号分離処理が可能となる。
【発明を実施するための最良の形態】
【００１２】
以下本発明の実施の形態について、図面を参照しながら説明する。
【００１３】
（実施の形態）
図１は本発明の実施の形態における２入力の確率的演算による混合信号分離回路の構成図である。まず、源信号が混ざり合った混合信号Ｘ1（t），Ｘ2（ｔ）が入力され、ビットモジュレーター１０１、１０３によって混合信号をパルス列に変換する。ビットモジュレーターとはアナログ値を、疑似乱数を使用してパルス列に変換する回路である。そして、荷重係数ｗ11、ｗ12、ｗ21、ｗ22のパルス列を確率的乗算器１０５、１０７、１０９、１１１によってそれぞれ乗算し、乗算されたそれぞれのパルス列を確率的加算器１１３、１１５によって加算し、推定された出力信号Ｙ1（t），Ｙ2（ｔ）を出力する。そして、その出力信号を学習アルゴリズム１１７に入力する事によって、その学習アルゴリズムから独立な信号を見つけ出す。
【００１４】
本学習アルゴリズムは、非特許文献２で提案された学習法をＳＣ素子上で実行するために独自の処理手順を組み込むことにより、安定動作を実現したものである。計算式を下に示す。
【００１５】
【数２】
2009129302.tif 000004
【００１６】
ここで、W(t)は荷重係数行列、μ(t)は学習係数、Λは出力信号の振幅に関わるスケーリング因子行列で対角行列となる。スケーリング因子とは出力信号の振幅に関わり、この大きさで出力信号の振幅の大きさが決定する。また、f[y(t)]及びg[y(t)]は出力信号を変数とする非線形関数ベクトルである。この式を時間毎に出力信号や荷重係数の値を代入する事により、荷重係数の値が収束し解が得られ、混合信号を分離して独立な信号を導き出せるのである。
【００１７】
この式をＳＣ素子上で実行する手順について図２を用いて説明する。図２は図１の学習アルゴリズム１１７の回路構成を示している。なお、図２において、図１と同じ構成要素については同じ符号を用い、説明を省略する。
【００１８】
まず、出力信号Ｙ1（t）、Ｙ2（ｔ）のパルス列をそれぞれ非線形変換器２０１、２０３、２０５、２０７に入力する。非線形変換器は、入力値に対してそれをパラメーターとするある非線形関数の値を出力する機能を有する。そして、非線形変換器２０１、２０３、２０５、２０７の出力値を夫々ビットモジュレーター２０９、２１１、２１３、２１５によってパルス列に変換する。そのビットモジュレーター２０９、２１１、２１３、２１５の出力パルス列を夫々乗算器２１７、２１９、２２１、２２３により乗算し、結果を加算器２２５、２２７を用いて加算する。そして、乗算器２２９、２３１、２３３、２３５及び確率的符号反転器２３７、２３９、２４１、２４３、またスケーリング因子の値を格納したレジスター２７７、２７９、２８１、２８３等を用いて加算と乗算を行う。さらに学習係数μ（ｔ）を乗算することで、式（２）のＳＣによる学習演算が実行できる。その後、出力されたパルス列を積分器２６９、２７１、２７３、２７５により積分することで、荷重係数ｗ11、ｗ12、ｗ21、ｗ22を表すパルス列が得られる。これらは図１に示す荷重係数ｗ11、ｗ12、ｗ21、ｗ22として出力され、それを時間毎に繰り返されることによって正解値へと収束していくことで、分離された独立な源信号が得られることになる。
【００１９】
しかしながら課題で述べたように、回路に実装可能にするためには、荷重係数ｗ11、ｗ12、ｗ21、ｗ22は所定の値の範囲内に留めておく必要があるが、この荷重係数の値は非常に大きな値になる場合がある。
【００２０】
そこで本実施形態では、荷重係数が決めた値の範囲を越える場合、以下に述べる新規な学習則を適用することで、荷重係数が所定の値の範囲内に留まるようにすることに成功した。その手順について以下、説明する。
【００２１】
学習過程では、そのままでは式（２）に従って荷重係数が更新されていくので、そのままでは荷重係数の値は状況次第で如何なる実数値も取り得、回路で表現できる値の範囲を超える場合がある。そこで本発明者らは、荷重係数ｗ11、ｗ12のアナログ値の絶対値が１より大きくなる場合、荷重係数ｗ11、ｗ12、スケーリング因子λ1のアナログ値に０より大きく１より小さい更新係数αを乗じることで、荷重係数を常に−１から１の範囲に留めつつ、且つ処理を実行できることを見出した。その付加された回路を図２に示す。出力された荷重係数ｗ11、ｗ12、ｗ21、ｗ22の値を閾値判定器によって夫々の荷重係数のアナログ値が−１から１の値を越える場合は確率的定数乗算器によって、荷重係数、スケーリング因子にαを乗算する。αの値は本実施形態では例として０．５としている。このような動作は、例えばレジスター２７７、２７９にスケーリング因子λ1のアナログ値をデジタル値に変換したものを格納しておき、ｗ11、もしくはｗ12が−１または１を越える度にそのデジタル値のビットを小さいビットに１つシフトしたものと、スケーリング因子が取りうる値の中心値、ここでは０に対応するデジタル値を低いビットに１つシフトしたものを加算する事で達成される。ここで、レジスターにおいて低ビット側へ値を１つシフトするという動作は０．５を乗ずることに対応する。例えば二進数で０１００という数値は十進数では４を表すが、この数値で低ビット側へ値を１つシフトして得られる００１０は十進数では２を表し０．５を乗じた結果が得られている。なお、二進数表記の１桁目は乗算の切捨誤差となる。荷重係数ｗ11、ｗ12についても同様に行う。
【００２２】
具体的には、以下の手順で更新係数０．５を乗じる。なお、以下では例としてスケーリング因子の場合を述べるが、荷重係数においても同様である。その手順を表したものが図３である。
【００２３】
（ａ）更新前のスケーリング因子と予め設定されたスケーリング因子の中心値を取得する。
【００２４】
（ｂ）夫々のデジタル値を低ビット側に１つシフトする。（更新係数０．５を乗じることに相当する。）その後、加算する。
【００２５】
（ｃ）その結果、更新後のスケーリング因子が得られる。
【００２６】
以上の動作で、スケーリング因子に更新係数０．５を乗じる動作が完了する。
【００２７】
一方、荷重係数ｗ21、ｗ22のアナログ値が−１より小さくなる、または１より大きくなる場合、ｗ21、ｗ22、スケーリング因子λ2のアナログ値を半分にする。このスケーリング因子λ2も先ほどと同様にレジスター２８１、２８３を用い達成される。荷重係数ｗ21、ｗ22についても同様である。以上の手順によって荷重係数の値を−１から１の間に留めて計算を継続することができる。
【００２８】
このような手順で処理が破綻しない理由について、数式を用いて、２入力混合信号の場合について以下、説明する。２入力の場合の学習アルゴリズムの式を下に示す。
【００２９】
【数３】
2009129302.tif 000005
【００３０】
ここで、式２と式３の対応関係は
【００３１】
【数４】
2009129302.tif 000006
【００３２】
まず、荷重係数ｗ11、またはｗ12が−１または１を越える場合、ｗ11かつｗ12かつλ1の値を半分にする。
【００３３】
【数５】
2009129302.tif 000007
【００３４】
同様に荷重係数ｗ21、またはｗ22が−１または１を越える場合、ｗ21かつｗ22かつλ2の値を半分にする。
【００３５】
【数６】
2009129302.tif 000008
【００３６】
このような学習アルゴリズムとすることで、荷重係数の値は−１と１の間に留まり、継続的に学習処理させて荷重係数を収束させ、混合信号を分離して独立な信号を得ることが可能となる。すなわち、素子の動作安定性を確実なものとすることが可能となり、産業に寄与すること大なるものである。
【００３７】
なお、本実施形態では入力が２つの場合について説明したが、これが３つ、４つと増加しても同様に処理可能であることは言うまでも無い。
【産業上の利用可能性】
【００３８】
本発明にかかる混合信号分離ニューラルネットワーク素子の学習法は、確率的演算の混合信号分離ニューラルネットワーク素子において安定な収束性能の荷重学習を実現するものであり、独立な信号を見つける機能を有し、なおかつ軽量化の可能性があるため、生体信号分離処理素子として有用である。例えば、体内の臓器の発する電気信号が挙げられる。体内では心臓の発生する筋電位信号が強いため、他の臓器、例えば脳などの微弱な電気信号を検出するための信号分離に用いることができる。また、音声信号、特に人の声の混合に適用することで、補聴器などに応用できる。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施形態における確率的演算（ストカスティック・コンピューティング。ＳＣ）による混合信号分離回路の回路構成図
【図２】同実施形態におけるＳＣによる混合信号回路の学習法の回路構成図
【図３】スケーリング因子の更新説明図
【図４】従来の確率的演算を用いた混合信号分離回路構成図
【図５】従来の学習法説明図
【符号の説明】
【００４０】
１０１、１０３  ビットモジュレーター
１０５、１０７、１０９、１１１  確率的乗算器
１１３、１１５  確率的加算器
１１７  学習アルゴリズム
２０１、２０３、２０５、２０７  非線形変換器
２０９、２１１、２１３、２１５  ビットモジュレーター
２１７、２１９、２２１、２２３  確率的乗算器
２２５、２２７  確率的加算器
２２９、２３１、２３３、２３５  確率的乗算器
２３７、２３９、２４１、２４３  確率的符号反転器
２４５、２４７、２４９、２５１  確率的乗算器
２５３、２５５、２５７、２５９  確率的加算器
２６１、２６３、２６５、２６７  確率的乗算器
２６９、２７１、２７３、２７５  確率的積分器
２７７、２７９、２８１、２８３  レジスター
２８５、２８７  閾値判定器
２８９、２９１  確率的定数乗算器
３０１、３０３  確率的乗算器
３０５、３０７  確率的減算器
３１１、３１３、３１５、３１７  確率的非線形関数変換器
３１９、３２１  確率的乗算器
３２３、３２５  確率的積分器
４０１、４０３、４０５、４０７  乗算器
４０９、４１１  加算器
４１３  学習アルゴリズム
【図１】
2009129302.tif 000009
【図２】
2009129302.tif 000010
【図３】
2009129302.tif 000011
【図４】
2009129302.tif 000012
【図５】
2009129302.tif 000013