JP6569755B1 - ニューラルネットワーク装置、信号生成方法およびプログラム - Google Patents
ニューラルネットワーク装置、信号生成方法およびプログラム Download PDFInfo
- Publication number
- JP6569755B1 JP6569755B1 JP2018040214A JP2018040214A JP6569755B1 JP 6569755 B1 JP6569755 B1 JP 6569755B1 JP 2018040214 A JP2018040214 A JP 2018040214A JP 2018040214 A JP2018040214 A JP 2018040214A JP 6569755 B1 JP6569755 B1 JP 6569755B1
- Authority
- JP
- Japan
- Prior art keywords
- signal
- value
- pulse width
- neural network
- width modulation
- 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
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 149
- 238000000034 method Methods 0.000 title claims description 74
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 title claims description 5
- 238000013139 quantization Methods 0.000 claims abstract description 83
- 230000008859 change Effects 0.000 claims description 27
- 238000001514 detection method Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 abstract description 48
- 230000006870 function Effects 0.000 description 44
- 230000010354 integration Effects 0.000 description 44
- 238000010586 diagram Methods 0.000 description 30
- 230000004048 modification Effects 0.000 description 29
- 238000012986 modification Methods 0.000 description 29
- 239000008186 active pharmaceutical agent Substances 0.000 description 28
- 238000004088 simulation Methods 0.000 description 16
- 238000003860 storage Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 9
- 238000003491 array Methods 0.000 description 6
- 230000007423 decrease Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000000630 rising effect Effects 0.000 description 4
- 238000000605 extraction Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 210000000225 synapse Anatomy 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 101000738901 Homo sapiens PMS1 protein homolog 1 Proteins 0.000 description 1
- 108010074346 Mismatch Repair Endonuclease PMS2 Proteins 0.000 description 1
- 102100037480 Mismatch repair endonuclease PMS2 Human genes 0.000 description 1
- 102100037482 PMS1 protein homolog 1 Human genes 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000008021 deposition Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003487 electrochemical reaction Methods 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005415 magnetization Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000001465 metallisation Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
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)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
【解決手段】入力信号の離散値を、予め定められた閾値に基づいて入力信号の量子化段階数よりも少ない段階数の離散値に変換することにより間引き信号を生成する間引き部と、間引き部が生成する間引き信号の離散値をパルス幅変調することにより、間引き信号の離散値をパルス幅によって示すパルス幅変調信号を生成する変調部と、可変な特性の値に応じた重みを、変調部が生成するパルス幅変調信号に対して乗算することにより、パルス幅変調信号が重み付けされた重み付け信号を出力するニューロモルフィック素子を含む重み付け部と、を備えるニューラルネットワーク装置。
【選択図】図1
Description
深層学習をはじめ、ニューラルネット技術を用いた高度な情報の識別技術、分類技術が金融、マーケティング、認証、セキュリティなどの広い分野で実用化されている。このような技術では、通常、膨大な量の積和演算が必要であり、クラウドサーバあるいは巨大な計算機を用いて実行される場合が多い。
以下、図面を参照し、本発明の第1の実施形態について説明する。
図1は、本発明の実施形態に係るニューラルネットワークシステム1の概略的な構成を示すブロック図である。
ニューラルネットワークシステム1は、制御装置11と、素子アレイ部12を備える。
制御装置11は、識別制御部21と、重み演算制御部22と、重み割り当て制御部23と、記憶部24を備える。
制御装置11は、素子アレイ部12に関する制御を行う。
識別制御部21は、ニューラルネットワークにおける識別の処理を制御する。
重み演算制御部22は、ニューロモルフィック素子に割り当てられる重みの演算(計算)の処理を制御する。
重み割り当て制御部23は、ニューロモルフィック素子に対して重みを割り当てる。
記憶部24は、情報を記憶する。本実施形態では、説明の便宜上、1個の記憶部24を示したが、他の構成例として、制御装置11が2個以上の記憶部を備えてそれぞれの記憶部を使い分けてもよい。
図2に示されるニューラルネットワーク回路101は、図1に示されるニューラルネットワークシステム1の機能を実装した回路の一例である。
ニューラルネットワーク回路101は、識別用制御回路111と、重み演算制御回路112と、重み割り当て制御回路113と、素子アレイ121と、入出力インタフェース回路(入出力IF回路)122と、入出力インタフェース回路(入出力IF回路)123を備える。
図1および図2の例では、素子アレイ121および入出力IF回路122〜123により素子アレイ部12の機能が実現されている。
素子アレイ121は、複数のニューロモルフィック素子を含む。
本実施形態では、素子アレイ121において、このようなニューロモルフィック素子を複数使用して、所望のニューラルネットワークに対応する積和演算を行う回路が構成されている。素子アレイ121への信号の入力および素子アレイ121からの信号の出力は、入出力IF回路122、123を介して行われる。素子アレイ121の回路は、一例として、マトリクス状になっており、マトリクスの一辺(例えば、縦の辺)における信号の入出力が入出力IF回路122を介して行われ、マトリクスの他の一辺(例えば、横の辺)における信号の入出力が入出力IF回路123を介して行われる。
また、識別用制御回路111は、例えば、素子アレイ121により実現されるニューラルネットワークについて、学習(機械学習)を行う機能を有する。
また、本実施形態では、重み演算制御回路112は、素子アレイ121に含まれるニューロモルフィック素子の特性の分解能よりも高い精度で、素子アレイ121により実現されるニューラルネットワークにおける重み(結合重み)の値を演算する機能を有する。そして、本実施形態では、重み演算制御回路112は、素子アレイ121に含まれるニューロモルフィック素子に割り当てる適切な重みの値(本実施形態では、誤差あるいは識別精度に関する所定の条件を満たす重みの値)を演算する機能を有する。
また、本実施形態では、重み演算制御回路112は、識別用制御回路111により取得された識別結果の情報(例えば、学習に関する情報)に基づいて、素子アレイ121に含まれるニューロモルフィック素子に割り当てる重みの値を更新(演算)する機能を有する。
重み割り当て制御回路113は、一例として、素子アレイ121に含まれるニューロモルフィック素子に対して所定の信号を送信することで、当該信号に応じた重みの値を当該ニューロモルフィック素子に設定してもよい。当該所定の信号としては、任意の信号が用いられてもよく、例えば、電圧パルスの信号が用いられてもよい。
具体例として、抵抗Rが変化し得るニューロモルフィック素子が乗算器の機能として用いられる場合、当該ニューロモルフィック素子のコンダクタンスG(=1/R)を使用し、当該ニューロモルフィック素子への入力信号として電圧Vを入力し、そのときに当該ニューロモルフィック素子を流れる電流I(=G×V)の大きさを乗算結果として使用する。
なお、素子アレイ121に複数のニューロモルフィック素子が含まれる構成では、例えば、それぞれのニューロモルフィック素子ごとに制御されてもよく、あるいは、すべてのニューロモルフィック素子についてまとめて制御されてもよく、あるいは、2個以上の異なるグループに複数のニューロモルフィック素子が分けられて、それぞれのグループごとにまとめて制御されてもよい。
具体例として、コンダクタンスの変化量(ΔG)が変動するニューロモルフィック素子では、例えば、コンダクタンスの値が低い値から高い値へ変化するにしたがって、当該ニューロモルフィック素子に与えられる電圧Vの一定変化量に対するコンダクタンスの変化量(ΔG)が増加していく場合がある。この場合、一例として、当該ニューロモルフィック素子のコンダクタンスの変化量(ΔG)を一定値間隔ごとに切り替えるために、コンダクタンスの値が低い値から高い値へ変化するにしたがって、当該ニューロモルフィック素子に与えられる電圧Vの変化量(切り替えの段階ごとの変化量)を小さくしていく構成が用いられてもよい。あるいは、コンダクタンスの変化量Δの変動に応じて、割り当てる重みの変化量を変動させるような構成が用いられてもよい。
なお、ニューロモルフィック素子の特性の変化量が他の態様で変動する場合においても、その態様に合わせて制御が行われればよい。このような制御の仕方は、例えば、あらかじめ設定されて記憶部24などに記憶されてもよい。
ここで、図3の例では、素子アレイ121において行われる積和演算の様子を概念的に示してある。素子アレイ121の回路構成としては、このような積和演算が実現される任意の回路構成が用いられてもよい。
素子アレイ121は、p(pは1以上の整数)個の値(信号)を入力し、r(rは1以上の整数)個の値(信号)を出力する。
素子アレイ121は、入力層に、p個のユニットA1−1〜A1−pと、1個のバイアス項のユニットA1−0を備える。
素子アレイ121は、隠れ層に、q個のユニットA2−1〜A2−qと、1個のバイアス項のユニットA2−0を備える。
素子アレイ121は、出力層に、r個のユニットA3−1〜A3−rを備える。
なお、本実施形態では、前段の層におけるそれぞれのユニットから後段の層におけるすべてのユニット(バイアス項のユニットを除く。)へ信号を出力するニューラルネットワークの構成を示すが、他の構成が用いられてもよい。図3の例では、入力層におけるそれぞれのユニットA1−0〜A1−pから隠れ層におけるq個のユニットA2−1〜A2−qへ信号を出力しており、また、隠れ層におけるそれぞれのユニットA2−0〜A2−qから出力層におけるr個のユニットA3−1〜A3−rへ信号を出力している。
また、入力層におけるユニットA1−0は、所定の値(信号)を出力する。
また、隠れ層におけるユニットA2−0は、所定の値(信号)を出力する。
一例として、画像211は、784個の画素(0番目〜783番目の画素)を有する画像である。この場合、入力層のユニット数(p)は784個となる。
また、図3の例では、識別結果の情報は、出力層から出力されるr個の情報である。
画像B1−1〜B1−nは、数字の「1」を手書きした場合における複数の異なる手書きパターンの画像である。
画像B2−1〜B2−nは、数字の「2」を手書きした場合における複数の異なる手書きパターンの画像である。
画像B0−1〜B0−nは、数字の「0」を手書きした場合における複数の異なる手書きパターンの画像である。
なお、図4の例では、数字の「3」〜「9」については図示を省略してある。
また、図4の例では、数字の「1」〜「9」、「0」のすべてについて同じ数(n個)の画像を示したが、それぞれの数字ごとに異なる数の画像が用いられてもよい。
なお、ここでは、出力の値が大きい方が尤度が大きい構成としているが、逆に、出力の値が大きい方が尤度が小さくなるように構成されてもよい。
なお、図4に示される画像は、mnistの画像そのものではないが、説明の便宜上から、手書きの数字を表す画像を例示したものである。
一例として、ニューロモルフィック素子として、結晶と非晶質との相変化を段階的に制御するPCM(Phase Change Memory)を使用する素子が用いられてもよい。
他の例として、ニューロモルフィック素子として、電気化学的反応により金属析出とイオン化との間のパスの形成および消滅を利用するCBRAM(Conductive Bridge RAM)を使用する素子が用いられてもよい。
他の例として、ニューロモルフィック素子としてスピントロニクス(Spintronics)を使用する素子も用いられている。例えば、磁壁の制御による線形的抵抗変化を発生させるドメインウォール型、あるいは、スピン軌道トルク作用による磁化反転を使用したSOT(Spin Orbit Torque)型の素子の研究が進められている。
他の例として、ニューロモルフィック素子として、TaO2等の媒体に金属析出によるフィラメントを形成して抵抗変化を利用するReRAM(Resistive Random Access Memory)を使用する素子が用いられてもよい。
なお、ニューロモルフィック素子としては、任意の特性を変化させることが可能なものが用いられてもよく、例えば、抵抗、あるいは、光位相などの特性を変化させることが可能なものが用いられてもよい。
分解能が有限であるニューロモルフィック素子をニューラルネットワークに適用する場合について、ニューラルネットワークの性能に与える影響を説明する。
ニューロモルフィック素子は、完全なアナログ線形的なコンダクタンス(G)の変化特性を有しておらず、有限な分解能を有している。ニューロモルフィック素子のコンダクタンス変化の分解能(本実施形態では、ビットの個数)が決まっている場合、値のダイナミックレンジ(全体的な幅)と量子化ステップサイズ(量子化ステップの幅)とは比例関係にある。
ここでは、分解能を固定した条件を想定する。各層のニューロモルフィック素子に割り当てられるダイナミックレンジ(値域)によって、識別性能への影響が変わり得ると考えられる。
なお、本実施形態において、実数を用いたシミュレーションはコンピュータを用いて実行されることから、当該シミュレーションにおいて「実数」といっているのは、厳密には実数ではなく、コンピュータの演算語長の制約によって離散化された値である。
例えば、1層目における重みの最大値、最小値、平均値、および2層目における重みの最大値、最小値、平均値が表されるグラフを考える(図示は省略。)。
(±2、±2) 76.92[%]
(±1、±2) 83.41[%]
(±2、±1) 72.02[%]
(±1、±1) 84.90[%]
(±0.5、±0.5) 94.88[%]
(±0.5、±0.3) 91.45[%]
(±0.3、±0.5) 94.01[%]
(±0.3、±0.3) 89.81[%]
(±0.1、±0.1) 69.46[%]
(±0.05、±0.05) 57.09[%]
一つの推測結果として、ニューロモルフィック素子に割り当てられるダイナミックレンジとしては、上限値および下限値の理論値が用いられる場合が最適であるとは限られず、ダイナミックレンジが小さい方が有利となる場合もあり得る。量子化ステップサイズが小さいことが重要であると考えられるが、最適値があると考えられる。
他の一つの推測結果として、1層目における量子化ステップサイズを、2層目における量子化ステップサイズと比べて、小さくする方が有利となり得る。
通常、ニューロモルフィック素子において、量子化ステップサイズが小さくなると、重みの誤差が減少する一方、重みが取り得る値のダイナミックレンジが小さくなる。また、ニューロモルフィック素子において、ダイナミックレンジが小さくなると、本来の重みの値によって演算される値が上限あるいは下限に固着する可能性が増加し、誤識別の原因となる。本実施形態では、以下で説明するように、良好な解(好ましくは、最適解)を求める。
本実施形態において想定するニューラルネットワークについて説明する。なお、本実施形態では、図3に示されるニューラルネットワークを想定する。
入力層におけるユニット数をp個とし、バイアス項の1個のユニットも設ける。
隠れ層におけるユニット数をq個とし、バイアス項の1個のユニットも設ける。
出力層におけるユニット数をr個とする。
重みw(L) s,tについて、Lは層の番号を表し、sは出力側の層のユニットの番号を表し、tは入力側の層のユニットの番号を表す。ここで、本実施形態では、入力層と隠れ層との間を第1層(L=1)とし、隠れ層と出力層との間を第2層(L=2)とする。
以下で、重みの分解能、ダイナミックレンジおよび量子化ステップサイズが識別性能に与える影響について説明する。
xi(i=0、1、2、・・・、p)は入力層におけるバイアス項および出力値(本実施形態では、入力値と同じ値)であるとし、yj(j=0、1、2、・・・、q)は隠れ層におけるバイアス項および出力値であるとする。
式(1)に示されるように、2層目における重みw(2) k,jの分解能の制約によって生じる量子化誤差(符号Δが付された項)を導入する。
ニューラルネットワークからの出力値zk(k=1、2、・・・、r)は、式(2)のように表される。
ここで、uj<0である場合には、出力が0になるため、この式は恒等的に成立する。
αおよびβは、式(9)に示される条件を満たす一様な確率分布を構成することを想定する。
ニューラルネットワークからの出力値zk(k=1、2、・・・、r)の誤差の成分(Δzk)は、式(10)のように表される。
ここで、識別精度は、例えば、(1/Δzk)の値、あるいは、それに比例などする値で表すことが可能である。
同様に、本実施形態では、素子アレイ121では、2層目における重みw(2) k,jについて、それぞれのk、jの組み合わせごとに1個のニューロモルフィック素子を備える。
なお、共通化することが可能な2個以上の重み演算がある場合には、これら2個以上の重み演算についてニューロモルフィック素子が、1個のニューロモルフィック素子に共通化されてもよい。
一例として、2個のパラメーターα、βの値を様々に変化させて所定の誤差を表す値を演算し、当該誤差を表す値が小さくなる(好ましくは、最小になる)パラメーターα、βの値を求める手法が用いられてもよい。当該手法では、例えば、2個のパラメーターα、βの値を総当たりで変化させてもよい。適切なパラメーターα、βの値が決定されることで、ニューロモルフィック素子に設定すべき適切なダイナミックレンジが決定される。
なお、所定の誤差を表す値が小さくなる(好ましくは、最小になる)という条件の代わりに、所定の識別精度が大きくなる(好ましくは、最大になる)という条件が用いられてもよい。
ここで、2個のパラメーターα、βの値は、例えば、識別対象の数あるいは内容などによって、変わり得る。
一例として、mnistのテストセット(テストのための画像の組み合わせ)の識別において、入力層の次元を784個のユニットとし、隠れ層の次元を100個のユニットとし、出力層の次元を10個のユニットとすることで、実数演算において97[%]以上の識別性能を達成することができる。
(要素1)量子化ステップサイズによって発生する純量子化誤差という要素がある。これは、(量子化ステップサイズ/2)に相当する分を最小、最大とする分布である。
(要素2)割り当てられるダイナミックレンジが実数演算値によるレンジよりも狭い場合に、割り当てられるダイナミックレンジを超えた値(実数演算値)に発生する切り捨て誤差という要素がある。
なお、所定の誤差を表す値が小さくなる(好ましくは、最小になる)という条件の代わりに、所定の識別精度が大きくなる(好ましくは、最大になる)という条件が用いられてもよい。
図5は、本発明の実施形態に係るパラメーターα、βに関する特性1011の一例を示す図である。
図5に示されるグラフでは、横軸にパラメーターaを表し、縦軸に関数P(a)を表わしている。そして、図5の例では、特性1011を示してある。特性1011は、Aを所定の正の値として、a=−Aからa=+Aまでの間、一定値となる特性である。ここで、ニューラルネットワークにおける重みは正規乱数等で初期化されることが一般的であり、その重みの値が一様に分布すると仮定し、その場合、量子化誤差もまた一様分布であると想定した。なお、この想定は一例であり、本実施形態では、必ずしも量子化誤差の分布形状に依存するものではない。また、特性1011は、全体の確率が1となる確率密度関数である。
ここで、(2×A)が量子化ステップサイズであり、{(2×A)×分解能=ダイナミックレンジ}という関係がある。
式(8)より、パラメーターαおよびパラメーターβは重みの真値に対する誤差成分の割合を示すものであるため、パラメーターαおよびパラメーターβをそれぞれ正の値とすると、パラメーターαおよびパラメーターβは、それぞれ、(2×A)/ダイナミックレンジ幅に相当する。つまり、パラメーターαおよびパラメーターβは、それぞれ、量子化ステップサイズに対応する値である。
なお、ここでは、説明の便宜上から、2個のパラメーターα、βについて共通の文字Aを用いて説明したが、本実施形態では、2個のパラメーターα、βの値を異ならせる。
ニューロモルフィック素子にダイナミックレンジを割り当てる手順の第1の例として、(第1の例における手順1)〜(第1の例における手順8)を示す。なお、同様な結果が得られれば、手順の順序が異なってもよい。
本例(第1の例)では、演算方法の一例として、各層の重みの量子化誤差に基づいて演算する方法を用いる。
本例では、ユーザーがコンピュータを操作することで、当該コンピュータによって以下の手順の処理を行う。なお、ユーザーにより行われる操作の一部または全部が、コンピュータにより自動で行われてもよい。
また、本例では、このようなコンピュータが所定の実数シミュレーターの機能を有しており、当該実数シミュレーターが(第1の例における手順1)〜(第1の例における手順8)の処理を実行することを想定して説明する。なお、これらの処理は、例えば、実数シミュレーター以外の機能により行われてもよく、それぞれの処理ごとに任意の機能(総じて2以上の異なる機能)により行われてもよい。また、これらの処理は、例えば、それぞれの処理ごとに任意のコンピュータ(総じて2以上の異なるコンピュータ)により行われてもよい。
)とする関数が用いられてもよい。他の例として、誤差に関する関数として、離散化された重みの値と真値との誤差の二乗値をすべての重みについて加算した結果を全体的な誤差(以下で、誤差二乗総和ともいう。)とする関数が用いられてもよい。
ニューロモルフィック素子にダイナミックレンジを割り当てる手順の第2の例として、(第2の例における手順1)〜(第2の例における手順5)を示す。なお、同様な結果が得られれば、手順の順序が異なってもよい。
本例(第2の例)では、演算方法の他の例として、識別精度を用いて演算する方法を用いる。なお、別の例として、最終段の出力について誤差の総和あるいは誤差の二乗の総和を用いて演算する方法が用いられてもよい。
本例では、ユーザーがコンピュータを操作することで、当該コンピュータによって以下の手順の処理を行う。なお、ユーザーにより行われる操作の一部または全部が、コンピュータにより自動で行われてもよい。
また、本例では、このようなコンピュータが所定の実数シミュレーターの機能を有しており、当該実数シミュレーターが(第2の例における手順1)〜(第2の例における手順5)の処理を実行することを想定して説明する。なお、これらの処理は、例えば、実数シミュレーター以外の機能により行われてもよく、それぞれの処理ごとに任意の機能(総じて2以上の異なる機能)により行われてもよい。また、これらの処理は、例えば、それぞれの処理ごとに任意のコンピュータ(総じて2以上の異なるコンピュータ)により行われてもよい。
(第2の例における手順2)は、(第1の例における手順2)と同様である。
ここで、他の例として、誤差に関する値として、式(11)に示されるΔzkが用いられてもよい。
また、識別精度が大きくなる条件としては、例えば、識別精度が所定の閾値以上となる(または、所定の閾値を超える)条件が用いられてもよい。
誤差を用いた条件が設定されたシミュレーションの結果の例と、識別精度を用いた条件が設定されたシミュレーションの結果の例を示す。
誤差を用いた条件が設定されたシミュレーションとして、誤差の二乗の総和が最小となるダイナミックレンジを探索するシミュレーションを行った。その結果、1層目における最適なダイナミックレンジは0.42となり、2層目における最適なダイナミックレンジは0.96となり、識別精度は95.64[%]となった。
一方、識別精度を用いた条件が設定されたシミュレーションとして、識別精度が最大となるダイナミックレンジを探索するシミュレーションを行った。その結果、1層目における最適なダイナミックレンジは0.42となり、2層目における最適なダイナミックレンジは0.96となり、識別精度は95.64[%]となった。
ここで、両者は一致した。このため、誤差を用いた条件が満たされるダイナミックレンジを採用することで、良好な識別精度が実現されることが推測される。
図6は、本発明の実施形態に係る重みの学習の結果の一例を示す図である。
図6に示されるグラフにおいて、横軸は学習サイクル(本実施形態では、エポックの回数)を表わしており、縦軸は重みの値を表わしている。
なお、エポックは、トレーニング用の1個の識別対象(例えば、1枚の画像)についてニューラルネットワークの誤差を最小にする処理の単位を表す。
また、図6の例では、1層目におけるニューロモルフィック素子に設定するダイナミックレンジを「−0.5以上で+0.5以下の範囲」に設定しており、2層目におけるニューロモルフィック素子に設定するダイナミックレンジを「−1.0以上で+1.0以下の範囲」に設定している。図6の例では、1層目におけるニューロモルフィック素子に設定するダイナミックレンジに相当する範囲1131と、2層目におけるニューロモルフィック素子に設定するダイナミックレンジに相当する範囲1132を示してある。
図7に示されるグラフにおいて、2種類の横軸のうち、一方の軸は1層目におけるニューロモルフィック素子に設定されるダイナミックレンジ(1層目のレンジ)を表わしており、他方の軸は2層目におけるニューロモルフィック素子に設定されるダイナミックレンジ(2層目のレンジ)を表わしている。また、縦軸は、このようなダイナミックレンジの設定により得られる識別精度[%]を表わしている。
図7の例では、これら三者の関係を表す特性1211を示してあり、識別精度が最大となる位置に矢印1221(なお、図7の例では、矢印1221は縦軸と平行ではない。)を示してある。
図7の例では、識別精度が最大となる位置で、1層目のダイナミックレンジが「−0.42以上で+0.42以下の範囲」であり、2層目のダイナミックレンジが「−0.96以上で+0.96以下の範囲」であり、識別精度が「95.64[%]」である。
まず、図8および図9について説明する。
図8および図9の例では、ニューロモルフィック素子の特性の分解能が100ステップである場合を想定している。
図8は、すべての層(本実施形態では、1層目〜2層目)について同じダイナミックレンジをニューロモルフィック素子に設定した場合における結果の一例を示す図である。
図9は、本発明の実施形態に係る各層(本実施形態では、1層目、2層目)について異なるダイナミックレンジをニューロモルフィック素子に設定した場合における結果の一例を示す図である。
図8および図9に示されるグラフにおいて、横軸は学習サイクル(本実施形態では、エポックの回数)を表わしており、縦軸は重みの値を表わしている。
図8の例では、ニューロモルフィック素子を含むニューラルネットワークの回路の学習について、1層目における重みの最大値の特性1311と、1層目における重みの最小値の特性1312と、1層目における重みの平均値の特性1313と、2層目における重みの最大値の特性1321と、2層目における重みの最小値の特性1322と、2層目における重みの平均値の特性1323を示してある。
図8の例では、識別精度は「92.6[%]」である。
図9の例では、ニューロモルフィック素子を含むニューラルネットワークの回路の学習について、1層目における重みの最大値の特性1411と、1層目における重みの最小値の特性1412と、1層目における重みの平均値の特性1413と、2層目における重みの最大値の特性1421と、2層目における重みの最小値の特性1422と、2層目における重みの平均値の特性1423を示してある。
図9の例では、識別精度は「96.6[%]」である。
図10および図11の例では、ニューロモルフィック素子の特性の分解能が50ステップである場合を想定している。
図10は、すべての層(本実施形態では、1層目〜2層目)について同じダイナミックレンジをニューロモルフィック素子に設定した場合における結果の他の例を示す図である。
図11は、本発明の実施形態に係る各層(本実施形態では、1層目、2層目)について異なるダイナミックレンジをニューロモルフィック素子に設定した場合における結果の他の例を示す図である。
図10および図11に示されるグラフにおいて、横軸は学習サイクル(本実施形態では、エポックの回数)を表わしており、縦軸は重みの値を表わしている。
図10の例では、ニューロモルフィック素子を含むニューラルネットワークの回路の学習について、1層目における重みの最大値の特性1511と、1層目における重みの最小値の特性1512と、1層目における重みの平均値の特性1513と、2層目における重みの最大値の特性1521と、2層目における重みの最小値の特性1522と、2層目における重みの平均値の特性1523を示してある。
図10の例では、識別精度は「65.3[%]」である。
図11の例では、ニューロモルフィック素子を含むニューラルネットワークの回路の学習について、1層目における重みの最大値の特性1611と、1層目における重みの最小値の特性1612と、1層目における重みの平均値の特性1613と、2層目における重みの最大値の特性1621と、2層目における重みの最小値の特性1622と、2層目における重みの平均値の特性1623を示してある。
図11の例では、識別精度は「90.8[%]」である。
ここで、図8〜図11の例に示されるように、すべての層(本実施形態では、1層目〜2層目)について同じダイナミックレンジをニューロモルフィック素子に設定した場合と比べて、各層(本実施形態では、1層目、2層目)について異なるダイナミックレンジをニューロモルフィック素子に設定した場合の方が識別性能が良好になることが生じ得る。
上記では、ニューロモルフィック素子に設定されるダイナミックレンジが「−B以上で+B以下の範囲」(Bは任意の正の値であるとする。)であり、当該ダイナミックレンジの中央値が0である場合を示した。この場合におけるダイナミックレンジのオフセット量を0とする。
なお、本実施形態では、オフセット量の大きさにかかわらず、ダイナミックレンジの幅は一定であるとする。
ダイナミックレンジのオフセット量が0であるときと比べて、ダイナミックレンジのオフセット量が0ではないときの方が、識別精度が高くなる場合が生じ得る。
図12に示されるグラフにおいて、2種類の横軸のうち、一方の軸は1層目におけるニューロモルフィック素子に設定されるダイナミックレンジのオフセット量(1層目のオフセット量)を表わしており、他方の軸は2層目におけるニューロモルフィック素子に設定されるダイナミックレンジのオフセット量(2層目のオフセット量)を表わしている。また、縦軸は、このようなオフセット量の設定により得られる識別精度[%]を表わしている。
図12の例では、これら三者の関係を表す特性1711を示してあり、識別精度が最大となる位置に矢印1721(なお、図12の例では、矢印1721は縦軸と平行ではない。)を示してある。
図12の例では、識別精度が最大となる位置で、1層目のオフセット量が「0.0038」であり、2層目のオフセット量が「0.1196」であり、識別精度が「87.98[%]」である。
他の例として、コンピュータにより、各層におけるダイナミックレンジのオフセット量を様々に変化させて所定の誤差を表す値を演算し、当該誤差を表す値が小さくなる(好ましくは、最小になる)オフセット量を求める手法が用いられてもよい。なお、誤差を表す値が小さくなる(好ましくは、最小になる)オフセット量の代わりに、識別精度が大きくなる(好ましくは、最大になる)オフセット量が求められてもよい。
ニューラルネットワーク回路101では、素子アレイ121に含まれるニューロモルフィック素子について、ダイナミックレンジが割り当てられた後に、事後学習を行うことで、重みのチューニングを行ってもよい。
ここで、チューニングを行う手法としては、任意の手法が用いられてもよい。
ニューラルネットワーク回路101では、素子アレイ121に含まれるニューロモルフィック素子について、割り当てられたダイナミックレンジ(ダイナミックレンジの幅、オフセット量)、量子化ステップサイズ、分解能、各ニューロモルフィック素子に設定されたステップ番号などの情報を記憶部(記憶部24に相当するメモリなど)に記憶してもよい。
素子アレイ121では、例えば、複数の層があり、それぞれの層ごとに複数(複数のユニット)のニューロモルフィック素子を備える。
一例として、複数の層を有するニューラルネットワークに含まれるニューロモルフィック素子について、それぞれの層ごとに、共通の離散化ステップサイズを使用して、共通のダイナミックレンジ(例えば、ダイナミックレンジの幅、オフセット量)が求められて設定されてもよい。
他の例として、それぞれの層ごとに含まれる複数のニューロモルフィック素子を2個以上のグループに分けて、それぞれのグループごとに、共通の離散化ステップサイズを使用して、共通のダイナミックレンジ(例えば、ダイナミックレンジの幅、オフセット量)が求められて設定されてもよい。この場合、同一の層において、当該層に含まれる複数のニューロモルフィック素子が2個以上のグループにグループ分けされる。これにより、例えば、それぞれのユニットの重要度(寄与度)などに応じて、異なるダイナミックレンジを設定することが可能である。
他の例として、それぞれのニューロモルフィック素子ごとに、任意の異なり得る離散化ステップサイズを使用して、任意の異なり得るダイナミックレンジ(例えば、ダイナミックレンジの幅、オフセット量)が求められて設定されてもよい。これにより、例えば、それぞれのニューロモルフィック素子の重要度(寄与度)などに応じて、異なるダイナミックレンジを設定することが可能である。
図13は、本発明の実施形態に係るニューラルネットワーク回路101において行われる処理の手順の一例を示す図である。
コンピュータにより、素子アレイ121に含まれるニューロモルフィック素子の特性の分解能よりも高い精度で、素子アレイ121により実現されるニューラルネットワークにおける重みの値(真値)を演算する。
コンピュータにより、素子アレイ121に含まれるニューロモルフィック素子の特性の分解能を想定した演算を行う。これにより、例えば、コンピュータにより、素子アレイ121に含まれるニューロモルフィック素子の特性の分解能を想定した場合について、誤差に関する関数、あるいは、識別精度に関する関数を演算する。
コンピュータにより、素子アレイ121に含まれるニューロモルフィック素子について、所定の条件を満たす量子化ステップサイズを演算する。当該所定の条件としては、例えば、誤差に関する条件、あるいは、識別精度に関する条件のうちの一方または両方が用いられてもよい。
コンピュータにより、素子アレイ121に含まれるニューロモルフィック素子について、ダイナミックレンジのオフセット量を演算する。
ここで、あらかじめオフセット量が所定値(例えば、0)に設定されている場合には、ステップS4の処理は省略されてもよい。
コンピュータにより、重みのダイナミックレンジを演算する。この場合、例えば、分解能、量子化ステップサイズおよびオフセット量に基づいて、ダイナミックレンジが演算される。
演算されたダイナミックレンジがニューラルネットワーク回路101に設定される。そして、ニューラルネットワーク回路101により、素子アレイ121により実現されるニューラルネットワークについて、所定の事後学習を行う。
なお、事後学習が不要である場合には、ステップS6の処理は省略されてもよい。
以上のように、本実施形態に係るニューラルネットワークシステム1では、分解能が有限であるニューロモルフィック素子により重み(結合重み)を実現する構成において、当該分解能より高い精度で実数シミュレーターなどにより求められた結合重みの真値を用いた場合と、当該ニューロモルフィック素子の特性に設定する離散化ステップサイズを用いた場合に基づいて、適した離散化ステップサイズが決定される。また、決定された離散化ステップサイズと、当該分解能に基づいて、ダイナミックレンジ(ダイナミックレンジの幅)が決定される。また、ダイナミックレンジのオフセット量(0、または、0以外の値)に基づいて、ダイナミックレンジ(ダイナミックレンジの幅およびオフセット量であり、上限値と下限値)が決定される。
また、例えば、ニューラルネットワークにおける重みの更新に使用される誤差逆伝搬法では、重みの更新量は入力データあるいは教師データの絶対値に依存し、層ごとに重みの取り得るダイナミックレンジが異なる。さらに、重みの更新量は、重みの更新に使用されるアルゴリズムに依存する。
そこで、本実施形態に係るニューラルネットワークシステム1では、量子化誤差がニューラルネットワークの識別性能に与える影響を考慮し、ニューロモルフィック素子に割り当てる重みの値を適切に設定する。これにより、本実施形態に係るニューラルネットワークシステム1では、ニューロモルフィック素子を用いたニューラルネットワークにおける識別性能の低下を抑制することができる。
また、ニューラルネットワークとしては、任意の種類のニューラルネットワークが用いられてもよく、例えば、全結合型のニューラルネットワーク、畳み込みニューラルネットワーク、あるいは、再帰型ニューラルネットワークなどが用いられてもよい。
例えば、任意の分野における積和演算を行うアレイ(積和演算アレイ)、あるいは、任意の分野における積和演算を含むアナログ演算器などに、本実施形態と同様な構成が適用されてもよい。
また、アレイに備えられるニューロモルフィック素子の分解能としては、様々な分解能が用いられてもよい。例えば、アレイがニューロモルフィック素子を含む複数の層を有する場合に、それぞれの層ごとに共通の分解能(同じ分解能)を有するニューロモルフィック素子を備えてもよい。また、このような場合に、異なる層におけるニューロモルフィック素子の分解能は異なる、構成が用いられてもよい。つまり、同一の層に含まれる複数のニューロモルフィック素子の分解能が同じである構成が用いられてもよく、また、ニューロモルフィック素子が含まれる層が異なると分解能も異なる構成が用いられてもよく、また、これら両方の構成が用いられてもよい。
以下、図14から図27を参照して、本発明の第2の実施形態について説明する。
図14は、本発明の第2の実施形態に係るニューラルネットワーク装置300の概略的な構成を示す図である。
ニューラルネットワーク装置300は、センシングデバイス310と、ADコンバータ320と、間引き回路330と、閾値取得部340と、PWM変調回路350と、ニューロモルフィック(Neuromorphic)デバイス360と、電流積分回路370とを備える。
ADコンバータ320は、センシングデバイス310が出力するアナログ信号を所定の量子化段階数(量子化ビット数)によってデジタル信号に変換する。なお、デジタル信号の量子化段階数のことを、デジタル信号の分解能ともいう。
この一例では、ADコンバータ320は、8ビットの量子化段階数(すなわち、0〜255の256段階)によって変換する。この場合、ADコンバータ320から出力されるデジタル信号の量子化段階数は、256段階である。ADコンバータ320は、変換後のデジタル信号を間引き回路330に対して出力する。
この閾値取得部340が取得する閾値thは、ニューロモルフィックデバイス360が出力する出力電流OC(重み付け信号)の重み付け結果に基づいて予め定められている。
図16は、本実施形態の間引き回路330による離散値変換の一例を示す図である。
この一例では、入力信号ISの量子化段階数(256段階)を4分割する閾値th1〜閾値th3が設定されている。より具体的には、閾値th1は、値64に設定されている。この場合、間引き回路330は、入力離散値IDVが閾値th1以下(すなわち、値64以下)である場合には、間引き後離散値DDVを0(ゼロ)として、離散値を変換する。同様にして、間引き回路330は、閾値th2の値(例えば、値128)、閾値th3の値(例えば、値192)を判定閾値にして、入力離散値IDVを間引き後離散値DDVに変換する。
すなわち、間引き回路330は、入力離散値IDVが0〜64である場合には、間引き後離散値DDVを0(ゼロ)とする。間引き回路330は、入力離散値IDVが65〜128である場合には、間引き後離散値DDVを1とする。間引き回路330は、入力離散値IDVが129〜192である場合には、間引き後離散値DDVを2とする。間引き回路330は、入力離散値IDVが193〜255である場合には、間引き後離散値DDVを3とする。
具体的には、間引き信号DSの間引き後離散値DDVが3である場合には、PWM変調回路350は、パルス幅3(時刻t0〜時刻t3)のパルス幅変調信号PMSを生成する(図17(A))。間引き信号DSの間引き後離散値DDVが2である場合には、PWM変調回路350は、パルス幅2(時刻t0〜時刻t2)のパルス幅変調信号PMSを生成する(図17(B))。間引き信号DSの間引き後離散値DDVが1である場合には、PWM変調回路350は、パルス幅1(時刻t0〜時刻t1)のパルス幅変調信号PMSを生成する(図17(C))。間引き信号DSの間引き後離散値DDVが0(ゼロ)である場合には、PWM変調回路350は、パルス幅0(ゼロ)のパルス幅変調信号PMSを生成する(図17(D))。
図14に戻り、PWM変調回路350は、生成したパルス幅変調信号PMSをニューロモルフィックデバイス360に対して出力する。
ニューロモルフィックデバイス360は、パルス幅変調信号PMSと、予め設定されている重みとに基づいて、重みづけ信号である出力電流OCを出力する。
ニューロモルフィックデバイス360は、入力信号X[0]に対して、重みw[0,1]、重みw[0,2]、及び重みw[0,3]をそれぞれ乗算して、出力電流OCとして出力する。同様にして、ニューロモルフィックデバイス360は、入力信号X[1]に対して、重みw[1,1]、重みw[1,2]、及び重みw[1,3]をそれぞれ乗算して、出力電流OCとして出力する。ニューロモルフィックデバイス360は、入力信号X[2]に対して、重みw[2,1]、重みw[2,2]、及び重みw[2,3]をそれぞれ乗算して、出力電流OCとして出力する。
電流積分回路370−1は、出力電流OC1の電流の大きさを積算する。電流積分回路370−2は、出力電流OC2の電流の大きさを積算する。電流積分回路370−3は、出力電流OC3の電流の大きさを積算する。
つまり、入力信号ISの入力離散値IDVの量子化段階数が多いほど、電流積分回路370における出力電流OCの積算時間が長くなり、演算時間が長くなる(例えば、スループットが低下する)という問題が生じる。
また、電流積分回路370における積算結果は、電源電圧変動や外乱などにより出力電流OCに含まれるノイズ成分の影響を受ける。電流積分回路370における出力電流OCの積算時間が長くなるほど、出力電流OCに含まれるノイズ成分の影響を受けやすくなる。
このノイズ成分の影響を低減して、電流積分回路370における積算結果の精度を高めるためには、例えば、パルス幅変調信号PMSの1離散値あたりのパルス幅(単位パルス幅)を長くすることにより、出力電流OCのS/N比を大きくすることが考えられる。しかしながら、パルス幅変調信号PMSの単位パルス幅を長くすると、電流積分回路370における積算時間がさらに長くなるという問題が生じる。
図20は、本実施形態のニューロモルフィックデバイス360に供給されるパルス幅変調信号PMSの変形例を示す図である。本変形例においては、PWM変調回路350が出力するパルス幅変調信号PMSの立ち上がりタイミング及び立下りタイミングを調整する機能を有している点において、上述した実施形態と相違する。
この一例では、間引き回路330は、間引き信号DS0〜間引き信号DS2を生成する。同図に示す一例では、間引き信号DS0は値0(ゼロ)を、間引き信号DS1は値1を、間引き信号DS2は値2をそれぞれ示している。PWM変調回路350は、間引き信号DS0に対応するパルス幅変調信号PMSとしてのパルス幅変調信号PMS10を生成する。同様に、PWM変調回路350は、間引き信号DS1に対応するパルス幅変調信号PMSとしてのパルス幅変調信号PMS11を、間引き信号DS2に対応するパルス幅変調信号PMSとしてのパルス幅変調信号PMS12をそれぞれ生成する。同図に示す一例では、パルス幅変調信号PMS10のパルス幅は0(ゼロ)である。パルス幅変調信号PMS11のパルス幅はΔt1である。また、パルス幅変調信号PMS12のパルス幅はΔt2である。
図21は、本実施形態の間引き回路330が参照する閾値thの変形例を示す図である。
図22は、本実施形態の間引き回路330による離散値変換の変形例を示す図である。
上述した実施形態においては、閾値thが入力離散値IDVを等分割(例えば、4等分)していた(図15及び図16を参照。)。本変形例においては、閾値thが入力離散値IDVを不等分割する点において、上述した実施形態と相違する。
すなわち、間引き回路330は、入力離散値IDVが0〜96である場合には、間引き後離散値DDVを0(ゼロ)とする。間引き回路330は、入力離散値IDVが97〜128である場合には、間引き後離散値DDVを1とする。間引き回路330は、入力離散値IDVが129〜160である場合には、間引き後離散値DDVを2とする。間引き回路330は、入力離散値IDVが161〜255である場合には、間引き後離散値DDVを3とする。
例えば、センシングデバイス310によるセンシング対象の情報が、画像である場合、イメージセンサの画素が出力する画素値(例えば、画素の明るさ)が入力離散値IDVに変換される。具体的には、センシング対象の情報が、図4に示したような画像である場合、画像の明るさが255階調のグレースケールによって変換される。例えば、画像の明るさが0(例えば、完全な黒)である部分は、入力離散値IDVが0(ゼロ)に、画像の明るさが255(例えば、完全な白)である部分は、入力離散値IDVが255にそれぞれ変換される。このとき、ニューラルネットワーク装置300において、例えば、画像に示されている文字(数字)の形状やその意味を解釈する場合には、画像の白と黒とが切り替わる輪郭部分の情報が比較的重要であって、他の部分(例えば、黒い背景の部分や、文字(数字)内の白の部分)の明度の変化のような情報は比較的重要でない場合がある。この一例のように画像の白と黒とが切り替わる部分の情報が重要であるとすると、256段階の入力離散値IDVの範囲のうち、白と黒とが切り替わる97〜160の範囲(例えば、明るい灰色〜暗い灰色)の部分の情報は比較的重要であって、その情報量は多いといえる。また、この一例の場合、256段階の入力離散値IDVの範囲のうち、0〜96の範囲(例えば、完全な白〜明るい灰色)、及び161〜255の範囲(例えば、暗い灰色〜完全な黒)の部分の情報は比較的重要ではなく、その情報量は少ないといえる。
図23は、本実施形態の間引き回路330が参照する閾値thの第2の変形例を示す図である。
図24は、本実施形態の間引き回路330による離散値変換の第2の変形例を示す図である。
上述した実施形態においては、複数の閾値thによって入力離散値IDVを分割(例えば、4分割)していた(図15及び図16を参照。)。本変形例においては、単一の閾値thによって入力離散値IDVを2分割する点において、上述した実施形態と相違する。
図19を参照して説明した場合と同様に、ニューロモルフィックデバイス360は、入力信号X[0]に対して、重みw[0,1]、重みw[0,2]、及び重みw[0,3]をそれぞれ乗算して、出力電流OCとして出力する。同様にして、ニューロモルフィックデバイス360は、入力信号X[1]に対して、重みw[1,1]、重みw[1,2]、及び重みw[1,3]をそれぞれ乗算して、出力電流OCとして出力する。ニューロモルフィックデバイス360は、入力信号X[2]に対して、重みw[2,1]、重みw[2,2]、及び重みw[2,3]をそれぞれ乗算して、出力電流OCとして出力する。
また、上述したように、電流積分回路370において出力電流OCの積算時間が長くなると、ノイズ成分の影響により積算結果の精度が低下しやすい。本変形例のニューラルネットワーク装置300によれば、出力電流OCの積算をする必要がないため、出力電流OCに含まれるノイズ成分の影響を受けにくくすることができる。さらにノイズ低減を図る場合は、複数回の電流検出値を平均化するなどの手法も適用可能である。したがって、本変形例のニューラルネットワーク装置300によれば、積算結果の精度が低下してしまうことを抑止することができる。
ニューロモルフィックデバイス360は、二値化NNとして構成されている場合であっても、学習段階において、ニューロモルフィックデバイス360が出力する出力電流OCに基づいて、重みw及び分解能を調整することにより、多値ニューラルネットワークと同程度の識別性能を得ることができる。
なお、上述したように、間引き回路330が生成する間引き信号DSの離散値の段階数は、入力信号ISの量子化段階数よりも少ない段階数の範囲にして定められている。つまり、この一例の場合には、間引き回路330が生成する間引き信号DSの離散値の段階数が、入力信号ISの量子化段階数よりも少ない段階数の範囲において、入力信号の値に基づいて可変にして定められている。
なお、ここでいう「コンピュータシステム」とは、オペレーティング・システム(OS:Operating System)あるいは周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また、記録媒体としては、例えば、一時的にデータを記録する記録媒体であってもよい。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)あるいは電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
一構成例として、可変な特性(例えば、コンダクタンスなど)の値に応じた重みを信号に乗算するニューロモルフィック素子を含むアレイ(本実施形態では、素子アレイ121)の制御装置(本実施形態では、制御装置11)であって、ニューロモルフィック素子の特性の分解能よりも高い精度で求められた重みの真値(本実施形態では、実数シミュレーターにより演算された真値)を用いた場合とニューロモルフィック素子の特性について設定される離散化ステップサイズ(本実施形態では、離散化ステップサイズに対応するパラメーターα、β)を用いた場合に基づいて所定の条件(誤差を小さくする所定の条件、あるいは、精度を大きくする所定の条件)が満たされるように求められた離散化ステップサイズを使用して、ニューロモルフィック素子の特性を制御する制御部(本実施形態では、制御装置11の機能であり、例えば、重み割り当て制御部23)を備える、制御装置である。
一構成例として、制御装置において、制御部は、離散化ステップサイズと分解能と所定のオフセット量に応じたニューロモルフィック素子のダイナミックレンジを使用して、ニューロモルフィック素子の特性を制御する。
一構成例として、制御装置において、制御部は、アレイがニューロモルフィック素子を含む複数の層を有する場合に、それぞれの層ごとに共通の離散化ステップサイズを使用して、ニューロモルフィック素子の特性を制御する。
一構成例として、制御装置において、制御部は、アレイが複数のニューロモルフィック素子を含む層を有する場合に、同一の層に含まれる複数のニューロモルフィック素子がグループ分けされたグループごとに共通の離散化ステップサイズを使用して、ニューロモルフィック素子の特性を制御する。
一構成例として、制御装置において、アレイがニューロモルフィック素子を含む複数の層を有しており、それぞれの層ごとに共通の分解能を有するニューロモルフィック素子を備え、異なる層におけるニューロモルフィック素子の分解能は異なる。
一構成例として、制御装置において、制御部(本実施形態では、制御装置11の機能であり、例えば、識別制御部21、重み演算制御部22および重み割り当て制御部23)は、離散化ステップサイズを使用して、アレイについて学習を行う。
一構成例として、制御装置において、アレイは、ニューロモルフィック素子を用いてニューラルネットワークにおける積和演算を行う回路を有する。
ここで、コンピュータでは、例えば、CPU(Central Processing
Unit)などのプロセッサがメモリに記憶されたプログラムを読み出して実行する。
別制御部、22…重み演算制御部、23…重み割り当て制御部、24…記憶部、101…
ニューラルネットワーク回路、111…識別用制御回路、112…重み演算制御回路、1
13…重み割り当て制御回路、121…素子アレイ、122、123…入出力IF回路、
211…画像(画像のデータ)、1011、1111〜1113、1121〜1123、
1211、1311〜1313、1321〜1323、1411〜1413、1421〜
1423、1511〜1513、1521〜1523、1611〜1613、1621〜
1623、1711…特性、1131、1132…範囲、1221、1721…矢印、A
1−0〜A1−p、A1−i、A2−0〜A2−q、A2−j、A3−1〜A3−r、A
3−k…ユニット、B1−1〜B1−n、B2−1〜B2−n、B0−1〜B0−n…画
像、
300…ニューラルネットワーク装置、310…センシングデバイス、320…ADコンバータ、330…間引き回路(間引き部)、340…閾値取得部、350…PWM変調回路(変調部)、360…ニューロモルフィックデバイス(重み付け部)、370…電流積分(電流積分部)、370a…電流検出回路(電流検出部)IS…入力信号、DS…間引き信号、IDV…入力離散値(入力信号の離散値)、DDV…間引き後離散値(間引き信号の離散値)、PMS…パルス幅変調信号、OC…出力電流(重み付け信号)、th…閾値
Claims (9)
- 入力信号の離散値を、前記入力信号の量子化段階数が分割された範囲のそれぞれに含まれる情報量に応じて予め定められた閾値に基づいて前記入力信号の量子化段階数よりも少ない段階数の離散値に変換することにより間引き信号を生成する間引き部と、
前記間引き部が生成する前記間引き信号の離散値をパルス幅変調することにより、前記間引き信号の離散値をパルス幅によって示すパルス幅変調信号を生成する変調部と、
可変な特性の値に応じた重みを、前記変調部が生成する前記パルス幅変調信号に対して乗算することにより、前記パルス幅変調信号が重み付けされた重み付け信号を出力するニューロモルフィック素子を含む重み付け部と、
を備えるニューラルネットワーク装置。 - 前記間引き部は、複数の前記入力信号について、それぞれに対応する前記間引き信号を生成し、
前記変調部は、前記間引き部が生成する複数の前記間引き信号にそれぞれ対応する前記パルス幅変調信号を、信号波形の変化タイミングを互いに異ならせて生成する
請求項1に記載のニューラルネットワーク装置。 - 前記閾値は、前記入力信号の量子化段階数を不等幅にして分割する
請求項1又は請求項2に記載のニューラルネットワーク装置。 - 前記間引き部は、前記入力信号の量子化段階数を2分割することにより二値の前記間引き信号を生成し、
前記変調部は、前記間引き信号に応じた二値の前記パルス幅変調信号を生成し、
前記重み付け部は、二値の前記パルス幅変調信号が重み付けられた前記重み付け信号を出力し、
前記重み付け部が出力する前記重み付け信号の電流の大きさを検出する電流検出部
をさらに備える請求項1から請求項3のいずれか一項に記載のニューラルネットワーク装置。 - 前記間引き部による前記間引き信号の生成に用いられる前記閾値を取得する閾値取得部
をさらに備える請求項1から請求項4のいずれか一項に記載のニューラルネットワーク装置。 - 前記閾値が、前記入力信号に基づいて可変にして定められている
請求項1から請求項5のいずれか一項に記載のニューラルネットワーク装置。 - 前記間引き部が生成する前記間引き信号の離散値の段階数が、前記入力信号の量子化段階数よりも少ない段階数の範囲において、前記入力信号の値に基づいて可変にして定められている
請求項1から請求項6のいずれか一項に記載のニューラルネットワーク装置。 - 入力信号の離散値を、前記入力信号の量子化段階数が分割された範囲のそれぞれに含まれる情報量に応じて予め定められた閾値に基づいて前記入力信号の量子化段階数よりも少ない段階数の離散値に変換することにより間引き信号を生成する間引きステップと、
前記間引きステップにおいて生成される前記間引き信号の離散値をパルス幅変調することにより、前記間引き信号の離散値をパルス幅によって示すパルス幅変調信号を生成する変調ステップと、
ニューロモルフィック素子が、可変な特性の値に応じた重みを、前記変調ステップにおいて生成される前記パルス幅変調信号に対して乗算することにより、前記パルス幅変調信号が重み付けされた重み付け信号を出力する重み付けステップと、
を有する信号生成方法。 - ニューラルネットワーク装置が備えるコンピュータに、
入力信号の離散値を、前記入力信号の量子化段階数が分割された範囲のそれぞれに含まれる情報量に応じて予め定められた閾値に基づいて前記入力信号の量子化段階数よりも少ない段階数の離散値に変換することにより間引き信号を生成する間引きステップと、
前記間引きステップにおいて生成される前記間引き信号の離散値をパルス幅変調することにより、前記間引き信号の離散値をパルス幅によって示すパルス幅変調信号を生成する変調ステップと、
可変な特性の値に応じた重みを、前記変調ステップにおいて生成される前記パルス幅変調信号に対して乗算することにより、前記パルス幅変調信号が重み付けされた重み付け信号を出力するニューロモルフィック素子に対して、前記パルス幅変調信号を供給することにより前記重み付け信号を出力させる重み付けステップと、
を実行させるためのプログラム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018040214A JP6569755B1 (ja) | 2018-03-06 | 2018-03-06 | ニューラルネットワーク装置、信号生成方法およびプログラム |
CN201980016765.5A CN111801693B (zh) | 2018-03-06 | 2019-01-11 | 神经网络装置、信号生成方法及程序 |
CN202410126859.0A CN117973450A (zh) | 2018-03-06 | 2019-01-11 | 神经网络装置、信号生成方法及程序 |
PCT/JP2019/000679 WO2019171758A1 (ja) | 2018-03-06 | 2019-01-11 | ニューラルネットワーク装置、信号生成方法およびプログラム |
US16/826,691 US11551071B2 (en) | 2018-03-06 | 2020-03-23 | Neural network device, signal generation method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018040214A JP6569755B1 (ja) | 2018-03-06 | 2018-03-06 | ニューラルネットワーク装置、信号生成方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6569755B1 true JP6569755B1 (ja) | 2019-09-04 |
JP2019153254A JP2019153254A (ja) | 2019-09-12 |
Family
ID=67844787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018040214A Active JP6569755B1 (ja) | 2018-03-06 | 2018-03-06 | ニューラルネットワーク装置、信号生成方法およびプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US11551071B2 (ja) |
JP (1) | JP6569755B1 (ja) |
CN (2) | CN111801693B (ja) |
WO (1) | WO2019171758A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021155851A1 (zh) * | 2020-02-07 | 2021-08-12 | 华为技术有限公司 | 神经网络电路和神经网络*** |
CN113259289A (zh) * | 2021-05-13 | 2021-08-13 | 曾泓然 | 基于残差神经网络的单通道混叠信号调制模式识别方法 |
CN115471709A (zh) * | 2022-09-28 | 2022-12-13 | 刘鹏 | 定向信号智能分析平台 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7287388B2 (ja) * | 2018-05-14 | 2023-06-06 | ソニーグループ株式会社 | 情報処理装置および情報処理方法 |
US11604987B2 (en) * | 2019-03-22 | 2023-03-14 | Qualcomm Incorporated | Analytic and empirical correction of biased error introduced by approximation methods |
US11057079B2 (en) | 2019-06-27 | 2021-07-06 | Qualcomm Incorporated | Dynamic thresholds for antenna switching diversity |
US11568180B2 (en) * | 2019-09-13 | 2023-01-31 | Rohde & Schwarz Gmbh & Co. Kg | Method and cloud server for training a neural network for triggering an input signal in a measurement device and method for autonomous determining a trigger type/parameter |
CN110807519B (zh) * | 2019-11-07 | 2023-01-17 | 清华大学 | 基于忆阻器的神经网络的并行加速方法及处理器、装置 |
US11789857B2 (en) | 2021-08-11 | 2023-10-17 | International Business Machines Corporation | Data transfer with continuous weighted PPM duration signal |
CN114378812B (zh) * | 2021-12-13 | 2023-09-05 | 扬州大学 | 一种基于离散递归神经网络模型的并联机械臂预测控制方法 |
CN115905546B (zh) * | 2023-01-06 | 2023-07-14 | 之江实验室 | 基于阻变存储器的图卷积网络文献识别装置与方法 |
US11823037B1 (en) * | 2023-02-28 | 2023-11-21 | PolyN Technology Limited | Optocoupler-based flexible weights in neuromorphic analog signal processors |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2543095B2 (ja) * | 1987-09-14 | 1996-10-16 | 松下電器産業株式会社 | オ―バ―サンプリング型d/a変換器 |
US4893255A (en) * | 1988-05-31 | 1990-01-09 | Analog Intelligence Corp. | Spike transmission for neural networks |
US5333239A (en) * | 1988-09-12 | 1994-07-26 | Fujitsu Limited | Learning process system for use with a neural network structure data processing apparatus |
US5276772A (en) * | 1991-01-31 | 1994-01-04 | Ail Systems, Inc. | Real time adaptive probabilistic neural network system and method for data sorting |
JPH05227338A (ja) * | 1992-02-12 | 1993-09-03 | Ricoh Co Ltd | 学習機能を備えた画像形成装置 |
JPH06314347A (ja) * | 1993-04-30 | 1994-11-08 | Nippon Telegr & Teleph Corp <Ntt> | ニューラルネットワーク学習回路 |
US5353127A (en) * | 1993-12-15 | 1994-10-04 | Xerox Corporation | Method for quantization gray level pixel data with extended distribution set |
JP3256738B2 (ja) * | 1998-08-17 | 2002-02-12 | 広島大学長 | 非線形演算回路 |
JP2002247371A (ja) * | 2001-02-21 | 2002-08-30 | Ricoh Co Ltd | 画像処理装置および画像処理プログラムを記録した記録媒体 |
US6754645B2 (en) * | 2001-03-20 | 2004-06-22 | Winbond Electronics Corp. | Voltage-mode pulse width modulation VLSI implementation of neural networks |
US6606044B2 (en) * | 2002-01-02 | 2003-08-12 | Motorola, Inc. | Method and apparatus for generating a pulse width modulated signal |
JP4274102B2 (ja) * | 2004-10-18 | 2009-06-03 | セイコーエプソン株式会社 | 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体 |
JPWO2011111833A1 (ja) * | 2010-03-12 | 2013-06-27 | 株式会社東芝 | 制御システム、変成器、保護制御装置、およびビットストリーム記憶部 |
US8515885B2 (en) * | 2010-10-29 | 2013-08-20 | International Business Machines Corporation | Neuromorphic and synaptronic spiking neural network with synaptic weights learned using simulation |
JP5289646B1 (ja) * | 2012-01-20 | 2013-09-11 | パナソニック株式会社 | ニューラルネットワーク回路の学習方法 |
JP5289647B1 (ja) * | 2012-01-23 | 2013-09-11 | パナソニック株式会社 | ニューラルネットワーク回路の学習方法 |
JP6066579B2 (ja) * | 2012-04-19 | 2017-01-25 | キヤノン株式会社 | 画像処理装置及びその制御方法 |
US9159020B2 (en) | 2012-09-14 | 2015-10-13 | International Business Machines Corporation | Multiplexing physical neurons to optimize power and area |
EP3486738B1 (en) * | 2013-08-06 | 2022-03-23 | Bedrock Automation Platforms Inc. | Programmable discrete input module and respective method |
WO2015125195A1 (ja) * | 2014-02-18 | 2015-08-27 | パナソニックIpマネジメント株式会社 | オーディオ信号増幅装置 |
US20160042271A1 (en) | 2014-08-08 | 2016-02-11 | Qualcomm Incorporated | Artificial neurons and spiking neurons with asynchronous pulse modulation |
CN104158632B (zh) * | 2014-09-03 | 2017-06-20 | 重庆邮电大学 | 用于可见光通信***的可变脉冲幅度位置调制和误码率改善方法 |
US9525428B2 (en) * | 2014-12-17 | 2016-12-20 | Analog Devices, Inc. | Randomly sampling reference ADC for calibration |
JP6217736B2 (ja) * | 2015-11-19 | 2017-10-25 | オンキヨー株式会社 | パルス幅変調器およびそのプログラム |
US20170249547A1 (en) * | 2016-02-26 | 2017-08-31 | The Board Of Trustees Of The Leland Stanford Junior University | Systems and Methods for Holistic Extraction of Features from Neural Networks |
US20170286829A1 (en) * | 2016-04-01 | 2017-10-05 | Intel Corporation | Event-driven Learning and Reward Modulation with Spike Timing Dependent Plasticity in Neuromorphic Computers |
JP6304610B2 (ja) * | 2016-06-08 | 2018-04-04 | Tdk株式会社 | 状態判別装置および方法、物理量情報生成装置ならびに角度センサ |
US10836429B2 (en) * | 2016-07-20 | 2020-11-17 | Tdk Corporation | Angle sensor and angle sensor system |
CN108063555B (zh) * | 2016-11-07 | 2020-04-03 | 台达电子工业股份有限公司 | 多级电源转换器及其控制方法 |
US11556772B2 (en) * | 2017-04-28 | 2023-01-17 | Intel Corporation | Incremental precision networks using residual inference and fine-grain quantization |
TWI625681B (zh) * | 2017-05-11 | 2018-06-01 | 國立交通大學 | 神經網路處理系統 |
US20180336469A1 (en) * | 2017-05-18 | 2018-11-22 | Qualcomm Incorporated | Sigma-delta position derivative networks |
JP6293963B1 (ja) * | 2017-08-31 | 2018-03-14 | Tdk株式会社 | ニューロモルフィック素子を含むアレイの制御装置、離散化ステップサイズの演算方法およびプログラム |
CN109997155A (zh) * | 2017-11-02 | 2019-07-09 | Tdk株式会社 | 包含仿神经元件的阵列装置及神经网络*** |
-
2018
- 2018-03-06 JP JP2018040214A patent/JP6569755B1/ja active Active
-
2019
- 2019-01-11 WO PCT/JP2019/000679 patent/WO2019171758A1/ja active Application Filing
- 2019-01-11 CN CN201980016765.5A patent/CN111801693B/zh active Active
- 2019-01-11 CN CN202410126859.0A patent/CN117973450A/zh active Pending
-
2020
- 2020-03-23 US US16/826,691 patent/US11551071B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021155851A1 (zh) * | 2020-02-07 | 2021-08-12 | 华为技术有限公司 | 神经网络电路和神经网络*** |
CN113259289A (zh) * | 2021-05-13 | 2021-08-13 | 曾泓然 | 基于残差神经网络的单通道混叠信号调制模式识别方法 |
CN113259289B (zh) * | 2021-05-13 | 2022-06-17 | 曾泓然 | 基于残差神经网络的单通道混叠信号调制模式识别方法 |
CN115471709A (zh) * | 2022-09-28 | 2022-12-13 | 刘鹏 | 定向信号智能分析平台 |
Also Published As
Publication number | Publication date |
---|---|
CN117973450A (zh) | 2024-05-03 |
CN111801693B (zh) | 2024-02-23 |
WO2019171758A1 (ja) | 2019-09-12 |
US11551071B2 (en) | 2023-01-10 |
JP2019153254A (ja) | 2019-09-12 |
US20200293889A1 (en) | 2020-09-17 |
CN111801693A (zh) | 2020-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6569755B1 (ja) | ニューラルネットワーク装置、信号生成方法およびプログラム | |
JP6293963B1 (ja) | ニューロモルフィック素子を含むアレイの制御装置、離散化ステップサイズの演算方法およびプログラム | |
US10708522B2 (en) | Image sensor with analog sample and hold circuit control for analog neural networks | |
Jaegle et al. | Visual novelty, curiosity, and intrinsic reward in machine learning and the brain | |
US9721332B2 (en) | Spike domain convolution circuit | |
US20150317557A1 (en) | Temporal spike encoding for temporal learning | |
JP2015197702A (ja) | 情報処理装置、情報処理方法 | |
US20210383203A1 (en) | Apparatus and method with neural network | |
US20210365765A1 (en) | Neuromorphic device and method | |
Tang et al. | Dynamics analysis and analog associative memory of networks with LT neurons | |
JP6881693B2 (ja) | ニューロモーフィック回路、ニューロモーフィックアレイの学習方法およびプログラム | |
EP3843005B1 (en) | Method and apparatus with quantized image generation | |
WO2022162839A1 (ja) | 学習装置、学習方法、及び、記録媒体 | |
JP2023530755A (ja) | 振動性ニューラル・ネットワークのトレーニング | |
KR20210111014A (ko) | 전자 장치 및 그 제어 방법 | |
US20210133556A1 (en) | Feature-separated neural network processing of tabular data | |
US10783658B2 (en) | Image processing method | |
Du et al. | Associative memory networks | |
US20230229900A1 (en) | Controller of array including neuromorphic element, method of arithmetically operating discretization step size, and program | |
Kumar et al. | RRAM Based On-Sensor Visual Data Preprocessing for Efficient Image Classification | |
Forgáč et al. | Impact of pulse coupled neural network parameters on image steganography | |
US11941871B2 (en) | Control method of image signal processor and control device for performing the same | |
Olin-Ammentorp et al. | Cellular Memristive-Output Reservoir (CMOR) | |
Mélot et al. | Sparse Coding-based Multichannel Spike Sorting with the Locally Competitive Algorithm | |
CN115511066A (zh) | 基于氧化锌忆阻器的储备池计算*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181127 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190416 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20190617 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190620 |
|
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: 20190709 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190722 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6569755 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |