(57)【特許請求の範囲】
【請求項１】
入力実数値を当該入力実数値に応じた出力実数値に変換する信号変換装置であって、
入力実数値を第１変換規則に従って入力パルス信号に変換するエンコーダと、
前記エンコーダが出力する前記入力パルス信号に応じた出力パルス信号をパルスニューロンモデルのニューラルネットワークを用いて出力するニューラルネットワークと、
前記ニューラルネットワークが出力する前記出力パルス信号を第２変換規則に従って出力実数値に変換するデコーダと、
を備え、
前記エンコーダが出力する前記入力パルス信号は、前記入力実数値に応じて前記第１変換規則に従ってパルスを配列した１周期分の基本パルス信号を２周期以上続けて繰り返したパルス配列構造を有することを特徴とする信号変換装置。
【請求項２】
前記エンコーダが出力する前記入力パルス信号に含まれるパルスは周期的に配列されており、
前記デコーダが出力する前記出力パルス信号に含まれるパルスも周期的に配列されていることを特徴とする請求項１に記載の信号変換装置。
【請求項３】
前記第１変換規則において、隣り合う実数値は隣り合うパルス数の基本パルス信号に対応付けられる請求項１又は請求項２に記載の信号変換装置。
【請求項４】
前記エンコーダが出力する前記入力パルス信号は、前記入力実数値が大きくなるほどパルス密度が大きくなることを特徴とする請求項１〜請求項３の何れか１項に記載の信号変換装置。
【請求項５】
前記ニューラルネットワークは、入力層を構成する複数の入力ユニットと中間層を構成する複数の中間ユニットと出力層を構成する複数の出力ユニットとを有する階層型ニューラルネットであり、複数の入力ユニットの各出力が複数の中間ユニットのそれぞれに入力され、複数の中間ユニットの各出力が複数の出力ユニットのそれぞれに入力され、
前記入力パルス信号は、複数の前記入力ユニットのそれぞれに入力される子パルス信号のセットで構成され、
前記出力パルス信号は、複数の前記出力ユニットのそれぞれから出力される子パルス信号のセットで構成される、
ことを特徴とする請求項１〜請求項４の何れか１項に記載の信号変換装置。
【請求項６】
前記入力パルス信号を構成する複数の子パルス信号において、複数のパルスが最小数の子パルス信号に偏在するように配置されていることを特徴とする請求項５に記載の信号変換装置。
【請求項７】
入力実数値を当該入力実数値に応じた出力パルス信号に変換する信号変換装置であって、
入力実数値を第１変換規則に従って入力パルス信号に変換するエンコーダと、
前記エンコーダが出力する前記入力パルス信号に応じた前記出力パルス信号をパルスニューロンモデルのニューラルネットワークを用いて出力するニューラルネットワークと、
を備え、
前記エンコーダが出力する前記入力パルス信号は、前記入力実数値に応じて前記第１変換規則に従ってパルスを配列した１周期分の基本パルス信号を２周期以上続けて繰り返したパルス配列構造を有することを特徴とする信号変換装置。
【請求項８】
入力実数値を当該入力実数値に応じた所定のパルス信号に変換する信号変換装置であって、
入力実数値を第１変換規則に従って変換し、パルスニューロンモデルのニューラルネットワークへ入力するための入力パルス信号を生成するエンコーダを備え、
前記エンコーダが生成する前記入力パルス信号は、前記入力実数値に応じて前記第１変換規則に従ってパルスを配列した１周期分の基本パルス信号を２周期以上続けて繰り返したパルス配列構造を有することを特徴とする信号変換装置。
【請求項９】
入力実数値を当該入力実数値に応じた出力実数値に変換する信号変換システムであって、
入力実数値を第１変換規則に従って入力パルス信号に変換するエンコーダと、
前記エンコーダが出力する前記入力パルス信号に応じた出力パルス信号をパルスニューロンモデルのニューラルネットワークを用いて出力するニューラルネットワークと、
前記ニューラルネットワークが出力する前記出力パルス信号を第２変換規則に従って出力実数値に変換するデコーダと、
を備え、
前記エンコーダが出力する前記入力パルス信号は、前記入力実数値に応じて前記第１変換規則に従ってパルスを配列した１周期分の基本パルス信号を２周期以上続けて繰り返したパルス配列構造を有することを特徴とする信号変換システム。
【請求項１０】
入力実数値を当該入力実数値に応じた出力パルス信号に変換する信号変換システムであって、
入力実数値を第１変換規則に従って入力パルス信号に変換するエンコーダと、
前記エンコーダが出力する前記入力パルス信号に応じた前記出力パルス信号をパルスニューロンモデルのニューラルネットワークを用いて出力するニューラルネットワークと、
を備え、
前記エンコーダが出力する前記入力パルス信号は、前記入力実数値に応じて前記第１変換規則に従ってパルスを配列した１周期分の基本パルス信号を２周期以上続けて繰り返したパルス配列構造を有することを特徴とする信号変換システム。
【請求項１１】
入力実数値を当該入力実数値に応じた所定のパルス信号に変換する信号変換システムであって、
入力実数値を第１変換規則に従って変換し、パルスニューロンモデルのニューラルネットワークへ入力するための入力パルス信号を生成するエンコーダを備え、
前記エンコーダが生成する前記入力パルス信号は、前記入力実数値に応じて前記第１変換規則に従ってパルスを配列した１周期分の基本パルス信号を２周期以上続けて繰り返したパルス配列構造を有することを特徴とする信号変換システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号変換装置及び信号変換システムに関する。
【背景技術】
【０００２】
近年、深層学習（Ｄｅｅｐ  Ｌｅａｒｎｉｎｇ）などの成果によりニューラルネットワークの実用性が証明されてきており、ニューラルネットワークの機器への実装が検討されつつある。ここで、ニューラルネットワークを搭載した機器の小型化、高速化のためには、ソフトウェアとしてニューラルネットワークを機器へ実装するのではなく、ニューラルネットワークのハードウェア実装が必要である。ニューラルネットワークのハードウェア実装の方法にはアナログ回路で実現する方法とデジタル回路で実現する方法とがある。
【０００３】
アナログ回路は、ニューロンの動作である入力値とニューロン間の結合強度の積和演算がデジタル回路に比べて容易であるが、素子のばらつきが問題となったり、設計が難しかったりする側面がある。また集積化する場合でも、同様の理由から規模に限界がある。一方、デジタル回路は、アナログ回路に比べて配線が多く複雑であるが、設計が容易であり集積化しやすく、ニューロン数を多くすることができる。
【０００４】
デジタル回路でニューラルネットワークを実現する場合、ニューロンへの入力信号とニューロン間の結合重みを乗算するための乗算器、及び、乗算結果の総和をとる加算器が必要である。しかしながら、結合の数だけ乗算器を用意すると、ニューロン数の増加とともに結合数や配線が増加して回路面積が増加する。このため、回路面積の制限下では、ネットワークの規模を大きくできない。そこで、パルスニューロンモデルが提案されている。
【０００５】
パルスニューロンモデルは、ニューロンへの入力信号が並列データではなく直列データであるため、配線数の増加が抑制され、乗算器が不要化する。すなわち、パルスニューロンモデルであれば、ニューロン間の接続をバスではなく１ラインで構成でき、実行の積和演算に乗算器が不要となるため、多数のニューロンを実装できる。従って、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのデジタル回路に対するハードウェア実装に適していると考えられる。
【０００６】
パルスニューロンモデルは数多く提案されているが、それらの多くが積分発火（ＩＦ（Ｉｎｔｅｇｒａｔｅ  ａｎｄ  Ｆｉｒｅ））型とＳＲＭ（Ｓｐｉｋｅ  Ｒｅｓｐｏｎｃｅ  Ｍｏｄｅｌ）に分類される。ＳＲＭはＩＦ型に比べると、生体のニューロンモデルをより精密に表現している。しかしながら、ＩＦ型はＳＲＭの約３分の１のサイズでハードウェア実装できる可能性があり、ハードウェア実装に関してはＩＦ型モデルにメリットがある。
【０００７】
非特許文献１には、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのデジタル回路化に向けて、ＩＦ型のニューロンモデルのうち、ＳＡＭ（Ｓｐｉｋｅ  Ａｃｃｕｍｕｌａｔｉｏｎ  ａｎｄ  Ｍｏｄｕｌａｔｉｏｎ）ニューロンモデルに着目して行われた研究成果が報告されている。ＳＡＭニューロンモデルは、近年まで研究・開発されていた「脳型コンピュータ」の原理モデルである。ＳＡＭニューロンモデルは、生体の神経細胞を模しつつも工学用途によく考えられており、ニューロン単体で時間情報を取り扱える点や、類似の動作を行うＬＩＦ（Ｌｅａｋｙ  Ｉｎｔｅｇｒａｔｅｄ，  ａｎｄ  Ｆｉｒｅ）ニューロンモデルに比べて計算の時間間隔（クロック）の幅を広くとっても出力パルス頻度の精度が落ちない点で優れている。
【０００８】
非特許文献１においては、ＳＡＭニューロンモデルの学習法として勾配学習法が提案されている。この勾配学習法を用いれば、実行にも学習にも実数の乗算が不要となるため、乗算器が不必要であり、多数のニューロンをハードウェア実装可能となるであろうと報告されている。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】本木実，松尾和典，“ＳＡＭ型パルスニューロンモデルの誤り訂正学習とそのＨＤＬ設計”，第２７回回路とシステムワークショップ講演論文集，ｐｐ．２４４−２４９，２０１４
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述した非特許文献１で提案されている勾配学習法は単層のＳＡＭニューロンモデルに対してのみの提案であり、階層型に結合したモデルではないのでＸＯＲ問題のパターン認識をはじめとする複雑な写像が実現できない。またニューラルネットワークの学習法についての工夫はされているものの、その他の工夫については何ら開示されていない。
【００１１】
本発明は、前記課題に鑑みてなされたもので、パルスニューロンモデルのニューラルネットワークをハードウェア実装するにあたり、システム負荷を下げる各種工夫を行うことによりハードウェア実装容易性を向上することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の態様の１つは、入力実数値を当該入力実数値に応じた出力実数値に変換する信号変換装置であって、入力実数値を第１変換規則に従って入力パルス信号に変換するエンコーダと、前記エンコーダが出力する前記入力パルス信号に応じた出力パルス信号をパルスニューロンモデルのニューラルネットワークを用いて出力するニューラルネットワークと、前記ニューラルネットワークが出力する前記出力パルス信号を第２変換規則に従って出力実数値に変換するデコーダと、を備え、前記エンコーダが出力する前記入力パルス信号は、前記入力実数値に応じて前記第１変換規則に従ってパルスを配列した１周期分の基本パルス信号を２周期以上続けて繰り返したパルス配列構造を有することを特徴とする信号変換装置である。
【００１３】
このように構成された信号変換装置では、エンコーダが入力実数値に応じて出力する入力パルス信号において、入力実数値に応じて第１変換規則に従ってパルスを配列した１周期分の基本パルス信号を２周期以上続けて繰り返したパルス配列構造を有しているため、この入力パルス信号を入力されて学習等の処理を行う際の負荷が低下する。例えば、ニューラルネットワークは、ほぼ同じパルス配列（最後の１クロックにパルスが立つか否か、等）で表現される２つの入力パルス信号を区別する場合、最後の１クロックでその区別を行う必要が有り、デコーダも同じく最後の１クロックでニューラルネットワークからの出力パルス信号を出力実数値にデコードする必要が有る。このため最後の１クロックの瞬間に高いシステム負荷の集中が発生する。これに対し、基本パルス信号を２周期以上の繰り返したパルス配列構造の入力パルス信号とすることで、入力パルス信号の１周期目で入力パルス信号の区別を行い、出力パルス信号の出力実数値へのデコードは入力パルス信号の次の周期で行うようにすることが可能となり、システム負荷が軽減し、学習効率を向上させることができる。また、全く同じ基本パルス信号を繰り返し入力することで、２回目以降の基本パルス信号の入力時には、先に入力された基本パルス信号の学習結果をなぞるように素直な再学習が行われるため学習効率が向上する効果もある。このように、コーディングの観点からシステム負荷を低減する工夫を行うことによりハードウェア実装容易性を向上することができる。
【００１４】
本発明の選択的な態様の１つは、前記エンコーダが出力する前記入力パルス信号に含まれるパルスが周期的に配列されており、前記デコーダが出力する前記出力パルス信号に含まれるパルスも周期的に配列されていることを特徴とする信号変換装置である。
【００１５】
このように構成された信号変換装置では、エンコーダが出力する入力パルス信号を構成するパルスが周期的に配列されており、デコーダが出力する出力パルス信号を構成するパルスも周期的に配列されている。特にＳＡＭニューロンモデルでは、全ての入力パルスが周期的であると出力パルスも周期的になる特性が有り、入力パルス信号を構成するパルスと出力パルス信号を構成するパルスとが共に周期的に配列されていれば、ＳＡＭニューロンモデルのニューラルネットワークにとって表現が容易であり、システム負荷を低減することができる。
【００１６】
本発明の選択的な態様の１つは、前記第１変換規則において、隣り合う実数値が隣り合うパルス数の基本パルス信号に対応付けられている信号変換装置である。
【００１７】
このように構成された信号変換装置では、第１変換規則に従って変換される入力実数値と入力パルス信号の間に、隣り合う実数値がパルス数において隣り合う入力パルス信号に対応付けられる関係が成立している。一例を挙げると、入力実数値と入力パルス信号のパルス数とが比例関係を持つように変換する変換規則がある。このように近い実数値の表現を類似度の高いパルス表現（近いパルス密度、近いパルス配置）にて行うことにより、学習時に目的の値へ収束しやすくなるとともに、ニューラルネットワークを用いて連続値関数近似を行った場合に連続値の汎化能力を実現することができる。
【００１８】
本発明の選択的な態様の１つは、前記エンコーダが出力する前記入力パルス信号が、前記入力実数値が大きくなるほどパルス密度が大きくなることを特徴とする信号変換装置である。
【００１９】
このように構成された信号変換装置では、入力パルス信号において、入力実数値が大きくなるほどパルス密度が大きくなるようにパルスが配列されている。このため、入力頻度の線形和が出力頻度と強い相関があるパルスニューロンモデル（ＳＡＭニューロンモデル等）を用いた場合に学習効率を向上することができる。
【００２０】
本発明の選択的な態様の１つは、前記ニューラルネットワークが、入力層を構成する複数の入力ユニットと中間層を構成する複数の中間ユニットと出力層を構成する複数の出力ユニットとを有する階層型ニューラルネットであり、複数の入力ユニットの各出力が複数の中間ユニットのそれぞれに入力され、複数の中間ユニットの各出力が複数の出力ユニットのそれぞれに入力され、前記入力パルス信号は、複数の前記入力ユニットのそれぞれに入力される子パルス信号のセットで構成され、前記出力パルス信号が、複数の前記出力ユニットのそれぞれから出力される子パルス信号のセットで構成されることを特徴とする信号変換装置である。
【００２１】
このように構成された信号変換装置では、複数の子パルス信号のセットで入力パルス信号が構成されており、１つの入力パルス信号を構成する複数の子パルス信号がニューラルネットワークの入力層を構成する複数の入力ユニットのそれぞれに並列入力される構成となっている。子パルス信号は、１周期目に基本パルス信号を子パルス信号の数で分割した基本子パルス信号がそれぞれ配置され、１周期目の基本子パルス信号と同じ信号が２周期目にも繰り返し配置される。すなわち、各入力ユニットに入力される子パルス信号も入力パルス信号と同様に１周期分の長さの基本子パルス信号が２回以上続けて現れる周期繰り返し構造を有する。このように一連のパルス信号を複数の子パルス信号に分割して複数の入力ユニットに並列入力する構成を採用することにより、表現できる値の精度が向上するとともに、ニューラルネットワークに対する入力パルス信号の入力所要時間、及び、ニューラルネットワークにおける入力パルス信号の処理時間が短縮される。すなわち、入力パルス信号を分割して並列入力した場合、入力パルス信号を区切りの無い一連の信号として入力する場合に比べて、入力所要時間と処理時間が短縮されることはもちろん、類似信号と区別されやすくなるため識別性が向上し、パルス表現した値の認識精度が向上する。
【００２２】
本発明の選択的な態様の１つは、前記入力パルス信号を構成する複数の子パルス信号において、複数のパルスが最小数の子パルス信号に偏在するように配置されていることを特徴とする信号変換装置である。
【００２３】
このように構成された信号変換装置では、入力パルス信号全体に配列されるパルスは、１つの子パルス信号に配列可能な最大パルス数に達するまで１つの子パルス信号に集中してパルス配列される。このように１つの入力ユニット（１ニューロン）へ入力される子パルス信号に集中してパルス配列することで、複数の入力ユニットにパルス分散して入力して各入力ユニットで発生する誤差の累積により誤差が拡大することが防止され、誤差の影響を最小化することができる。
【００２４】
本発明の他の態様の１つは、入力実数値を当該入力実数値に応じた出力パルス信号に変換する信号変換装置であって、入力実数値を第１変換規則に従って入力パルス信号に変換するエンコーダと、前記エンコーダが出力する前記入力パルス信号に応じた前記出力パルス信号をパルスニューロンモデルのニューラルネットワークを用いて出力するニューラルネットワークと、を備え、前記エンコーダが出力する前記入力パルス信号は、前記入力実数値に応じて前記第１変換規則に従ってパルスを配列した１周期分の基本パルス信号を２周期以上続けて繰り返したパルス配列構造を有することを特徴とする信号変換装置である。
【００２５】
本発明の他の態様の１つは、入力実数値を当該入力実数値に応じた所定のパルス信号に変換する信号変換装置であって、入力実数値を第１変換規則に従って変換し、パルスニューロンモデルのニューラルネットワークへ入力するための入力パルス信号を生成するエンコーダを備え、前記エンコーダが生成する前記入力パルス信号は、前記入力実数値に応じて前記第１変換規則に従ってパルスを配列した１周期分の基本パルス信号を２周期以上続けて繰り返したパルス配列構造を有することを特徴とする信号変換装置である。
【００２６】
本発明の他の態様の１つは、入力実数値を当該入力実数値に応じた出力実数値に変換する信号変換システムであって、入力実数値を第１変換規則に従って入力パルス信号に変換するエンコーダと、前記エンコーダが出力する前記入力パルス信号に応じた出力パルス信号をパルスニューロンモデルのニューラルネットワークを用いて出力するニューラルネットワークと、前記ニューラルネットワークが出力する前記出力パルス信号を第２変換規則に従って出力実数値に変換するデコーダと、を備え、前記エンコーダが出力する前記入力パルス信号は、前記入力実数値に応じて前記第１変換規則に従ってパルスを配列した１周期分の基本パルス信号を２周期以上続けて繰り返したパルス配列構造を有することを特徴とする信号変換システムである。
【００２７】
本発明の他の態様の１つは、入力実数値を当該入力実数値に応じた出力パルス信号に変換する信号変換システムであって、入力実数値を第１変換規則に従って入力パルス信号に変換するエンコーダと、前記エンコーダが出力する前記入力パルス信号に応じた前記出力パルス信号をパルスニューロンモデルのニューラルネットワークを用いて出力するニューラルネットワークと、を備え、前記エンコーダが出力する前記入力パルス信号は、前記入力実数値に応じて前記第１変換規則に従ってパルスを配列した１周期分の基本パルス信号を２周期以上続けて繰り返したパルス配列構造を有することを特徴とする信号変換システムである。
【００２８】
本発明の他の態様の１つは、入力実数値を当該入力実数値に応じた所定のパルス信号に変換する信号変換システムであって、入力実数値を第１変換規則に従って変換し、パルスニューロンモデルのニューラルネットワークへ入力するための入力パルス信号を生成するエンコーダを備え、前記エンコーダが生成する前記入力パルス信号は、前記入力実数値に応じて前記第１変換規則に従ってパルスを配列した１周期分の基本パルス信号を２周期以上続けて繰り返したパルス配列構造を有することを特徴とする信号変換システムである。
【００２９】
以上説明した信号変換装置、信号変換システムは、他の機器に組み込まれた状態で実施されたり他の方法とともに実施されたりする等の各種の態様を含む。
【発明の効果】
【００３０】
本発明によれば、パルスニューロンモデルのニューラルネットワークをハードウェア実装するにあたり、モデルへの負荷を下げる各種工夫を行うことによりハードウェア実装容易性を向上することができる。
【図面の簡単な説明】
【００３１】
【図１】本実施形態に係る信号変換装置の概略構成を示す図である。
【図２】入力パルス信号（ｘ＝０．０１，０．０２）の一例を説明する図である。
【図３】入力パルス信号（ｘ＝０．０３，０．０４）の一例を説明する図である。
【図４】入力パルス信号（ｘ＝０．０５，０．０６）の一例を説明する図である。
【図５】入力パルス信号（ｘ＝０．０７，０．０８）の一例を説明する図である。
【図６】入力パルス信号（ｘ＝０．０９，０．１０）の一例を説明する図である。
【図７】入力パルス信号（ｘ＝０．１１，０．２５）の一例を説明する図である。
【図８】入力パルス信号（ｘ＝０．７７，０．９９）の一例を説明する図である。
【図９】ＳＡＭニューロンモデルを説明する図である。
【図１０】ＳＡＭニューロンモデルを階層型的に結合したネットワークを示す図である。
【図１１】Ｉｎｔｅｒｐｏｌａｔｅｄ  ＸＯＲによる学習後の出力である。
【図１２】学習データに対するＲＭＳ誤差とテストデータに対するＲＭＳ誤差を示す図である。
【図１３】各ハイパーパラメタにおける学習誤差と汎化誤差をまとめた図である。
【図１４】連続値関数近似の学習の様子の一例を示す図である。
【図１５】デジタル回路化時に使用される活性化関数の微分関数を示す図である。
【図１６】ＳＡＭニューロンモデルの設計概念図である。
【図１７】シミュレーション結果を一部抜粋した図である。
【図１８】図１７のシミュレーション結果をグラフに表したものである。
【発明を実施するための形態】
【００３２】
以下、図面を参照しつつ本発明の実施形態を説明する。
図１は、本実施形態に係る信号変換装置１００の概略構成を示す図である。
【００３３】
信号変換装置１００は、入力実数値Ｓｉｎを入力実数値Ｓｉｎに応じた出力実数値Ｓｏｕｔに変換するものであり、エンコーダ１、ニューラルネットワーク２及びデコーダ３を備える。
【００３４】
なお、信号変換装置１００は、単一の装置として構成される必要は無く、例えば複数の装置上に信号変換装置１００の機能を分散した態様で実現され、各チップが協働して信号変換装置１００と同様の機能を実現する信号変換システムとして実現されてもよい。また、ネットワークを介して接続された複数の装置上に信号変換装置１００の機能を分散した態様で実現され、各装置がネットワークを介して協働して信号変換装置１００と同様の機能を実現されてもよい。
【００３５】
エンコーダ１は、入力実数値Ｓｉｎを第１変換規則に従って入力パルス信号Ｐｉｎに変換する。エンコーダ１は、入力実数値Ｓｉｎを入力パルス信号Ｐｉｎに変換する第１変換規則（例えば、変換テーブル、変換式等により実現される）を具現した変換回路を備えている。第１変換規則は、入力実数値Ｓｉｎを入力パルス信号Ｐｉｎへ１対１の対応関係で変換する規則であれば如何なるものであってもよい。
【００３６】
入力パルス信号Ｐｉｎは、１周期分の長さの基本パルス信号Ｐｉｎｂが２回以上続けて現れる周期繰り返し構造を有する。基本パルス信号Ｐｉｎｂは、１周期内のパルス数（パルス数が０の場合を含む）とそのパルス発生タイミングとにより特徴づけられており、互いに異なる入力パルス信号Ｐｉｎ（及び基本パルス信号Ｐｉｎｂ）は１周期内に含まれるパルス数とパルス発生タイミングの組み合わせが互いに異なっている。
【００３７】
入力パルス信号Ｐｉｎを、同じ基本パルス信号Ｐｉｎｂが２回以上続けて現れる構成とすることにより、ニューラルネットワーク２の処理に係るシステム負荷が低減する。すなわち、入力パルス信号Ｐｉｎの２周期目以降に基本パルス信号Ｐｉｎｂと異なる信号を入力した場合に比べて、２回目以降も同じ基本パルス信号Ｐｉｎｂを繰り返し入力した場合にはシステム負荷が極めて小さくて済む。また、全く同じコードを続けて入力することでニューラルネットワーク２において素直な学習が可能となり、学習効率も向上する。
【００３８】
具体的には、ほぼ同じパルス配列（最後の１クロックにパルスが立つか否か、等）で表現される２つの入力パルス信号Ｐｉｎを区別する場合、ニューラルネットワーク２は最後の１クロックでその区別を行い、しかもデコーダ３は、その１クロックで出力層２３からの出力パルス信号Ｐｏｕｔを出力実数値Ｓｏｕｔにデコードする必要が有る。このため最後の１クロックの瞬間に高いシステム負荷の集中が発生する。そこで、入力パルス信号Ｐｉｎの１周期目で入力パルス信号Ｐｉｎを区別し、出力パルス信号Ｐｏｕｔの出力実数値Ｓｏｕｔへのデコードは次周期で行うことでシステム負荷を軽減し、学習効率を向上することができる。デコーダは、次周期の出力パルス信号Ｐｏｕｔの出力を受けている間に、前周期に出力完了済みの出力パルス信号Ｐｏｕｔを出力実数値にデコードする処理を行う。
【００３９】
ニューラルネットワーク２は、エンコーダ１が出力する入力パルス信号Ｐｉｎに応じた出力パルス信号Ｐｏｕｔをパルスニューロンモデルのニューラルネットワークを用いて出力するニューラルネットワークである。ニューラルネットワーク２に採用されるパルスニューロンモデルは、ＩＦ型とＳＲＭとの何れでもよい。なお以下では、ＦＰＧＡなどのデジタル回路化に適したＩＦ型のニューロンモデルであるＳＡＭニューロンモデルを例に取り説明する。
【００４０】
デコーダ３は、ニューラルネットワーク２が出力する出力パルス信号Ｐｏｕｔを第２変換規則に従って出力実数値Ｓｏｕｔに変換する。デコーダ３は、出力パルス信号Ｐｏｕｔを出力実数値Ｓｏｕｔに変換する第２変換規則（例えば、変換テーブル、変換式等により実現される）を具現した変換回路を備えている。第２変換規則は、出力実数値Ｓｏｕｔを出力パルス信号Ｐｏｕｔへ１対１の対応関係で変換する規則であれば如何なるものであってもよい。
【００４１】
出力パルス信号Ｐｏｕｔは、入力パルス信号Ｐｉｎと同様に、１周期分の長さの基本パルス信号Ｐｏｕｔｂが２回以上続けて現れる周期繰り返し構造を有する。基本パルス信号Ｐｏｕｔｂは、１周期内のパルス数（パルス数が０の場合を含む）とそのパルス発生タイミングとにより特徴づけられており、互いに異なる出力パルス信号Ｐｏｕｔ（及び基本パルス信号Ｐｏｕｔｂ）は、１周期内に含まれるパルス数とパルス発生タイミングの組み合わせが互いに異なっている。
【００４２】
図２〜図８は、入力パルス信号Ｐｉｎの一例を説明する図である。これらの図には、０から１までの実数値（０．０１から１．００）の中の一部に対応付けられた入力パルス信号Ｐｉｎを示してある。
【００４３】
なお、以下では、入力実数値Ｓｉｎに対応する入力パルス信号Ｐｉｎを例に取り説明するが、出力実数値Ｓｏｕｔに対応する出力パルス信号Ｐｏｕｔも入力パルス信号Ｐｉｎと同様のパルス配列構造の特徴を有する。むろん、同じパルス配列の入力パルス信号Ｐｉｎと出力パルス信号Ｐｏｕｔが同じ実数値に対応付けられる必要は無く、各々独立の変換規則（第１変換規則、第２変換規則）にて入力実数値Ｓｉｎは入力パルス信号Ｐｉｎに対応付けられ、出力実数値Ｓｏｕｔは出力パルス信号Ｐｏｕｔに対応付けられる。
【００４４】
図２〜図８に示す例では入力実数値Ｓｉｎとして小数点以下２桁の実数値を採用してある。また、基本パルス信号Ｐｉｎｂの１周期ｔＣを１０クロックとし、入力パルス信号Ｐｉｎの長さは基本パルス信号Ｐｉｎｂを２周期分（２ｔＣ）連続して繰り返した２０クロック）としてある。
【００４５】
入力パルス信号Ｐｉｎは、各クロックにおけるパルス発生の有／無を選択することで、入力パルス信号Ｐｉｎを構成するパルス数とパルス発生タイミングとが選択される。従って、入力パルス信号Ｐｉｎは、理論上、１周期内のクロックタイミング毎のパルス発生の有／無が異なるパターン数を実現できる。ただし、後述する１ニューロンへの集中配置等のパルス配列の規則を適用した場合は実現可能なパターン数がある程度絞られる。なお、パルス発生の有／無を選択する時刻は連続値としてもよいが、計算機上及びＦＰＧＡ上でパルスニューロンモデルを用いるためにクロックにより規定される離散値とし、１クロック時間を最小単位時間としてある。
【００４６】
図２（ａ）は実数値ｘ＝０．０１、図２（ｂ）は実数値ｘ＝０．０２、図３（ｃ）は実数値ｘ＝０．０３、図３（ｄ）は実数値ｘ＝０．０４、図４（ｅ）は実数値ｘ＝０．０５、図４（ｆ）は実数値ｘ＝０．０６、図５（ｇ）は実数値ｘ＝０．０７、図５（ｈ）は実数値ｘ＝０．０８、図６（ｉ）は実数値ｘ＝０．０９、図６（ｊ）は実数値ｘ＝０．１０、図７（ｋ）は実数値ｘ＝０．１１、図７（ｌ）は実数値ｘ＝０．２５、図８（ｍ）は実数値ｘ＝０．７７、図８（ｎ）は実数値ｘ＝０．９９にそれぞれ対応する入力パルス信号Ｐｉｎの一例を示してある。
【００４７】
これらの図に示す例では、入力層２１を構成する複数の入力ユニット２１１，２１２，・・・，２１ｉ，・・・，２１ｎ１の数を１０とし、入力パルス信号Ｐｉｎは、入力層２１を構成する複数の入力ユニット２１１，２１２，・・・，２１ｉ，・・・，２１ｎ１のそれぞれに並列入力される子パルス信号ｎＣ（＝１〜１０）のセットで構成されている。子パルス信号ｎＣは、１周期目に基本パルス信号Ｐｉｎｂを子パルス信号ｎＣの数で分割した基本子パルス信号が配置され、１周期目の基本子パルス信号と同じ信号が２周期目にも繰り返し配置される。すなわち、各入力ユニット２１１，２１２，・・・，２１ｉ，・・・，２１ｎ１に入力される子パルス信号ｎＣにおいても、入力パルス信号Ｐｉｎと同様に、１周期分の長さの基本子パルス信号が２回以上続けて現れる周期繰り返し構造を有する。
【００４８】
このように、一連のパルス信号を複数の子パルス信号ｎＣに分割して複数の入力ユニット２１１，２１２，・・・，２１ｉ，・・・，２１ｎ１に並列入力する構成を採用することにより、表現できる値の精度が向上するとともに、ニューラルネットワーク２に対する入力パルス信号Ｐｉｎの入力所要時間、及び、ニューラルネットワーク２における入力パルス信号Ｐｉｎの処理時間が短縮される。すなわち、入力パルス信号Ｐｉｎを分割して並列入力した場合、入力パルス信号Ｐｉｎを区切りの無い一連の信号として入力する場合に比べて、入力所要時間と処理時間が短縮されることはもちろん、類似信号との区別が容易化して識別性が向上し、表現した値の認識精度が向上する。
【００４９】
また、入力パルス信号Ｐｉｎ（複数の子パルス信号ｎＣのセット）は、入力実数値Ｓｉｎの値が大きくなるほどパルス密度が大きくなるようにパルス配列されている。図に示す例では、入力パルス信号Ｐｉｎは、入力実数値Ｓｉｎと同じパルス密度（例えば、実数値ｘ＝０．０１の場合にパルス密度が０．０１）でパルス配列されている。このため、入力頻度の線形和が出力頻度と強い相関があるＳＡＭニューロンモデルのようなパルスニューロンモデルにおいて学習効率が向上する。
【００５０】
また、第１変換規則に従って変換される入力実数値と入力パルス信号の間には、隣り合う実数値がパルス数の隣り合う入力パルス信号Ｐｉｎに対応付けられる関係が成立している。より具体的には、実数値と入力パルス信号Ｐｉｎのパルス数とが比例関係を持つように変換してある。このように近い実数値の表現を近い表現（近いパルス密度、近いパルス配置）とすることにより、学習時に目的の値へ収束しやすくなるとともに、ニューラルネットワーク２を用いて連続値関数近似を行った場合に、連続値の汎化能力を実現できる。
【００５１】
これは、ニューラルネットワークに曖昧に統計的に学習を獲得する特性から、非学習データについては学習データと似た値を出力するためである。また、ニューラルネットワークはゆとりを持たせたシステムなので必ず誤差があり、例えば、パルス２個入力が誤差によって異なるパルス数（３個、１個等）に同定された場合に、パルス３個やパルス１個に相当する値が、本来のパルス２個に相当する値と全く関連性（連続性）の無い別の値に対応付けられていると、連続値の汎化能力を実現できないためである。
【００５２】
また、入力パルス信号Ｐｉｎを構成する複数の子パルス信号ｎＣにおいて、複数のパルスが最小数の子パルス信号ｎＣに偏在するように配置されている。具体的には、入力パルス信号Ｐｉｎに配列される全パルス数が２０以下の場合は（基本パルス信号Ｐｉｎｂに配列される全パルス数が１０以下の場合は）１つの子パルス信号ｎＣのみに全パルスが配列され、入力パルス信号Ｐｉｎに配列される全パルス数が２１〜４０の場合は（基本パルス信号Ｐｉｎｂに配列される全パルス数が１１〜２０の場合は）１つの子パルス信号ｎＣについて全クロックにパルス発生が有り、他の１つの子パルス信号ｎＣに残りの全パルスが配列される。このように、１つの入力ユニット（１ニューロン）へ入力される子パルス信号ｎＣに集中してパルス配列することで、誤差の影響を最小化することができる。例えば、０．０６の入力実数値Ｓｉｎを表すパルスを最小数の子パルス信号ｎＣに偏在させた場合と３つの子パルス信号ｎＣに分散させた場合とを比べると、前者では各子パルス信号ｎＣそれぞれで誤差が０．０１の場合０．０５又は０．０７程度だが、後者ではそれぞれに誤差０．０１が発生して（０．０１又は０．０３）になり、最大誤差が０．０３に増える可能性がある。
【００５３】
また、エンコーダ１が出力する入力パルス信号Ｐｉｎに含まれるパルスは周期的に配列されており、デコーダ３が出力する出力パルス信号Ｐｏｕｔに含まれるパルスも周期的に配列されている。具体的には、１周期当たりのクロック数を割り切れるような、１周期当たりのパルス数が１の場合は１０クロック毎にパルス発生し、１周期当たりのパルス数が２の場合は５クロック毎にパルス発生する。また、１周期当たりのクロック数を割り切れない、１周期当たりのパルス数が３の場合は３クロック毎に２回パルス発生し４クロック毎に１回パルス発生する。ＳＡＭニューロンモデルには、全ての入力パルスが周期的であると、出力パルスも周期的になる特性が有り、入力パルス信号Ｐｉｎを構成するパルスと出力パルス信号Ｐｏｕｔを構成するパルスとが共に周期的に配列されていると、ニューラルネットワーク２にとって表現が容易であり、ネットワークにかかる負荷を低くすることができる。
【００５４】
以下、パルスニューロンモデルのニューラルネットワーク（以下、ＮＮと略す）の一例として、本願発明者らが独自に工夫した階層型ＳＡＭ（Ｓｐｉｋｅ  Ａｃｃｕｍｕｌａｔｉｏｎ  ａｎｄ  Ｍｏｄｕｌａｔｉｏｎ）ＮＮについて説明する。ＳＡＭニューロンモデルは、積分発火型（ＩＦ）ニューロンモデルの１つであり、通信の分野でΔ−Σ変調と呼ばれているパルス変調方式に似た特徴を持つ。ＳＡＭニューロンモデルを階層的に結合したネットワーク構造を持つものが階層型ＳＡＭ ＮＮである。
【００５５】
図９は、ＳＡＭニューロンモデルを説明する図である。
【００５６】
ＳＡＭニューロンモデルは、複数のパルス信号Ｘｉ（ｔ）（ｉ＝１，２，３，・・・，ｎ１）の入力を受けて、入力されたパルス信号Ｘｉ（ｔ）に応じたパルス信号Ｘｊ（ｔ）を出力する。ＳＡＭニューロンモデルは内部電位Ｕｊ（ｔ）を持つ。この内部電位Ｕｉ（ｔ）は、パルス信号Ｘｉ（ｔ）のパルス入力状況に応じて増減する。
【００５７】
内部電位Ｕｊ（ｔ）は下記式（１）により表される。
【００５８】
【数１】
0006731596.tif 000002
【００５９】
前記式（１）において、Ｗｉｊ（ｔ）はパルス信号Ｘｊ（ｔ）ごとに設定される結合荷重、ａは減衰乗数（０＜ａ＜１）、Ｖｊ（ｔ−１）は前時刻の内部電位である。パルス信号Ｘｊ（ｔ）は、０（パルス無し）または１（パルス有り）の値を取る。内部電位Ｕｊ（ｔ）、前時刻の内部電位Ｖｊ（ｔ−１）、結合荷重Ｗｉｊ（ｔ）、及び、減衰乗数ａは実数値を取る。
【００６０】
すなわち、時刻ｔにおいて、ｊ番目のニューロンがｉ番目の入力値Ｘｉ（ｔ）のパルスを受け取ると、結合荷重Ｗｉｊとの積を取り、それらを入力の数ｎ１だけ集積し、前時刻の内部電位Ｖｊ（ｔ−１）に減衰乗数ａを乗じた電位を加えた値を内部電位Ｕｊ（ｔ）とする。
【００６１】
内部電位Ｕｊ（ｔ）の値は、下記式（２）に示す活性化関数ｇ（）を通して下記式（３）に示す出力Ｘｊ（ｔ）として出力される。
【００６２】
【数２】
0006731596.tif 000003
【００６３】
【数３】
0006731596.tif 000004
【００６４】
前記式（３）において、出力Ｘｊ（ｔ）及び閾値θは実数値を取る。前記式（２）に示すように活性化関数ｇ（）はステップ関数であり、Ｕｊ（ｔ）が閾値θよりも小さければ０を出力せず（発火せず）、閾値θ以上であれば１を出力する（発火する）という特徴を持つ。
【００６５】
さらに、内部電位は、下記式（４）に示すように発火によりｐ（ｐは実数値）だけ減少する。
【００６６】
【数４】
0006731596.tif 000005
【００６７】
更に、各パラメータａ，ｐ，θを調整したり、自己フィードバック結合したりすることにより、ＡＮＤ、ＯＲ等の論理演算、バースト、短期記憶などいくつかの特性を素子に持たせることができる。
【００６８】
以上説明した単層のＳＡＭニューロンモデルでは、ＸＯＲ問題等のように線形分離不可能なパターン認識等の複雑な写像が実現できない。そこで、本実施形態では、図１０に示すようなＳＡＭニューロンモデルを階層型的に結合したネットワークを用いる。
【００６９】
図１０に示すＮＮは、入力層２１を構成する第１層ユニット２１１，２１２，・・・，２１ｉ，・・・，２１ｎ１、中間層２２を構成する第２層ユニット２２１，２２２，・・・，２２ｊ，・・・，２２ｎ２、出力層２３を構成する第３層ユニット２３１，２３２，・・・，２３ｋ，・・・，２３ｎ３、を有する。なお、入力層２１と出力層２３の間に設ける中間層の数は１つだけでなく２以上としてもよい。中間層のユニット数を増やすほどＲＭＳ誤差（汎化誤差）が小さくなる。
【００７０】
第１層ユニット２１１，２１２，・・・，２１ｉ，・・・，２１ｎ１には、入力パルス信号Ｐｉｎを構成する子パルス信号ｎＣのセットの１つが入力される。第１層ユニット２１１，２１２，・・・，２１ｉ，・・・，２１ｎ１の出力は、それぞれ第２層ユニット２２１，２２２，・・・，２２ｊ，・・・，２２ｎ２のそれぞれに入力される。第２層ユニット２２１，２２２，・・・，２２ｊ，・・・，２２ｎ２の出力は、第３層ユニット２３１，２３２，・・・，２３ｋ，・・・，２３ｎ３のそれぞれに入力される。第３層ユニット２３１，２３２，・・・，２３ｋ，・・・，２３ｎ３のそれぞれからは、出力パルス信号Ｐｏｕｔを構成する子パルス信号ｎＣのセットの１つが出力される。
【００７１】
中間層である第２層ユニット２２１，２２２，・・・，２２ｊ，・・・，２２ｎ２を構成する各ＳＡＭニューロンは、下記式（５）〜（７）で表される内部電位、結合荷重、前時刻の内部電位をそれぞれ有する。
【００７２】
【数５】
0006731596.tif 000006
【００７３】
【数６】
0006731596.tif 000007
【００７４】
【数７】
0006731596.tif 000008
【００７５】
また、出力層である第３層ユニット２３１，２３２，・・・，２３ｋ，・・・，２３ｎ３を構成するＳＡＭニューロンは、下記式（８）〜（１０）で表される内部電位、結合荷重、前時刻の内部電位をそれぞれ有する。
【００７６】
【数８】
0006731596.tif 000009
【００７７】
【数９】
0006731596.tif 000010
【００７８】
【数１０】
0006731596.tif 000011
【００７９】
前記式（５）〜（１０）において、<>で括られた数字は層番号を表す。上述したＳＡＭニューロンモデルの閾値θも各ニューロンでそれぞれ設定し、θｊ<2>、θｋ<3>とし、学習パラメータとして可変とした。
【００８０】
このように構成された階層型ＳＡＭ ＮＮにおける学習は、目的関数Ｅを用いて行う。学習アルゴリズムは、目的関数Ｅの結合荷重Ｗでの勾配を導き、結合荷重及び閾値を変更していく。以下、説明の簡略化のため、学習データのパターン数ＰをＰ＝１（一般化する場合は、Ｐ＝１，２，３、・・・，Ｎ）として考える。
【００８１】
まず、出力層である第３層ユニット２３１，２３２，・・・，２３ｋ，・・・，２３ｎ３についての目的関数の偏微分は、下記式（１１）により表される。
【００８２】
【数１１】
0006731596.tif 000012
【００８３】
前記式（１１）において、Ｔｐ，ｋ<3>（ｔ）は第３層ユニット２３１，２３２，・・・，２３ｋ，・・・，２３ｎ３に対する教師信号を表し、Ｐ及びＮは上述したパターン数を表す。ただし、上述したようにパターン数Ｐ＝１として考える。
【００８４】
この式（１１）が最小化するパラメータセットを得るため、第３層ユニット２３１，２３２，・・・，２３ｋ，・・・，２３ｎ３に対して、下記式（１２）で示す勾配を考える。
【００８５】
【数１２】
0006731596.tif 000013
【００８６】
前記式（１２）において、ｕｋ<3>（ｔ）は、閾値θを含む内部電位Ｕｊ<2>（ｔ）の活性度を表す。
【００８７】
次に、前記式（１２）中の（∂ｕｋ<3>（ｔ））／（∂Ｗｊｋ<3>）について考える。具体的には、以下に示すように、ｔ＝１，２，・・・，ｎと時刻を進めていく一般式を表現することにより式の変形を行い、下記式（１３）を導出した。
【００８８】
【数１３】
0006731596.tif 000014
【００８９】
前記式（１３）に示すＨｊｋ<3>（ｔ）は入力履歴値であり、下記式（１４）により定義される。なお、入力履歴値の定義は、係数がｑではなくａである点を除いて重松らの定義と同様である。また、前記式（１３）において、Ｊｊｋ<3>（ｔ−１）はｐに掛かる項であり、下記式（１５）により表される。
【００９０】
【数１４】
0006731596.tif 000015
【００９１】
【数１５】
0006731596.tif 000016
【００９２】
更に、前記式（１３）において、ａｐＪｊｋ<3>（ｔ−１）は、ａとｐの積が乗じられている。ａは、上述したように０＜ａ＜１であり、またｐは一般にθとの兼ね合いで小さい値に設定する。このため、Ｈｊｋ<3>（ｔ）に比べて十分に小さいとして無視することができる。実際には、ｇ’（ｕｋ<3>（ｔ））やａの設定と入力によっては、ａｐＪｊｋ<3>（ｔ−１）が無視できない場合および（Ｈｊｋ<3>（ｔ）−ａｐＪｊｋ<3>（ｔ−１））の符号も変わってくる場合がある。ただし、今回はハードウェア化のため簡素化を狙い、この項を無視して取り扱った。むろん、この項を無視しない学習法を採用してもよい。
【００９３】
また、本実施形態に係る学習は、前記式（１２）に示すような「時刻ｔに関するバッチ学習」ではなく、「時刻ｔに関するオンライン学習」とした。「時刻ｔに関するバッチ学習」とは、時刻ｔ＝１からｔ＝ｔＮまでは結合荷重の更新を行わず、変化分のみを蓄積して、ｔ＝ｔＮとなったときに一括して結合荷重を更新する学習方式である。「時刻ｔに関するオンライン学習」とは、各時刻ｔごとに結合荷重を更新する学習方式である。
【００９４】
結果として、前記式（１３）は下記式（１６）となり、前記式（１２）は下記式（１７）で表されることになる。
【００９５】
【数１６】
0006731596.tif 000017
【００９６】
【数１７】
0006731596.tif 000018
【００９７】
次に、中間層である第２層ユニット２２１，２２２，・・・，２２ｊ，・・・，２２ｎ２に対しての学習では、誤差逆伝搬法の考え方により、各時刻ｔの目的関数Ｅ（ｔ）（二乗誤差）に対するパラメータＷでの勾配を考えて下記式（１８）により表される。
【００９８】
【数１８】
0006731596.tif 000019
【００９９】
前記式（１８）は、式中に実数値を取るＷｊｋ<3>と同じく実数値を取るＨｉｊ<2>（ｔ）があり、実数値と実数値の乗算が存在することからデジタル回路化する際に乗算器が必要になる。なお、ｇ’や学習係数の乗算にはシフト演算を用いることができる。
【０１００】
そこで、中間層ユニットへの０又は１の値を取る教師信号Ｔｊ<2>を設定して誤差を逆伝搬させるのではなく、中間層ユニットで局所的に学習することを考える。デジタルニューロンモデルに対する中間層ユニットへの教師信号の作製法はいくつか提案されているが（例えば、山田樹一，黒柳奨，岩田彰，“ニューロンモデルに存在する双対性を利用したニューラルネットワークのための教師あり学習法”，電子情報通信学会論文誌，ｖｏｌ．Ｊ８７−Ｄ２，Ｎｏ．２，ｐｐ３９９−４０６，２００４．、及び、長沼秀典，大堀隆文，渡辺一央，”微分不能素子をもつ階層型ニューラルネットに対する誤差逆伝搬法の提案”，電子情報通信学会論文誌，ｖｏｌ．Ｊ８８−Ｄ２，Ｎｏ．１０，ｐｐ．２１２５−２１３３，２００５．）、本実施形態では以下に説明する新しい方法を提案する。
【０１０１】
まず、ｊ番目の中間層ユニットの教師信号Ｔｊ<2>は、正確な最急降下法とするならば、下記式（１９）となるべきである。
【０１０２】
【数１９】
0006731596.tif 000020
【０１０３】
なぜならば、前記式（１９）は、下記の満たすべき２つの条件を満たしているからである。
【０１０４】
（条件１）（∂Ｅ（ｔ））／（∂Ｘｊ<2>（ｔ））＝０（勾配が０）のとき、Ｘｊ<2>（ｔ）はＴｊ<2>（ｔ）に等しくなるべきである。
（条件２）前記式（１９）を後述する局所的な中間層ユニットの結合荷重の更新式（下記式（２０））に代入した時に誤差逆伝搬の考え方の前記式（１８）に等しくなるべきである。
【０１０５】
（条件１）については、前記式（１９）であれば満たされることは明らかである。また、（条件２）については、以下のようにして確かめられる。
【０１０６】
すなわち、中間層ユニットの結合荷重の更新式は出力層ユニットの結合荷重の更新式である前記式（１７）と同形が理想とすると下記式（２０）となるべきである。このようにすると３層以上の多層の場合にも同一の式で学習することができる。
【０１０７】
【数２０】
0006731596.tif 000021
【０１０８】
ここで、Ｔｊ<2>（ｔ）を前記式（１９）とすると、前記式（２０）は、下記式（２１）として表され、前記式（１８）と一致する。
【０１０９】
【数２１】
0006731596.tif 000022
【０１１０】
そして、更に前記式（１９）において、Ｔｊ<2>（ｔ）は１又は０の値を取るべきなので、通常、Ｘｊ<2>（ｔ）が１になる確率と０になる確率とが等しいと考えると、中央値０．５を境にＴｊ<2>（ｔ）１と０を決定するように、下記式（２２）の関係とする。
【０１１１】
【数２２】
0006731596.tif 000023
【０１１２】
そして、前記式（２１）における∂Ｗｉｊ<2>（ｔ）が出るＸｊ<2>に交換可能であることから、下記式（２３）が成立する。これら式（２２），（２３）が、本実施形態において提案する中間層ユニットに対する教師信号の作成法である。
【０１１３】
【数２３】
0006731596.tif 000024
【０１１４】
以上より、第２層の中間層ユニットに対する学習は、中間層の教師信号を用いて下記式（２４）により表すことができることになる。なお、本手法は、ＳＡＭニューロンモデルに限らず、微分不可能演算子を持つデジタルなニューロンモデルに適用可能であることを付言しておく。
【０１１５】
【数２４】
0006731596.tif 000025
【０１１６】
このようにして生成した中間層ニューロンに対する教師信号を用いると、第２層の中間層ニューロンに対する学習は、下記式（２５）で表される。
【０１１７】
【数２５】
0006731596.tif 000026
【０１１８】
これにより、出力層ニューロンの学習式（１７）式と中間層のニューロンの学習式（２５）式が同形となるので、一般化して第（ｌ−１）層の第ｍ番目のニューロンから第ｌ層の第ｎ番目のニューロンの結合荷重Ｗｍｎ<l>の更新は下記式（２６）で表される。
【０１１９】
【数２６】
0006731596.tif 000027
【０１２０】
前記式（２６）においてηは結合荷重の学習係数である。また、しきい値θｎ<l>の更新は、下記式（２７）で表される。ιはしきい値の学習係数である。
【０１２１】
【数２７】
0006731596.tif 000028
【０１２２】
以上、勾配学習による提案手法について述べた。本手法は、ハードウェア化のための手法であるため(17) 式の第２項を無視しており、またバッチ学習をオンライン学習（確率的降下法）とし、さらに上述した中間層の教師信号を利用しているため、厳密な最急降下法とはなってはいない。
【０１２３】
次に、上述した信号変換装置１００を計算機上に実現し、パターン認識と連続値関数近似に適用した結果を説明する。計算に用いた環境は、Ｉｎｔｅｌ  ＣＯＲＥ  ｉ７，２．９３ＧＨｚのＣＰＵを持つＰＣにＷｉｎｄｏｗｓ(登録商標）７（３２ｂｉｔ）のＯＳを搭載し、ｃｙｇｗｉｎ環境のｇｃｃ  ｖｅｒｓｉｏｎ４．３．４である。プログラムは最適化オプション‘−Ｏ３’を付けてコンパイルを行った。
【０１２４】
まず、上述した信号変換装置１００を用いて行ったパターン認識の結果を示す。使用したデータは、ＵＣＩ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  Ｒｅｐｏｓｉｔｏｒｙ（ｈｔｔｐ://ａｒｃｈｉｖｅ.ｉｃｓ.ｕｃｉ.ｅｄｕ/ｍｌ/）で提供されているＩｒｉｓ（アヤメ）のデータである。
【０１２５】
同データは、アヤメの４つの属性（がく片の長さ，がく片の幅，花びらの長さ，花びらの幅）から、３つのクラス（Ｉｒｉｓ−Ｓｅｔｏｓａ,Ｉｒｉｓ−Ｖｅｒｓｉｃｏｌｏｕｒ,Ｉｒｉｓ−Ｖｉｒｇｉｎｉｃａ）を判別するタスクである。全データ１５０個の５０％（７５個）を学習データとし、残りの５０％（７５個）を２−ｆｏｌｄ  ｃｒｏｓｓ  ｖａｌｉｄａｔｉｏｎ法のテストデータとして用いて汎化能力を確認した。
【０１２６】
提案モデル用に、４つの属性データの最小値と最大値を［０．０，１．０］に線形に正規化した値を精度ｐｃ＝０．０１に丸めて入力した。ＳＡＭニューロンのパラメータの値は、ａ＝０．９，ｐ＝０．５に固定した。結合荷重およびしきい値の初期値は［−１．０,１．０］の乱数（ＡＮＳＩ  Ｃのｒａｎｄ関数で生成）とした．パルスコーディングについてはｎＣ＝４，ｔＣ＝２５とした。実験条件として、中間ニューロンユニット数ｎ２を１０，２０，３０，４０，５０の５種類、学習係数η＝０．００１，０．０００１，０．００００１（ι＝０．２）の３種類、結合荷重およびしきい値の乱数の初期値をそれぞれ５種類、で変更した計７５種類の条件について実験した。
【０１２７】
その結果、ｎ２＝４０の時、２５００回の学習後、パターン認識の正解率を確認したところ、学習データに対して１００．０％、テストデータに対して９４．４％の正解率が得られた。
【０１２８】
次に、上述した信号変換装置１００を用いて行った連続値関数近似の結果を示す。まず、学習の成功の可否を“Ｉｎｔｅｒｐｏｌａｔｅｄ  ＸＯＲ”と呼ばれる２項関数の近似で示す。次に汎化能力を３次関数で調べる。連続値関数近似は、ニューラルネットワークの写像能力を表すものであり、今回の実験では、１００分の１の精度で実数関数ｆ：Ｒ２→Ｒとｆ：Ｒ→Ｒを実現する。
【０１２９】
まず、Ｉｎｔｅｒｐｏｌａｔｅｄ  ＸＯＲによる学習能力の検証について説明する。  Ｂｏｈｔｅらは、論文（Ｓａｎｄｅｒ  Ｍ．  Ｂｏｈｔｅ，  Ｊｏｏｓｔ  Ｎ．  Ｋｏｋ  ａｎｄ  Ｈａｎ  Ｌａ  Ｐｏｕｔｒｅ，  “Ｅｒｒｏｒ−ｂａｃｋｐｒｏｐａｇａｔｉｏｎ  ｉｎｔｅｍｐｏｒａｌｌｙ  ｅｎｃｏｄｅｄ  ｎｅｔｗｏｒｋｓ  ｏｆ  ｓｐｉｋｉｎｇ  ｎｅｕｒｏｎｓ”,  Ｎｅｕｒｏｃｏｍｐｕｔｉｎｇ  ４８,  １７−３７,  ２００２.）において、ＳＲＭ型のニューロンモデルに対してＳｐｉｋｅＰｒｏｐと呼ばれる学習方法を適用し、“Ｉｎｔｅｒｐｏｌａｔｅｄ  ＸＯＲ”タスクに対する結果を示した。本実施例ではこれと同様のタスクに対する学習の可否を調べた。用いた式は、下記式（２８）である。
【０１３０】
【数２８】
0006731596.tif 000029
【０１３１】
前記（２８）式をさらに、提案モデルが学習しやすいように、ｘ１，ｘ２，ｙの値がそれぞれ［０．１，０．９］になるように線形に正規化した。ｘ１、ｘ２のそれぞれで３１点のデータについて全９６１点の学習データを用いて学習した。コーディングのためのパラメータはｎＣ＝１０、ｔＣ＝１０であり、数値の精度ｐＣは０．０１である。
【０１３２】
図１１は、Ｉｎｔｅｒｐｏｌａｔｅｄ  ＸＯＲによる学習後の出力である。同図に示すように、ほぼなめらかな曲線が再現できている。この時のネットワークの構成は、１０：１３０：１０（入力：中間：出力)のネットワークであり、学習回数は１４００回である。
【０１３３】
次に、３次関数により連続値関数近似の汎化能力に関して検証した。用いた関数は、Ｉａｎｎｅｌｌａらの論文（Ｎｉｃｏｌａｎｇｅｌｏ  Ｉａｎｎｅｌｌａ  ａｎｄ  Ａｎｄｒｅｗ  Ｄ．Ｂａｃｋ，“Ａ  ｓｐｉｋｉｎｇ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ  ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  ｎｏｎｌｉｎｅａｒ  ｆｕｎｃｔｉｏｎ  ａｐｐｒｏｘｉｍａｔｉｏｎ”，Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ  １４，２００１  Ｓｐｅｃｉａｌ  ｉｓｓｕｅ，９３３−９３９，２００１）と同様の関数であり、下記式（２９）により表される。
【０１３４】
【数２９】
0006731596.tif 000030
【０１３５】
この関数は、単調増加または単調減少の関数ではなく、上に凸と下に凸の性質を併せ持つ関数である。前記式（２６）をｘの［０，１．５］を［０．２，０．８］に、ｙをｘの［０，１．５］における最小値と最大値を［０．２，０．８］に線形に正規化してデータを作成した。数値の表現できる精度ｐＣは０．０１とし、各値を四捨五入して求めた．この精度によりパルスコーディングのｎＣとｔＣが決められる。全６１点のうち、学習データとして１６点を用いて学習し、テストデータとして学習データを含む４５点を用いて汎化能力を確認した。
【０１３６】
ＳＡＭニューロンのパラメータの値は、ａ=０．９，ｐ=０．５に固定した。結合荷重およびしきい値の初期値は[−１.０,１.０]の乱数（ＡＮＳＩ  Ｃのｒａｎｄ関数で生成）とした。実験条件として、パルスコーディング(ｎＣ，ｔＣ)＝（４，２５)、(５，２０)、(１０，１０)の３種類において、中間層ニューロン数ｎ２を１０，２０，３０，４０，５０の５種類、学習係数はη＝０，００１，０．０００１，０．００００１（ι＝０．２）の３種類の間で変更した。結合荷重およびしきい値の乱数の初期値をそれぞれ１０種類について実験した。
【０１３７】
学習データに対するＲＭＳ誤差とテストデータに対するＲＭＳ誤差を図１２に示す。学習に伴い誤差が小さくなっていることがわかる。また，シグモイド型のニューラルネットの学習であればなめらかな曲線を示すのに対し、本実施形態で用いたニューラルネットワーク２では変化がやや激しい状況が見て取れる。出力値が０か１のパルスニューロンの持つ特性であると考えられる。
【０１３８】
図１３は、各ハイパーパラメタにおける学習誤差と汎化誤差をまとめたものである。これは，学習回数５０００回のうち，学習データに対するＲＭＳ誤差（学習誤差）とテストデータに対するＲＭＳ誤差（汎化誤差）が最も小さくなった時の値を，結合荷重およびしきい値の初期値１０種類について平均したものである。
【０１３９】
図１３より、中間層ユニット数を増やすほど誤差が小さくなることがわかる。これは機械学習の持つ一般的な傾向である。さらに、パルスコーディングとしてはｔＣを増やすよりｎＣを増やしていく方が、誤差が小さくできることがわかる。但し、あまりｎＣを多くするとニューロン数が必要になるので、その分結線数も増えて、回路規模がデジタルニューロンモデルと変わらなくなり、パルスニューラルネットを利用する恩恵が少なくなる。
【０１４０】
図１４は、連続値関数近似の学習の様子の一例として、ｎ２＝３０，ｎＣ＝５，ｔＣ＝２０の場合の学習前と学習４２００回目の関数近似の結果である。学習前はランダムな値を示す（図１４（ａ））のに対して，学習４２００回の時点（図１４（ｂ））では教師データに近い値に近似できていることがわかる。また、図１４（ａ）からは、学習前のランダムな値であっても、学習データに対する出力値に沿ってテストデータに対する出力値が出ていることがわかる。これは、コーディングの連続性によって汎化能力を獲得したことを意味しており、本信号変換装置で採用した入力パルス信号Ｐｉｎのコーディング及び出力パルス信号Ｐｏｕｔからの値の同定方法が適切であることがわかる。
【０１４１】
以下、ＦＰＧＡ実装のためのＨＤＬ設計についての実験結果について説明する。この実験では、提案する階層型ＳＡＭニューラルネットを、提案手法でデジタル回路化が可能であることを、ＳｙｓｔｅｍＶｅｒｉｌｏｇを用いて設計を行い、機能シミュレーションを用いて学習能力と汎化能力について確認した。階層型ＳＡＭニューラルネットの動作に最低限必要な要素のみを実装した。タスクは上述した３次の連続値関数近似と同一である。
【０１４２】
また今回、ハードウェア化に際して学習の(２３)式、(２４)式と(３０)式についてｇ′(ｕ(ｔ))＝１．０とする簡略化を行っている。ｇ′(ｕ(ｔ))は活性化関数（ステップ関数）の微分である。通常、この項はデジタル回路化に際しては、図１５に示す形の関数が用いられており、ｇ′(ｕ(ｔ))はすべてのｕ(ｔ)において正の数である。学習は勾配法を原理としているので、ｇ′(ｕ(ｔ))＝１としても学習の速さや前段のニューロンの役割分担学習には影響があるが、∂Ｅ／∂Ｗｍｎの符号は変わらず、結合荷重の増減の方向には影響がない。数値の表現は１４ｂｉｔの符号付きの固定小数点とし、１より大きな整数部（符号ビット含む）は４ｂｉｔ、１より小さな小数部は１０ｂｉｔとした。ネットワークの構造は５：５：５（入力：中間：出力)であり、ｎＣ＝５、ｔＣ＝２０とした。
【０１４３】
ＳＡＭニューロンのパラメータの値はａ＝０．５、ｐ＝０．５に固定した。結合荷重Ｗ  の初期値は[−１.０，１.０]の乱数を設定した。学習係数η＝０．００１５６２５(２−６)とした．ａ，ηは、ａの乗算、ηの乗算にシフト演算が利用できる値（０．５，０．２５．０．０６２５，・・・等）に設定している。また今回は、便宜上、全てのθを０として設計を行った。
【０１４４】
全体システムは３つのモジュールからなる。３つのモジュールは、トップレベルエンティティである階層型ＳＡＭネットワーク（ＳＡＭ  ｍｕｌｔｉｌａｙｅｒ）、数値定義などの共通パッケージ（ＳＡＭ  ｐａｃｋ）、制御部であるステートマシン（ＳＡＭ  ｓｔａｔｅｍａｋｅ）である。本手法は、中間層の教師信号を計算させる学習方法なので、１つのニューロンをモジュールとした階層設計とすると接続ピン数が膨大となるため、１モジュール内に主要部である階層型ＳＡＭネットワークを平坦に実現する方式とした。
【０１４５】
図１６は、ＳＡＭニューロンモデルの部分の設計概念図（２入力の場合）である。パルス駆動なので、実行と学習の積和演算に乗算器を用いずセレクタで実現できる。ａの乗算はシフト演算を用いた。必要なレジスタは、Ｘ，Ｗ，θ，ａＶ，Ｈ，ａＨの値を保持する６種類である。制御部として設定した状態は、Ｓ０，Ｇ０，Ｇ１，Ｇ２，Ｌ０，Ｌ１，ＴＮＥＸＴ０，ＴＮＥＸＴ１，ＴＮＥＸＴ２の９状態である。Ｓ０は初期状態、Ｇ０〜Ｇ２は実行過程の状態、Ｌ０，Ｌ１は学習過程の状態、ＴＮＥＸＴ０〜ＴＮＸＴＥ２は次の時刻へ遷移するための状態である。クロックが入力されると、初期状態Ｓ０から始まり、Ｇ０→Ｇ１→Ｇ２→Ｌ０→Ｌ１→ＴＮＥＸＴ０→ＴＮＥＸＴ１→ＴＮＥＸＴ２→Ｇ０・・・というように、学習と実行と次の状態を繰り返して実行と学習を繰り返す。結合荷重のレジスタに変化がなくなったら学習が終了とした。１クロックで１状態を表現できたので、わずか８クロックで１パルスを処理することになる。
【０１４６】
設計に用いたツールはＡｌｔｅｒａ社のＱｕａｒｔｕｓ２  Ｗｅｂ  Ｅｄｉｔｉｏｎ  Ｖ１３.１である。想定したＦＰＧＡはＡｌｔｅｒａ社のＣｙｃｌｏｎｅＩＩＩ（ＥＰ３Ｃ１６Ｆ４８４Ｃ６Ｎ）であり、１５４０８個の論理セル（ＬＥ）を有する。論理合成結果は、３０３５論理セル（ＬＥｓ）であった。
【０１４７】
以上説明した設計の論理合成結果を、Ａｌｔｅｒａ社のＭｏｄｅｌＳｉｍ  Ｓｔａｒｔｅｒ  Ｅｄｉｔｉｏｎの機能シミュレーション（Ｆｕｎｃｔｉｏｎａｌ  Ｓｉｍｕｌａｔｉｏｎ）を用いて検証を行った。タスクは上述した３次関数の近似と全く同じである。
【０１４８】
図１７は、シミュレーション結果を一部抜粋した図である。ｌｌは学習回数、ｐｐは学習データのパターン番号、ｔｔは学習の時刻、ｓｓは状態、ｘ０は入力ユニットの値、ｘ１は中間ユニットの値、ｘ２は出力ユニットの値、ｔ２は出力ユニットへの教師信号の値、ｃｎｔ＿ｘ２は出力ユニットの累積カウンタ、ｃｎｔ＿ｔ２は教師信号の累積カウンタ、ｃｎｔ＿ｔ２は中間ユニットへの教師信号の累積カウンタを表す。学習回数ｌｌが２０回目で、１６個の各学習データ（パターンｐｐ）に対して出力値ｘ２のｔ＝ｔＣ＋１〜ｔＮでの累積カウンタｃｎｔ＿ｘ２の値が教師信号ｔ２のｔ＝ｔＣ＋１〜ｔＮでの累積カウンタｃｎｔ＿ｔ２の値とほぼ一致していることがわかる。図１８は、このシミュレーション結果をグラフに表したものである。学習データに対して出力値が教師データとほぼ近い値を示しており、３次関数の近似が高い精度で実現できていることがわかる。
【０１４９】
なお、本発明は上述した実施形態に限られず、上述した実施形態の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、公知技術並びに上述した実施形態の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、等も含まれる。また，本発明の技術的範囲は上述した実施形態に限定されず，特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【符号の説明】
【０１５０】
１…エンコーダ、２…ニューラルネットワーク、３…デコーダ、２１…入力層、２１１…入力ユニット、２１２…入力ユニット、２３…出力層、１００…信号変換装置、Ｕｉ…内部電位、Ｕｊ…内部電位、ｔＣ…１周期
【図１】
0006731596.tif 000031
【図２】
0006731596.tif 000032
【図３】
0006731596.tif 000033
【図４】
0006731596.tif 000034
【図５】
0006731596.tif 000035
【図６】
0006731596.tif 000036
【図７】
0006731596.tif 000037
【図８】
0006731596.tif 000038
【図９】
0006731596.tif 000039
【図１０】
0006731596.tif 000040
【図１１】
0006731596.tif 000041
【図１２】
0006731596.tif 000042
【図１３】
0006731596.tif 000043
【図１４】
0006731596.tif 000044
【図１５】
0006731596.tif 000045
【図１６】
0006731596.tif 000046
【図１７】
0006731596.tif 000047
【図１８】
0006731596.tif 000048