JP6703265B2 - ニューラルネットワーク装置及びニューラルネットワーク装置の制御方法 - Google Patents

ニューラルネットワーク装置及びニューラルネットワーク装置の制御方法 Download PDF

Info

Publication number
JP6703265B2
JP6703265B2 JP2016126941A JP2016126941A JP6703265B2 JP 6703265 B2 JP6703265 B2 JP 6703265B2 JP 2016126941 A JP2016126941 A JP 2016126941A JP 2016126941 A JP2016126941 A JP 2016126941A JP 6703265 B2 JP6703265 B2 JP 6703265B2
Authority
JP
Japan
Prior art keywords
neuron
digital
neural network
analog
frequency
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016126941A
Other languages
English (en)
Other versions
JP2018005297A (ja
Inventor
匠 檀上
匠 檀上
田村 泰孝
泰孝 田村
三六 塚本
三六 塚本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016126941A priority Critical patent/JP6703265B2/ja
Priority to US15/606,220 priority patent/US20170368682A1/en
Publication of JP2018005297A publication Critical patent/JP2018005297A/ja
Application granted granted Critical
Publication of JP6703265B2 publication Critical patent/JP6703265B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Neurology (AREA)
  • Automation & Control Theory (AREA)
  • Fuzzy Systems (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、ニューラルネットワーク装置及びニューラルネットワーク装置の制御方法に関する。
生物の脳は、多数のニューロン(神経細胞)が存在し、各ニューロンは他の多数のニューロンからの信号入力し、また他の多数のニューロンへ信号を出力するような動きを行う。このような脳の仕組みをコンピュータで実現しようとしたものがニューラルネットワークであり、生物の神経細胞ネットワークの挙動を模倣する工学モデルである。ニューラルネットワークには様々なものがあり、例えば物体認識によく用いられる階層型ニューラルネットワークや、最適化問題や画像復元に用いられる無向グラフ(双方向グラフ)型ニューラルネットワークがある。
階層型ニューラルネットワークの一例として、入力層と出力層との2層からなるパーセプロトンを図21(A)に示す。出力層は、重みwで重み付けされた入力層からの信号xを足し合わせた値と自身が持つしきい値(バイアス)θとから算出された値を出力関数f()の入力変数とし結果を出力する。パーセプロトンでは出力関数はステップ関数であり、例えば入力変数が0以上であれば1を出力し、0未満であれば0を出力する。このパーセプトロンを複数段重ねた多層パーセプトロンを図21(B)に示す。多層パーセプトロンは、入力層及び出力層の他に1以上の隠れ層(中間層)を有する。
図22に無向グラフ型ニューラルネットワークの一例を示す。無向グラフ型ニューラルネットワークは、接続されているノードが互いに影響しあうニューラルネットワークである。無向グラフ型ニューラルネットワークにおいて、各ノードは入出力値xとして値1又は−1を持つとともにバイアスbを持ち、各ノード間には重みwを持つ。なお、接続された一方のノードから他方のノードへの重みwと他方のノードから一方のノードへの重みwとは等しく、例えば第1のノードから第2のノードへの重みw12と第2のノードから第1のノードへの重みw21とは同一である。
この無向グラフ型ニューラルネットワークのエネルギーE(x)を図22に示す式のように定義すると、重みw及びバイアスbを与えたときに、値xを変化させながらエネルギーE(x)が極小値になるように動作する。必ずエネルギーE(x)が減少する方向に遷移する、つまり確定的な状態変移を行うニューラルネットワークがホップフィールドネットワーク(HNN)であり、エネルギーE(x)が増加する方向にも遷移する、つまり確率的な状態変移を行うニューラルネットワークがボルツマンマシン(BM)である。
ニューラルネットワークをソフトウェアとして実装すると、大量の並列演算が必要となり処理が遅くなる。そこで、ニューラルネットワークをハードウェアである回路により実装することで、ニューラルネットワークの処理速度を向上させる技術が提案されている(例えば、特許文献1や非特許文献1、2参照)。
ニューラルネットワークを回路で実装する例について、図23を参照して説明する。図23(A)に示すパーセプトロンにおいて、ニューロン素子(人工ニューロン)は、重みwで重み付けされた入力xの総和を求めて素子のバイアスθと比較し、重み付きの入力の総和がバイアスθ以上であれば出力yとして1を出力し、バイアスθ未満であれば出力yとして0を出力する。したがって、ニューロン素子は、加算器と判定器(比較器)とを組み合わせることで実現できる。
図23(B)及び図23(C)は、ニューラルネットワークの回路実装例を示す図である。図23(B)には、重み付き入力の総和をデジタル加算器により求める回路例を示しており、2310はニューロン部であり、2320は重みを付与するデジタル演算器である。ニューロン部2310は、デジタル加算器2311、デジタルアナログ変換器(DAC:Digital Analog Converter)2312、及びデルタシグマ−アナログデジタル変換器(ΔΣ−ADC:delta-sigma Analog Digital Converter)2313を有する。
デジタル加算器2311は、ニューロン部2310に入力される重み付き入力の信号w11、w22、w33、…、wnnを加算して総和を求める。DA変換器2312は、デジタル加算器2311が出力した重み付き入力の総和をデジタルアナログ変換したアナログ信号を出力する。ΔΣ−AD変換器2313は、DA変換器2312が出力したアナログ信号をアナログ信号の振幅に応じたデジタル信号としてパルス信号にアナログデジタル変換して出力する。デジタル演算器2320は、ニューロン部2310(ΔΣ−AD変換器2313)が出力したパルス信号yに重みwを乗算して重みを付与した信号wyを出力する。
図23(C)には、重み付き入力の総和をアナログ加算器により求める回路例を示しており、2330はニューロン部であり、2340は重みを付与するデジタル演算器である。ニューロン部2330は、DA変換器(DAC)2331、アナログ加算器2332、ΔΣ−AD変換器(ΔΣ−ADC)2333を有する。
DA変換器2331は、ニューロン部2330に入力される重み付き入力の信号w11、w22、w33、…、wnnをそれぞれデジタルアナログ変換したアナログ信号を出力する。アナログ加算器2332は、DA変換器2331がそれぞれ出力したアナログ信号を加算して総和を求める。ΔΣ−AD変換器2333は、アナログ加算器2332が出力したアナログ信号をアナログ信号の振幅に応じたデジタル信号としてパルス信号にアナログデジタル変換して出力する。デジタル演算器2340は、ニューロン部2330(ΔΣ−AD変換器2333)が出力したパルス信号yに重みwを乗算して重みを付与した信号wyを出力する。
図23(B)及び図23(C)に示した回路構成のように判定器としてΔΣ−AD変換器を用いると、AD変換時に生じる量子化ノイズは、ノイズシェーピングにより低周波数側では小さく、高周波側では大きくなる。このようにΔΣ−AD変換器はハイパス特性を有するため、入力信号の周波数に対してサンプリング周波数を高くすることで、ノイズシェーピングにより入力信号の周波数帯に存在する量子化ノイズを減少させ、SNR(Signal to Noise Ratio、信号雑音比)を高めて精度を向上させることが可能となる。
例えば、ΔΣ−AD変換器における入力信号の周波数帯域をBW、サンプリング周波数をfsとして、オーバーサンプリングレートOSRを(fs/2BW)と定義する。ΔΣ−AD変換器の分解能の有効ビット数をNとして、1次のΔΣ−AD変換器における入力信号の帯域幅でのSNR(信号雑音比)は、およそ(6.02N+1.76−5.17+30log(OSR))で表され、2次のΔΣ−AD変換器における入力信号の帯域幅でのSNR(信号雑音比)は、およそ(6.02N+1.76−12.9+50log(OSR))で表される。したがって、オーバーサンプリングレートOSRが10倍、すなわちサンプリング周波数fsが10倍になると、1次のΔΣ−AD変換器ではSNRが約30dB増加し、2次のΔΣ−AD変換器ではSNRが約50dB増加する。このように、サンプリング周波数を上げるほど、入力信号の周波数帯に存在する量子化ノイズを減少させることが可能となる。
特開平2−27493号公報
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.
図24は、図23(B)に示した回路を用いた従来のニューラルネットワーク装置の構成例を示す図である。図24に示すニューラルネットワーク装置は、デジタル加算器2311、DA変換器2312、及びΔΣ−AD変換器2313を有する複数のニューロン部2310がデジタル演算器2320を介して接続され、階層型ニューラルネットワークを構成している。例えば、(n−1)層目のニューロン部2310−(n−1)とn層目のニューロン部2310−nとがデジタル演算器2320−(n−1)を介して接続され、(n−1)層目のニューロン部2310−(n−1)の出力yn-1がデジタル演算器2320−(n−1)で重み付けされてn層目のニューロン部2310−nに入力される。また、ニューロン部2310及びデジタル演算器2320の各々には、動作クロックとして発振器2350が出力する固定周波数のクロック信号CKが供給される。
従来のニューラルネットワーク装置においては、ニューロン部及びデジタル演算器に動作クロックとして固定周波数のクロック信号を供給し、ニューロン部やデジタル演算器等の各回路は、層や動作時間にかかわらず、すべて同じ一定の周波数で動作する。これは無向グラフ型ニューラルネットワークのニューラルネットワーク装置でも同様である。そのため、ニューラルネットワーク装置の動作周波数は、最も高い周波数で動作する回路により制限され、高い精度(SNR)が要求されるような計算量の多い層の動作周波数ですべての回路が動作し、結果として消費電力が大きくなってしまう。1つの側面では、本発明の目的は、高い精度を維持しつつ装置全体での消費電力を低減することができるニューラルネットワーク装置を提供することにある。
ニューラルネットワーク装置の一態様は、複数の重み付き入力に係る加算処理を行う加算器及びデジタルアナログ変換処理を行うデジタルアナログ変換器と、加算器及びデジタルアナログ変換器により得られる複数の重み付き入力をすべて加算した加算値を示すアナログ信号を振幅に応じたパルス信号に変換して出力するデルタシグマアナログデジタル変換器とを、それぞれ有する複数のニューロン部と、一のニューロン部が出力したパルス信号に重み値を乗算して他のニューロン部に出力する複数の演算器と、出力するクロック信号の周波数を変更可能であり、制御部からの制御に応じてニューロン部及び演算器にクロック信号を供給する発振器とを有する。
発明の一態様においては、要求される精度に応じて動作周波数を制御することができ、高い精度を維持しつつ装置全体での消費電力を低減することができる。
第1の実施形態におけるニューラルネットワーク装置の構成例を示す図である。 第1の実施形態におけるΔΣ−AD変換器の構成例を示す図である。 第1の実施形態におけるアナログ積分器の構成例を示す図である。 第1の実施形態における比較器の構成例を示す図である。 第1の実施形態における可変周波数発振器の構成例を示す図である。 第1の実施形態におけるニューラルネットワーク装置の構成例を示す図である。 第1の実施形態における第1の制御例を説明する図である。 学習における反復回数と正解率との関係の一例を示す図である。 第1の実施形態における第2の制御例を説明する図である。 第1の実施形態における第2の制御例を示すフローチャートである。 第1の実施形態における第3の制御例を説明する図である。 第1の実施形態における第3の制御例を示すフローチャートである。 第1の実施形態におけるニューラルネットワーク装置の構成例を示す図である。 第2の実施形態におけるニューラルネットワーク装置の構成例を示す図である。 第2の実施形態における制御例を示すフローチャートである。 無向グラフ型ニューラルネットワークのエネルギーの例を示す図である。 温度パラメータについて説明する図である。 温度パラメータについて説明する図である。 シグモイド関数の一例を示す図である。 第2の実施形態における制御例を説明する図である。 階層型ニューラルネットワークの一例を示す図である。 無向グラフ型ニューラルネットワークの一例を示す図である。 ニューラルネットワークの回路実装例を説明する図である。 従来のニューラルネットワーク装置の構成例を示す図である。
以下、本発明の実施形態を図面に基づいて説明する。
(第1の実施形態)
本発明の第1の実施形態について説明する。図1は、第1の実施形態におけるニューラルネットワーク装置の構成例を示す図である。図1に示すニューラルネットワーク装置は、複数のニューロン部10A、複数のデジタル演算器20、複数の可変周波数発振器30、及び制御部40を有する。複数のニューロン部10Aと複数のデジタル演算器20とが階層型ニューラルネットワークを構成するように接続されている。なお、図1においてはニューラルネットワーク装置における(n−1)層目及びn層目に係る構成を図示しているが、図示していない他の層の複数のニューロン部10Aもデジタル演算器20を介して次の層のニューロン部10Aと接続されており、多層構造となっている。
ニューロン部10Aの各々は、デジタル加算器11、デジタルアナログ変換器(DAC)12、及びデルタシグマ−アナログデジタル変換器(ΔΣ−ADC)13を有する。デジタル加算器11は、ニューロン部10Aに入力される重み付きの入力信号をすべて加算して総和を求める。DA変換器12は、デジタル加算器11が出力した重み付き入力の総和値をデジタルアナログ変換し、総和値に応じたアナログ信号を出力する。ΔΣ−AD変換器13は、DA変換器12が出力したアナログ信号をアナログ信号の振幅に応じたデジタル信号としてパルス信号yにアナログデジタル変換して出力する。
図2は、ΔΣ−AD変換器13の構成例を示す図である。図2には、1次のΔΣ−AD変換器を一例として示している。図2に示すΔΣ−AD変換器は、加算器(減算器)210、積分器220、比較器(量子化器)230、遅延回路240、及びデジタルアナログ変換器(DAC)250を有する。加算器(減算器)210は、ΔΣ−AD変換器に入力されるアナログ信号xからDA変換器250の出力を減算し、結果を信号uとして出力する。
積分器220は、加算器(減算器)210が出力した信号uと遅延回路222の出力とを加算する加算器221と、加算器221の出力を遅延させて出力する遅延回路222とを有する。積分器220は、加算器(減算器)210が出力した信号uを加算器221及び遅延回路222により積分し、結果を信号wとして出力する。積分器220は、例えば、図3に示すようにオペアンプ301、抵抗302、及び容量303を有し、入力信号VINを積分して出力信号VOUTとして出力するアナログ積分器である。
比較器(量子化器)230は、積分器220が出力した信号wに対する量子化処理を行い、結果を1ビットのデジタル信号yとして出力する。NQは量子化ノイズ(量子化雑音)を示している。比較器230は、例えば図4に回路構成を示すような比較器である。図4に示す比較器230は、クロック信号CLKに同期して動作し、クロック信号CLKに応じてリセット動作と比較動作とを交互に行う。図4に示す比較器230は、クロック信号CLKがローレベルのとき、スイッチ411がオフ(開状態、非導通状態)になるとともに、クロック信号CLKの反転信号XCLKで制御されるスイッチ407〜410がオン(閉状態、導通状態)になってリセット動作を行う。このリセット動作により、出力OUTP、OUTN及びノードDP、DNの電位がVDDにリセットされる。
また、図4に示す比較器230は、クロック信号CLKがハイレベルのとき、スイッチ411がオンになるとともに、スイッチ407〜410がオフになって、比較動作を行う。この比較動作においては、アナログ入力INP、INNに応じた電流がトランジスタ401、402によって流れて、出力OUTP、OUTN及びノードDP、DNの電位が下がり始める。そして、出力OUTP、OUTNのうち先に電位が下がりきった一方の出力がローレベルになり、トランジスタ403〜406により構成されるラッチ回路によりラッチがかかって他方の出力がハイレベルになる。
遅延回路240は、比較器230が出力した信号(1ビットのデジタル信号y)を遅延させて出力する。DA変換器250は、遅延回路240により遅延されたデジタル信号をデジタルアナログ変換して出力する。また、DA変換器250は、比較器230のゲインの逆数分のゲインを出力するアナログ信号に与える。なお、図2〜図4に示したΔΣ−AD変換器の構成及びその内部構成は一例であり、これに限定されるものではない。例えば、ΔΣ−AD変換器13として1次のΔΣ−AD変換器を例示したが、2次以上のΔΣ−AD変換器であってもよい。
図1に戻り、デジタル演算器20は、パルス信号yによって入力されるデジタル信号に重み値wを乗算して重み付きの信号を出力する。例えば、(n−1)層目のニューロン部10A−(n−1)とn層目のニューロン部10A−nとの間に(n−1)層目のデジタル演算器20−(n−1)が配置され、ニューロン部10A−(n−1)の出力yn-1が、デジタル演算器20−(n−1)により重み値wn-1で重み付けされて、ニューロン部10A−nに供給される。他の層のニューロン部10Aについても次の層のニューロン部10Aとの間にデジタル演算器20が配置され、ニューロン部10A間で伝送される信号に対する重み付けを行う。
可変周波数発振器30は、出力するクロック信号CKの周波数が変更可能な発振器であり、制御部40から出力される制御信号CTLに応じた周波数のクロック信号CKを出力する。制御部40は、各機能部に係る制御を行い、ニューラルネットワーク装置において実行される動作を制御する。図5(A)は、可変周波数発振器30の構成例を示す図である。図5(A)に示す可変周波数発振器30は、入力される制御信号CTLを制御電圧VCに変換するDA変換器(DAC)501、及び制御電圧VCに応じた周波数のクロック信号CKを発振する電圧制御発振器(VCO)502を有する。
DA変換器501は、例えば図5(B)に示すように抵抗ラダー回路511及びスイッチ回路512を有する。抵抗ラダー回路511は、所定の抵抗値を有する複数の抵抗が直列に接続され、参照電圧VREFを抵抗分圧する。スイッチ回路512は、制御信号CTLにより制御される複数のスイッチを有し、複数のスイッチは、一端が抵抗ラダー回路511における互いに異なる抵抗の接続点に接続され、他端が制御電圧VCの出力端に共通接続されている。スイッチ回路512が有する複数のスイッチを制御信号CTLに従って選択的にオンすることで、制御信号CTLに応じた制御電圧VCが出力される。
電圧制御発振器502は、例えば図5(C)に示すように奇数個のインバータ521が接続されたリングオシレータである。制御電圧VCに基づく電圧VCA、VCBにより電流源522、523を制御し、インバータ521に流れる電流量を調整することでクロック信号CKの周波数を制御する。例えば、インバータ521に流れる電流量を大きくすると、インバータ521における信号の切り替わりが速くなり、クロック信号CKの周波数が高くなる。反対に、インバータ521に流れる電流量を小さくすると、インバータ521における信号の切り替わりが遅くなり、クロック信号CKの周波数が低くなる。なお、図5(A)〜図5(C)に示した可変周波数発振器30の構成は一例であり、これに限定されるものではない。
図1に示したニューラルネットワーク装置は、可変周波数発振器30を各層毎に有している。ここで、ニューロン部10Aは、デジタル加算器11、DA変換器12、及びΔΣ−AD変換器13で構成されるが、ΔΣ−AD変換器13が出力したパルス信号に応じて、デジタル演算器20、デジタル加算器11、及びDA変換器12の動作が行われる。そのため、可変周波数発振器30は、対応する層に対して1つ前の層のΔΣ−AD変換器13及びデジタル演算器20と、対応する層のデジタル加算器11及びDA変換器12とにクロック信号CKを供給する。
例えば、(n−1)層目の可変周波数発振器30−(n−1)は、(n−2)層目のΔΣ−AD変換器及びデジタル演算器(図示せず)と、(n−1)層目のデジタル加算器11−(n−1)及びDA変換器12−(n−1)とに、(n−1)層目に係る制御信号CTLn-1に応じた周波数を有するクロック信号CKn-1を供給する。また、n層目の可変周波数発振器30−nは、(n−1)層目のΔΣ−AD変換器13−(n−1)及びデジタル演算器20−(n−1)と、n層目のデジタル加算器11−n及びDA変換器12−nとに、n層目に係る制御信号CTLnに応じた周波数を有するクロック信号CKnを供給する。また、n層目のΔΣ−AD変換器13−nは、(n+1)層目の可変周波数発振器30−(n+1)から(n+1)層目に係る制御信号CTLn+1に応じた周波数を有するクロック信号CKn+1の供給を受ける。
このようにニューラルネットワーク装置における各層毎に、出力するクロック信号CKの周波数が変更可能な可変周波数発振器30を配置することで、層毎に動作周波数を設定することができる。これにより、高い精度(SNR)が要求される層は高い周波数で動作させてノイズシェーピングにより入力信号の周波数帯に存在する量子化ノイズを減少させ、その他の層は低い周波数で動作させ消費電力を抑制することが可能になる。したがって、高い精度を維持しつつニューラルネットワーク装置全体での消費電力を抑制し低減することができる。また、同一の層であっても要求される精度(SNR)に応じて動作周波数を制御し、低い精度でも良い期間には低い周波数で動作させて消費電力を抑制し、高い精度が要求される期間には高い周波数で動作させることで、消費電力と精度とのバランスをとることが可能となる。
図6は、第1の実施形態におけるニューラルネットワーク装置の他の構成例を示す図である。図6において、図1に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。前述した図1に示したニューラルネットワーク装置は、デジタル加算器を用いて重み付き入力の総和を求めるのに対して、図6に示すニューラルネットワーク装置は、アナログ加算器を用いて重み付き入力の総和を求める。図6に示すニューラルネットワーク装置は、図1に示したニューラルネットワーク装置とは、ニューロン部10Aに対応するニューロン部10Bの構成、及び可変周波数発振器30からのクロック信号CKが供給される対象が異なり、その他は図1に示したニューラルネットワーク装置と同様である。
ニューロン部10Bの各々は、DA変換器(DAC)16、アナログ加算器17、及びΔΣ−AD変換器(ΔΣ−ADC)13を有する。DA変換器16は、ニューロン部10Bに入力される重み付きの入力信号をそれぞれデジタルアナログ変換し、重み付き入力に応じたアナログ信号を出力する。アナログ加算器17は、DA変換器16がそれぞれ出力したアナログ信号を加算して総和を求める。ΔΣ−AD変換器13は、アナログ加算器17が出力したアナログ信号をアナログ信号の振幅に応じたデジタル信号としてパルス信号yにアナログデジタル変換して出力する。
また、図1に示したニューラルネットワーク装置と同様に、例えば(n−1)層目のニューロン部10B−(n−1)とn層目のニューロン部10B−nとの間に(n−1)層目のデジタル演算器20−(n−1)が配置され、ニューロン部10B−(n−1)の出力yn-1が、デジタル演算器20−(n−1)により重み値wn-1で重み付けされて、ニューロン部10B−nに供給される。他の層のニューロン部10Bについても次の層のニューロン部10Bとの間にデジタル演算器20が配置され、ニューロン部10B間で伝送される信号に対する重み付けを行う。
図6に示したニューラルネットワーク装置においても、出力するクロック信号CKの周波数が変更可能な可変周波数発振器30を各層毎に有している。ただし、図6に示した構成では、アナログ加算器17での処理はアナログ信号のみで行われるので、可変周波数発振器30からのクロック信号CKをアナログ加算器17には供給しない。つまり、可変周波数発振器30は、対応する層に対して1つ前の層のΔΣ−AD変換器13及びデジタル演算器20と、対応する層のDA変換器12とにクロック信号CKを供給する。
例えば、(n−1)層目の可変周波数発振器30−(n−1)は、(n−2)層目のΔΣ−AD変換器及びデジタル演算器(図示せず)と、(n−1)層目のDA変換器16−(n−1)とに、(n−1)層目に係る制御信号CTLn-1に応じた周波数を有するクロック信号CKn-1を供給する。また、n層目の可変周波数発振器30−nは、(n−1)層目のΔΣ−AD変換器13−(n−1)及びデジタル演算器20−(n−1)と、n層目のDA変換器16−nとに、n層目に係る制御信号CTLnに応じた周波数を有するクロック信号CKnを供給する。また、n層目のΔΣ−AD変換器13−nは、(n+1)層目の可変周波数発振器30−(n+1)から(n+1)層目に係る制御信号CTLn+1に応じた周波数を有するクロック信号CKn+1の供給を受ける。
このように構成した図6に示すニューラルネットワーク装置においても、層毎に動作周波数を設定することができ、高い精度(SNR)が要求される層は高い周波数で動作させてノイズシェーピングにより入力信号の周波数帯に存在する量子化ノイズを減少させ、その他の層は低い周波数で動作させ消費電力を抑制することが可能になる。したがって、高い精度を維持しつつニューラルネットワーク装置全体での消費電力を抑制し低減することができる。また、同一の層であっても要求される精度(SNR)に応じて動作周波数を制御し、低い精度でも良い期間には低い周波数で動作させて消費電力を抑制し、高い精度が要求される期間には高い周波数で動作させることで、消費電力と精度とのバランスをとることが可能となる。
なお、前述した構成例では、可変周波数発振器30を層毎に有するニューラルネットワーク装置を示したが、これに限定されるものではなく、複数の層に対して1つの可変周波数発振器30からクロック信号CKを供給するようにしても良い。また、例えば図13に示すようにすべてのニューロン部10A(10B)及びデジタル演算器20に対して1つの可変周波数発振器30からクロック信号CKを供給するようにしても良い。このように構成しても常に固定周波数のクロック信号を供給する場合と比較して、要求される精度に応じて供給するクロック信号の周波数を変化させることで消費電力を抑制することが可能である。
次に、第1の実施形態における階層型ニューラルネットワークのニューラルネットワーク装置の制御例について説明する。
・第1の制御例
ニューラルネットワーク装置における層毎に、必要とされる精度(SNR)の高さに応じた動作周波数でニューロン部及びデジタル演算器を動作させる第1の制御例について説明する。図7は、第1の実施形態におけるニューラルネットワーク装置の第1の制御例を説明するための図である。図7には、階層型ニューラルネットワークの一種であるLeNetと呼ばれる畳み込みニューラルネットワークに係るニューラルネットワーク装置を示している。LeNetは、例えば手書き数字認識等に用いられる。図7に示すニューラルネットワーク装置の各層には複数のニューロン部が配置されており、異なる層のニューロン部がデジタル演算器を介して接続されている。
コンボリューション層702では、画像の入力データ701とフィルターの数値との積和演算を繰り返し、その結果を出力関数を介して次の層に出力する。マックスプーリング層703では、演算量を減らすために、コンボリューション層702の出力において、あるブロックから高い数値のものを選択する処理を行いデータ数を減少させる。コンボリューション層704では、マックスプーリング層703の出力データを用いてコンボリューション層702と同様の処理を行い、マックスプーリング層705では、コンボリューション層704の出力に対してマックスプーリング層703と同様の処理を行う。
完全結合層706では、マックスプーリング層705の各ニューロン部の出力値を重み付けしてすべて加算する。レル層707では、マックスプーリング層705の出力のうち、負の値のものを0に変換する。完全結合層708では、レル層707の各ニューロン部の出力値を重み付けしてすべて加算する。ソフトマックス層709では、最終的な認識を行い、入力データ701が何であるかを判定する。前述した各層のうち、コンボリューション層702、704、及び完全結合層706、708は、非常に多くの演算と高い精度が要求される。一方、マックスプーリング層703、705、及びレル層707は、精度は低くても良い。ソフトマックス層709は、コンボリューション層702、704、及び完全結合層706、708ほど高い精度は要求されないが中程度の精度が要求される。
そこで、図7に示すように、3つの可変周波数発振器711、712、713を設け、制御部721により可変周波数発振器711、712、713が出力するクロック信号の周波数を制御する。高い精度が要求されるコンボリューション層702、704、及び完全結合層706、708に係るニューロン部及びデジタル演算器には、可変周波数発振器711により高い周波数F1のクロック信号CKHを供給する。また、低い精度で十分なマックスプーリング層703、705、及びレル層707に係るニューロン部及びデジタル演算器には、可変周波数発振器712により低い周波数F3(F3<F1)のクロック信号CKLを供給する。また、中程度の精度が要求されるソフトマックス層709に係るニューロン部及びデジタル演算器には、可変周波数発振器713により中程度の周波数F2(F3<F2<F1)のクロック信号CKMを供給する。
このようにニューラルネットワーク装置における各層毎に適切な周波数のクロック信号を供給することで、適切な動作周波数で各層のニューロン部及びデジタル演算器を動作させることができ、すべて同じ一定の周波数で動作させた場合と比較して消費電力を低減することができる。また、高い精度が要求される層のニューロン部及びデジタル演算器は、高い周波数で動作させることで精度を低下させることなく、高い精度を維持することができる。
・第2の制御例
次に、所定の回数の学習を反復させる毎にテストを行って正解率を検出し、検出結果に応じてニューロン部及びデジタル演算器の動作周波数を切り替え制御する第2の制御例について説明する。階層型ニューラルネットワークにおいて、ある一定の学習率で学習させた場合、所定の回数の学習を反復させる毎にテストを行ったときの正解率は図8に示す正解率801のように変化し、学習反復を繰り返していくと正解率が100%に近づいていく。図8において、縦軸は正解率(%)であり、横軸は反復回数である。
前述したようにして階層型ニューラルネットワークを回路実装したニューラルネットワーク装置では、SNRが低いと正解率が高くなってきた場合、学習で計算された値がノイズに埋もれてしまい、学習反復を繰り返しても正解率が上昇しないことが考えられる。例えば、図8に示すように、学習反復を繰り返して正解率がSNRによる正解率の限界値802に到達すると、それ以降は学習反復を繰り返しても正解率は図8に示す正解率803のように上昇しなくなる。
これを解決するには、高い動作周波数で動作させSNRを高めて回路の精度を良くすればよいが、学習の開始時から高い動作周波数で動作させることは消費電力の無駄となる。第2の制御例では、検出された正解率に応じてニューロン部及びデジタル演算器の動作周波数を切り替え、動作周波数を段階的に上昇させるように制御する。詳細には、所定の回数の学習を反復させる毎にテストを行ったときの正解率が前回の正解率より大きくない、すなわち前回の正解率以下である場合、動作周波数を現在の動作周波数よりも高い、次の段階の動作周波数に切り替える。
例えば、図9に一例を示すように、低い動作周波数f11で学習を開始し、学習反復を繰り返し、反復回数N11で正解率が前回の正解率以下となると、正解率902がSNRによる正解率の限界値901に達したとして、動作周波数911を周波数f11より高い周波数f12に切り替えて学習反復を繰り返す。その後、同様にして、反復回数N12で正解率が前回の正解率以下となると、動作周波数911を周波数f12より高い周波数f13に切り替え、反復回数N13で正解率が前回の正解率以下となると、動作周波数911を周波数f13より高い周波数f14に切り替えて学習反復を繰り返す。このように制御することで、正解率902に応じてSNRによる正解率の限界値901を徐々に高くするように動作周波数911を制御でき、適切な精度を得つつ消費電力を抑えることができる。
図10は、第2の制御例における動作を示すフローチャートである。まず、ステップS1001にて、制御部40は、ニューラルネットワーク装置が有する各ニューロン部10A(10B)及びデジタル演算器20に対するバイアス値や重み値、学習率を設定する。また、制御部40は、動作周波数を最低設定値(初期値)に設定し、それに応じた制御信号CTLを可変周波数発振器30に出力する。これにより、各ニューロン部10A(10B)及びデジタル演算器20には、可変周波数発振器30から最低設定値の周波数を有するクロック信号CKが供給される。
ステップS1002にて、制御部40は、ニューラルネットワーク装置における学習を開始させ、所定の回数だけ、回路動作を実行させる。そして、所定の回数の回路動作を行わせた後、ステップS1003にて、制御部40は、テストを行って正解率(A1)を取得する。
次に、ステップS1004にて、制御部40は、ニューラルネットワーク装置における学習を行い、所定の回数だけ、回路動作を実行させる。そして、所定の回数の回路動作を行わせた後、ステップS1005にて、制御部40は、テストを行って正解率(A2)を取得する。続いて、ステップS1006にて、制御部40は、前回取得した正解率である正解率(A1)と今回取得した正解率である正解率(A2)とを比較する。その結果、正解率(A2)が正解率(A1)より大きい、すなわち今回のテストによる正解率が前回のテストによる正解率より大きい場合、ステップS1007にて、制御部40は、正解率(A2)を正解率(A1)に代入して(正解率(A1)として正解率(A2)で更新して)、ステップS1004に戻り、動作周波数を変えずに学習を行う。
一方、ステップS1006での比較の結果、正解率(A2)が正解率(A1)より大きくない、すなわち今回のテストによる正解率が前回のテストによる正解率以下である場合、ステップS1008にて、制御部40は、現在の動作周波数が最高設定値であるか否かを判断する。その結果、現在の動作周波数が最高設定値ではない場合、制御部40は、ステップS1009にて、正解率(A2)を正解率(A1)に代入し(正解率(A1)として正解率(A2)で更新し)、ステップS1010にて、動作周波数を任意値だけ増加させ(次の段階の動作周波数にし)、ステップS1004に戻り、前回よりも高い動作周波数で(SNRを上げて)学習を行う。
一方、ステップS1008での判断の結果、現在の動作周波数が最高設定値である場合、ステップS1011にて、制御部40は、最終的な処理を実行させるデータ解析処理に係る制御を行い、最終的な結果を得て動作を終了する。なお、前述したステップS1009での処理及びステップS1010での処理は順不同であり、ステップS1010での処理をステップS1009での処理より前に行っても良いし、ステップS1009での処理と同時に行っても良い。
・第3の制御例
次に、ニューラルネットワーク装置における学習の反復回数(学習率)に応じてニューロン部及びデジタル演算器の動作周波数を切り替え制御する第の制御例について説明する。例えば、階層型ニューラルネットワークの一種であるAlexNetでは、所定の回数の学習を反復させる毎に学習率を下げて学習をさらに反復させると正解率がよくなっていく。このような所定の回数の学習を反復させる毎に学習率を下げていくように制御する場合、SNRが低いと学習率を小さくした場合、学習で計算された値がノイズに埋もれてしまい正常に学習できないことが考えられる。
高い動作周波数で動作させSNRを高めることで前述した不都合は解消できるが、学習率を高く設定する学習の開始時から高い動作周波数で動作させることは消費電力の無駄となる。第3の制御例では、所定の回数の学習を反復させる毎に学習率を下げていくように制御するニューラルネットワーク装置において、学習の反復回数(学習率)に応じてニューロン部及びデジタル演算器の動作周波数を切り替え、動作周波数を段階的に上昇させるように制御する。
例えば、図11に一例を示すように、低い動作周波数f21で学習を開始して学習反復を繰り返し、反復回数N21で学習率1101を低くするのに伴って動作周波数1103を周波数f21より高い周波数f22に切り替えて学習反復を繰り返す。その後、同様にして、反復回数N22で学習率1101を低くするのに伴って動作周波数1103を周波数f22より高い周波数f23に切り替え、反復回数N23で学習率1101を低くするのに伴って動作周波数1103を周波数f23より高い周波数f24に切り替え、反復回数N24で学習率1101を低くするのに伴って動作周波数1103を周波数f24より高い周波数f25に切り替えて学習反復を繰り返す。このように制御することで、学習率1101を低下させるのに応じて動作周波数1103を高くしてSNRを高めることで、適切な精度を得つつ消費電力を抑え、効率的な学習を実現し良好な正解率1102を得ることができる。
図12は、第3の制御例における動作を示すフローチャートである。まず、ステップS1201にて、制御部40は、ニューラルネットワーク装置が有する各ニューロン部10A(10B)及びデジタル演算器20に対するバイアス値や重み値を設定するとともに、学習率を最高設定値に設定する。また、制御部40は、動作周波数を最低設定値(初期値)に設定し、それに応じた制御信号CTLを可変周波数発振器30に出力する。これにより、各ニューロン部10A(10B)及びデジタル演算器20には、可変周波数発振器30から最低設定値の周波数を有するクロック信号CKが供給される。
次に、ステップS1202にて、制御部40は、ニューラルネットワーク装置における学習を行い、所定の回数だけ、回路動作を実行させる。そして、所定の回数の回路動作を行わせた後、ステップS1203にて、制御部40は、学習率を次の段階の学習率に低下させるとともに、動作周波数を任意値だけ増加させる(次の段階の動作周波数にする)。続いて、ステップS1204にて、制御部40は、動作周波数が最高設定値であるか否かを判断する。判断の結果、動作周波数が最高設定値ではない場合、ステップS1202に戻り、前回よりも高い動作周波数で(SNRを上げて)学習を行う。一方、判断の結果、動作周波数が最高設定値である場合、ステップS1205にて、制御部40は、最終的な処理を実行させるデータ解析処理に係る制御を行い、最終的な結果を得て動作を終了する。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。図14は、第2の実施形態におけるニューラルネットワーク装置の構成例を示す図である。図14に示すニューラルネットワーク装置は、複数のニューロン部1410、複数のデジタル演算器1420、可変周波数発振器1430、及び制御部1440を有する。
デジタル演算器1420を介して複数のニューロン部1410が互いに影響しあうように接続され、無向グラフ型ニューラルネットワークを構成している。例えば、第iのニューロン部1410−iの出力yiがデジタル演算器1420−iにより重み値Wijで重み付けされて、第jのニューロン部1410−jに入力される。また、第jのニューロン部1410−jの出力yjがデジタル演算器1420−jにより重み値Wjiで重み付けされて、第iのニューロン部1410−iに入力される。ここで、重み値Wijと重み値Wjiとは同じ値である。なお、図14においてはニューラルネットワーク装置における第iのニューロン部1410−iと第jのニューロン部1410−jとに係る構成を図示しているが、図示していない他のニューロン部1410もデジタル演算器1420を介して他のニューロン部1410と接続されている。
ニューロン部1410の各々は、デジタル加算器1411、DA変換器(DAC)1412、及びΔΣ−AD変換器(ΔΣ−ADC)1413を有する。デジタル加算器1411は、ニューロン部1410に入力される重み付きの入力信号をすべて加算して総和を求める。DA変換器1412は、デジタル加算器1411が出力した重み付き入力の総和値をデジタルアナログ変換し、総和値に応じたアナログ信号を出力する。ΔΣ−AD変換器1413は、DA変換器1412が出力したアナログ信号をアナログ信号の振幅に応じたデジタル信号としてパルス信号yにアナログデジタル変換して出力する。
デジタル演算器1420は、パルス信号yによって入力されるデジタル信号に重み値wを乗算して重み付きの信号を出力する。可変周波数発振器1430は、出力するクロック信号CKの周波数が変更可能な発振器であり、制御部1440から出力される制御信号CTLに応じた周波数のクロック信号CKをニューラルネットワーク装置が有するニューロン部1410及びデジタル演算器1420のすべてに出力する。制御部1440は、各機能部に係る制御を行い、ニューラルネットワーク装置において実行される動作を制御する。
なお、ΔΣ−AD変換器1413の構成及びその内部構成や可変周波数発振器1430の構成は、第1の実施形態におけるΔΣ−AD変換器13の構成及びその内部構成や可変周波数発振器30の構成と同様である。また、図14において、ニューロン部1410は、デジタル加算器を用いて重み付き入力の総和を求めるようにしているが、第1の実施形態におけるニューロン部10Bと同様にアナログ加算器を用いて重み付き入力の総和を求める回路としてもよい。アナログ加算器を用いて重み付き入力の総和を求めるニューロン部を用いた場合、可変周波数発振器1430は、ニューロン部1410のDA変換器及びΔΣ−AD変換器と、デジタル演算器とに、制御信号CTLに応じた周波数を有するクロック信号CKを供給する。
このように出力するクロック信号CKの周波数が変更可能な可変周波数発振器1430を配置することで、ニューラルネットワーク装置における動作周波数を要求される精度やボルツマンマシンにおける温度パラメータ等に応じて変化させることができる。これにより、高い精度を維持しつつニューラルネットワーク装置全体での消費電力を抑制し低減することができ、消費電力と精度とのバランスをとることが可能となる。例えば、高い精度が要求される期間には高い周波数で動作させてノイズシェーピングにより入力信号の周波数帯に存在する量子化ノイズを減少させ、低い精度でも良い期間には低い周波数で動作させて消費電力を抑制することができる。
次に、第2の実施形態における無向グラフ型ニューラルネットワークのニューラルネットワーク装置の制御例について説明する。図15は、第2の実施形態での制御例における動作を示すフローチャートである。まず、ステップS1501にて、制御部1440は、ニューラルネットワーク装置が有する各ニューロン部1410及びデジタル演算器1420に対するバイアス値や重み値を設定する。次に、ステップS1502にて、制御部1440は、温度パラメータTを最大設定値に設定する。温度パラメータTは、シグモイド関数の勾配、言い換えれば入力値に対して出力0(−1)、1を間違えるかの確率を制御するパラメータである。
ボルツマンマシンにおける温度パラメータについて説明する。図16は、無向グラフ型ニューラルネットワークにおけるエネルギーの例を示す図である。無向グラフ型ニューラルネットワークでは、エネルギーを最小化することが目的で、エネルギーが最小値である最適解1601を見つける。しかし、エネルギーが局所的に小さくなる局所解1602、1603、1604、1605があると、最急降下法等では局所解1602〜1605の何れかに収束してしまうと最適解1601に到達することができない。
ボルツマンマシンでは熱ノイズを加えることで、ある程度の大きさでエネルギーが高くなる方向へも遷移が可能となり、温度パラメータTの値が大きいほど熱ノイズが大きくなりエネルギー差の大きい状態への遷移が可能となる。例えば、ボルツマンマシンでは、温度パラメータTにより熱ノイズを適切に加えることで、局所解1602〜1605に収束しても回路動作を行うことで最適解1601に収束することが可能となる。
例えば、図17に示すように人工ニューロン1701は、重み付き入力の総和である局所場hi(=x1i1+…+xjij+…+xniN+bi)にノイズnを加えた値が、0以上であれば1を出力し、0未満であれば0を出力するとする。図17に示した人工ニューロン1701は、例えば図18(A)に示すように局所場hiとノイズnとを加える加算器1801と、加算器1801の出力が0以上であるか否かを比較し比較結果を出力する比較器1802で実現できる。比較器1802の出力yiが1となる確率は、ノイズnがない場合には図18(B)に破線で示すようなステップ関数になるが、ノイズnを加えた場合には図18(B)に実線で示すように局所場の変化に対して勾配を持つようになる。
この確率を示す関数がシグモイド関数であり、例えば図19に一例を示すように温度パラメータTの値に応じて確率の変化する勾配が変化する。図19において、横軸は入力値であり、縦軸は出力として1を出力する確率である。実線1901は温度パラメータTが0.5であるときの確率を示し、破線1902は温度パラメータTが1であるときの確率を示し、一点鎖線1903は温度パラメータTが2であるときの確率を示している。このようにシグモイド関数は、温度パラメータTの値が大きい場合、確率の変化は緩やかに(勾配が小さく)なり、温度パラメータTの値が小さい場合、確率の変化は急峻に(勾配が大きく)なる。
図15に戻り、ステップS1502において温度パラメータTを最大設定値に設定した後、ステップS1503にて、制御部1440は、動作周波数を最低設定値(初期値)に設定し、それに応じた制御信号CTLを可変周波数発振器1430に出力する。これにより、各ニューロン部1410及び各デジタル演算器1420には、可変周波数発振器1430から最低設定値の周波数を有するクロック信号CKが供給される。
次に、ステップS1504にて、制御部1440は、ニューラルネットワーク装置(ボルツマンマシン)の回路動作を、所定の回数だけ実行させる。そして、所定の回数の回路動作を行わせた後、制御部1440は、ステップS1505にて、温度パラメータTの値を任意値だけ減少させ、ステップS1506にて、動作周波数を任意値だけ増加させる。続いて、ステップS1507にて、制御部1440は、温度パラメータTの値が最小設定値(終了値)であるか否かを判断する。判断の結果、温度パラメータTの値が最小設定値(終了値)ではない場合、ステップS1504に戻り、前回よりも高い動作周波数で(SNRを上げて)回路動作を行う。一方、判断の結果、温度パラメータTの値が最小設定値(終了値)である場合、ステップS1508にて、制御部1440は、最終的な処理を実行させるデータ解析処理に係る制御を行い、最終的な結果を得て動作を終了する。
このように温度パラメータの値及び動作周波数を制御することで、図20に示すように温度パラメータの値2001を低下させる度に、動作周波数2002を上昇させていくように可変周波数発振器1430が出力するクロック信号CKの周波数を制御する。これにより、低い精度でもよい高温度の際には動作周波数を低くして消費電力を抑制し、高い精度が要求される低温度の際には動作周波数を高くしてノイズシェーピングにより入力信号の周波数帯の量子化ノイズを減少させ高い精度を得ることができる。
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
(付記1)
複数の重み付き入力に係る加算処理を行う加算器と、前記複数の重み付き入力に係るデジタルアナログ変換処理を行うデジタルアナログ変換器と、前記加算器及び前記デジタルアナログ変換器により得られる前記複数の重み付き入力をすべて加算した加算値を示すアナログ信号を当該アナログ信号の振幅に応じたパルス信号に変換して出力するデルタシグマアナログデジタル変換器とを、それぞれ有する複数のニューロン部と、
前記複数のニューロン部の内の一の前記ニューロン部が出力した前記パルス信号に重み値を乗算して前記重み付き入力として前記一のニューロン部とは異なる前記複数のニューロン部の内の他の前記ニューロン部に出力する複数の演算器と、
出力するクロック信号の周波数を変更可能であり、前記ニューロン部及び前記演算器にクロック信号を供給する発振器と、
前記発振器が出力するクロック信号の周波数を制御する制御部とを有することを特徴とするニューラルネットワーク装置。
(付記2)
前記複数のニューロン部の内の第i層(iは任意の自然数)のニューロン部と前記第i層の次の第(i+1)層のニューロン部とが前記第i層の演算器を介して接続されることを特徴とする付記1記載のニューラルネットワーク装置。
(付記3)
層毎に前記発振器を有することを特徴とする付記2記載のニューラルネットワーク装置。
(付記4)
前記一のニューロン部と前記他のニューロン部とは互いに双方向に前記重み付き入力を出力するよう接続されることを特徴とする付記1記載のニューラルネットワーク装置。
(付記5)
前記制御部は、前記ニューロン部及び前記演算器による所定の回数の学習を反復させた後の正解率に応じて、前記発振器が出力するクロック信号の周波数を制御することを特徴とする付記2又は3記載のニューラルネットワーク装置。
(付記6)
前記制御部は、前記所定の回数の学習を反復させた後の正解率が前回の正解率以下である場合、前記発振器が出力するクロック信号の周波数を増加することを特徴とする付記5記載のニューラルネットワーク装置。
(付記7)
前記制御部は、前記ニューロン部及び前記演算器により所定の回数の学習を反復させた後に、前記発振器が出力するクロック信号の周波数を増加することを特徴とする付記2又は3記載のニューラルネットワーク装置。
(付記8)
前記制御部は、前記ニューロン部及び前記演算器に設定する学習率に応じて、前記発振器が出力するクロック信号の周波数を制御することを特徴とする付記2又は3記載のニューラルネットワーク装置。
(付記9)
前記制御部は、温度パラメータに応じて、前記発振器が出力するクロック信号の周波数を制御することを特徴とする付記4記載のニューラルネットワーク装置。
(付記10)
前記制御部は、温度パラメータを低下させる毎に、前記発振器が出力するクロック信号の周波数を低下することを特徴とする付記9記載のニューラルネットワーク装置。
(付記11)
前記加算器は、前記複数の重み付き入力のすべてを加算するデジタル加算器であり、
前記デジタルアナログ変換器は、前記デジタル加算器の出力をデジタルアナログ変換処理し前記デルタシグマアナログデジタル変換器に出力することを特徴とする付記1〜10の何れかに記載のニューラルネットワーク装置。
(付記12)
前記デジタルアナログ変換器は、前記複数の重み付き入力のそれぞれをデジタルアナログ変換処理し、
前記加算器は、前記デジタルアナログ変換器が出力するアナログ信号のすべてを加算して前記デルタシグマアナログデジタル変換器に出力するアナログ加算器であることを特徴とする付記1〜10の何れかに記載のニューラルネットワーク装置。
(付記13)
複数のニューロン部のそれぞれが、複数の重み付き入力に係る加算処理を行うとともに、前記複数の重み付き入力に係るデジタルアナログ変換処理を行い、前記複数の重み付き入力をすべて加算した加算値を示すアナログ信号をデルタシグマアナログデジタル変換器により当該アナログ信号の振幅に応じたパルス信号に変換する工程と、
前記複数のニューロン部の内の一の前記ニューロン部が出力した前記パルス信号に重み値を乗算して前記重み付き入力として前記一のニューロン部とは異なる前記複数のニューロン部の内の他の前記ニューロン部に出力する工程と、
出力するクロック信号の周波数を変更可能な発振器が前記ニューロン部及び前記演算器に供給するクロック信号の周波数を、前記ニューロン部に要求される精度に応じて制御する工程とを有することを特徴とするニューラルネットワーク装置の制御方法。
10A、10B、1410 ニューロン部
11、1411 デジタル加算器
12、1412 デジタルアナログ変換器
13、1413 デルタシグマアナログデジタル変換器
16 デジタルアナログ変換器
17 アナログ加算器
20、1420 デジタル演算器
30、1430 可変周波数発振器
40、1440 制御部

Claims (10)

  1. 複数の重み付き入力に係る加算処理を行う加算器と、前記複数の重み付き入力に係るデジタルアナログ変換処理を行うデジタルアナログ変換器と、前記加算器及び前記デジタルアナログ変換器により得られる前記複数の重み付き入力をすべて加算した加算値を示すアナログ信号を当該アナログ信号の振幅に応じたパルス信号に変換して出力するデルタシグマアナログデジタル変換器とを、それぞれ有する複数のニューロン部と、
    前記複数のニューロン部の内の一の前記ニューロン部が出力した前記パルス信号に重み値を乗算して前記重み付き入力として前記一のニューロン部とは異なる前記複数のニューロン部の内の他の前記ニューロン部に出力する複数の演算器と、
    出力するクロック信号の周波数を変更可能であり、前記ニューロン部及び前記演算器にクロック信号を供給する発振器と、
    前記発振器が出力するクロック信号の周波数を制御する制御部とを有することを特徴とするニューラルネットワーク装置。
  2. 前記複数のニューロン部の内の第i層(iは任意の自然数)のニューロン部と前記第i層の次の第(i+1)層のニューロン部とが前記第i層の演算器を介して接続されることを特徴とする請求項1記載のニューラルネットワーク装置。
  3. 層毎に前記発振器を有することを特徴とする請求項2記載のニューラルネットワーク装置。
  4. 前記一のニューロン部と前記他のニューロン部とは互いに双方向に前記重み付き入力を出力するよう接続されることを特徴とする請求項1記載のニューラルネットワーク装置。
  5. 前記制御部は、前記ニューロン部及び前記演算器による所定の回数の学習を反復させた後の正解率に応じて、前記発振器が出力するクロック信号の周波数を制御することを特徴とする請求項2又は3記載のニューラルネットワーク装置。
  6. 前記制御部は、前記ニューロン部及び前記演算器により所定の回数の学習を反復させた後に、前記発振器が出力するクロック信号の周波数を増加することを特徴とする請求項2又は3記載のニューラルネットワーク装置。
  7. 前記制御部は、温度パラメータに応じて、前記発振器が出力するクロック信号の周波数を制御することを特徴とする請求項4記載のニューラルネットワーク装置。
  8. 前記加算器は、前記複数の重み付き入力のすべてを加算するデジタル加算器であり、
    前記デジタルアナログ変換器は、前記デジタル加算器の出力をデジタルアナログ変換処理し前記デルタシグマアナログデジタル変換器に出力することを特徴とする請求項1〜7の何れかに記載のニューラルネットワーク装置。
  9. 前記デジタルアナログ変換器は、前記複数の重み付き入力のそれぞれをデジタルアナログ変換処理し、
    前記加算器は、前記デジタルアナログ変換器が出力するアナログ信号のすべてを加算して前記デルタシグマアナログデジタル変換器に出力するアナログ加算器であることを特徴とする請求項1〜7の何れかに記載のニューラルネットワーク装置。
  10. 複数のニューロン部のそれぞれが、複数の重み付き入力に係る加算処理を行うとともに、前記複数の重み付き入力に係るデジタルアナログ変換処理を行い、前記複数の重み付き入力をすべて加算した加算値を示すアナログ信号をデルタシグマアナログデジタル変換器により当該アナログ信号の振幅に応じたパルス信号に変換する工程と、
    演算器が前記複数のニューロン部の内の一の前記ニューロン部が出力した前記パルス信号に重み値を乗算して前記重み付き入力として前記一のニューロン部とは異なる前記複数のニューロン部の内の他の前記ニューロン部に出力する工程と、
    出力するクロック信号の周波数を変更可能な発振器が前記ニューロン部及び前記演算器に供給するクロック信号の周波数を、前記ニューロン部に要求される精度に応じて制御する工程とを有することを特徴とするニューラルネットワーク装置の制御方法。
JP2016126941A 2016-06-27 2016-06-27 ニューラルネットワーク装置及びニューラルネットワーク装置の制御方法 Active JP6703265B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016126941A JP6703265B2 (ja) 2016-06-27 2016-06-27 ニューラルネットワーク装置及びニューラルネットワーク装置の制御方法
US15/606,220 US20170368682A1 (en) 2016-06-27 2017-05-26 Neural network apparatus and control method of neural network apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016126941A JP6703265B2 (ja) 2016-06-27 2016-06-27 ニューラルネットワーク装置及びニューラルネットワーク装置の制御方法

Publications (2)

Publication Number Publication Date
JP2018005297A JP2018005297A (ja) 2018-01-11
JP6703265B2 true JP6703265B2 (ja) 2020-06-03

Family

ID=60675886

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016126941A Active JP6703265B2 (ja) 2016-06-27 2016-06-27 ニューラルネットワーク装置及びニューラルネットワーク装置の制御方法

Country Status (2)

Country Link
US (1) US20170368682A1 (ja)
JP (1) JP6703265B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018137411A1 (zh) * 2017-01-25 2018-08-02 清华大学 神经网络信息转换方法、系统及计算机设备
CN111279365A (zh) * 2017-10-26 2020-06-12 深圳源光科技有限公司 计算单元
JP6697042B2 (ja) * 2018-08-31 2020-05-20 ソニーセミコンダクタソリューションズ株式会社 固体撮像システム、固体撮像方法及びプログラム
US20220075444A1 (en) 2019-01-24 2022-03-10 Sony Semiconductor Solutions Corporation Voltage control device
US11157804B2 (en) * 2019-01-25 2021-10-26 Northrop Grumman Systems Corporation Superconducting neuromorphic core
CN111523655B (zh) * 2019-02-03 2024-03-29 上海寒武纪信息科技有限公司 处理装置及方法
US11630992B2 (en) * 2019-07-05 2023-04-18 Electronics And Telecommunications Research Institute Neural network generation method for neuromorphic computing and apparatus for the same
US20210089876A1 (en) * 2019-09-23 2021-03-25 Intel Corporation Oscillator based neural network apparatus
KR102422545B1 (ko) * 2019-11-25 2022-07-20 울산과학기술원 모바일 단말기에서 인공 신경망 추론을 수행하기 위한 장치 및 방법
KR20210100277A (ko) 2020-02-06 2021-08-17 삼성전자주식회사 전력 최적화 스케쥴러의 동작 방법 및 전력 최적화 스케쥴러를 포함하는 컴퓨팅 장치
CN113255875A (zh) * 2020-02-07 2021-08-13 华为技术有限公司 神经网络电路和神经网络系统
CN111340194B (zh) * 2020-03-02 2022-09-06 中国科学技术大学 脉冲卷积神经网络神经形态硬件及其图像识别方法
CN111611528B (zh) * 2020-04-03 2023-05-02 深圳市九天睿芯科技有限公司 电流值可变的电流积分和电荷共享的多位卷积运算模组
CN111611529B (zh) * 2020-04-03 2023-05-02 深圳市九天睿芯科技有限公司 电容容量可变的电流积分和电荷共享的多位卷积运算模组
US11468308B2 (en) * 2020-05-01 2022-10-11 UMNAI Limited Architecture for a hardware based explainable neural network
US20220004182A1 (en) * 2020-07-02 2022-01-06 Nec Laboratories America, Inc. Approach to determining a remaining useful life of a system
JPWO2022009542A1 (ja) 2020-07-10 2022-01-13

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5542054A (en) * 1993-12-22 1996-07-30 Batten, Jr.; George W. Artificial neurons using delta-sigma modulation
WO2013023068A1 (en) * 2011-08-11 2013-02-14 Greenray Industries, Inc. Neural network frequency control
JP5951959B2 (ja) * 2011-10-28 2016-07-13 株式会社マキタ 温度検出装置及びバッテリパック
US9602088B1 (en) * 2015-09-11 2017-03-21 Texas Instruments Incorporated Ultra-low power comparator with sampling control loop adjusting frequency and/or sample aperture window

Also Published As

Publication number Publication date
US20170368682A1 (en) 2017-12-28
JP2018005297A (ja) 2018-01-11

Similar Documents

Publication Publication Date Title
JP6703265B2 (ja) ニューラルネットワーク装置及びニューラルネットワーク装置の制御方法
KR102653822B1 (ko) 혼성 신호 컴퓨팅 시스템 및 방법
US20220100255A1 (en) Unit Element for performing Multiply-Accumulate Operations
US9197240B1 (en) Method and circuit for noise shaping SAR analog-to-digital converter
US9654135B2 (en) AD converter including a capacitive DAC
US20200356848A1 (en) Computing circuitry
CN111144558B (zh) 基于时间可变的电流积分和电荷共享的多位卷积运算模组
CN111630527A (zh) 在神经网络中使用存储器的模拟数字转换器
US20230359571A1 (en) System and methods for mixed-signal computing
WO2020115746A1 (en) Delta-sigma modulation neurons for high-precision training of memristive synapses in deep neural networks
KR20150083399A (ko) 필터링 특성이 개선된 기준 전압 생성기
US11783171B2 (en) Computing circuitry
KR102094469B1 (ko) 디지털-아날로그 변환 장치 및 방법
US20220113942A1 (en) Throughput and precision-programmable multiplier-accumulator architecture
US9800261B2 (en) Third order loop filter and delta-sigma modulator including the third order loop filter
KR101012684B1 (ko) 1/2 승수 기준 전압을 누적하는 아날로그 디지털 변환기
US20230261665A1 (en) Successive-approximation analog-to-digital converters
JP2014090308A (ja) 逐次比較型a/d変換器及びそれを用いたマルチビットデルタシグマ変調器
US8957804B2 (en) Successive approximation A/D converter
JP3256738B2 (ja) 非線形演算回路
CN115087990A (zh) 神经放大器、神经网络和传感器设备
CN112514262A (zh) 处理电路
JP5732031B2 (ja) パイプライン型a/dコンバータ
Moradkhani et al. A new approach to optimize the defuzzification unit of fuzzy systems
JP2020009112A (ja) ニューラルネットワーク回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190311

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200317

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200325

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200407

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200420

R150 Certificate of patent or registration of utility model

Ref document number: 6703265

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150