(57)【要約】【課題】高い精度を維持しつつ装置全体での消費電力を低減することができるニューラルネットワーク装置を提供する。【解決手段】複数の重み付き入力に係る加算処理を行う加算器及びデジタルアナログ変換処理を行うデジタルアナログ変換器と、加算器及びデジタルアナログ変換器により得られる複数の重み付き入力をすべて加算した加算値を示すアナログ信号を振幅に応じたパルス信号に変換して出力するデルタシグマアナログデジタル変換器とを、それぞれ有する複数のニューロン部と、一のニューロン部が出力したパルス信号に重み値を乗算して他のニューロン部に出力する複数の演算器と、出力するクロック信号の周波数を変更可能であり、制御部からの制御に応じてニューロン部及び演算器にクロック信号を供給する発振器とを有する。【選択図】図１
2018005297.tif 000002
【特許請求の範囲】
【請求項１】
複数の重み付き入力に係る加算処理を行う加算器と、前記複数の重み付き入力に係るデジタルアナログ変換処理を行うデジタルアナログ変換器と、前記加算器及び前記デジタルアナログ変換器により得られる前記複数の重み付き入力をすべて加算した加算値を示すアナログ信号を当該アナログ信号の振幅に応じたパルス信号に変換して出力するデルタシグマアナログデジタル変換器とを、それぞれ有する複数のニューロン部と、
前記複数のニューロン部の内の一の前記ニューロン部が出力した前記パルス信号に重み値を乗算して前記重み付き入力として前記一のニューロン部とは異なる前記複数のニューロン部の内の他の前記ニューロン部に出力する複数の演算器と、
出力するクロック信号の周波数を変更可能であり、前記ニューロン部及び前記演算器にクロック信号を供給する発振器と、
前記発振器が出力するクロック信号の周波数を制御する制御部とを有することを特徴とするニューラルネットワーク装置。
【請求項２】
前記複数のニューロン部の内の第ｉ層（ｉは任意の自然数）のニューロン部と前記第ｉ層の次の第（ｉ＋１）層のニューロン部とが前記第ｉ層の演算器を介して接続されることを特徴とする請求項１記載のニューラルネットワーク装置。
【請求項３】
層毎に前記発振器を有することを特徴とする請求項２記載のニューラルネットワーク装置。
【請求項４】
前記一のニューロン部と前記他のニューロン部とは互いに双方向に前記重み付き入力を出力するよう接続されることを特徴とする請求項１記載のニューラルネットワーク装置。
【請求項５】
前記制御部は、前記ニューロン部及び前記演算器による所定の回数の学習を反復させた後の正解率に応じて、前記発振器が出力するクロック信号の周波数を制御することを特徴とする請求項２又は３記載のニューラルネットワーク装置。
【請求項６】
前記制御部は、前記ニューロン部及び前記演算器により所定の回数の学習を反復させた後に、前記発振器が出力するクロック信号の周波数を増加することを特徴とする請求項２又は３記載のニューラルネットワーク装置。
【請求項７】
前記制御部は、温度パラメータに応じて、前記発振器が出力するクロック信号の周波数を制御することを特徴とする請求項４記載のニューラルネットワーク装置。
【請求項８】
前記加算器は、前記複数の重み付き入力のすべてを加算するデジタル加算器であり、
前記デジタルアナログ変換器は、前記デジタル加算器の出力をデジタルアナログ変換処理し前記デルタシグマアナログデジタル変換器に出力することを特徴とする請求項１〜７の何れかに記載のニューラルネットワーク装置。
【請求項９】
前記デジタルアナログ変換器は、前記複数の重み付き入力のそれぞれをデジタルアナログ変換処理し、
前記加算器は、前記デジタルアナログ変換器が出力するアナログ信号のすべてを加算して前記デルタシグマアナログデジタル変換器に出力するアナログ加算器であることを特徴とする請求項１〜７の何れかに記載のニューラルネットワーク装置。
【請求項１０】
複数のニューロン部のそれぞれが、複数の重み付き入力に係る加算処理を行うとともに、前記複数の重み付き入力に係るデジタルアナログ変換処理を行い、前記複数の重み付き入力をすべて加算した加算値を示すアナログ信号をデルタシグマアナログデジタル変換器により当該アナログ信号の振幅に応じたパルス信号に変換する工程と、
前記複数のニューロン部の内の一の前記ニューロン部が出力した前記パルス信号に重み値を乗算して前記重み付き入力として前記一のニューロン部とは異なる前記複数のニューロン部の内の他の前記ニューロン部に出力する工程と、
出力するクロック信号の周波数を変更可能な発振器が前記ニューロン部及び前記演算器に供給するクロック信号の周波数を、前記ニューロン部に要求される精度に応じて制御する工程とを有することを特徴とするニューラルネットワーク装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワーク装置及びニューラルネットワーク装置の制御方法に関する。
【背景技術】
【０００２】
生物の脳は、多数のニューロン（神経細胞）が存在し、各ニューロンは他の多数のニューロンからの信号入力し、また他の多数のニューロンへ信号を出力するような動きを行う。このような脳の仕組みをコンピュータで実現しようとしたものがニューラルネットワークであり、生物の神経細胞ネットワークの挙動を模倣する工学モデルである。ニューラルネットワークには様々なものがあり、例えば物体認識によく用いられる階層型ニューラルネットワークや、最適化問題や画像復元に用いられる無向グラフ（双方向グラフ）型ニューラルネットワークがある。
【０００３】
階層型ニューラルネットワークの一例として、入力層と出力層との２層からなるパーセプロトンを図２１（Ａ）に示す。出力層は、重みｗで重み付けされた入力層からの信号ｘを足し合わせた値と自身が持つしきい値（バイアス）θとから算出された値を出力関数ｆ（）の入力変数とし結果を出力する。パーセプロトンでは出力関数はステップ関数であり、例えば入力変数が０以上であれば１を出力し、０未満であれば０を出力する。このパーセプトロンを複数段重ねた多層パーセプトロンを図２１（Ｂ）に示す。多層パーセプトロンは、入力層及び出力層の他に１以上の隠れ層（中間層）を有する。
【０００４】
図２２に無向グラフ型ニューラルネットワークの一例を示す。無向グラフ型ニューラルネットワークは、接続されているノードが互いに影響しあうニューラルネットワークである。無向グラフ型ニューラルネットワークにおいて、各ノードは入出力値ｘとして値１又は−１を持つとともにバイアスｂを持ち、各ノード間には重みｗを持つ。なお、接続された一方のノードから他方のノードへの重みｗと他方のノードから一方のノードへの重みｗとは等しく、例えば第１のノードから第２のノードへの重みｗ12と第２のノードから第１のノードへの重みｗ21とは同一である。
【０００５】
この無向グラフ型ニューラルネットワークのエネルギーＥ（ｘ）を図２２に示す式のように定義すると、重みｗ及びバイアスｂを与えたときに、値ｘを変化させながらエネルギーＥ（ｘ）が極小値になるように動作する。必ずエネルギーＥ（ｘ）が減少する方向に遷移する、つまり確定的な状態変移を行うニューラルネットワークがホップフィールドネットワーク（ＨＮＮ）であり、エネルギーＥ（ｘ）が増加する方向にも遷移する、つまり確率的な状態変移を行うニューラルネットワークがボルツマンマシン（ＢＭ）である。
【０００６】
ニューラルネットワークをソフトウェアとして実装すると、大量の並列演算が必要となり処理が遅くなる。そこで、ニューラルネットワークをハードウェアである回路により実装することで、ニューラルネットワークの処理速度を向上させる技術が提案されている（例えば、特許文献１や非特許文献１、２参照）。
【０００７】
ニューラルネットワークを回路で実装する例について、図２３を参照して説明する。図２３（Ａ）に示すパーセプトロンにおいて、ニューロン素子（人工ニューロン）は、重みｗで重み付けされた入力ｘの総和を求めて素子のバイアスθと比較し、重み付きの入力の総和がバイアスθ以上であれば出力ｙとして１を出力し、バイアスθ未満であれば出力ｙとして０を出力する。したがって、ニューロン素子は、加算器と判定器（比較器）とを組み合わせることで実現できる。
【０００８】
図２３（Ｂ）及び図２３（Ｃ）は、ニューラルネットワークの回路実装例を示す図である。図２３（Ｂ）には、重み付き入力の総和をデジタル加算器により求める回路例を示しており、２３１０はニューロン部であり、２３２０は重みを付与するデジタル演算器である。ニューロン部２３１０は、デジタル加算器２３１１、デジタルアナログ変換器（ＤＡＣ：Digital Analog Converter）２３１２、及びデルタシグマ−アナログデジタル変換器（ΔΣ−ＡＤＣ：delta-sigma Analog Digital Converter）２３１３を有する。
【０００９】
デジタル加算器２３１１は、ニューロン部２３１０に入力される重み付き入力の信号ｗ1ｘ1、ｗ2ｘ2、ｗ3ｘ3、…、ｗnｘnを加算して総和を求める。ＤＡ変換器２３１２は、デジタル加算器２３１１が出力した重み付き入力の総和をデジタルアナログ変換したアナログ信号を出力する。ΔΣ−ＡＤ変換器２３１３は、ＤＡ変換器２３１２が出力したアナログ信号をアナログ信号の振幅に応じたデジタル信号としてパルス信号にアナログデジタル変換して出力する。デジタル演算器２３２０は、ニューロン部２３１０（ΔΣ−ＡＤ変換器２３１３）が出力したパルス信号ｙに重みｗを乗算して重みを付与した信号ｗｙを出力する。
【００１０】
図２３（Ｃ）には、重み付き入力の総和をアナログ加算器により求める回路例を示しており、２３３０はニューロン部であり、２３４０は重みを付与するデジタル演算器である。ニューロン部２３３０は、ＤＡ変換器（ＤＡＣ）２３３１、アナログ加算器２３３２、ΔΣ−ＡＤ変換器（ΔΣ−ＡＤＣ）２３３３を有する。
【００１１】
ＤＡ変換器２３３１は、ニューロン部２３３０に入力される重み付き入力の信号ｗ1ｘ1、ｗ2ｘ2、ｗ3ｘ3、…、ｗnｘnをそれぞれデジタルアナログ変換したアナログ信号を出力する。アナログ加算器２３３２は、ＤＡ変換器２３３１がそれぞれ出力したアナログ信号を加算して総和を求める。ΔΣ−ＡＤ変換器２３３３は、アナログ加算器２３３２が出力したアナログ信号をアナログ信号の振幅に応じたデジタル信号としてパルス信号にアナログデジタル変換して出力する。デジタル演算器２３４０は、ニューロン部２３３０（ΔΣ−ＡＤ変換器２３３３）が出力したパルス信号ｙに重みｗを乗算して重みを付与した信号ｗｙを出力する。
【００１２】
図２３（Ｂ）及び図２３（Ｃ）に示した回路構成のように判定器としてΔΣ−ＡＤ変換器を用いると、ＡＤ変換時に生じる量子化ノイズは、ノイズシェーピングにより低周波数側では小さく、高周波側では大きくなる。このようにΔΣ−ＡＤ変換器はハイパス特性を有するため、入力信号の周波数に対してサンプリング周波数を高くすることで、ノイズシェーピングにより入力信号の周波数帯に存在する量子化ノイズを減少させ、ＳＮＲ（Signal to Noise Ratio、信号雑音比）を高めて精度を向上させることが可能となる。
【００１３】
例えば、ΔΣ−ＡＤ変換器における入力信号の周波数帯域をＢＷ、サンプリング周波数をｆｓとして、オーバーサンプリングレートＯＳＲを（ｆｓ／２ＢＷ）と定義する。ΔΣ−ＡＤ変換器の分解能の有効ビット数をＮとして、１次のΔΣ−ＡＤ変換器における入力信号の帯域幅でのＳＮＲ（信号雑音比）は、およそ（６．０２Ｎ＋１．７６−５．１７＋３０ｌｏｇ（ＯＳＲ））で表され、２次のΔΣ−ＡＤ変換器における入力信号の帯域幅でのＳＮＲ（信号雑音比）は、およそ（６．０２Ｎ＋１．７６−１２．９＋５０ｌｏｇ（ＯＳＲ））で表される。したがって、オーバーサンプリングレートＯＳＲが１０倍、すなわちサンプリング周波数ｆｓが１０倍になると、１次のΔΣ−ＡＤ変換器ではＳＮＲが約３０ｄＢ増加し、２次のΔΣ−ＡＤ変換器ではＳＮＲが約５０ｄＢ増加する。このように、サンプリング周波数を上げるほど、入力信号の周波数帯に存在する量子化ノイズを減少させることが可能となる。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開平２−２７４９３号公報
【非特許文献】
【００１５】
【非特許文献１】B. E. Boser et al., "An Analog Neural Network Processor with Programmable Topology," IEEE J. Solid-State Circuits, vol. 26, no. 12, pp. 2017-2025, 1991.
【非特許文献２】C. R. Schneider and H. C. Card, "Analog CMOS Deterministic Boltzmann Circuits," IEEE J. Solid-State Circuits, vol. 28, no. 8, pp. 907-914, 1993.
【発明の概要】
【発明が解決しようとする課題】
【００１６】
図２４は、図２３（Ｂ）に示した回路を用いた従来のニューラルネットワーク装置の構成例を示す図である。図２４に示すニューラルネットワーク装置は、デジタル加算器２３１１、ＤＡ変換器２３１２、及びΔΣ−ＡＤ変換器２３１３を有する複数のニューロン部２３１０がデジタル演算器２３２０を介して接続され、階層型ニューラルネットワークを構成している。例えば、（ｎ−１）層目のニューロン部２３１０−（ｎ−１）とｎ層目のニューロン部２３１０−ｎとがデジタル演算器２３２０−（ｎ−１）を介して接続され、（ｎ−１）層目のニューロン部２３１０−（ｎ−１）の出力ｙn-1がデジタル演算器２３２０−（ｎ−１）で重み付けされてｎ層目のニューロン部２３１０−ｎに入力される。また、ニューロン部２３１０及びデジタル演算器２３２０の各々には、動作クロックとして発振器２３５０が出力する固定周波数のクロック信号ＣＫが供給される。
【００１７】
従来のニューラルネットワーク装置においては、ニューロン部及びデジタル演算器に動作クロックとして固定周波数のクロック信号を供給し、ニューロン部やデジタル演算器等の各回路は、層や動作時間にかかわらず、すべて同じ一定の周波数で動作する。これは無向グラフ型ニューラルネットワークのニューラルネットワーク装置でも同様である。そのため、ニューラルネットワーク装置の動作周波数は、最も高い周波数で動作する回路により制限され、高い精度（ＳＮＲ）が要求されるような計算量の多い層の動作周波数ですべての回路が動作し、結果として消費電力が大きくなってしまう。１つの側面では、本発明の目的は、高い精度を維持しつつ装置全体での消費電力を低減することができるニューラルネットワーク装置を提供することにある。
【課題を解決するための手段】
【００１８】
ニューラルネットワーク装置の一態様は、複数の重み付き入力に係る加算処理を行う加算器及びデジタルアナログ変換処理を行うデジタルアナログ変換器と、加算器及びデジタルアナログ変換器により得られる複数の重み付き入力をすべて加算した加算値を示すアナログ信号を振幅に応じたパルス信号に変換して出力するデルタシグマアナログデジタル変換器とを、それぞれ有する複数のニューロン部と、一のニューロン部が出力したパルス信号に重み値を乗算して他のニューロン部に出力する複数の演算器と、出力するクロック信号の周波数を変更可能であり、制御部からの制御に応じてニューロン部及び演算器にクロック信号を供給する発振器とを有する。
【発明の効果】
【００１９】
発明の一態様においては、要求される精度に応じて動作周波数を制御することができ、高い精度を維持しつつ装置全体での消費電力を低減することができる。
【図面の簡単な説明】
【００２０】
【図１】第１の実施形態におけるニューラルネットワーク装置の構成例を示す図である。
【図２】第１の実施形態におけるΔΣ−ＡＤ変換器の構成例を示す図である。
【図３】第１の実施形態におけるアナログ積分器の構成例を示す図である。
【図４】第１の実施形態における比較器の構成例を示す図である。
【図５】第１の実施形態における可変周波数発振器の構成例を示す図である。
【図６】第１の実施形態におけるニューラルネットワーク装置の構成例を示す図である。
【図７】第１の実施形態における第１の制御例を説明する図である。
【図８】学習における反復回数と正解率との関係の一例を示す図である。
【図９】第１の実施形態における第２の制御例を説明する図である。
【図１０】第１の実施形態における第２の制御例を示すフローチャートである。
【図１１】第１の実施形態における第３の制御例を説明する図である。
【図１２】第１の実施形態における第３の制御例を示すフローチャートである。
【図１３】第１の実施形態におけるニューラルネットワーク装置の構成例を示す図である。
【図１４】第２の実施形態におけるニューラルネットワーク装置の構成例を示す図である。
【図１５】第２の実施形態における制御例を示すフローチャートである。
【図１６】無向グラフ型ニューラルネットワークのエネルギーの例を示す図である。
【図１７】温度パラメータについて説明する図である。
【図１８】温度パラメータについて説明する図である。
【図１９】シグモイド関数の一例を示す図である。
【図２０】第２の実施形態における制御例を説明する図である。
【図２１】階層型ニューラルネットワークの一例を示す図である。
【図２２】無向グラフ型ニューラルネットワークの一例を示す図である。
【図２３】ニューラルネットワークの回路実装例を説明する図である。
【図２４】従来のニューラルネットワーク装置の構成例を示す図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態を図面に基づいて説明する。
【００２２】
（第１の実施形態）
本発明の第１の実施形態について説明する。図１は、第１の実施形態におけるニューラルネットワーク装置の構成例を示す図である。図１に示すニューラルネットワーク装置は、複数のニューロン部１０Ａ、複数のデジタル演算器２０、複数の可変周波数発振器３０、及び制御部４０を有する。複数のニューロン部１０Ａと複数のデジタル演算器２０とが階層型ニューラルネットワークを構成するように接続されている。なお、図１においてはニューラルネットワーク装置における（ｎ−１）層目及びｎ層目に係る構成を図示しているが、図示していない他の層の複数のニューロン部１０Ａもデジタル演算器２０を介して次の層のニューロン部１０Ａと接続されており、多層構造となっている。
【００２３】
ニューロン部１０Ａの各々は、デジタル加算器１１、デジタルアナログ変換器（ＤＡＣ）１２、及びデルタシグマ−アナログデジタル変換器（ΔΣ−ＡＤＣ）１３を有する。デジタル加算器１１は、ニューロン部１０Ａに入力される重み付きの入力信号をすべて加算して総和を求める。ＤＡ変換器１２は、デジタル加算器１１が出力した重み付き入力の総和値をデジタルアナログ変換し、総和値に応じたアナログ信号を出力する。ΔΣ−ＡＤ変換器１３は、ＤＡ変換器１２が出力したアナログ信号をアナログ信号の振幅に応じたデジタル信号としてパルス信号ｙにアナログデジタル変換して出力する。
【００２４】
図２は、ΔΣ−ＡＤ変換器１３の構成例を示す図である。図２には、１次のΔΣ−ＡＤ変換器を一例として示している。図２に示すΔΣ−ＡＤ変換器は、加算器（減算器）２１０、積分器２２０、比較器（量子化器）２３０、遅延回路２４０、及びデジタルアナログ変換器（ＤＡＣ）２５０を有する。加算器（減算器）２１０は、ΔΣ−ＡＤ変換器に入力されるアナログ信号ｘからＤＡ変換器２５０の出力を減算し、結果を信号ｕとして出力する。
【００２５】
積分器２２０は、加算器（減算器）２１０が出力した信号ｕと遅延回路２２２の出力とを加算する加算器２２１と、加算器２２１の出力を遅延させて出力する遅延回路２２２とを有する。積分器２２０は、加算器（減算器）２１０が出力した信号ｕを加算器２２１及び遅延回路２２２により積分し、結果を信号ｗとして出力する。積分器２２０は、例えば、図３に示すようにオペアンプ３０１、抵抗３０２、及び容量３０３を有し、入力信号ＶＩＮを積分して出力信号ＶＯＵＴとして出力するアナログ積分器である。
【００２６】
比較器（量子化器）２３０は、積分器２２０が出力した信号ｗに対する量子化処理を行い、結果を１ビットのデジタル信号ｙとして出力する。ＮＱは量子化ノイズ（量子化雑音）を示している。比較器２３０は、例えば図４に回路構成を示すような比較器である。図４に示す比較器２３０は、クロック信号ＣＬＫに同期して動作し、クロック信号ＣＬＫに応じてリセット動作と比較動作とを交互に行う。図４に示す比較器２３０は、クロック信号ＣＬＫがローレベルのとき、スイッチ４１１がオフ（開状態、非導通状態）になるとともに、クロック信号ＣＬＫの反転信号ＸＣＬＫで制御されるスイッチ４０７〜４１０がオン（閉状態、導通状態）になってリセット動作を行う。このリセット動作により、出力ＯＵＴＰ、ＯＵＴＮ及びノードＤＰ、ＤＮの電位がＶＤＤにリセットされる。
【００２７】
また、図４に示す比較器２３０は、クロック信号ＣＬＫがハイレベルのとき、スイッチ４１１がオンになるとともに、スイッチ４０７〜４１０がオフになって、比較動作を行う。この比較動作においては、アナログ入力ＩＮＰ、ＩＮＮに応じた電流がトランジスタ４０１、４０２によって流れて、出力ＯＵＴＰ、ＯＵＴＮ及びノードＤＰ、ＤＮの電位が下がり始める。そして、出力ＯＵＴＰ、ＯＵＴＮのうち先に電位が下がりきった一方の出力がローレベルになり、トランジスタ４０３〜４０６により構成されるラッチ回路によりラッチがかかって他方の出力がハイレベルになる。
【００２８】
遅延回路２４０は、比較器２３０が出力した信号（１ビットのデジタル信号ｙ）を遅延させて出力する。ＤＡ変換器２５０は、遅延回路２４０により遅延されたデジタル信号をデジタルアナログ変換して出力する。また、ＤＡ変換器２５０は、比較器２３０のゲインの逆数分のゲインを出力するアナログ信号に与える。なお、図２〜図４に示したΔΣ−ＡＤ変換器の構成及びその内部構成は一例であり、これに限定されるものではない。例えば、ΔΣ−ＡＤ変換器１３として１次のΔΣ−ＡＤ変換器を例示したが、２次以上のΔΣ−ＡＤ変換器であってもよい。
【００２９】
図１に戻り、デジタル演算器２０は、パルス信号ｙによって入力されるデジタル信号に重み値ｗを乗算して重み付きの信号を出力する。例えば、（ｎ−１）層目のニューロン部１０Ａ−（ｎ−１）とｎ層目のニューロン部１０Ａ−ｎとの間に（ｎ−１）層目のデジタル演算器２０−（ｎ−１）が配置され、ニューロン部１０Ａ−（ｎ−１）の出力ｙn-1が、デジタル演算器２０−（ｎ−１）により重み値ｗn-1で重み付けされて、ニューロン部１０Ａ−ｎに供給される。他の層のニューロン部１０Ａについても次の層のニューロン部１０Ａとの間にデジタル演算器２０が配置され、ニューロン部１０Ａ間で伝送される信号に対する重み付けを行う。
【００３０】
可変周波数発振器３０は、出力するクロック信号ＣＫの周波数が変更可能な発振器であり、制御部４０から出力される制御信号ＣＴＬに応じた周波数のクロック信号ＣＫを出力する。制御部４０は、各機能部に係る制御を行い、ニューラルネットワーク装置において実行される動作を制御する。図５（Ａ）は、可変周波数発振器３０の構成例を示す図である。図５（Ａ）に示す可変周波数発振器３０は、入力される制御信号ＣＴＬを制御電圧ＶＣに変換するＤＡ変換器（ＤＡＣ）５０１、及び制御電圧ＶＣに応じた周波数のクロック信号ＣＫを発振する電圧制御発振器（ＶＣＯ）５０２を有する。
【００３１】
ＤＡ変換器５０１は、例えば図５（Ｂ）に示すように抵抗ラダー回路５１１及びスイッチ回路５１２を有する。抵抗ラダー回路５１１は、所定の抵抗値を有する複数の抵抗が直列に接続され、参照電圧ＶＲＥＦを抵抗分圧する。スイッチ回路５１２は、制御信号ＣＴＬにより制御される複数のスイッチを有し、複数のスイッチは、一端が抵抗ラダー回路５１１における互いに異なる抵抗の接続点に接続され、他端が制御電圧ＶＣの出力端に共通接続されている。スイッチ回路５１２が有する複数のスイッチを制御信号ＣＴＬに従って選択的にオンすることで、制御信号ＣＴＬに応じた制御電圧ＶＣが出力される。
【００３２】
電圧制御発振器５０２は、例えば図５（Ｃ）に示すように奇数個のインバータ５２１が接続されたリングオシレータである。制御電圧ＶＣに基づく電圧ＶＣＡ、ＶＣＢにより電流源５２２、５２３を制御し、インバータ５２１に流れる電流量を調整することでクロック信号ＣＫの周波数を制御する。例えば、インバータ５２１に流れる電流量を大きくすると、インバータ５２１における信号の切り替わりが速くなり、クロック信号ＣＫの周波数が高くなる。反対に、インバータ５２１に流れる電流量を小さくすると、インバータ５２１における信号の切り替わりが遅くなり、クロック信号ＣＫの周波数が低くなる。なお、図５（Ａ）〜図５（Ｃ）に示した可変周波数発振器３０の構成は一例であり、これに限定されるものではない。
【００３３】
図１に示したニューラルネットワーク装置は、可変周波数発振器３０を各層毎に有している。ここで、ニューロン部１０Ａは、デジタル加算器１１、ＤＡ変換器１２、及びΔΣ−ＡＤ変換器１３で構成されるが、ΔΣ−ＡＤ変換器１３が出力したパルス信号に応じて、デジタル演算器２０、デジタル加算器１１、及びＤＡ変換器１２の動作が行われる。そのため、可変周波数発振器３０は、対応する層に対して１つ前の層のΔΣ−ＡＤ変換器１３及びデジタル演算器２０と、対応する層のデジタル加算器１１及びＤＡ変換器１２とにクロック信号ＣＫを供給する。
【００３４】
例えば、（ｎ−１）層目の可変周波数発振器３０−（ｎ−１）は、（ｎ−２）層目のΔΣ−ＡＤ変換器及びデジタル演算器（図示せず）と、（ｎ−１）層目のデジタル加算器１１−（ｎ−１）及びＤＡ変換器１２−（ｎ−１）とに、（ｎ−１）層目に係る制御信号ＣＴＬn-1に応じた周波数を有するクロック信号ＣＫn-1を供給する。また、ｎ層目の可変周波数発振器３０−ｎは、（ｎ−１）層目のΔΣ−ＡＤ変換器１３−（ｎ−１）及びデジタル演算器２０−（ｎ−１）と、ｎ層目のデジタル加算器１１−ｎ及びＤＡ変換器１２−ｎとに、ｎ層目に係る制御信号ＣＴＬnに応じた周波数を有するクロック信号ＣＫnを供給する。また、ｎ層目のΔΣ−ＡＤ変換器１３−ｎは、（ｎ＋１）層目の可変周波数発振器３０−（ｎ＋１）から（ｎ＋１）層目に係る制御信号ＣＴＬn+1に応じた周波数を有するクロック信号ＣＫn+1の供給を受ける。
【００３５】
このようにニューラルネットワーク装置における各層毎に、出力するクロック信号ＣＫの周波数が変更可能な可変周波数発振器３０を配置することで、層毎に動作周波数を設定することができる。これにより、高い精度（ＳＮＲ）が要求される層は高い周波数で動作させてノイズシェーピングにより入力信号の周波数帯に存在する量子化ノイズを減少させ、その他の層は低い周波数で動作させ消費電力を抑制することが可能になる。したがって、高い精度を維持しつつニューラルネットワーク装置全体での消費電力を抑制し低減することができる。また、同一の層であっても要求される精度（ＳＮＲ）に応じて動作周波数を制御し、低い精度でも良い期間には低い周波数で動作させて消費電力を抑制し、高い精度が要求される期間には高い周波数で動作させることで、消費電力と精度とのバランスをとることが可能となる。
【００３６】
図６は、第１の実施形態におけるニューラルネットワーク装置の他の構成例を示す図である。図６において、図１に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。前述した図１に示したニューラルネットワーク装置は、デジタル加算器を用いて重み付き入力の総和を求めるのに対して、図６に示すニューラルネットワーク装置は、アナログ加算器を用いて重み付き入力の総和を求める。図６に示すニューラルネットワーク装置は、図１に示したニューラルネットワーク装置とは、ニューロン部１０Ａに対応するニューロン部１０Ｂの構成、及び可変周波数発振器３０からのクロック信号ＣＫが供給される対象が異なり、その他は図１に示したニューラルネットワーク装置と同様である。
【００３７】
ニューロン部１０Ｂの各々は、ＤＡ変換器（ＤＡＣ）１６、アナログ加算器１７、及びΔΣ−ＡＤ変換器（ΔΣ−ＡＤＣ）１３を有する。ＤＡ変換器１６は、ニューロン部１０Ｂに入力される重み付きの入力信号をそれぞれデジタルアナログ変換し、重み付き入力に応じたアナログ信号を出力する。アナログ加算器１７は、ＤＡ変換器１６がそれぞれ出力したアナログ信号を加算して総和を求める。ΔΣ−ＡＤ変換器１３は、アナログ加算器１７が出力したアナログ信号をアナログ信号の振幅に応じたデジタル信号としてパルス信号ｙにアナログデジタル変換して出力する。
【００３８】
また、図１に示したニューラルネットワーク装置と同様に、例えば（ｎ−１）層目のニューロン部１０Ｂ−（ｎ−１）とｎ層目のニューロン部１０Ｂ−ｎとの間に（ｎ−１）層目のデジタル演算器２０−（ｎ−１）が配置され、ニューロン部１０Ｂ−（ｎ−１）の出力ｙn-1が、デジタル演算器２０−（ｎ−１）により重み値ｗn-1で重み付けされて、ニューロン部１０Ｂ−ｎに供給される。他の層のニューロン部１０Ｂについても次の層のニューロン部１０Ｂとの間にデジタル演算器２０が配置され、ニューロン部１０Ｂ間で伝送される信号に対する重み付けを行う。
【００３９】
図６に示したニューラルネットワーク装置においても、出力するクロック信号ＣＫの周波数が変更可能な可変周波数発振器３０を各層毎に有している。ただし、図６に示した構成では、アナログ加算器１７での処理はアナログ信号のみで行われるので、可変周波数発振器３０からのクロック信号ＣＫをアナログ加算器１７には供給しない。つまり、可変周波数発振器３０は、対応する層に対して１つ前の層のΔΣ−ＡＤ変換器１３及びデジタル演算器２０と、対応する層のＤＡ変換器１２とにクロック信号ＣＫを供給する。
【００４０】
例えば、（ｎ−１）層目の可変周波数発振器３０−（ｎ−１）は、（ｎ−２）層目のΔΣ−ＡＤ変換器及びデジタル演算器（図示せず）と、（ｎ−１）層目のＤＡ変換器１６−（ｎ−１）とに、（ｎ−１）層目に係る制御信号ＣＴＬn-1に応じた周波数を有するクロック信号ＣＫn-1を供給する。また、ｎ層目の可変周波数発振器３０−ｎは、（ｎ−１）層目のΔΣ−ＡＤ変換器１３−（ｎ−１）及びデジタル演算器２０−（ｎ−１）と、ｎ層目のＤＡ変換器１６−ｎとに、ｎ層目に係る制御信号ＣＴＬnに応じた周波数を有するクロック信号ＣＫnを供給する。また、ｎ層目のΔΣ−ＡＤ変換器１３−ｎは、（ｎ＋１）層目の可変周波数発振器３０−（ｎ＋１）から（ｎ＋１）層目に係る制御信号ＣＴＬn+1に応じた周波数を有するクロック信号ＣＫn+1の供給を受ける。
【００４１】
このように構成した図６に示すニューラルネットワーク装置においても、層毎に動作周波数を設定することができ、高い精度（ＳＮＲ）が要求される層は高い周波数で動作させてノイズシェーピングにより入力信号の周波数帯に存在する量子化ノイズを減少させ、その他の層は低い周波数で動作させ消費電力を抑制することが可能になる。したがって、高い精度を維持しつつニューラルネットワーク装置全体での消費電力を抑制し低減することができる。また、同一の層であっても要求される精度（ＳＮＲ）に応じて動作周波数を制御し、低い精度でも良い期間には低い周波数で動作させて消費電力を抑制し、高い精度が要求される期間には高い周波数で動作させることで、消費電力と精度とのバランスをとることが可能となる。
【００４２】
なお、前述した構成例では、可変周波数発振器３０を層毎に有するニューラルネットワーク装置を示したが、これに限定されるものではなく、複数の層に対して１つの可変周波数発振器３０からクロック信号ＣＫを供給するようにしても良い。また、例えば図１３に示すようにすべてのニューロン部１０Ａ（１０Ｂ）及びデジタル演算器２０に対して１つの可変周波数発振器３０からクロック信号ＣＫを供給するようにしても良い。このように構成しても常に固定周波数のクロック信号を供給する場合と比較して、要求される精度に応じて供給するクロック信号の周波数を変化させることで消費電力を抑制することが可能である。
【００４３】
次に、第１の実施形態における階層型ニューラルネットワークのニューラルネットワーク装置の制御例について説明する。
・第１の制御例
ニューラルネットワーク装置における層毎に、必要とされる精度（ＳＮＲ）の高さに応じた動作周波数でニューロン部及びデジタル演算器を動作させる第１の制御例について説明する。図７は、第１の実施形態におけるニューラルネットワーク装置の第１の制御例を説明するための図である。図７には、階層型ニューラルネットワークの一種であるＬｅＮｅｔと呼ばれる畳み込みニューラルネットワークに係るニューラルネットワーク装置を示している。ＬｅＮｅｔは、例えば手書き数字認識等に用いられる。図７に示すニューラルネットワーク装置の各層には複数のニューロン部が配置されており、異なる層のニューロン部がデジタル演算器を介して接続されている。
【００４４】
コンボリューション層７０２では、画像の入力データ７０１とフィルターの数値との積和演算を繰り返し、その結果を出力関数を介して次の層に出力する。マックスプーリング層７０３では、演算量を減らすために、コンボリューション層７０２の出力において、あるブロックから高い数値のものを選択する処理を行いデータ数を減少させる。コンボリューション層７０４では、マックスプーリング層７０３の出力データを用いてコンボリューション層７０２と同様の処理を行い、マックスプーリング層７０５では、コンボリューション層７０４の出力に対してマックスプーリング層７０３と同様の処理を行う。
【００４５】
完全結合層７０６では、マックスプーリング層７０５の各ニューロン部の出力値を重み付けしてすべて加算する。レル層７０７では、マックスプーリング層７０５の出力のうち、負の値のものを０に変換する。完全結合層７０８では、レル層７０７の各ニューロン部の出力値を重み付けしてすべて加算する。ソフトマックス層７０９では、最終的な認識を行い、入力データ７０１が何であるかを判定する。前述した各層のうち、コンボリューション層７０２、７０４、及び完全結合層７０６、７０８は、非常に多くの演算と高い精度が要求される。一方、マックスプーリング層７０３、７０５、及びレル層７０７は、精度は低くても良い。ソフトマックス層７０９は、コンボリューション層７０２、７０４、及び完全結合層７０６、７０８ほど高い精度は要求されないが中程度の精度が要求される。
【００４６】
そこで、図７に示すように、３つの可変周波数発振器７１１、７１２、７１３を設け、制御部７２１により可変周波数発振器７１１、７１２、７１３が出力するクロック信号の周波数を制御する。高い精度が要求されるコンボリューション層７０２、７０４、及び完全結合層７０６、７０８に係るニューロン部及びデジタル演算器には、可変周波数発振器７１１により高い周波数Ｆ１のクロック信号ＣＫＨを供給する。また、低い精度で十分なマックスプーリング層７０３、７０５、及びレル層７０７に係るニューロン部及びデジタル演算器には、可変周波数発振器７１２により低い周波数Ｆ３（Ｆ３＜Ｆ１）のクロック信号ＣＫＬを供給する。また、中程度の精度が要求されるソフトマックス層７０９に係るニューロン部及びデジタル演算器には、可変周波数発振器７１３により中程度の周波数Ｆ２（Ｆ３＜Ｆ２＜Ｆ１）のクロック信号ＣＫＭを供給する。
【００４７】
このようにニューラルネットワーク装置における各層毎に適切な周波数のクロック信号を供給することで、適切な動作周波数で各層のニューロン部及びデジタル演算器を動作させることができ、すべて同じ一定の周波数で動作させた場合と比較して消費電力を低減することができる。また、高い精度が要求される層のニューロン部及びデジタル演算器は、高い周波数で動作させることで精度を低下させることなく、高い精度を維持することができる。
【００４８】
・第２の制御例
次に、所定の回数の学習を反復させる毎にテストを行って正解率を検出し、検出結果に応じてニューロン部及びデジタル演算器の動作周波数を切り替え制御する第２の制御例について説明する。階層型ニューラルネットワークにおいて、ある一定の学習率で学習させた場合、所定の回数の学習を反復させる毎にテストを行ったときの正解率は図８に示す正解率８０１のように変化し、学習反復を繰り返していくと正解率が１００％に近づいていく。図８において、縦軸は正解率（％）であり、横軸は反復回数である。
【００４９】
前述したようにして階層型ニューラルネットワークを回路実装したニューラルネットワーク装置では、ＳＮＲが低いと正解率が高くなってきた場合、学習で計算された値がノイズに埋もれてしまい、学習反復を繰り返しても正解率が上昇しないことが考えられる。例えば、図８に示すように、学習反復を繰り返して正解率がＳＮＲによる正解率の限界値８０２に到達すると、それ以降は学習反復を繰り返しても正解率は図８に示す正解率８０３のように上昇しなくなる。
【００５０】
これを解決するには、高い動作周波数で動作させＳＮＲを高めて回路の精度を良くすればよいが、学習の開始時から高い動作周波数で動作させることは消費電力の無駄となる。第２の制御例では、検出された正解率に応じてニューロン部及びデジタル演算器の動作周波数を切り替え、動作周波数を段階的に上昇させるように制御する。詳細には、所定の回数の学習を反復させる毎にテストを行ったときの正解率が前回の正解率より大きくない、すなわち前回の正解率以下である場合、動作周波数を現在の動作周波数よりも高い、次の段階の動作周波数に切り替える。
【００５１】
例えば、図９に一例を示すように、低い動作周波数ｆ１１で学習を開始し、学習反復を繰り返し、反復回数Ｎ１１で正解率が前回の正解率以下となると、正解率９０２がＳＮＲによる正解率の限界値９０１に達したとして、動作周波数９１１を周波数ｆ１１より高い周波数ｆ１２に切り替えて学習反復を繰り返す。その後、同様にして、反復回数Ｎ１２で正解率が前回の正解率以下となると、動作周波数９１１を周波数ｆ１２より高い周波数ｆ１３に切り替え、反復回数Ｎ１３で正解率が前回の正解率以下となると、動作周波数９１１を周波数ｆ１３より高い周波数ｆ１４に切り替えて学習反復を繰り返す。このように制御することで、正解率９０２に応じてＳＮＲによる正解率の限界値９０１を徐々に高くするように動作周波数９１１を制御でき、適切な精度を得つつ消費電力を抑えることができる。
【００５２】
図１０は、第２の制御例における動作を示すフローチャートである。まず、ステップＳ１００１にて、制御部４０は、ニューラルネットワーク装置が有する各ニューロン部１０Ａ（１０Ｂ）及びデジタル演算器２０に対するバイアス値や重み値、学習率を設定する。また、制御部４０は、動作周波数を最低設定値（初期値）に設定し、それに応じた制御信号ＣＴＬを可変周波数発振器３０に出力する。これにより、各ニューロン部１０Ａ（１０Ｂ）及びデジタル演算器２０には、可変周波数発振器３０から最低設定値の周波数を有するクロック信号ＣＫが供給される。
【００５３】
ステップＳ１００２にて、制御部４０は、ニューラルネットワーク装置における学習を開始させ、所定の回数だけ、回路動作を実行させる。そして、所定の回数の回路動作を行わせた後、ステップＳ１００３にて、制御部４０は、テストを行って正解率（Ａ１）を取得する。
【００５４】
次に、ステップＳ１００４にて、制御部４０は、ニューラルネットワーク装置における学習を行い、所定の回数だけ、回路動作を実行させる。そして、所定の回数の回路動作を行わせた後、ステップＳ１００５にて、制御部４０は、テストを行って正解率（Ａ２）を取得する。続いて、ステップＳ１００６にて、制御部４０は、前回取得した正解率である正解率（Ａ１）と今回取得した正解率である正解率（Ａ２）とを比較する。その結果、正解率（Ａ２）が正解率（Ａ１）より大きい、すなわち今回のテストによる正解率が前回のテストによる正解率より大きい場合、ステップＳ１００７にて、制御部４０は、正解率（Ａ２）を正解率（Ａ１）に代入して（正解率（Ａ１）として正解率（Ａ２）で更新して）、ステップＳ１００４に戻り、動作周波数を変えずに学習を行う。
【００５５】
一方、ステップＳ１００６での比較の結果、正解率（Ａ２）が正解率（Ａ１）より大きくない、すなわち今回のテストによる正解率が前回のテストによる正解率以下である場合、ステップＳ１００８にて、制御部４０は、現在の動作周波数が最高設定値であるか否かを判断する。その結果、現在の動作周波数が最高設定値ではない場合、制御部４０は、ステップＳ１００９にて、正解率（Ａ２）を正解率（Ａ１）に代入し（正解率（Ａ１）として正解率（Ａ２）で更新し）、ステップＳ１０１０にて、動作周波数を任意値だけ増加させ（次の段階の動作周波数にし）、ステップＳ１００４に戻り、前回よりも高い動作周波数で（ＳＮＲを上げて）学習を行う。
【００５６】
一方、ステップＳ１００８での判断の結果、現在の動作周波数が最高設定値である場合、ステップＳ１０１１にて、制御部４０は、最終的な処理を実行させるデータ解析処理に係る制御を行い、最終的な結果を得て動作を終了する。なお、前述したステップＳ１００９での処理及びステップＳ１０１０での処理は順不同であり、ステップＳ１０１０での処理をステップＳ１００９での処理より前に行っても良いし、ステップＳ１００９での処理と同時に行っても良い。
【００５７】
・第３の制御例
次に、ニューラルネットワーク装置における学習の反復回数（学習率）に応じてニューロン部及びデジタル演算器の動作周波数を切り替え制御する第２の制御例について説明する。例えば、階層型ニューラルネットワークの一種であるＡｌｅｘＮｅｔでは、所定の回数の学習を反復させる毎に学習率を下げて学習をさらに反復させると正解率がよくなっていく。このような所定の回数の学習を反復させる毎に学習率を下げていくように制御する場合、ＳＮＲが低いと学習率を小さくした場合、学習で計算された値がノイズに埋もれてしまい正常に学習できないことが考えられる。
【００５８】
高い動作周波数で動作させＳＮＲを高めることで前述した不都合は解消できるが、学習率を高く設定する学習の開始時から高い動作周波数で動作させることは消費電力の無駄となる。第３の制御例では、所定の回数の学習を反復させる毎に学習率を下げていくように制御するニューラルネットワーク装置において、学習の反復回数（学習率）に応じてニューロン部及びデジタル演算器の動作周波数を切り替え、動作周波数を段階的に上昇させるように制御する。
【００５９】
例えば、図１１に一例を示すように、低い動作周波数ｆ２１で学習を開始して学習反復を繰り返し、反復回数Ｎ２１で学習率１１０１を低くするのに伴って動作周波数１１０３を周波数ｆ２１より高い周波数ｆ２２に切り替えて学習反復を繰り返す。その後、同様にして、反復回数Ｎ２２で学習率１１０１を低くするのに伴って動作周波数１１０３を周波数ｆ２２より高い周波数ｆ２３に切り替え、反復回数Ｎ２３で学習率１１０１を低くするのに伴って動作周波数１１０３を周波数ｆ２３より高い周波数ｆ２４に切り替え、反復回数Ｎ２４で学習率１１０１を低くするのに伴って動作周波数１１０３を周波数ｆ２４より高い周波数ｆ２５に切り替えて学習反復を繰り返す。このように制御することで、学習率１１０１を低下させるのに応じて動作周波数１１０３を高くしてＳＮＲを高めることで、適切な精度を得つつ消費電力を抑え、効率的な学習を実現し良好な正解率１１０２を得ることができる。
【００６０】
図１２は、第３の制御例における動作を示すフローチャートである。まず、ステップＳ１２０１にて、制御部４０は、ニューラルネットワーク装置が有する各ニューロン部１０Ａ（１０Ｂ）及びデジタル演算器２０に対するバイアス値や重み値を設定するとともに、学習率を最高設定値に設定する。また、制御部４０は、動作周波数を最低設定値（初期値）に設定し、それに応じた制御信号ＣＴＬを可変周波数発振器３０に出力する。これにより、各ニューロン部１０Ａ（１０Ｂ）及びデジタル演算器２０には、可変周波数発振器３０から最低設定値の周波数を有するクロック信号ＣＫが供給される。
【００６１】
次に、ステップＳ１２０２にて、制御部４０は、ニューラルネットワーク装置における学習を行い、所定の回数だけ、回路動作を実行させる。そして、所定の回数の回路動作を行わせた後、ステップＳ１２０３にて、制御部４０は、学習率を次の段階の学習率に低下させるとともに、動作周波数を任意値だけ増加させる（次の段階の動作周波数にする）。続いて、ステップＳ１２０４にて、制御部４０は、動作周波数が最高設定値であるか否かを判断する。判断の結果、動作周波数が最高設定値ではない場合、ステップＳ１２０５に戻り、前回よりも高い動作周波数で（ＳＮＲを上げて）学習を行う。一方、判断の結果、動作周波数が最高設定値である場合、ステップＳ１２０５にて、制御部４０は、最終的な処理を実行させるデータ解析処理に係る制御を行い、最終的な結果を得て動作を終了する。
【００６２】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。図１４は、第２の実施形態におけるニューラルネットワーク装置の構成例を示す図である。図１４に示すニューラルネットワーク装置は、複数のニューロン部１４１０、複数のデジタル演算器１４２０、可変周波数発振器１４３０、及び制御部１４４０を有する。
【００６３】
デジタル演算器１４２０を介して複数のニューロン部１４１０が互いに影響しあうように接続され、無向グラフ型ニューラルネットワークを構成している。例えば、第ｉのニューロン部１４１０−ｉの出力ｙｉがデジタル演算器１４２０−ｉにより重み値Ｗｉｊで重み付けされて、第ｊのニューロン部１４１０−ｊに入力される。また、第ｊのニューロン部１４１０−ｊの出力ｙｊがデジタル演算器１４２０−ｊにより重み値Ｗｊｉで重み付けされて、第ｉのニューロン部１４１０−ｉに入力される。ここで、重み値Ｗｉｊと重み値Ｗｊｉとは同じ値である。なお、図１４においてはニューラルネットワーク装置における第ｉのニューロン部１４１０−ｉと第ｊのニューロン部１４１０−ｊとに係る構成を図示しているが、図示していない他のニューロン部１４１０もデジタル演算器１４２０を介して他のニューロン部１４１０と接続されている。
【００６４】
ニューロン部１４１０の各々は、デジタル加算器１４１１、ＤＡ変換器（ＤＡＣ）１４１２、及びΔΣ−ＡＤ変換器（ΔΣ−ＡＤＣ）１４１３を有する。デジタル加算器１４１１は、ニューロン部１４１０に入力される重み付きの入力信号をすべて加算して総和を求める。ＤＡ変換器１４１２は、デジタル加算器１４１１が出力した重み付き入力の総和値をデジタルアナログ変換し、総和値に応じたアナログ信号を出力する。ΔΣ−ＡＤ変換器１４１３は、ＤＡ変換器１４１２が出力したアナログ信号をアナログ信号の振幅に応じたデジタル信号としてパルス信号ｙにアナログデジタル変換して出力する。
【００６５】
デジタル演算器１４２０は、パルス信号ｙによって入力されるデジタル信号に重み値ｗを乗算して重み付きの信号を出力する。可変周波数発振器１４３０は、出力するクロック信号ＣＫの周波数が変更可能な発振器であり、制御部１４４０から出力される制御信号ＣＴＬに応じた周波数のクロック信号ＣＫをニューラルネットワーク装置が有するニューロン部１４１０及びデジタル演算器１４２０のすべてに出力する。制御部１４４０は、各機能部に係る制御を行い、ニューラルネットワーク装置において実行される動作を制御する。
【００６６】
なお、ΔΣ−ＡＤ変換器１４１３の構成及びその内部構成や可変周波数発振器１４３０の構成は、第１の実施形態におけるΔΣ−ＡＤ変換器１３の構成及びその内部構成や可変周波数発振器３０の構成と同様である。また、図１４において、ニューロン部１４１０は、デジタル加算器を用いて重み付き入力の総和を求めるようにしているが、第１の実施形態におけるニューロン部１０Ｂと同様にアナログ加算器を用いて重み付き入力の総和を求める回路としてもよい。アナログ加算器を用いて重み付き入力の総和を求めるニューロン部を用いた場合、可変周波数発振器１４３０は、ニューロン部１４１０のＤＡ変換器及びΔΣ−ＡＤ変換器と、デジタル演算器とに、制御信号ＣＴＬに応じた周波数を有するクロック信号ＣＫを供給する。
【００６７】
このように出力するクロック信号ＣＫの周波数が変更可能な可変周波数発振器１４３０を配置することで、ニューラルネットワーク装置における動作周波数を要求される精度やボルツマンマシンにおける温度パラメータ等に応じて変化させることができる。これにより、高い精度を維持しつつニューラルネットワーク装置全体での消費電力を抑制し低減することができ、消費電力と精度とのバランスをとることが可能となる。例えば、高い精度が要求される期間には高い周波数で動作させてノイズシェーピングにより入力信号の周波数帯に存在する量子化ノイズを減少させ、低い精度でも良い期間には低い周波数で動作させて消費電力を抑制することができる。
【００６８】
次に、第２の実施形態における無向グラフ型ニューラルネットワークのニューラルネットワーク装置の制御例について説明する。図１５は、第２の実施形態での制御例における動作を示すフローチャートである。まず、ステップＳ１５０１にて、制御部１４４０は、ニューラルネットワーク装置が有する各ニューロン部１４１０及びデジタル演算器１４２０に対するバイアス値や重み値を設定する。次に、ステップＳ１５０２にて、制御部１４４０は、温度パラメータＴを最大設定値に設定する。温度パラメータＴは、シグモイド関数の勾配、言い換えれば入力値に対して出力０（−１）、１を間違えるかの確率を制御するパラメータである。
【００６９】
ボルツマンマシンにおける温度パラメータについて説明する。図１６は、無向グラフ型ニューラルネットワークにおけるエネルギーの例を示す図である。無向グラフ型ニューラルネットワークでは、エネルギーを最小化することが目的で、エネルギーが最小値である最適解１６０１を見つける。しかし、エネルギーが局所的に小さくなる局所解１６０２、１６０３、１６０４、１６０５があると、最急降下法等では局所解１６０２〜１６０５の何れかに収束してしまうと最適解１６０１に到達することができない。
【００７０】
ボルツマンマシンでは熱ノイズを加えることで、ある程度の大きさでエネルギーが高くなる方向へも遷移が可能となり、温度パラメータＴの値が大きいほど熱ノイズが大きくなりエネルギー差の大きい状態への遷移が可能となる。例えば、ボルツマンマシンでは、温度パラメータＴにより熱ノイズを適切に加えることで、局所解１６０２〜１６０５に収束しても回路動作を行うことで最適解１６０１に収束することが可能となる。
【００７１】
例えば、図１７に示すように人口ニューロン１７０１は、重み付き入力の総和である局所場ｈi（＝ｘ1ｗi1＋…＋ｘjｗij＋…＋ｘnｗiN＋ｂi）にノイズｎを加えた値が、０以上であれば１を出力し、０未満であれば０を出力するとする。図１７に示した人口ニューロン１７０１は、例えば図１８（Ａ）に示すように局所場ｈiとノイズｎとを加える加算器１８０１と、加算器１８０１の出力が０以上であるか否かを比較し比較結果を出力する比較器１８０２で実現できる。比較器１８０２の出力ｙiが１となる確率は、ノイズｎがない場合には図１８（Ｂ）に破線で示すようなステップ関数になるが、ノイズｎを加えた場合には図１８（Ｂ）に実線で示すように局所場の変化に対して勾配を持つようになる。
【００７２】
この確率を示す関数がシグモイド関数であり、例えば図１９に一例を示すように温度パラメータＴの値に応じて確率の変化する勾配が変化する。図１９において、横軸は入力値であり、縦軸は出力として１を出力する確率である。実線１９０１は温度パラメータＴが０．５であるときの確率を示し、破線１９０２は温度パラメータＴが１であるときの確率を示し、一点鎖線１９０３は温度パラメータＴが２であるときの確率を示している。このようにシグモイド関数は、温度パラメータＴの値が大きい場合、確率の変化は緩やかに（勾配が小さく）なり、温度パラメータＴの値が小さい場合、確率の変化は急峻に（勾配が大きく）なる。
【００７３】
図１５に戻り、ステップＳ１５０２において温度パラメータＴを最大設定値に設定した後、ステップＳ１５０３にて、制御部１４４０は、動作周波数を最低設定値（初期値）に設定し、それに応じた制御信号ＣＴＬを可変周波数発振器１４３０に出力する。これにより、各ニューロン部１４１０及び各デジタル演算器１４２０には、可変周波数発振器１４３０から最低設定値の周波数を有するクロック信号ＣＫが供給される。
【００７４】
次に、ステップＳ１５０４にて、制御部４０は、ニューラルネットワーク装置（ボルツマンマシン）の回路動作を、所定の回数だけ実行させる。そして、所定の回数の回路動作を行わせた後、制御部１４４０は、ステップＳ１５０５にて、温度パラメータＴの値を任意値だけ減少させ、ステップＳ１５０６にて、動作周波数を任意値だけ増加させる。続いて、ステップＳ１５０７にて、制御部１４４０は、温度パラメータＴの値が最小設定値（終了値）であるか否かを判断する。判断の結果、温度パラメータＴの値が最小設定値（終了値）ではない場合、ステップＳ１５０４に戻り、前回よりも高い動作周波数で（ＳＮＲを上げて）回路動作を行う。一方、判断の結果、温度パラメータＴの値が最小設定値（終了値）である場合、ステップＳ１５０８にて、制御部１４４０は、最終的な処理を実行させるデータ解析処理に係る制御を行い、最終的な結果を得て動作を終了する。
【００７５】
このように温度パラメータの値及び動作周波数を制御することで、図２０に示すように温度パラメータの値２００１を低下させる度に、動作周波数２００２を上昇させていくように可変周波数発振器１４３０が出力するクロック信号ＣＫの周波数を制御する。これにより、低い精度でもよい高温度の際には動作周波数を低くして消費電力を抑制し、高い精度が要求される低温度の際には動作周波数を高くしてノイズシェーピングにより信号数帯の量子化ノイズを減少させ高い精度を得ることができる。
【００７６】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
【００７７】
（付記１）
複数の重み付き入力に係る加算処理を行う加算器と、前記複数の重み付き入力に係るデジタルアナログ変換処理を行うデジタルアナログ変換器と、前記加算器及び前記デジタルアナログ変換器により得られる前記複数の重み付き入力をすべて加算した加算値を示すアナログ信号を当該アナログ信号の振幅に応じたパルス信号に変換して出力するデルタシグマアナログデジタル変換器とを、それぞれ有する複数のニューロン部と、
前記複数のニューロン部の内の一の前記ニューロン部が出力した前記パルス信号に重み値を乗算して前記重み付き入力として前記一のニューロン部とは異なる前記複数のニューロン部の内の他の前記ニューロン部に出力する複数の演算器と、
出力するクロック信号の周波数を変更可能であり、前記ニューロン部及び前記演算器にクロック信号を供給する発振器と、
前記発振器が出力するクロック信号の周波数を制御する制御部とを有することを特徴とするニューラルネットワーク装置。
（付記２）
前記複数のニューロン部の内の第ｉ層（ｉは任意の自然数）のニューロン部と前記第ｉ層の次の第（ｉ＋１）層のニューロン部とが前記第ｉ層の演算器を介して接続されることを特徴とする付記１記載のニューラルネットワーク装置。
（付記３）
層毎に前記発振器を有することを特徴とする付記２記載のニューラルネットワーク装置。
（付記４）
前記一のニューロン部と前記他のニューロン部とは互いに双方向に前記重み付き入力を出力するよう接続されることを特徴とする付記１記載のニューラルネットワーク装置。
（付記５）
前記制御部は、前記ニューロン部及び前記演算器による所定の回数の学習を反復させた後の正解率に応じて、前記発振器が出力するクロック信号の周波数を制御することを特徴とする付記２又は３記載のニューラルネットワーク装置。
（付記６）
前記制御部は、前記所定の回数の学習を反復させた後の正解率が前回の正解率以下である場合、前記発振器が出力するクロック信号の周波数を増加することを特徴とする付記５記載のニューラルネットワーク装置。
（付記７）
前記制御部は、前記ニューロン部及び前記演算器により所定の回数の学習を反復させた後に、前記発振器が出力するクロック信号の周波数を増加することを特徴とする付記２又は３記載のニューラルネットワーク装置。
（付記８）
前記制御部は、前記ニューロン部及び前記演算器に設定する学習率に応じて、前記発振器が出力するクロック信号の周波数を制御することを特徴とする付記２又は３記載のニューラルネットワーク装置。
（付記９）
前記制御部は、温度パラメータに応じて、前記発振器が出力するクロック信号の周波数を制御することを特徴とする付記４記載のニューラルネットワーク装置。
（付記１０）
前記制御部は、温度パラメータを低下させる毎に、前記発振器が出力するクロック信号の周波数を低下することを特徴とする付記９記載のニューラルネットワーク装置。
（付記１１）
前記加算器は、前記複数の重み付き入力のすべてを加算するデジタル加算器であり、
前記デジタルアナログ変換器は、前記デジタル加算器の出力をデジタルアナログ変換処理し前記デルタシグマアナログデジタル変換器に出力することを特徴とする付記１〜１０の何れかに記載のニューラルネットワーク装置。
（付記１２）
前記デジタルアナログ変換器は、前記複数の重み付き入力のそれぞれをデジタルアナログ変換処理し、
前記加算器は、前記デジタルアナログ変換器が出力するアナログ信号のすべてを加算して前記デルタシグマアナログデジタル変換器に出力するアナログ加算器であることを特徴とする付記１〜１０の何れかに記載のニューラルネットワーク装置。
（付記１３）
複数のニューロン部のそれぞれが、複数の重み付き入力に係る加算処理を行うとともに、前記複数の重み付き入力に係るデジタルアナログ変換処理を行い、前記複数の重み付き入力をすべて加算した加算値を示すアナログ信号をデルタシグマアナログデジタル変換器により当該アナログ信号の振幅に応じたパルス信号に変換する工程と、
前記複数のニューロン部の内の一の前記ニューロン部が出力した前記パルス信号に重み値を乗算して前記重み付き入力として前記一のニューロン部とは異なる前記複数のニューロン部の内の他の前記ニューロン部に出力する工程と、
出力するクロック信号の周波数を変更可能な発振器が前記ニューロン部及び前記演算器に供給するクロック信号の周波数を、前記ニューロン部に要求される精度に応じて制御する工程とを有することを特徴とするニューラルネットワーク装置の制御方法。
【符号の説明】
【００７８】
１０Ａ、１０Ｂ、１４１０  ニューロン部
１１、１４１１  デジタル加算器
１２、１４１２  デジタルアナログ変換器
１３、１４１３  デルタシグマアナログデジタル変換器
１６  デジタルアナログ変換器
１７  アナログ加算器
２０、１４２０  デジタル演算器
３０、１４３０  可変周波数発振器
４０、１４４０  制御部
【図１】
2018005297.tif 000003
【図２】
2018005297.tif 000004
【図３】
2018005297.tif 000005
【図４】
2018005297.tif 000006
【図５】
2018005297.tif 000007
【図６】
2018005297.tif 000008
【図７】
2018005297.tif 000009
【図８】
2018005297.tif 000010
【図９】
2018005297.tif 000011
【図１０】
2018005297.tif 000012
【図１１】
2018005297.tif 000013
【図１２】
2018005297.tif 000014
【図１３】
2018005297.tif 000015
【図１４】
2018005297.tif 000016
【図１５】
2018005297.tif 000017
【図１６】
2018005297.tif 000018
【図１７】
2018005297.tif 000019
【図１８】
2018005297.tif 000020
【図１９】
2018005297.tif 000021
【図２０】
2018005297.tif 000022
【図２１】
2018005297.tif 000023
【図２２】
2018005297.tif 000024
【図２３】
2018005297.tif 000025
【図２４】
2018005297.tif 000026