JP2022548547A - ニューラルネットワークのアナログハードウェア実現 - Google Patents
ニューラルネットワークのアナログハードウェア実現 Download PDFInfo
- Publication number
- JP2022548547A JP2022548547A JP2022515539A JP2022515539A JP2022548547A JP 2022548547 A JP2022548547 A JP 2022548547A JP 2022515539 A JP2022515539 A JP 2022515539A JP 2022515539 A JP2022515539 A JP 2022515539A JP 2022548547 A JP2022548547 A JP 2022548547A
- Authority
- JP
- Japan
- Prior art keywords
- analog
- network
- neural network
- equivalent
- neurons
- 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.)
- Granted
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 670
- 238000000034 method Methods 0.000 claims abstract description 362
- 239000011159 matrix material Substances 0.000 claims abstract description 331
- 210000002569 neuron Anatomy 0.000 claims description 796
- 239000010410 layer Substances 0.000 claims description 765
- 230000006870 function Effects 0.000 claims description 160
- 239000002356 single layer Substances 0.000 claims description 109
- 230000004913 activation Effects 0.000 claims description 100
- 239000013598 vector Substances 0.000 claims description 70
- 238000010168 coupling process Methods 0.000 claims description 69
- 238000005859 coupling reaction Methods 0.000 claims description 69
- 230000008878 coupling Effects 0.000 claims description 68
- 230000009466 transformation Effects 0.000 claims description 67
- 230000008569 process Effects 0.000 claims description 66
- 230000001131 transforming effect Effects 0.000 claims description 63
- 238000013138 pruning Methods 0.000 claims description 59
- 238000013527 convolutional neural network Methods 0.000 claims description 48
- 238000013461 design Methods 0.000 claims description 43
- 230000000306 recurrent effect Effects 0.000 claims description 42
- 238000012549 training Methods 0.000 claims description 42
- 230000015654 memory Effects 0.000 claims description 40
- 238000010586 diagram Methods 0.000 claims description 37
- 239000007789 gas Substances 0.000 claims description 36
- 238000007620 mathematical function Methods 0.000 claims description 34
- 210000004205 output neuron Anatomy 0.000 claims description 32
- 230000001537 neural effect Effects 0.000 claims description 30
- 238000012545 processing Methods 0.000 claims description 30
- 238000012360 testing method Methods 0.000 claims description 25
- 238000003860 storage Methods 0.000 claims description 21
- 238000006243 chemical reaction Methods 0.000 claims description 20
- 238000004364 calculation method Methods 0.000 claims description 19
- 230000000694 effects Effects 0.000 claims description 18
- 229910001416 lithium ion Inorganic materials 0.000 claims description 18
- 239000000203 mixture Substances 0.000 claims description 18
- 230000014509 gene expression Effects 0.000 claims description 14
- 238000000844 transformation Methods 0.000 claims description 14
- HBBGRARXTFLTSG-UHFFFAOYSA-N Lithium ion Chemical compound [Li+] HBBGRARXTFLTSG-UHFFFAOYSA-N 0.000 claims description 13
- 230000001934 delay Effects 0.000 claims description 12
- 238000012886 linear function Methods 0.000 claims description 11
- 238000001459 lithography Methods 0.000 claims description 11
- 238000005070 sampling Methods 0.000 claims description 9
- 230000015572 biosynthetic process Effects 0.000 claims description 8
- 230000006403 short-term memory Effects 0.000 claims description 8
- 238000000605 extraction Methods 0.000 claims description 7
- 230000036541 health Effects 0.000 claims description 7
- 230000002159 abnormal effect Effects 0.000 claims description 6
- 230000037081 physical activity Effects 0.000 claims description 6
- 230000035945 sensitivity Effects 0.000 claims description 5
- 231100000430 skin reaction Toxicity 0.000 claims description 5
- 238000003878 thermal aging Methods 0.000 claims description 5
- 239000004020 conductor Substances 0.000 claims description 4
- 238000005259 measurement Methods 0.000 claims description 4
- 238000011478 gradient descent method Methods 0.000 claims description 2
- 230000007774 longterm Effects 0.000 claims description 2
- 238000001994 activation Methods 0.000 description 82
- 238000004422 calculation algorithm Methods 0.000 description 40
- 238000013186 photoplethysmography Methods 0.000 description 30
- 238000004519 manufacturing process Methods 0.000 description 26
- 238000005457 optimization Methods 0.000 description 18
- 235000013599 spices Nutrition 0.000 description 16
- 238000013139 quantization Methods 0.000 description 14
- 210000002364 input neuron Anatomy 0.000 description 12
- 230000008901 benefit Effects 0.000 description 9
- 239000000758 substrate Substances 0.000 description 8
- 230000003321 amplification Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 230000006835 compression Effects 0.000 description 7
- 238000003199 nucleic acid amplification method Methods 0.000 description 7
- 238000009472 formulation Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 5
- 239000000047 product Substances 0.000 description 5
- 244000141353 Prunus domestica Species 0.000 description 4
- 230000009194 climbing Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000002441 reversible effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 239000000872 buffer Substances 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 238000013178 mathematical model Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003362 replicative effect Effects 0.000 description 3
- 238000007493 shaping process Methods 0.000 description 3
- 229910052714 tellurium Inorganic materials 0.000 description 3
- PORWMNRCUJJQNO-UHFFFAOYSA-N tellurium atom Chemical compound [Te] PORWMNRCUJJQNO-UHFFFAOYSA-N 0.000 description 3
- 210000000707 wrist Anatomy 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 2
- ATJFFYVFTNAWJD-UHFFFAOYSA-N Tin Chemical compound [Sn] ATJFFYVFTNAWJD-UHFFFAOYSA-N 0.000 description 2
- 208000027418 Wounds and injury Diseases 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000008280 blood Substances 0.000 description 2
- 210000004369 blood Anatomy 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 206010015037 epilepsy Diseases 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 208000014674 injury Diseases 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 230000031700 light absorption Effects 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 208000010125 myocardial infarction Diseases 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 229920001451 polypropylene glycol Polymers 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 239000013585 weight reducing agent Substances 0.000 description 2
- 241000473391 Archosargus rhomboidalis Species 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 241000196324 Embryophyta Species 0.000 description 1
- 241000580063 Ipomopsis rubra Species 0.000 description 1
- 101100112673 Rattus norvegicus Ccnd2 gene Proteins 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 229910052681 coesite Inorganic materials 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 229910052906 cristobalite Inorganic materials 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000008021 deposition Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 229920005994 diacetyl cellulose Polymers 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 239000011229 interlayer Substances 0.000 description 1
- 150000002500 ions Chemical class 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000000377 silicon dioxide Substances 0.000 description 1
- 235000012239 silicon dioxide Nutrition 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 229910052682 stishovite Inorganic materials 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
- 230000002277 temperature effect Effects 0.000 description 1
- 230000008646 thermal stress Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 229910052905 tridymite Inorganic materials 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Images
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
- G06N3/065—Analogue means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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/044—Recurrent networks, e.g. Hopfield networks
-
- 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/045—Combinations of networks
-
- 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/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Feedback Control In General (AREA)
- Image Analysis (AREA)
Abstract
【選択図】なし
Description
を有する加重和ブロック。ReLUは、整流線形ユニット(ReLU)活性化関数または同様の活性化関数であり、Viは、i番目の入力を表し、wiは、i番目の入力に対応する重みを表し、バイアスは、バイアス値を表し、Σは、総和演算子であり、(ii)ブロック出力Vout=coeff.Vi.Vjを有する信号乗算器ブロック。Viは、i番目の入力を表し、Vjは、j番目の入力を表し、coeffは、所定の係数であり、(iii)ブロック出力
を有するシグモイド活性化ブロック。Vは、入力であり、AおよびBは、シグモイド活性化ブロックの所定の係数値であり、(iv)ブロック出力Vout=A*tanh(B*Vin)を有する双曲線正接活性化ブロック。Vinは、入力を表し、AおよびBは、所定の係数値であり、および(v)ブロック出力U(t)=V(t-dt)を有する信号遅延ブロック。tは、現在の期間であり、V(t-dt)は、前の期間t-dtの信号遅延ブロックの出力を表し、dtは、遅延値である。
層を有する同等な疎結合ネットワークを構築することを含む。
個の層を有する同等な疎結合ネットワークを構築することを含む。各層mは、対応する重み行列Umによって表され、ここで、欠けている接続は、入力結合度がNiを超えず、かつ出力結合度がNoを超えないように、ゼロで表される式U=Πm=1..MUmは、所定の精度で満たされる。
層を有する、同等な疎結合ネットワークを構築することを含み、欠けている接続は、ゼロで表される。式U=Πm=1..MUmは、所定の精度で満たされる。
を使用して同等な疎結合ネットワークの層の数mを計算することと、(iii)K個の入力、m個の層、および結合度Nを有する同等な疎結合ネットワークを構築することと、を含む。同等な疎結合ネットワークは、m個の層の各層にそれぞれ1つ以上のアナログニューロンを含み、第1のm-1個の層の各アナログニューロンは、恒等変換を実装し、最後の層のアナログニューロンは、単層パーセプトロンの計算ニューロンの活性化関数Fを実装する。また、そのような場合、同等な疎結合ネットワークの重み行列を計算することは、重みベクトルUに基づく連立方程式を解くことによって、同等な疎結合ネットワークの接続の重みベクトルWを計算することを含む。連立方程式は、S個の変数を有するK個の方程式を含み、Sは、式
を使用して計算される。
を使用して同等な疎結合ネットワークの層の数mを計算すること、(iii)単層パーセプトロンをL個の単層パーセプトロンネットワークに分解すること。各単層パーセプトロンネットワークは、L個の計算ニューロンのそれぞれの計算ニューロンを含み、(iv)L個の単層パーセプトロンネットワークの各単層パーセプトロンネットワークについて、(a)K個の入力、m個の層、および結合度Nを有するそれぞれの単層パーセプトロンのそれぞれの同等なピラミッド様サブネットワークを構築すること。同等なピラミッド様サブネットワークは、m個の層の各層に1つ以上のそれぞれのアナログニューロンを含み、第1のm-1個の層の各アナログニューロンは、恒等変換を実装し、最後の層のアナログニューロンは、それぞれの単層パーセプトロンに対応するそれぞれの計算ニューロンの活性化関数を実装し、(b)L個の単層パーセプトロンネットワークの各同等なピラミッド様サブネットワークの入力を連結して、L*K個の入力を有する入力ベクトルを形成することを含めて、各同等なピラミッド様サブネットワークを連結することによって、同等な疎結合ネットワークを構築すること。また、そのような場合、同等な疎結合ネットワークの重み行列を計算することは、L個の単層パーセプトロンネットワークの各単層パーセプトロンネットワークについて、(i)重み行列Vのi番目の行がそれぞれの単層パーセプトロンネットワークに対応するそれぞれの計算ニューロンに対応する、重みベクトルU=Viを設定することと、(ii)重みベクトルUに基づく連立方程式を解くことによって、それぞれの同等なピラミッド様サブネットワークの接続の重みベクトルWiを計算することと、を含む。連立方程式は、S個の変数を有するK個の方程式を含み、Sは、式
を使用して計算される。
を使用して、それぞれの同等なピラミッド様サブネットワークの層の数mを計算すること。Ki,jは、多層パーセプトロンのそれぞれの計算ニューロンの入力の数であり、(b)Ki,j個の入力、m個の層、および結合度Nを有するそれぞれの単層パーセプトロンのそれぞれの同等なピラミッド様サブネットワークを構築すること。同等なピラミッド様サブネットワークは、m個の層の各層に1つ以上のそれぞれのアナログニューロンを含み、第1のm-1個の層の各アナログニューロンは、恒等変換を実装し、最後の層のアナログニューロンは、それぞれの単層パーセプトロンに対応するそれぞれの計算ニューロンの活性化関数を実装し、(iv)Q個の単層パーセプトロンネットワークの各同等なピラミッド様サブネットワークの入力を連結して、Q*Ki,j個の入力を有する入力ベクトルを形成することを含めて、各同等なピラミッド様サブネットワークを連結することによって、同等な疎結合ネットワークを構築すること。また、そのような場合、同等な疎結合ネットワークの重み行列を計算することは、Q個の単層パーセプトロンネットワークの各単層パーセプトロンネットワークについて、(i)重みベクトル
を設定することであって、重み行列Vのi番目の行は、それぞれの単層パーセプトロンネットワークに対応するそれぞれの計算ニューロンに対応し、jは、多層パーセプトロンのそれぞれの計算ニューロンの対応する層である、設定することと、(ii)重みベクトルUに基づく連立方程式を解くことによって、それぞれの同等なピラミッド様サブネットワークの接続の重みベクトルWiを計算することと、を含む。連立方程式は、S個の変数を有するKi、j個の方程式を含み、Sは、式
を使用して計算される。
を使用して、それぞれの同等なピラミッド様サブネットワークの層の数mを計算すること。jは、CNN内のそれぞれの計算ニューロンの対応する層であり、Ki,jは、CNN内のそれぞれの計算ニューロンの入力の数であり、および(b)Ki,j個の入力、m個の層、および結合度Nを有するそれぞれの単層パーセプトロンネットワークのそれぞれの同等なピラミッド様サブネットワークを構築すること。同等なピラミッド様サブネットワークは、m個の層の各層に1つ以上のそれぞれのアナログニューロンを含み、第1のm-1個の層の各アナログニューロンは、恒等変換を実装し、最後の層のアナログニューロンは、それぞれの単層パーセプトロンネットワークに対応するそれぞれの計算ニューロンの活性化関数を実装し、(iv)Q個の単層パーセプトロンネットワークの各同等なピラミッド様サブネットワークの入力を連結して、Q*Ki,j個の入力を有する入力ベクトルを形成することを含めて、各同等なピラミッド様サブネットワークを連結することによって、同等な疎結合ネットワークを構築すること。また、そのような場合、同等な疎結合ネットワークの重み行列を計算することは、Q個の単層パーセプトロンネットワークの各単層パーセプトロンネットワークについて、(i)重みベクトル
を設定することであって、重み行列Vのi番目の行は、それぞれの単層パーセプトロンネットワークに対応するそれぞれの計算ニューロンに対応し、jは、CNNのそれぞれの計算ニューロンの対応する層である、設定することと、(ii)重みベクトルUに基づく連立方程式を解くことによって、それぞれの同等なピラミッド様サブネットワークの接続の重みベクトルWiを計算することと、を含む。連立方程式は、S個の変数を有するKi、j個の方程式を含み、Sは、式
を使用して計算される。
個のアナログニューロンを有する層LAh、および活性化関数Fを実行するL個のアナログニューロンを有する層LAoを含む3層アナログネットワークを構築することであって、層LApの各アナログニューロンは、NO個の出力を有し、層LAhの各アナログニューロンは、NI個以下の入力およびNO個以下の出力を有し、層LAoの各アナログニューロンは、NI個の入力を有するようになっている、構築することと、を含む、台形変換を実行することを含む。また、そのような場合、同等な疎結合ネットワークの重み行列を計算することは、K・NO+L・NI個の変数でのK・L個の方程式を含む行列方程式Wo.Wh=Wを解くことによって、疎重み行列WoおよびWhを生成することを含み、これにより、層LAoの総出力は、式Yo=F(Wo.Wh.x)を使用して計算される。疎重み行列Wo∈RK×Mは、層LApと層LAhとの間の接続を表し、疎重み行列Wh∈RM×Lは、層LAhと層LAoとの間の接続を表す。
からパラメータpを選択すること、(iii)p>0であるという判定に従って、ピラミッドニューラルネットワークがこのピラミッドニューラルネットワークの出力層に
個のニューロンを有するように、同等な疎結合ネットワークの第1のp個の層を形成するピラミッドニューラルネットワークを構築すること。ピラミッドニューラルネットワーク内の各ニューロンは、恒等関数を実行し、および(iv)Np個の入力およびL個の出力を有する台形ニューラルネットワークを構築すること。台形ニューラルネットワークの最後の層の各ニューロンは、活性化関数Fを実行し、すべての他のニューロンは、恒等関数を実行する。そのような場合、同等な疎結合ネットワークの重み行列を計算することは、以下を含む。(i)ピラミッドニューラルネットワークの重みを生成することであって、(a)以下のルール、すなわち、(a)
に従って、ピラミッドニューラルネットワークの第1の層のあらゆるニューロンiの重みを設定することを含む、生成すること。Cは、非ゼロ定数であり、ki=(i-1)NI+1であり、および(b)kiを除くニューロンのすべての重みについて、
、(b)ピラミッドニューラルネットワークのすべての他の重みを1に設定すること、ならびに(ii)台形ニューラルネットワークの重みを生成することであって、(a)式
に従って台形ニューラルネットワークの第1の層の各ニューロンiの重みを設定すること、および(b)台形ニューラルネットワークの他の重みを1に設定することを含む、生成すること。
を含み、L0=Kである。そのような場合、ニューラルネットワークトポロジをアナログコンポーネントの同等な疎結合ネットワークに変換することは、多層パーセプトロンのS個の層の各層jについて、(i)Lj-1個の入力、LJ個の出力ニューロン、および重み行列Ujからなるそれぞれの単層パーセプトロンへの近似変換を実行することによって、それぞれのピラミッド-台形ネットワークPTNNXjを構築することと、(ii)各ピラミッド台形ネットワークをスタックすることによって、同等な疎結合ネットワークを構築することと、を含む。
の最も均一な分布を提供する、選択することと、(iii)同等なアナログネットワークの、各アナログニューロンについてまたは各層について、のいずれかで、同等なアナログネットワークの、各ニューロンのまたは各層についての、入ってくる接続の最大重みおよびバイアスwmaxに基づいて、R+=R-がRベース*w最大に最も近い抵抗器セット値であるように、制限された長さの抵抗値セットから抵抗値R+=R-を選択することと、(iv)重み行列の各要素について、R1およびR2のすべての可能な値について、式
に従う誤差を可能な抵抗値の所定の範囲内で最小化する、それぞれの第1の抵抗値R1およびそれぞれの第2の抵抗値R2を選択することであって、wは、重み行列のそれぞれの要素であり、rerrは、抵抗についての所定の相対許容差値である、選択することと、を含む。
●様々な基本システムサービスを処理するための、およびハードウェア依存タスクを実行するための手順を含むオペレーティングシステム216、
●1つ以上の通信ネットワークインターフェース204(有線または無線)、およびインターネット、他の広域ネットワーク、ローカルエリアネットワーク、大都市圏ネットワークなどの1つ以上の通信ネットワークを介してコンピューティングデバイス200を他のコンピュータおよびデバイスに接続するために使用される通信モジュール218、
●重み222およびニューラルネットワークトポロジ224を含む訓練されたニューラルネットワーク220。入力ニューラルネットワークの例が、いくつかの実装態様に従って、図4A~4C、図12、図13A、および14Aを参照して以下に記載され、
●変換されたアナログニューラルネットワーク228、数学的定式化230、基底関数ブロック232、アナログモデル234(ニューロンモデルと呼ばれることがある)、および/またはアナログ集積回路(IC)設計制約236を含むニューラルネットワーク変換モジュール226。ニューラルネットワーク変換モジュール226の例示的な動作が、少なくとも図5、6A~6C、7、8、9、10、および11A~11C、ならびに図27A~27Jおよび図28A~28Sに示されるフローチャートを参照して以下に記載され、および/または
●変換されたネットワークの重み272を含み、かつ任意選択で抵抗計算モジュール240、抵抗値242を含む、重み行列計算(重み量子化と呼ばれることがある)モジュール238。重み行列計算モジュール238および/または重み量子化の例示的な動作が、いくつかの実装態様に従って、少なくとも図17A~17C、図18、および図29A~29Fを参照して記載される。
図3Aは、いくつかの実装態様による、訓練されたニューラルネットワークに対応するアナログネットワークの概略モデルを生成するための例示的なプロセス300を示す。図3Aに示されるように、訓練されたニューラルネットワーク302(例えば、モバイルネット)は、ターゲットまたは同等なアナログネットワーク304に(T変換と呼ばれることがあるプロセスを使用して)変換される(322)。ターゲットニューラルネットワーク(Tネットワークと呼ばれることがある)304は、単一ニューロンモデル(SNM)を使用するSPICE(SPICEモデル306として)にエクスポートされ(324)、これは、SPICEから、ケイデンス、およびケイデンスモデル308を使用するフルオンチップ設計にエクスポートされる(326)。ケイデンスモデル308は、1つ以上の検証入力のために、初期ニューラルネットワークに対して交差検証される(328)。
を表す関数を実行する数学的ニューロンであり、式中、f(x)は、活性化関数である。SNMは、概略的な形態で特定のタイプの数学的ニューロン(例えば、自明なニューロン)を表すアナログコンポーネント(例えば、演算増幅器、抵抗器R1、...、Rn、および他のコンポーネント)を有する、概略モデルである。SNM出力電圧は、K個の入力電圧およびSNMコンポーネント値に依存する対応する式により表される
。いくつかの実装態様によれば、適切に選択されたコンポーネント値を有すると、SNM式は、所望の重みセットを有する数学的ニューロン式と同等である。いくつかの実装態様では、重みセットは、SNMで使用される抵抗器によって完全に決定される。ターゲット(アナログ)ニューラルネットワーク304(Tネットワークと呼ばれることがある)は、定義されたSNM表現とそれらの間の重み付けされた接続とを有し、ニューラルネットワークを形成する、数学的ニューロンのセットである。Tネットワークは、インバウンド制限(Tネットワーク内の任意のニューロンに対するインバウンド接続の最大限度)、アウトバウンド制限(Tネットワーク内の任意のニューロンに対するアウトバウンド接続の最大限度)、および信号範囲(例えば、すべての信号は、事前定義された信号範囲内にあるべきである)など、いくつかの制限に従う。T変換(322)は、モバイルネットなどのいくつかの所望のニューラルネットワークを対応するTネットワークに変換するプロセスである。SPICEモデル306は、T-ネットワーク304のSPICEニューラルネットワークモデルであり、各数学的ニューロンは、対応する1つ以上のSNMで置き換えられる。ケイデンスNNモデル310は、各数学的ニューロンが対応する1つ以上のSNMで置き換えられる、T-ネットワーク304のケイデンスモデルである。また、本明細書に記載されるように、2つのネットワークLおよびMは、これらのネットワークのすべてのニューロン出力について、epsが比較的小さい(例えば、動作電圧範囲の0.1~1%)として、
の場合、数学的同等性を有する。また、2つのネットワークLおよびMは、所与の検証入力データセット{I1,...,In}について、分類結果がほとんど同じであり、すなわち、epsが比較的小さいとして、P(L(Ik)=M(Ik))=1-epsである場合、関数同等性を有する。
図4A、4B、および4Cは、いくつかの実装態様による、システム100に入力され、かつ数学的に同等なアナログネットワークに変換される、訓練されたニューラルネットワーク(例えば、ニューラルネットワーク220)の例を示す。図4Aは、入力を受信し、活性化関数を使用して入力を組み合わせ、かつ1つ以上の出力を生成する人工ニューロンから構成された例示的なニューラルネットワーク(人工ニューラルネットワークと呼ばれることがある)を示す。入力には、画像、センサデータ、およびドキュメントなどのデータが含まれる。典型的には、各ニューラルネットワークは、オブジェクト認識などの特定のタスクを実行する。ネットワークは、ニューロン間の接続を含み、各接続は、ニューロンの出力を別のニューロンへの入力として提供する。訓練後、各接続には、対応する重みが割り当てられる。図4Aに示されるように、ニューロンは、典型的には、複数の層に編成され、ニューロンの各層は、ニューロンの直前および直後の層にのみ接続されている。ニューロン402の入力層は、外部入力(例えば、入力X1、X2、...、Xn)を受け取る。入力層402に、ニューロンの1つ以上の隠れ層(例えば、層404および406)が続き、それに、出力410を生成する出力層408が続く。1つの層のあらゆるニューロンを次の層のすべてのニューロンに接続する全結合パターン、または1つの層のニューロンのグループの出力を次の層の単一のニューロンに接続する枝刈りパターンなどの、様々なタイプの接続パターンが、連続する層のニューロンを接続する。フィードフォワードネットワークと呼ばれることがある、図4Aに示されるニューラルネットワークとは対照的に、図4Bに示されるニューラルネットワークは、1つの層のニューロンから、同じ層の他のニューロン、または先行する層のニューロンのいずれかへの1つ以上の接続を含む。図4Bに示される例は、回帰型ニューラルネットワークの例であり、入力層の2つの入力ニューロン412(入力X1を受け入れる)および414(入力X2を受け入れる)、これに続く2つの隠れ層を含む。第1の隠れ層は、入力層のニューロンと全結合ニューロン416および418、ならびに第2の隠れ層のニューロン420、422、および424を含む。第2の隠れ層のニューロン420の出力は、第1の隠れ層のニューロン416に接続されており、フィードバックループを提供する。ニューロン420、422、および424を含む隠れ層は、出力yを生成する出力層のニューロン426に入力される。
●N1[-0.9824321,0.976517,-0.00204677]、
●N2[1.0066702,-1.0101418,-0.00045485]、
●N3[1.0357606,1.0072469,-0.00483723]、
●N4[-0.07376373,-0.7682612,0.0]、および
●N5[1.0029935,-1.1994369,-0.00147767]。
を生成する抵抗器ペアを選定する。以下の表は、いくつかの実装態様による、各接続に関する重みw1、w2、およびバイアスの例示的な値を提供する。
変換の例を記載する前に、従来のアーキテクチャに対する変換されたニューラルネットワークの利点のうちのいくつかに注目すべきである。本明細書に記載されるように、入力された訓練されたニューラルネットワークは、ピラミッド形状または台形形状のアナログネットワークに変換される。クロスバーを超えるピラミッドまたは台形の利点のうちのいくつかは、より低いレイテンシ、同時のアナログ信号伝播、抵抗器および演算増幅器を含む標準的な集積回路(IC)設計要素を使用した製造の可能性、計算の高い並列性、高精度(例えば、従来の方法と比較して、層の数とともに精度が増加する)、各重みおよび/または各接続における誤差に対する許容差(例えば、ピラミッドは誤差をバランスさせる)、低RC(ネットワークを介した信号の伝播に関連する低抵抗容量遅延)、および/または変換されたネットワークの各層における各ニューロンのバイアスおよび関数を操作する能力を含む。また、ピラミッドは、1つの出力で任意のニューラルネットワークをモデル化することができるマルチレベルパーセプトロンであることから、それ自体が優れた計算ブロックである。いくつかの実装態様によれば、いくつかの出力を有するネットワークは、異なるピラミッドまたは台形幾何学形状を使用して実装されている。ピラミッドは、各ニューロンがn個の入力および1つの出力を有する、1つの出力およびいくつかの層(例えば、N個の層)を有する多層パーセプトロンと考えることができる。同様に、台形は、各ニューロンがn個の入力およびm個の出力を有する多層パーセプトロンである。各台形は、いくつかの実装態様による、各ニューロンがn個の入力およびm個の出力を有し、かつnおよびmが、ICアナログチップ設計制限によって制限される、ピラミッド様ネットワークである。
いくつかの実装態様では、本明細書に記載される例示的な変換は、変換されたニューラルネットワーク228を取得するために、数学的定式化230、基底関数ブロック232、アナログコンポーネントモデル234、および/またはアナログ設計制約236に基づいて、訓練されたニューラルネットワーク220を変換するニューラルネットワーク変換モジュール226によって、実行される。
いくつかの実装態様では、本明細書に記載される例示的な変換は、変換されたニューラルネットワーク228を取得するために、数学的定式化230、基底関数ブロック232、アナログコンポーネントモデル234、および/またはアナログ設計制約236に基づいて、訓練されたニューラルネットワーク220を変換するニューラルネットワーク変換モジュール226によって、実行される。
単層パーセプトロンSLP(K,1)が、K個の入力、および活性化関数Fを有する1つの出力ニューロンを含むものとする。さらに、U∈RKが、SLP(K,1)の重みのベクトルであるものとする。以下のアルゴリズムNeuron2TNN1は、N個の入力および1つの出力を有するTニューロン(TN(N,1)と呼ばれる)から、Tニューラルネットワークを構築する。
アルゴリズムNeuron2TNN1
1.SLP(K,1)からのすべての入力を含めることによって、T-NNの入力層を構築する。
2.K>Nの場合には:
a.K個の入力ニューロンを、あらゆるグループがN個以下の入力からなるような
個のグループに分割する。
b.m1個のニューロンからT-NNの最初の隠れ層LTH1を構築し、各ニューロンは、恒等活性化関数を実行する。
c.あらゆるグループからの入力ニューロンを、次の層からの対応するニューロンに接続する。そのため、LTH1からのあらゆるニューロンが、N個以下の入力接続を有する。
d.次の式に従って、新たな接続の重みを設定する。
wij=uj,j=(i-1)*N+1,...,i*N
3.それ以外の場合(すなわち、K<=Nの場合)には):
a.活性化関数Fを計算する1つのニューロンで出力層を構築する
b.入力ニューロンを単一出力ニューロンに接続する。単一出力ニューロンは、K≦N個の接続を有する。
c.以下の式によって、新たな接続の重みを設定する。
d.アルゴリズムを終了する
4.l=1を設定する
5.ml>Nの場合:
a.ml個のニューロンを
個のグループに分割し、各グループは、N個以下のニューロンからなる。
b.ml+1個のニューロンからT-NNの隠れ層LTHl+1を構築し、あらゆるニューロンは、恒等活性化関数を有する。
c.各グループからの入力ニューロンを、次の層からの対応するニューロンに接続する。
d.次の式に従って、新たな接続の重みを設定する。
e.l=l+1を設定する。
6.それ以外の場合(m>=Nの場合):
a.活性化関数Fを計算する1つのニューロンで出力層を構築する
b.すべてのLTHlのニューロンを単一出力ニューロンに接続する。
c.次の式に従って、新たな接続の重みを設定する。
d.アルゴリズムを終了する
7.ステップ5および6を繰り返す。
y=F(WmWm-1...W2W1x)
K個の入力およびL個の出力ニューロンを有する単層パーセプトロンSLP(K,L)があり、各ニューロンが活性化関数Fを実行するものとする。さらに、U∈RL×KがSLP(K,L)の重み行列とする。以下のアルゴリズムLayer2TNN1は、ニューロンTN(N,1)からTニューラルネットワークを構築する。
アルゴリズムLayer2TNN1
1.あらゆる出力ニューロンi=1,...,Lについて
a.K個の入力、1つの出力ニューロン、および重みベクトルUij、j=1,2、...、KからなるアルゴリズムNeuron2TNN1をSLPi(K,1)に適用する。結果として、TNNiが構築される。
2.すべてのTNNiを1つのニューラルネットに構成することによって、PTNNを構築する:
a.すべてのTNNiの入力ベクトルを連結するので、PTNNの入力は、K個の入力のL個のグループを有し、各グループは、SLP(K,L)の入力層のコピーである。
多層パーセプトロン(MLP)が、K個の入力、S個の層、およびLi個の計算ニューロンをi番目の層に含み、MLP(K,S,L1,...LS)として表されるものとする。
が、i番目の層の重み行列であるものとする。
アルゴリズムMLP2TNN1
1.あらゆる層i=1、...、Sについて
a.Li-1個の入力、Li個の出力ニューロン、および重み行列UiからなるSLPi(Li-1,Li)にアルゴリズムLayer2TNN1を適用し、結果としてPTNNiを構築する。
2.すべてのPTNNiを1つのニューラルネットにスタックすることによって、MTNNを構築し、TNNi-1の出力は、TNNiの入力として設定される。
いくつかの実装態様では、本明細書に記載される例示的な変換は、変換されたニューラルネットワーク228を取得するために、数学的定式化230、基底関数ブロック232、アナログコンポーネントモデル234、および/またはアナログ設計制約236に基づいて、訓練されたニューラルネットワーク220を変換するニューラルネットワーク変換モジュール226によって、実行される。
単層パーセプトロンSLP(K,L)が、K個の入力およびL個の出力ニューロンを含み、各ニューロンが、活性化関数Fを実行するものとする。さらに、U∈RL×Kが、SLP(K,L)の重み行列であるものとする。以下のアルゴリズムは、いくつかの実装態様に従って、ニューロンTN(NI,NO)からTニューラルネットワークを構築する。
アルゴリズムLayer2TNNX
1.アルゴリズムLayer2TNN1(上記の説明を参照)を使用することによって、SLP(K,L)からPTNNを構築する。PTNNは、K個の入力のL個のグループからなる入力層を有する。
2.L個のグループから
個のサブセットを構成する。各サブセットは、入力ベクトルコピーのNO個以下のグループを含む。
3.あらゆるサブセットのグループを、入力ベクトルの1つのコピーで置換する。
4.あらゆる入力ニューロンからNO個の出力接続を作ることによって、あらゆるサブセット内の接続を再確立することによって、PTNNXを構築する。
多層パーセプトロン(MLP)が、K個の入力、S個の層、およびLi個の計算ニューロンを第i層に含み、MLP(K,S,L1,...LS)として表されるものとする。
が、i番目の層の重み行列であるものとする。以下の例示的なアルゴリズムは、いくつかの実装態様に従って、ニューロンTN(NI,NO)からTニューラルネットワークを構築する。
アルゴリズムMLP2TNNX
1.あらゆる層i=1、...、Sについて:
a.アルゴリズムLayer2TNNXを、Li-1個の入力、Li個の出力ニューロン、および重み行列UiからなるSLPi(Li-1,Li)に適用する。結果として、PTNNXiが構築される。
2.すべてのPTNNXiを1つのニューラルネットにスタックすることによって、MTNNXを構築する。
a.TNNXi-1の出力は、TNNXiの入力として設定される。
回帰型ニューラルネットワーク(RNN)は、情報を保存することを可能にする後方接続を含む。図12は、いくつかの実装態様による、例示的なRNN1200を示す。例は、入力Xt 1206を受け入れ、活性化関数Aを実行し、かつ値ht 1202を出力する、活性化関数Aを実行するブロック1204を示す。ブロック1204からそれ自体への後方矢印は、いくつかの実装態様による、後方接続を示す。同等なネットワークが、活性化ブロックが入力Xt 1206を受け取る時点まで右側に示されている。時刻0では、ネットワークは、入力Xt 1208を受け入れて活性化関数A 1204を実行し、値ho 1210を出力し、時刻1では、ネットワークは、入力X1 1212と時刻0でのネットワークの出力とを受け入れて活性化関数A 1204を実行し、値h1 1214を出力し、時刻2では、ネットワークは、入力X2 1216と時刻1でのネットワークの出力とを受け入れ、活性化関数A 1204を実行し、値h1 1218を出力する。このプロセスは、いくつかの実装態様に従って、時刻tまで継続し、その時点でネットワークは、入力Xt 1206と時刻t-1でのネットワークの出力とを受け入れ、活性化関数A 1204を実行し、値ht 1202を出力する。
ht=f(W(hh)ht-1+W(hx)xt)
長期短期記憶(LSTM)ニューラルネットワークは、RNNの特別な場合である。LSTMネットワークの演算は、以下の式により表される。
●ft=σ(Wf[ht-1,xt]+bf)、
●it=σ(Wi[ht-1,xt]+bi)、
●Dt=tanh(WD[ht-1,xt]+bD)、
●Ct=(ft×Ct-1+it×Dt)、
●ot=σ(Wo[ht-1,xt]+bo)、および
●ht=ot×tanh(Ct)。
ゲート付き回帰型ユニット)(GRU)ニューラルネットワークは、RNNの特別の場合である。RNNの演算は、以下の表式で表される。
●zt=σ(Wzxt+Uzht-1)、
●rt=σ(Wrxt+Urht-1)、
●jt=tanh(Wxt+rt×Uht-1)、
●ht=zt×ht-1+(1-zt)×jt)。
一般に、畳み込みニューラルネットワーク(CNN)は、畳み込み(カーネルを用いた画像の(または内部マップの)断片の線形結合のセット)、アクティブ化関数、および枝刈り(例えば、最大値、平均値など)などのいくつかの基本演算を含む。CNN内のあらゆる計算ニューロンは、MLPのニューロンの一般的な処理スキーム、すなわち、後続の活性化関数の計算を用いたいくつかの入力の線形結合に従う。そのため、CNNは、いくつかの実装態様による、多層パーセプトロンについて上述したMLP2TNNXアルゴリズムを使用して変換される。
いくつかの実装態様では、本明細書に記載される例示的な変換は、変換されたニューラルネットワーク228を取得するために、数学的定式化230、基底関数ブロック232、アナログコンポーネントモデル234、および/またはアナログ設計制約236に基づいて、訓練されたニューラルネットワーク220、および/またはアナログニューラルネットワーク最適化モジュール246を変換するニューラルネットワーク変換モジュール226によって、実行される。
アルゴリズムLayer2TNNX_Approx
1.パラメータpを、
の値で設定する。
2.p>0の場合、ニューロンTN(NI,1)でのアルゴリズムLayer2TNN1をネットSLP(K,L)に適用し、得られたサブネット(PNN)の最初のp個の層を構築する。
ネットPNNは、出力層に
個のニューロンを有する。
3.ニューロンTN(NI,NO)でのアルゴリズムLayer2TNNXを適用し、Np個の入力およびL個の出力を有するニューラルサブネットTNNを構築する。
4.PNNネットの重みを設定する。PNNの第1の層のあらゆるニューロンiの重みは、ルール
に従って設定される。ここで、Cは、ゼロに等しくない任意の定数であり、kiを除くこのニューロンのすべての重みjについて、ki=(i-1)NI+1かつ
。
PNNネットのすべての他の重みは、1に設定される。
は、第1の層のニューロンiとニューロンkiとの間の接続のための第1の層(上付き文字(1)が意味する)の重みを表す。
5.TNNサブネットの重みを設定する。TNNの第1層のあらゆるニューロンiの重み(ネット全体を考慮すると、これは(p+1)番目の層である)は、式
に従って設定される。TNNのすべての他の重みは、1に設定される。
6.TNNサブネットの最後の層のすべてのニューロンの活性化関数をFに設定する。すべての他のニューロンの活性化関数は、恒等である。
多層パーセプトロン(MLP)が、K個の入力、S個の層、およびLi個の計算ニューロンをi番目の層に含み、MLP(K,S,L1,...LS)として表されるものとする。さらに、
が、i番目の層の重み行列であるものとする。以下の例示的なアルゴリズムは、いくつかの実装態様に従って、ニューロンTN(NI,NO)からTニューラルネットワークを構築する。
アルゴリズムMLP2TNNX_Approx
1.あらゆる層i=1、...、Sについて:
a.(上述した)アルゴリズムLayer2TNNX_Approxを、Li-1個の入力、Li個の出力ニューロン、および重み行列UiからなるSLPi(Li-1,Li)に適用する。i=1の場合には、L0=K。このステップは、結果としてPTNNXiを構築するものとする。
2.すべてのPTNNXiを1つのニューラルネットにスタックすることによって、MTNNX(多層パーセプトロン)を構築し、TNNXi-1の出力は、TNNXiの入力として設定される。
いくつかの実装態様では、本明細書に記載される例示的な変換は、変換されたニューラルネットワーク228を取得するために、数学的定式化230、基底関数ブロック232、アナログコンポーネントモデル234、および/またはアナログ設計制約236に基づいて、訓練されたニューラルネットワーク220、および/またはアナログニューラルネットワーク最適化モジュール246を変換するニューラルネットワーク変換モジュール226によって、実行される。
いくつかの実装態様では、本明細書に記載される例示的な計算は、変換されたニューラルネットワークの接続の重み272、および/または重み272の対応する抵抗値242を計算する重み行列計算または重み量子化モジュール238によって(例えば、抵抗計算モジュール240を使用して)実行される。
図17Aは、いくつかの実装態様による、Mネットワーク上の出力誤差と分類誤差との間の依存関係を示す例示的なチャート1700を示す。図17Aでは、x軸は、分類マージン1704に対応し、y軸は、総誤差1702に対応する(上記の説明を参照)。グラフは、出力信号の異なる分類マージンの総誤差(モデルMの出力と実データとの差)を示す。この例について、チャートによれば、最適分類マージン1706は、0.610である。
このセットから選定された{R+,R-}ペアと一緒に設定された抵抗は、ある程度の抵抗器誤差r_errを有する必要とされる重み範囲[-wlim;wlim]を超える値関数を有する。いくつかの実装態様では、抵抗器セットの値関数は、以下のように計算される。
●可能な重みオプションアレイは、抵抗器誤差に依存する重み平均誤差と一緒に計算される。
●アレイ内の重みオプションは、必要とされる重み範囲[-wlim;wlim]に制限され、
●重み誤差の点で隣接値よりも悪い値が削除され、
●隣接する値間の距離の配列が計算され、
●値関数は、距離配列の二乗平均または最大値の成分である。
いくつかの実装態様では、本明細書に記載される例示的な計算は、変換されたニューラルネットワークの接続の重み272、および/または重み272の対応する抵抗値242を計算する重み行列計算または重み量子化モジュール238によって(例えば、抵抗計算モジュール240を使用して)実行される。
1.接続の重みおよびバイアスのセット{w1,...,wn,b}を取得する。
2.可能な最小抵抗器値および最大抵抗器値{Rmin,Rmax}を取得する。これらのパラメータは、製造に使用される技術に基づいて決定される。いくつかの実装態様は、TaNまたはテルル高抵抗材料を使用する。いくつかの実装態様では、抵抗器の最小値は、リソグラフィによって形成され得る最小二乗によって決定される。最大値は、抵抗器(例えば、TaNまたはテルルから作られた抵抗器)が所望の領域に適合するように許容可能な長さによって決定され、当該所望の領域は、リソグラフィマスク上の演算増幅器区画の領域によって決定される。いくつかの実装態様では、抵抗器のアレイがスタックされることから(例えば、BEOL内の1つ、FEOL内の別の1つ)、抵抗器のアレイの領域は、1つの演算増幅器の領域よりも小さい。
3.各抵抗器がr_errの相対許容差値を有すると仮定する。
4.目標は、{w1,...,wn,b}値に基づいて、定義された[Rmin;Rmax]内の所与の長さNの抵抗値{R1,...,Rn}のセットを選択することである。特定の最適性基準に基づいて設定された準最適な{R1,...,Rn}を見つけるための例示的な探索アルゴリズムが、以下に提供される。
5.別のアルゴリズムは、{R1..Rn}が決定された場合、{Rn,Rp,Rni,Rpi}をネットワークに選定する。
いくつかの実装態様は、抵抗器セット探索のための反復アプローチを使用する。いくつかの実装態様は、定義された範囲内の初期(ランダムまたは均一な)セット{R1,...,Rn}を選択する。いくつかの実装態様は、抵抗器セットの素子のうちの1つをR-=R+値として選択する。いくつかの実装態様は、現在の学習率値によってセット内の各抵抗器を変更し、そのような変更が(値関数に従って)「より良い」セットを生成するまで変更する。このプロセスは、さらなる改善が可能でなくなるまで、セット内のすべての抵抗器について、いくつかの異なる学習率値で繰り返される。
●可能な重みオプションは、(上述した)式に従って計算される。
●各重みオプションの予想誤差値は、IC製造技術によって決定された潜在的な抵抗相対誤差r_errに基づいて推定される。
●重みオプションリストは、[-wlim;wlim]範囲に限定または制限される
●高い閾値(例えば、r_errの10倍)を超える予想誤差を有するいくつかの値が除去される。
●値関数は、隣接する2つの重みオプション間の距離の二乗平均として計算される。そのため、重みオプションが[-wlim;wlim]範囲内で均一に分布している場合、値関数は最小である。
いくつかの実装態様は、上述したアルゴリズムなどの反復アルゴリズムを使用してRnおよびRpを決定する。いくつかの実装態様は、Rp=Rnを設定する(RnおよびRpを決定するためのタスクは、対称であり、2つの量は、典型的には、類似の値に収束する)。次いで、重みwiごとに、いくつかの実装態様は、推定重み誤差値を最小化する抵抗のペア{Rni、Rpi}を選択する。
図19Aは、いくつかの実装態様による、CMOS(CMOSオペアンプ)1900で作られた演算増幅器の概略図を示す。図19Aでは、In+(正入力またはpos)1404、およびIn-(負入力またはneg)1406、およびVdd-(GNDに対する正電源電圧)1402は、接点入力である。接点Vss-(負電源電圧またはGND)は、ラベル1408によって示されている。回路出力は、Out 1410(接点出力)である。CMOSトランジスタのパラメータは、幾何学的寸法の比、すなわち、L(ゲートチャネルの長さ)対W(ゲートチャネルの幅)によって決定され、その例が、図19B(以下に記載される)に示される表に示されている。電流ミラーは、NMOSトランジスタM11 1944、M12 1946、および抵抗器R1 1921(12kΩの例示的な抵抗値)で作られており、差動対(M1 1926およびM3 1930)のオフセット電流を提供する。差動増幅段(差動対)は、NMOSトランジスタM1 1926およびM3 1930で作られている。トランジスタM1、M3は増幅用であり、PMOSトランジスタM2 1928、M4 1932は、能動電流負荷の役割を果たす。M3トランジスタから、信号は、出力PMOSトランジスタM7 1936のゲートに入力される。トランジスタM1から、信号は、PMOSトランジスタM5(インバータ) 1934、およびNMOSトランジスタM6 1934に対する能動負荷に入力される。トランジスタM5 1934を通って流れる電流は、NMOSトランジスタM8 1938に対する設定である。トランジスタM7 1936は、正の半波信号に対するコモンソースを有するスキームに含まれる。M8トランジスタ1938は、負の半波信号のためのコモンソース回路によって可能にされる。演算増幅器の全体的な負荷容量を増加させるために、M7 1936およびM8 1938の出力は、M9 1940およびM10 1942のトランジスタによるインバータを含む。キャパシタC1 1912およびC2 1914は、ブロッキング用である。
図20A~20Eは、いくつかの実装態様による、LSTMニューロン20000の概略図を示す。ニューロンの入力は、範囲[-0.1,0.1]にある値であるVin1 20002およびVin2 20004である。LSTMニューロンはまた、時間H(t-1)でニューロンを計算した結果の値(前の値;LSTニューロンについては上記の説明を参照)20006、および時間C(t-1)でのニューロンの状態ベクトル(前の値)20008を入力する。ニューロンLSTMの出力(図20Bに示される)は、現時点のH(t)20118におけるニューロンと、現時点のC(t)20120におけるニューロンの状態ベクトルと、を計算した結果を含む。スキームには、以下が含まれる。
●図20Aに示される、演算増幅器U1 20094およびU2 20100で組み立てられた「ニューロンO」。抵抗器R_Wo1 20018、R_Wo2 20016、R_Wo3 20012、R_Wo4 20010、R_Uop1 20014、R_Uom1 20020、Rr 20068、およびRf2 20066は、単一の「ニューロンO」の接続の重みを設定する。「ニューロンO」は、非線形関数としてシグモイド(モジュールX1 20078、図20B)を使用する。
●演算増幅器U3 20098(図20Cに示される)およびU4 20100(図20Aに示される)で組み立てられた「ニューロンC」。抵抗器R_Wc1 20030、R_Wc2 20028、R_Wc3 20024、R_Wc4 20022、R_Ucp1 20026、R_Ucm1 20032、Rr 20122、およびRf2 20120は、「ニューロンС」の接続の重みを設定する。「ニューロンC」は、非線形関数として双曲線正接(モジュールX2 22080、図2B)を使用する。
●図20Cに示される、演算増幅器U5 20102およびU6 20104で組み立てられた「ニューロンI」。抵抗器R_Wi1 20042、R_Wi2 20040、R_Wi3 20036、およびR_Wi4 20034、R_Uip1 20038、R_Uim1 20044、Rr 20124、およびRf2 20126は、「ニューロンI」の接続の重みを設定する。「ニューロンI」は、非線形関数としてシグモイド(モジュールX3 20082)を使用する。
●図20Dに示される、演算増幅器U7 20106およびU8 20108で組み立てられた「ニューロンf」抵抗器R_Wf1 20054、R_Wf2 20052、R_Wf3 20048、R_Wf4 20046、R_Ufp1 20050、R_Ufm1 20056、Rr 20128、およびRf2 20130は、「ニューロンf」の接続の重みを設定する。「ニューロンf」は、非線形関数としてシグモイド(モジュールX4 20084)を使用する。
図21A~21Iは、いくつかの実装態様による、乗算器ブロック21000の概略図を示す。ニューロン21000は、演算増幅器U1 21040およびU2 21042(図21Bに示される)、U3 21044(図21Hに示される)、およびU4 21046およびU5 21048(図21Iに示される)、ならびにCMOSトランジスタM1 21052~M68 21182を使用して組み立てられた、4象限乗算器の原理に基づいている。乗算器の入力は、V_one 21020 21006およびV_two 21008(図21Bに示される)、ならびに接点Vdd(正電源電圧、例えば、GNDに対して+1.5V)21004および接点Vss(負電源電圧、例えば、GNDに対して-1.5V)21002を含む。このスキームでは、追加の電源電圧、すなわち、接点入力Vdd1(正電源電圧、例えば、GNDに対して+1.8V)、接点Vss1(負電源電圧、例えば、GNDに対して‐1.0V)が使用される。回路計算の結果は、mult_out(出力ピン)21170(図21Iに示される)に出力される。
●negB 21012およびV_one 21020は、NMOSトランジスタM11 21070、M12 2072、M13 2074、M14 21076、およびPMOSトランジスタM15 2078およびM16 21080で組み立てられたマルチプレクサに入力される。このマルチプレクサの出力は、M5 21058 NMOSトランジスタ(図21Dに示される)に入力される。
●V_one 21020およびnegB 21012は、PMOSトランジスタM18 21084、M48 21144、M49 21146、およびM50 21148、およびNMOSトランジスタM17 21082、M47 21142で組み立てられたマルチプレクサに入力される。このマルチプレクサの出力は、M9 PMOSトランジスタ21066(図21Dに示される)に入力され、
●negA 21010およびV_two 21008は、PMOSトランジスタM52 21152、M54 21156、M55 21158、およびM56 21160、ならびにNMOSトランジスタM51 21150、およびM53 21154で組み立てられたマルチプレクサに入力される。このマルチプレクサの出力は、M2 NMOSトランジスタ21054(図21Cに示される)に入力される。
●negB 21012およびV_one 21020は、NMOSトランジスタM11 21070、M12 21072、M13 21074、およびM14 21076、ならびにPMOSトランジスタM15 21078、およびM16 21080で組み立てられたマルチプレクサに入力される。このマルチプレクサの出力は、M10 NMOSトランジスタ21068(図21Dに示される)に入力される。
●negB 21012およびnegA 21010は、NMOSトランジスタM35 21118、M36 21120、M37 21122、およびM38 21124、ならびにPMOSトランジスタM39 21126、およびM40 21128で組み立てられたマルチプレクサに入力される。このマルチプレクサの出力は、M27 PMOSトランジスタ21102(図21Hに示される)に入力される。
●V_two 21008およびV_one 21020は、NMOSトランジスタM41 21130、M42 21132、M43 21134、およびM44 21136、ならびにPMOSトランジスタM45 21138、およびM46 21140で組み立てられたマルチプレクサに入力される。このマルチプレクサの出力は、M30 NMOSトランジスタ21108(図21Hに示される)に入力される。
●V_one 21020およびV_two 21008は、PMOSトランジスタM58 21162、M60 21166、M61 21168、およびM62 21170、ならびにNMOSトランジスタM57 21160、およびM59 21164で組み立てられたマルチプレクサに入力される。このマルチプレクサの出力は、M34 PMOSトランジスタ21116(図21Hに示される)に入力される。
●negA 21010およびnegB 21012は、PMOSトランジスタM64 21174、M66 21178、M67 21180、およびM68 21182、ならびにNMOSトランジスタM63 21172、およびM65 21176で組み立てられたマルチプレクサに入力される。このマルチプレクサの出力は、PMOSトランジスタM33 21114(図21Hに示される)に入力される。
図22Aは、いくつかの実装態様による、シグモイドブロック2200の概略図を示す。シグモイド関数(例えば、図20A~20Fを参照して上述したモジュールX1 20078、X3 20082、およびX4 20084)は、演算増幅器U1 2250、U2 2252、U3 2254、U4 2256、U5 2258、U6 2260、U7、2262、およびU8 2264、ならびにNMOSトランジスタM1 2266、M2 2268、およびM3 2270を使用して実装される。接点Sigm_in 2206は、モジュール入力であり、接点入力Vdd1 2222は、GND2208に対して正電源電圧+1.8Vであり、接点Vss1 2204は、GNDに対して負電源電圧-1.0Vである。このスキームでは、U4 2256は、-0.2332Vの基準電圧源を有し、電圧は、分割器R10 2230およびR11 2232によって設定される。U5 2258は、0.4Vの基準電圧源を有し、電圧は、分割器R12 2234およびR13 2236によって設定される。U6 2260は、0.32687Vの基準電圧源を有し、電圧は、分割器R14 2238およびR15 2240によって設定される。U7 2262は、-0.5Vの基準電圧源を有し、電圧は、分割器R16 2242およびR17 2244によって設定される。U8 2264は、-0.33Vの基準電圧源を有し、電圧は、分割器R18 2246およびR19 2248によって設定される。
図23Aは、いくつかの実装態様による、双曲線正接関数ブロック2300の概略図を示す。双曲線正接関数(例えば、図20A~20Fを参照して上述したモジュールX2 20080およびX7 20090)は、演算増幅器(U1 2312、U2 2314、U3 2316、U4 2318、U5 2320、U6 2322、U7 2328、およびU8 2330)およびNMOSトランジスタ(M1 2332、M2 2334、およびM3 2336)を使用して実装される。このスキームでは、接点tanh_in 2306は、モジュール入力であり、接点入力Vdd1 2304は、GND2308に対して正電源電圧+1.8Vであり、接点Vss1 2302は、GNDに対して負電源電圧-1.0Vである。さらに、このスキームでは、U4 2318は、分割器R10 2356およびR11 2358によって設定された電圧である、-0.1Vの基準電圧源を有する。U5 2320は、分割器R12 2360およびR13 2362によって設定された電圧である、1.2Vの基準電圧源を有する。U6 2322は、分割器R14 2364およびR15 2366によって設定された電圧である、0.32687Vの基準電圧源を有する。U7 2328は、分割器R16 2368およびR17 2370によって設定された電圧である、-0.5Vの基準電圧源を有する。U8 2330は、分割器R18 2372およびR19 2374によって設定された電圧である、-0.33Vの基準電圧源を有する。双曲線正接関数は、トランジスタM1 2332およびM2 2334で作られた差動モジュールで、対応する基準電圧を追加することによって、形成される。差動段用の電流ミラーは、アクティブレギュレーション演算増幅器U3 2316、およびNMOSトランジスタM3 2336で取得される。NMOSトランジスタM2 2334および抵抗R5 2346により、信号は、差動段から取り出され、加算器U2 2314に入力される。出力信号tanh_out 2310は、U2加算器2314出力から取り出される。
図24A~24Cは、いくつかの実装態様による、単一ニューロンOP1 CMOSオペアンプ2400の概略図を示す。実施例は、本明細書に記載されるOP1スキームに従ってCMOSで作られた、演算増幅器による単一ニューロンのバリアントである。このスキームでは、接点V1 2410およびV2 2408は、単一のニューロンの入力であり、接点バイアス2406は、GNDに対して電圧+0.4Vであり、接点入力Vdd 2402は、GNDに対して正電源電圧+5.0Vであり、接点Vss 2404は、GNDであり、接点Out 2474は、単一ニューロンの出力である。CMOSトランジスタのパラメータは、幾何学的寸法の比、すなわち、L(ゲートチャネルの長さ)、およびW(ゲートチャネルの幅)によって決定される。このオプアンプは、2つの電流ミラーを有する。NMOSトランジスタM3 2420、M6 2426、およびM13 2440による電流ミラーは、NMOSトランジスタM2 2418およびM5 2424による差動対のオフセット電流を提供する。PMOSトランジスタM7 2428、M8 2430、およびM15 2444における電流ミラーは、PMOSトランジスタM9 2432およびM10 2434による差動対のオフセット電流を提供する。第1の差動増幅段では、NMOSトランジスタM2 2418およびM5 2424は、増幅用であり、PMOSトランジスタM1 2416およびM4 2422は、能動電流負荷の役割を果たす。M5 2424トランジスタから、信号は、トランジスタM13 2440のPMOSゲートに出力される。M2 2418トランジスタから、信号は、PMOSトランジスタM9 2432およびM10 2434による第2の差動増幅器段の右入力に出力される。NMOSトランジスタM11 2436およびM12 2438は、M9 2432およびM10 2434トランジスタの能動電流負荷の役割を果たす。M17 2448トランジスタは、信号の正の半波に対するコモンソースを有するスキームに従って、オンに切り替えられる。M18 2450トランジスタは、信号の負の半波に対するコモンソースを有するスキームに従って、オンに切り替えられる。OPアンプの全体的な負荷容量を増加させるために、M17 2448およびM18 2450トランジスタによるインバータが、M13 2440およびM14 2442トランジスタの出力において可能にされる。
図25A~25Dは、いくつかの実装態様による、OP3スキームに従ってCMOSで作られた、演算増幅器による単一ニューロン25000のバリアントの概略図を示す。単一ニューロンは、いくつかの実装態様に従って、3つの単純な演算増幅器(オペアンプ)からなる。ユニットニューロン加算器は、バイポーラ電源を有する2つのオペアンプで実行され、RELU活性化関数は、ユニポーラ電源を有しかつ10の利得を有するオペアンプで実行される。トランジスタM1 25028~M16 25058は、ニューロンの負接続の総和に使用される。トランジスタM17 25060~M32 25090は、ニューロンの正接続を追加するために使用される。RELU活性化関数は、トランジスタM33 25092~M46 25118で実行される。スキームでは、接点V1 25008およびV2 25010は、単一ニューロンの入力であり、接点バイアス25002は、GNDに対して電圧+0.4Vであり、接点入力Vdd 25004は、GNDに対して正電源電圧+2.5Vであり、接点Vss 25006は、負電源電圧-2.5Vであり、接点Out 25134は、単一ニューロンの出力である。単一ニューロンで使用されるCMOSトランジスタのパラメータは、以下の幾何学的寸法、すなわち、L(ゲートチャネルの長さ)およびW(ゲートチャネルの幅)の比によって決定される。単一ニューロンに含まれる最も単純なオペアンプの演算を考える。各オペアンプは、2つの電流ミラーを有する。NMOSトランジスタM3 25032(M19 25064、M35 25096)、M6 25038(M22 25070、M38 25102)およびM16 25058(M32 25090、M48 25122)による電流ミラーは、NMOSトランジスタM2 25030(M18 25062、M34 25094)およびM5 25036(M21 25068、M35 25096)による差動対のオフセット電流を提供する。PMOSトランジスタM7 25040(M23 25072、M39 25104)、M8 25042(M24 25074、M40 25106)およびM15 25056(M31 2588)の電流ミラーは、PMOSトランジスタM9 25044(M25 25076、M41 25108)およびM10 25046(M26 25078、M42 25110)による差動対のオフセット電流を提供する。第1の差動増幅段では、NMOSトランジスタM2 25030(M18 25062、M34 25094)およびM5 25036(M21 25068、M37 25100)は、増幅用であり、PMOSトランジスタM1 25028(M17 25060、M33 25092)およびM4 25034(M20 25066、M36 25098)は、能動電流負荷の役割を果たす。トランジスタM5 25036(M21 25068、M37 25100)から、信号は、トランジスタM13 25052(M29 25084、M45 25116)のPMOSゲートに入力される。トランジスタM2 25030(M18 25062、M34 25094)から、信号は、PMOSトランジスタM9 25044(M25 25076、M41 25108)およびM10 25046(M26 25078、M42 25110)による第2の差動増幅器段の右入力に入力される。NMOSトランジスタM11 25048(M27 25080、M43 25112)およびM12 25048(M28 25080、M44 25114)は、トランジスタM9 25044(M25 25076、M41 25108)およびM10 25046(M26 25078、M42 25110)のア能動電流負荷の役割を果たす。トランジスタM13 25052(M29 25082、M45 25116)は、正の半波信号に対するコモンソースを有するスキームに含まれる。トランジスタM14 25054(M30 25084、M46 25118)は、信号の負の半波に対するコモンソースを有するスキームに従ってオンに切り替えられる。
図27A~27Jは、いくつかの実装態様による、ニューラルネットワークのハードウェア実現(2702)のための方法2700のフローチャートを示す。方法は、1つ以上のプロセッサ202と、1つ以上のプロセッサ202による実行用に構成された1つ以上のプログラムを記憶するメモリ214と、を有するコンピューティングデバイス200で(例えば、ニューラルネットワーク変換モジュール226を使用して)実行される(2704)。方法は、訓練されたニューラルネットワーク(例えば、ネットワーク220)のニューラルネットワークトポロジ(例えば、トポロジ224)および重み(例えば、重み222)を取得すること(2706)を含む。いくつかの実装態様では、訓練されたニューラルネットワークは、重みを生成するために、ソフトウェアシミュレーションを使用して訓練されている(2708)。
を有する加重和ブロック(2736)。ReLUは、整流線形ユニット(ReLU)活性化関数または同様の活性化関数(例えば、閾値を有するReLU)であり、Viは、i番目の入力を表し、wiは、i番目の入力に対応する重みを表し、バイアスは、バイアス値を表し、Σは、総和演算子であり、(ii)ブロック出力Vout=coeff.Vi.Vjを有する信号乗算ブロック(2738)。Viは、i番目の入力を表し、Vjは、j番目の入力を表し、coeffは、所定の係数であり、(iii)ブロック出力
を有するシグモイド活性化ブロック(2740)。Vは、入力を表し、AおよびBは、シグモイド活性化ブロックの所定の係数値(例えば、A=-0.1、B=11.3)であり、(iv)ブロック出力Vout=A*tanh(B*Vin)を有する双曲線正接活性化ブロック(2742)。Vinは、入力を表し、AおよびBは、所定の係数値(例えば、A=0.1、B=-10.1)であり、ブロック出力U(t)=V(t-dt)を有する信号遅延ブロック(2744)。tは、現在の期間を表し、V(t-1)は、先行する期間t-1の信号遅延ブロックの出力を表し、dtは、遅延値である。
図28A~28Sは、いくつかの実装態様による、ハードウェア設計制約に従ったニューラルネットワークのハードウェア実現(28002)のための方法28000のフローチャートを示す。方法は、1つ以上のプロセッサ202を有するコンピューティングデバイス200で(例えば、ニューラルネットワーク変換モジュール226を使用して)実行され(28004)、メモリ214は、1つ以上のプロセッサ202による実行用に構成された1つ以上のプログラムを記憶する。方法は、訓練されたニューラルネットワーク(例えば、ネットワーク220)のニューラルネットワークトポロジ(例えば、トポロジ224)および重み(例えば、重み222)を取得すること(28006)を含む。
個の層を有する同等な疎結合ネットワークを構築すること(28022)を含む。
個の層を有する同等な疎結合ネットワークを構築すること(28028)を含む。各層mは、対応する重み行列Umによって表され、ここで、欠けている接続は、入力結合度がNiを超えず、かつ出力結合度がNoを超えないように、ゼロで表される。式U=Πm=1..MUmは、所定の精度で満たされる。所定の精度は、変更されたネットワーク出力が、許容される誤差値以下の基準ネットワーク出力とは異なることを統計的に保証する合理的な精度値であり、この誤差値は、タスク依存性である(通常、0.1%~1%)。
個の層を有する同等な疎結合ネットワークを構築すること(28034)を含む。各層mは、対応する重み行列Umによって表され、ここで、欠けている接続は、入力結合度がNiを超えず、かつ出力結合度がNoを超えないように、ゼロで表され、式U=Πm=1..MUmは、所定の精度で満たされる。
を使用して同等な疎結合ネットワークの層の数mを計算すること(28060)と、(iii)K個の入力、m個の層、および結合度Nを有する同等な疎結合ネットワークを構築すること(28062)と、を含む。同等な疎結合ネットワークは、m個の層の各層にそれぞれの1つ以上のアナログニューロンを含む。第1のm-1個の層の各アナログニューロンは、恒等変換を実装し、最後の層のアナログニューロンは、単層パーセプトロンの計算ニューロンの活性化関数Fを実装する。さらに、そのような場合、同等な疎結合ネットワークの重み行列を計算すること(28064)は、重みベクトルUに基づいて連立方程式を解くことによって、同等な疎結合ネットワークの接続の重みベクトルWを計算すること(28066)を含む。連立方程式は、S個の変数を有するK個の方程式を含み、Sは、式
を使用して計算される。
を使用して同等な疎結合ネットワーク用の層の数mを計算すること(28074)、(iii)単層パーセプトロンをL個の単層パーセプトロンネットワークに分解すること(28076)。各単層パーセプトロンネットワークは、L個の計算ニューロンのそれぞれの計算ニューロンを含み、(iv)L個の単層パーセプトロンネットワークの各単層パーセプトロンネットワーク(28078)について、K個の入力、m個の層、および結合度Nを有するそれぞれの単層パーセプトロンネットワークのそれぞれの同等なピラミッド様サブネットワークを構築する(28080)こと。同等なピラミッド様サブネットワークは、m個の層の各層に1つ以上のそれぞれのアナログニューロンを含み、第1のm-1個の層の各アナログニューロンは、恒等変換を実装し、最後の層のアナログニューロンは、それぞれの単層パーセプトロンに対応するそれぞれの計算ニューロンの活性化関数を実装し、および(v)L個の単層パーセプトロンネットワークの各同等なピラミッド様サブネットワークの入力を連結して、L*K個の入力を有する入力ベクトルを形成することを含めて、各同等なピラミッド様サブネットワークを連結することによって、同等な疎結合ネットワークを構築すること(28082)。さらに、そのような場合、同等な疎結合ネットワークの重み行列をコンピューティングすること(28084)は、L個の単層パーセプトロンネットワークの各単層パーセプトロンネットワーク(28086)について、(i)重み行列Vのi番目の行がそれぞれの単層パーセプトロンネットワークに対応するそれぞれの計算ニューロンに対応する、重みベクトルU=Viを設定すること(28088)、および(ii)重みベクトルUに基づく連立方程式を解くことによって、それぞれの同等なピラミッド様サブネットワークの接続の重みベクトルWiを計算すること(28090)。連立方程式は、S個の変数を有するK個の方程式を含み、Sは、
式を使用して計算される。
を使用して、それぞれの同等なピラミッド様サブネットワークの層の数mを計算すること(28102)。Ki,jは、多層パーセプトロンのそれぞれの計算ニューロンの入力の数であり、(b)Ki,j個の入力、m個の層、および結合度Nを有するそれぞれの単層パーセプトロンのそれぞれの同等なピラミッド様サブネットワークを構築すること(28104)。同等なピラミッド様サブネットワークは、m個の層の各層に1つ以上のそれぞれのアナログニューロンを含み、第1のm-1個の層の各アナログニューロンは、恒等変換を実装し、最後の層のアナログニューロンは、それぞれの単層パーセプトロンネットワークに対応するそれぞれの計算ニューロンの活性化関数を実装し、(iv)Q個の単層パーセプトロンネットワークの各同等なピラミッド様サブネットワークの入力を連結して、Q*Ki,j個の入力を有する入力ベクトルを形成することを含めて、各同等なピラミッド様サブネットワークを連結することによって、同等な疎結合ネットワークを構築すること(28106)。そのような場合、同等な疎結合ネットワークの重み行列を計算すること(28108)は、Q個の単層パーセプトロンネットワークの各単層パーセプトロンネットワーク(28110)について、(i)重み行列Vのi番目の行がそれぞれの単層パーセプトロンネットワークに対応するそれぞれの計算ニューロンに対応し、jが多層パーセプトロンのそれぞれの計算ニューロンの対応する層である、重みベクトル
を設定すること(28112)と、(ii)重みベクトルUに基づいて連立方程式を解くことによって、それぞれの同等なピラミッド様サブネットワークの接続の重みベクトルWiを計算すること(28114)と、を含む。連立方程式は、S個の変数を有するKi、j個の方程式を含み、Sは、式
を使用して計算される。
を使用して、それぞれの同等なピラミッド様サブネットワークの層の数mを計算すること。jは、CNN内のそれぞれの計算ニューロンの対応する層であり、Ki,jは、CNN内のそれぞれの計算ニューロンの入力の数であり、および(b)Ki,j個の入力、m個の層、および結合度Nを有するそれぞれの単層パーセプトロンネットワークのそれぞれの同等なピラミッド様サブネットワークを構築すること。同等なピラミッド様サブネットワークは、m個の層の各層に1つ以上のそれぞれのアナログニューロンを含み、第1のm-1個の層の各アナログニューロンは、恒等変換を実装し、最後の層のアナログニューロンは、それぞれの単層パーセプトロンネットワークに対応するそれぞれの計算ニューロンの活性化関数を実装し、(iv)Q個の単層パーセプトロンネットワークの各同等なピラミッド様サブネットワークの入力を連結して、Q*Ki,j個の入力を有する入力ベクトルを形成することを含めて、各同等なピラミッド様サブネットワークを連結することによって、同等な疎結合ネットワークを構築すること(28130)。そのような場合、同等な疎結合ネットワークの重み行列を計算すること(28132)は、Q個の単層パーセプトロンネットワークの各単層パーセプトロンネットワークについて(28134)、(i)重みベクトル
を設定することであって、重み行列Vのi番目の行は、それぞれの単層パーセプトロンネットワークに対応するそれぞれの計算ニューロンに対応し、jは、CNNのそれぞれの計算ニューロンの対応する層である、設定することと、(ii)重みベクトルUに基づく連立方程式を解くことによって、それぞれの同等なピラミッド様サブネットワークの接続の重みベクトルWiを計算することと、を含む。連立方程式は、S個の変数を有するKi、j個の方程式を含み、Sは、式
を使用して計算される。
個のアナログニューロンを有する層LAh、および活性化関数Fを実行するL個のアナログニューロンを有する層LAoを含む3層アナログネットワークを構築すること(28146)であって、層LApの各アナログニューロンは、NO個の出力を有し、層LAhの各アナログニューロンは、NI個以下の入力およびNO個以下の出力を有し、層LAoの各アナログニューロンは、NI個の入力を有するようになっている、構築することと、を含む、台形変換を実行することを含む。いくつかのそのような場合、同等な疎結合ネットワークの重み行列を計算すること(28148)は、K・NO+L・NI個の変数でのK・L個の方程式を含む行列方程式Wo.Wh=Wを解くことによって、疎重み行列WoおよびWhを生成すること(2850)を含み、これにより、層LAoの総出力は、式Yo=F(Wo.Wh.x)を使用して計算される。疎な重み行列Wo∈RK×Mは、層LApと層LAhとの間の接続を表し、疎重み行列Wh∈RM×Lは、層LAhと層LAoとの間の接続を表す。
からパラメータpを選択すること(28184)、(iii)p>0であるという判定に従って、ピラミッドニューラルネットワークがこのピラミッドニューラルネットワークの出力層に
個のニューロンを有するように、同等な疎結合ネットワークの第1のp個の層を形成するピラミッドニューラルネットワークを構築すること(28186)。ピラミッドニューラルネットワーク内の各ニューロンは、恒等関数を実行し、および(iv)Np個の入力およびL個の出力を有する台形ニューラルネットワークを構築すること(28188)。台形ニューラルネットワークの最後の層の各ニューロンは、活性化関数Fを実行し、すべての他のニューロンは、恒等関数を実行する。また、そのような場合、同等な疎結合ネットワークの重み行列を計算すること(28190)は、以下を含む。(i)以下のルールに従って、ピラミッドニューラルネットワークの第1の層のあらゆるニューロンiの重みを設定することを含む、生成すること(28192)。(a)
。Cは、非ゼロ定数であり、ki=(i-1)NI+1であり、および(b)kiを除くニューロンのすべての重みについて、
、ならびに(ii)ピラミッドニューラルネットワークのすべての他の重みを1に設定すること、ならびに(ii)台形ニューラルネットワークの重みを生成すること(28194)であって、(i)式
に従って台形ニューラルネットワークの第1の層(ネット全体を考慮すると、これは、(p+1)番目の層である)の各ニューロンiの重みを設定すること、および(ii)台形ニューラルネットワークの他の重みを1に設定することを含む、生成すること。
を有する、多層パーセプトロン、を含み(28196)、L0=Kである。そのような場合、ニューラルネットワークトポロジをアナログコンポーネントの同等な疎結合ネットワークに変換すること(28198)は、多層パーセプトロンのS個の層の各層j(28200)について、Lj-1個の入力、Lj個の出力ニューロン、および重み行列Ujからなるそれぞれの単層パーセプトロンへの近似変換を実行することによって、それぞれのピラミッド-台形ネットワークPTNNXjを構築すること(28202)と、(ii)各ピラミッド台形ネットワークをスタックする(例えば、ピラミッド台形ネットワークPTNNXj-1の出力が、PTNNXjの入力として設定される)ことによって、同等な疎結合ネットワークを構築すること(28204)と、を含む。
図29A~29Fは、いくつかの実装態様による、ハードウェア設計制約に従ったニューラルネットワークのハードウェア実現(2902)のための方法2900のフローチャートを示す。方法は、1つ以上のプロセッサ202と、1つ以上のプロセッサ202による実行用に構成された1つ以上のプログラムを記憶するメモリ214と、を有するコンピューティングデバイス200で(例えば、重み量子化モジュール238を使用して)実行される(2904)。
を提供する、選択すること(2920)。いくつかの実装態様では、重み値は、この範囲外にあるが、この範囲内の重み間の二乗平均距離は最小であり、(iii)同等なアナログネットワークの、各アナログニューロンについてまたは各層について、のいずれかで、同等なアナログネットワークの、各ニューロンのまたは各層についての、入ってくる接続の最大重みおよびバイアスw最大に基づいて、R+=R-がRベース*w最大に最も近い抵抗器セット値であるように、制限された長さの抵抗値セットから抵抗値R+=R-を選択すること(2922)。いくつかの実装態様では、R+およびR-は、同等なアナログネットワークの各層について独立に選定される(2924)。いくつかの実装態様では、R+およびR-は、同等なアナログネットワークの各アナログニューロンについて独立に選定され(2926)、および(iv)重み行列の各要素について、R1およびR2のすべての可能な値について、式
に従う誤差を可能な抵抗値の所定の範囲内で最小化する、それぞれの第1の抵抗値R1およびそれぞれの第2の抵抗値R2を選択すること(2928)であって、wは、重み行列のそれぞれの要素であり、rerrは、可能な抵抗値についての所定の相対許容差値である、選択すること。
図30A~30Mは、いくつかの実装態様による、ハードウェア設計制約に従ったニューラルネットワークのハードウェア実現(3002)のための方法3000のフローチャートを示す。方法は、1つ以上のプロセッサ202と、1つ以上のプロセッサ202による実行用に構成された1つ以上のプログラムを記憶するメモリ214と、を有するコンピューティングデバイス200で(例えば、ニューラルネットワーク最適化モジュール246を使用して)実行される(3004)。
ニューラルネットワークのためのアナログ集積回路を作製するための例示的な方法
図31A~31Qは、いくつかの実装態様による、アナログコンポーネントのアナログネットワークを含む集積回路3102を作製するための方法3100のフローチャートを示す。方法は、1つ以上のプロセッサ202と、1つ以上のプロセッサ202による実行用に構成された1つ以上のプログラムを記憶するメモリ214と、を有するコンピューティングデバイス200で(例えば、IC作製モジュール258を使用して)実行される。方法は、ニューラルネットワークトポロジ、および訓練されたニューラルネットワークの重みを取得すること(3104)を含む。
いくつかの実装態様では、ニューロモルフィックICは、上述したプロセスに従って製造される。ニューロモルフィックICは、検出されるある量のガスを含むガス混合物中の異なるガスの選択的感知のために訓練された深層畳み込みニューラルネットワークに基づく。深層畳み込みニューラルネットワークは、異なるガス混合物に応答するガスセンサのアレイ(例えば、2~25個のセンサ)の信号を含む、訓練データセットを使用して訓練される。集積回路(または本明細書に記載される手法に従って製造されたチップ)を使用して、混合物中における他のガスの存在にかかわらず、ガス混合物中の1つ以上の既知のガスを判定することができる。
熱応力に起因するMOSFETのオン抵抗劣化は、パワーエレクトロニクスにおいて周知の深刻な問題である。現実のアプリケーションでは、MOSFETデバイスの温度は、短期間で頻繁に変化する。この温度掃引は、デバイスの熱劣化を生じさせ、その結果、デバイスは、指数関数的なものを呈し得る。この作用は、典型的には、MOSFET劣化を引き起こす温度勾配を生成するパワーサイクルによって研究されている。
いくつかの実装態様では、ニューロモルフィックICは、上述したプロセスに従って製造される。ニューロモルフィックICを、電池管理システム(BMS)で使用するリチウムイオン電池の予測分析に使用することができる。BMSデバイスは、典型的には、過充電および過放電保護、健康状態(SOH)および充電状態(SOC)の監視、およびいくつかのセルの負荷バランスなどの機能を提示する。SOHおよびSOC監視は、通常、デバイスのコストを増加させ、かつ電力を消費するデジタルデータプロセッサを必要とする。いくつかの実装態様では、集積回路を使用して、デバイス上にデジタルデータプロセッサを実装することなく、正確なSOCおよびSOHデータを取得することができる。いくつかの実装態様では、集積回路は、99%を超える精度でSOCを判定し、98%を超える精度でSOHを判定する。
いくつかの実装態様では、ニューロモルフィックICは、上述したプロセスに従って製造される。ニューロモルフィックICを、キーワードスポッティングに使用することができる。
一例では、キーワードスポッティングネットワークは、いくつかの実装態様に従って、Tネットワークに変換される。ネットワークは、2D畳み込み層および2D深さ方向畳み込み層のニューラルネットワークであり、サイズ49×10の入力音声メルスペクトログラムを有する。ネットワークは、5つの畳み込み層、4つの深さ方向畳み込み層、平均枝刈り層、および最終的な稠密層を含む。ネットワークは、Google Speech Commands Dataset https://ai.googleblog.com/2017/08/launching-speech-commands-dataset.htmlから10の短い話し言葉キーワード(「はい」、「いいえ」、「上」、「下」、「左」、「右」、「オン」、「オフ」、「ストップ」、「ゴー」)を認識するように事前に訓練されている。「沈黙」および「不明」に対応する2つの追加のクラスがある。ネットワーク出力は、長さ12のソフトマックスである。
PPGは、組織の微小血管床における血液量の変化を検出するために使用できる光学的に取得されたプレチスモグラムである。PPGは、多くの場合、皮膚を照明し、かつ光吸収の変化を測定する、パルスオキシメータを使用することによって取得される。PPGは、多くの場合、フィットネストラッカなどのデバイスで心拍数を判定するために処理される。PPG信号から心拍数(HR)を導出することは、エッジデバイスコンピューティングにおいて不可欠なタスクである。手首上にあるデバイスから取得されるPPGデータは、通常、デバイスが安定しているときにのみ信頼性を有する心拍数を取得することを可能にする。人が身体運動に関与している場合、PPGデータから心拍数を取得することは、慣性センサデータと組み合わされない限り、不良な結果を生成する。
上述したように、回帰ニューロンについて、いくつかの実装態様は、GRUニューロンおよびLSTMニューロンの各回帰接続に追加される信号遅延ブロックを使用する。いくつかの実装態様では、遅延ブロックは、一定期間dtで遅延ブロックを活性化する外部サイクルタイマ(例えば、デジタルタイマ)を有する。この活性化は、x(t)が遅延ブロックの入力信号であるとして、x(t-dt)の出力を生成する。そのような活性化周波数は、例えば、ネットワーク入力信号周波数(例えば、T変換されたネットワークによって処理されるアナログセンサの出力周波数)に対応し得る。典型的に、すべての遅延ブロックは、同じ活性化信号で同時に活性化される。1つの周波数でいくつかのブロックを同時に活性化することができ、別の周波数で他のブロックを活性化することができる。いくつかの実装態様では、これらの周波数は、共通の乗算器を有し、信号は、同期される。いくつかの実装態様では、1つの信号に対して、加算的な時間シフトを生成する複数の遅延ブロックが使用される。遅延ブロックの例は、図13Bを参照して上述されており、いくつかの実装態様に従って、遅延ブロックの2つの例を示す。
いくつかの実装態様では、マルチスケールLSTMニューラルネットワークに基づいて、パルスドップラレーダ信号に基づいて物体を分類するために使用できる集積回路が製造される。このICは、ドップラレーダ信号に基づいて、人間、車、サイクリスト、スクータなどの異なる物体を分類するために使用でき、雑音を除去し、ドップラレーダ信号にノイズを提供する。いくつかの実装態様では、マルチスケールLSTMネットワークを用いた物体の分類の精度は、90%を超えた。
いくつかの実装態様では、ニューロモーフィック集積回路が、製造され、3軸加速度計、場合によっては磁力計および/またはフィットネス追跡デバイス、スマートウォッチ、または携帯電話のジャイロスコープからの入力信号を有するマルチチャネル畳み込みニューラルネットワークに基づく人間活動のタイプの認識のために使用され得る。マルチチャネル畳み込みニューラルネットワークは、歩行、走行、着座、階段登り、運動などの異なるタイプの人間活動を区別するために使用でき、活動追跡に使用できる。このICは、心拍数データと畳み込みによってマージされる加速度計データに基づいて、人間活動の異常なパターンを検出するために使用できる。そのようなICは、いくつかの実装態様に従って、てんかんなどのような医療上の理由に起因する負傷または誤動作によって引き起こされる突然の異常パターンの場合に備えて、脳卒中前または心臓発作前の状態または信号を検出することができる。
変換されたニューラルネットワークのモジュール構造が、いくつかの実装態様に従って、本明細書に記載される。モジュール型ニューラルネットワークの各モジュールは、1つ以上の訓練されたニューラルネットワーク(の全体または一部)の変換後に取得される。いくつかの実装態様では、1つ以上の訓練されたニューラルネットワークは、部分に細分化されてから、続いて、同等なアナログネットワークに変換される。モジュール構造は、現在使用されているニューラルネットワークのうちのいくつかに典型的であり、ニューラルネットワークのモジュール分割は、ニューラルネットワーク開発の傾向に対応する。各モジュールは、接続されたモジュールの、任意の数の入力、または入力ニューロンから出力ニューロンまでの接続、および後続のモジュールの入力層に接続される任意の数の出力を有することができる。いくつかの実装態様では、各モジュールの製造のためのリソグラフィマスクを含む、予備的な変換されたモジュールのライブラリ(またはシードリスト)が開発される。最終的なチップ設計は、予備的に開発されたモジュールの組み合わせとして(または接続によって)取得される。いくつかの実装態様は、モジュール間でコミュテーションを実行する。いくつかの実装態様では、モジュール内のニューロンおよび接続は、既製モジュール設計テンプレートを使用してチップ設計に変換される。これにより、チップの製造が大幅に簡素化され、対応するモジュールを単に接続することによって成し遂げられる。
図32A~32Eは、いくつかの実装態様による、ニューラルネットワークのハードウェア実現のためのライブラリを生成する(3202)ための方法3200のフローチャートを示す。方法は、1つ以上のプロセッサ202と、1つ以上のプロセッサ202による実行用に構成された1つ以上のプログラムを記憶するメモリ214と、を有するコンピューティングデバイス200で(例えば、ライブラリ生成モジュール254を使用して)実行される(3204)。
図33A~33Jは、いくつかの実装態様による、アナログニューロモルフィック回路(訓練されたニューラルネットワークをモデル化する)のエネルギー効率を最適化する(3302)ための方法3300のフローチャートを示す。方法は、1つ以上のプロセッサ202と、1つ以上のプロセッサ202による実行用に構成された1つ以上のプログラムを記憶するメモリ214と、を有するコンピューティングデバイス200で(例えば、エネルギー効率最適化モジュール264を使用して)実行される(3204)。
MobileNet v.1の同等なアナログネットワークへの例示的な変換が,いくつかの実装態様に従って、本明細書に記載される。いくつかの実装態様では、単一のアナログニューロンが、生成され、次いで、MobileNetから抵抗器値への重みの変換を有するSPICE模式図に変換される。MobileNet v1アーキテクチャを、図34に示される表に描示する。表において、第1の列3402は、層およびストライドのタイプに対応し、第2の列3404は、対応する層のフィルタ形状に対応し、第3の列3406は、対応する層の入力サイズに対応する。MobileNet v.1では、各畳み込み層に、バッチ正規化層およびReLU6活性化関数(y=最大(0,最小(6,x))が続く。ネットワークは、27個の畳み込み層、1つの稠密層からなり、224×224×3の入力画像に対して約6億回の乗算累積演算を有する。出力値は、ソフトマックス活性化関数の結果であり、値が範囲[0,1]に分布し、合計が1であることを意味する。いくつかの実装態様は、変換の入力としてMobileNet 32x32およびアルファ=1を受け入れる。いくつかの実装態様では、ネットワークは、CIFAR-10タスクのために事前に訓練されている(50,000個の32×32×3画像を10個の非交差クラスに分割する)。バッチ正規化層は、「試験」モードで演算して、層が重み乗数+いくつかの追加のバイアスとして解釈されるように、単純な線形信号変換を生成する。畳み込み層、平均枝刈り層、および稠密層は、いくつかの実装態様に従って、上述した手法を使用して変換される。いくつかの実装態様では、ソフトマックス活性化関数は、変換されたネットワークに実装されず、変換されたネットワーク(または同等なアナログネットワーク)の出力に別個に適用される。
Claims (113)
- ニューラルネットワークのハードウェア実現のための方法であって、
ニューラルネットワークトポロジおよび訓練されたニューラルネットワークの重みを取得することと、
前記ニューラルネットワークトポロジをアナログコンポーネントの同等なアナログネットワークに変換することと、
前記訓練されたニューラルネットワークの前記重みに基づいて、前記同等なアナログネットワークの重み行列を計算することであって、前記重み行列の各要素が、前記同等なアナログネットワークのアナログコンポーネント間のそれぞれの接続を表す、計算することと、
前記重み行列に基づいて前記同等なアナログネットワークを実装するための概略モデルを生成することであって、前記実装することが、前記アナログコンポーネントのコンポーネント値を選択することを含む、生成することと、を含む、方法。 - 前記概略モデルを生成することが、前記重み行列の抵抗行列を生成することを含み、前記抵抗行列の各要素が、前記重み行列のそれぞれの重みに対応し、抵抗値を表す、請求項1に記載の方法。
- 前記訓練されたニューラルネットワークの新たな重みを取得することと、
前記新たな重みに基づいて、前記同等なアナログネットワークの新たな重み行列を計算することと、
前記新たな重み行列の新たな抵抗行列を生成することと、をさらに含む、請求項2に記載の方法。 - 前記ニューラルネットワークトポロジが、ニューロンの1つ以上の層を含み、ニューロンの各層が、それぞれの数学的関数に基づいてそれぞれの出力を計算し、
前記ニューラルネットワークトポロジを前記アナログコンポーネントの同等なアナログネットワークに変換することが、
前記ニューロンの1つ以上の層の各層について、
前記それぞれの数学的関数に基づいて、前記それぞれの層について1つ以上の関数ブロックを識別することであって、各関数ブロックが、それぞれの数学的関数の出力に適合するブロック出力を有するそれぞれの概略実装態様を有する、識別することと、
前記1つ以上の関数ブロックを配置することに基づいて、アナログニューロンのそれぞれの多層ネットワークを生成することであって、各アナログニューロンが、前記1つ以上の関数ブロックのそれぞれの関数を実装し、前記多層ネットワークの第1の層の各アナログニューロンが、前記多層ネットワークの第2の層の1つ以上のアナログニューロンに接続されている、生成することと、を含む、請求項1に記載の方法。 - 前記1つ以上の関数ブロックが、
ブロック出力
を有する加重和ブロックであって、ReLUが、整流線形ユニット(ReLU)活性化関数または同様の活性化関数であり、Viが、i番目の入力を表し、wiが、i番目の入力に対応する重みを表し、バイアスが、バイアス値を表し、Σが、総和演算子である、加重和ブロックと、
ブロック出力Vout=coeff.Vi.Vjを有する信号乗算器ブロックであって、Viが、i番目の入力を表し、Vjが、j番目の入力を表し、coeffが、所定の係数である、信号乗算器ブロックと、
ブロック出力
を有するシグモイド活性化ブロックであって、Vが、入力を表し、AおよびBが、前記シグモイド活性化ブロックの所定の係数値である、シグモイドク活性化ブロックと、
ブロック出力Vout=A*tanh(B*Vin)を有する双曲線正接活性化ブロックであって、Vinが、入力を表し、AおよびBが、所定の係数値である、双曲線正接活性化ブロックと、
ブロック出力U(t)=V(t-dt)を有する信号遅延ブロックであって、tが、現在の期間を表し、V(t-1)が、先行する期間t-1の前記信号遅延ブロックの出力を表し、dtが、遅延値である、信号遅延ブロックと、からなる群から選択される1つ以上の基底関数ブロックを含む、請求項4に記載の方法。 - 前記1つ以上の関数ブロックを識別することが、前記それぞれの層のタイプに基づいて前記1つ以上の関数ブロックを選択することを含む、請求項4に記載の方法。
- 前記ニューラルネットワークトポロジが、ニューロンの1つ以上の層を含み、ニューロンの各層が、それぞれの数学的関数に基づいてそれぞれの出力を計算し、前記ニューラルネットワークトポロジを前記アナログコンポーネントの同等なアナログネットワークに変換することが、
前記ニューラルネットワークトポロジの第1の層を複数のサブ層に分解することであって、前記第1の層に対応する数学的関数を分解して、1つ以上の中間数学的関数を取得することを含み、各サブ層が、中間数学的関数を実装する、分解することと、
前記ニューラルネットワークトポロジの前記第1の層の各サブ層について、
それぞれの中間数学的関数に基づいて、前記それぞれのサブ層に対する1つ以上のサブ関数ブロックを選択することと、
前記1つ以上のサブ関数ブロックを配置することに基づいて、アナログニューロンのそれぞれの多層アナログサブネットワークを生成することであって、各アナログニューロンが、前記1つ以上のサブ関数ブロックのそれぞれの関数を実装し、前記多層アナログサブネットワークの第1の層の各アナログニューロンが、前記多層アナログサブネットワークの第2の層の1つ以上のアナログニューロンに接続されている、生成することと、を含む、請求項1に記載の方法。 - 前記第1の層に対応する前記数学的関数が、1つ以上の重みを含み、前記数学的関数を分解することが、前記1つ以上の中間関数を組み合わせることが前記数学的関数をもたらすように前記1つ以上の重みを調整することを含む、請求項7に記載の方法。
- 前記ニューラルネットワークトポロジの1つ以上の出力層についてデジタルコンポーネントの同等なデジタルネットワークを生成することと、
前記同等なアナログネットワークの1つ以上の層の出力を、前記デジタルコンポーネントの同等なデジタルネットワークに接続することと、をさらに含む、請求項1に記載の方法。 - 前記アナログコンポーネントが、複数の演算増幅器および複数の抵抗器を含み、各演算増幅器が、前記同等なアナログネットワークのアナログニューロンを表し、各抵抗器が、2つのアナログニューロン間の接続を表す、請求項1に記載の方法。
- 前記アナログコンポーネントのコンポーネント値を選択することが、勾配降下方法を実行して、前記複数の抵抗器の可能な抵抗値を識別することを含む、請求項10に記載の方法。
- 前記ニューラルネットワークトポロジが、1つ以上のGRUニューロンまたはLSTMニューロンを含み、前記ニューラルネットワークトポロジを変換することが、前記1つ以上のGRUニューロンまたはLSTMニューロンの各回帰接続のための1つ以上の信号遅延ブロックを生成することを含む、請求項1に記載の方法。
- 前記1つ以上の信号遅延ブロックが、前記ニューラルネットワークトポロジに対する所定の入力信号周波数と一致する周波数で活性化される、請求項12に記載の方法。
- 前記ニューラルネットワークトポロジが、制限されない活性化関数を実行するニューロンの1つ以上の層を含み、前記ニューラルネットワークトポロジを変換することが、
前記制限されない活性化関数を制限された活性化で置換することと、
所定の1つ以上の入力に対して、前記訓練されたニューラルネットワークと前記同等なアナログネットワークとの間の出力の差が最小化されるように、前記同等なアナログネットワークの接続または重みを調整することと、からなる群から選択される1つ以上の変換を適用することを含む、請求項1に記載の方法。 - 前記抵抗行列に基づいて、前記アナログコンポーネントの同等なアナログネットワークを実装する回路を作製するための1つ以上のリソグラフィマスクを生成することをさらに含む、請求項2に記載の方法。
- 前記訓練されたニューラルネットワークの新たな重みを取得することと、
前記新たな重みに基づいて、前記同等なアナログネットワークの新たな重み行列を計算することと、
前記新たな重み行列の新たな抵抗行列を生成することと、
前記新たな抵抗行列に基づいて、前記アナログコンポーネントの同等なアナログネットワークを実装する前記回路を作製するための新たなリソグラフィマスクを生成することと、をさらに含む、請求項15に記載の方法。 - 前記訓練されたニューラルネットワークが、前記重みを生成するためのソフトウェアシミュレーションを使用して訓練されている、請求項1に記載の方法。
- ニューラルネットワークのハードウェア実現のためのシステムであって、
1つ以上のプロセッサと、
メモリと、を含み、
前記メモリが、前記1つ以上のプロセッサによる実行用に構成された1つ以上のプログラムを記憶し、前記1つ以上のプログラムが、
ニューラルネットワークトポロジおよび訓練されたニューラルネットワークの重みを取得することと、
前記ニューラルネットワークトポロジをアナログコンポーネントの同等なアナログネットワークに変換することと、
前記訓練されたニューラルネットワークの前記重みに基づいて、前記同等なアナログネットワークの重み行列を計算することであって、前記重み行列の各要素が、前記同等なアナログネットワークのアナログコンポーネント間のそれぞれの接続を表す、計算することと、
前記重み行列に基づいて前記同等なアナログネットワークを実装するための概略モデルを生成することであって、前記実装することが、前記アナログコンポーネントのコンポーネント値を選択することを含む、生成することと、のための命令を含む、システム。 - 1つ以上のプロセッサを有するコンピュータシステムによる実行用に構成された1つ以上のプログラムを記憶している非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、
ニューラルネットワークトポロジおよび訓練されたニューラルネットワークの重みを取得することと、
前記ニューラルネットワークトポロジをアナログコンポーネントの同等なアナログネットワークに変換することと、
前記訓練されたニューラルネットワークの前記重みに基づいて、前記同等なアナログネットワークの重み行列を計算することであって、前記重み行列の各要素が、前記同等なアナログネットワークのアナログコンポーネント間のそれぞれの接続を表す、計算することと、
前記重み行列に基づいて前記同等なアナログネットワークを実装するための、概略モデルを生成することであって、前記実装することが、前記アナログコンポーネントのコンポーネント値を選択することを含む、生成することと、のための命令を含む、非一時的コンピュータ可読記憶媒体。 - ニューラルネットワークのハードウェア実現のための方法であって、
ニューラルネットワークトポロジおよび訓練されたニューラルネットワークの重みを取得することと、
アナログ集積回路(IC)設計制約に基づいて、1つ以上の結合制約を計算することと、
前記ニューラルネットワークトポロジを、前記1つ以上の結合制約を満たすアナログコンポーネントの同等な疎結合ネットワークに変換することと、
前記訓練されたニューラルネットワークの前記重みに基づいて、前記同等な疎結合ネットワークの重み行列を計算することであって、前記重み行列の各要素が、前記同等な疎結合ネットワークのアナログコンポーネント間のそれぞれの接続を表す、計算することと、を含む、方法。 - 前記ニューラルネットワークトポロジを、前記アナログコンポーネントの同等な疎結合ネットワークに変換することが、
前記1つ以上の結合制約に従って、可能な入力結合度Niおよび出力結合度Noを導出することを含む、請求項20に記載の方法。 - 前記ニューラルネットワークトポロジが、K個の入力およびL個の出力を有する畳み込み層を含み、
前記ニューラルネットワークトポロジを前記アナログコンポーネントの同等な疎結合ネットワークに変換することが、
前記畳み込み層を、K個の入力、L個の出力、Piの最大入力結合度、およびPoの最大出力結合度を有する単一の疎結合層に分解することであって、Pi≦NiかつPo≦Noである、分解することと、を含む、請求項21に記載の方法。 - 前記重み行列を利用して前記同等な疎結合ネットワークを実装するための概略モデルを生成することをさらに含む、請求項20に記載の方法。
- 前記ニューラルネットワークトポロジが、回帰型ニューラル層を含み、
前記ニューラルネットワークトポロジを前記アナログコンポーネントの同等な疎結合ネットワークに変換することが、
前記回帰型ニューラル層を、信号遅延接続を有する1つ以上の密結合層または疎結合層に変換することを含む、請求項20に記載の方法。 - 前記ニューラルネットワークトポロジが、回帰型ニューラル層を含み、
前記ニューラルネットワークトポロジを前記アナログコンポーネントの同等な疎結合ネットワークに変換することが、
前記回帰型ニューラル層をいくつかの層に分解することであって、前記層のうちの少なくとも1つが、K個の入力およびL個の出力および重み行列Uを有する密結合層または疎結合層と同等であり、欠けている接続が、ゼロで表される、分解することを含む、請求項20に記載の方法。 - 前記ニューラルネットワークトポロジが、K個の入力、重みベクトルU∈RK、および、活性化関数Fを有する計算ニューロンを有する単層パーセプトロンを含み、
前記ニューラルネットワークトポロジを前記アナログコンポーネントの同等な疎結合ネットワークに変換することが、
前記1つ以上の結合制約に従って、前記同等な疎結合ネットワークの結合度Nを導出することと、
式
を使用して前記同等な疎結合ネットワークの層の数mを計算することと、
前記K個の入力、m個の層、および前記結合度Nを有する前記同等な疎結合ネットワークを構築することであって、前記同等な疎結合ネットワークが、前記m個の層の各層にそれぞれの1つ以上のアナログニューロンを含み、第1のm-1個の層の各アナログニューロンが、恒等変換を実装し、最後の層のアナログニューロンが、前記単層パーセプトロンの前記計算ニューロンの前記活性化関数Fを実装し、
前記同等な疎結合ネットワークの前記重み行列を計算することが、
前記同等な疎結合ネットワークの接続の重みベクトルWを、前記重みベクトルUに基づく連立方程式を解くことによって計算することを含み、前記連立方程式が、S個の変数を有するK個の方程式を含み、Sが、式
を使用して計算される、請求項20に記載の方法。 - 前記ニューラルネットワークトポロジが、K個の入力、L個の計算ニューロンを有する単層パーセプトロン、および、前記L個の計算ニューロンの各計算ニューロンの重みの行を含む重み行列Vを含み、
前記ニューラルネットワークトポロジを前記アナログコンポーネントの同等な疎結合ネットワークに変換することが、
前記1つ以上の結合制約に従って、前記同等な疎結合ネットワークの結合度Nを導出することと、
式
を使用して前記同等な疎結合ネットワークの層の数mを計算することと、
前記単層パーセプトロンをL個の単層パーセプトロンネットワークに分解することであって、各単層パーセプトロンネットワークが、前記L個の計算ニューロンのそれぞれの計算ニューロンを含む、分解することと、
L個の単層パーセプトロンネットワークの各単層パーセプトロンネットワークについて、
前記K個の入力、m個の層、および前記結合度Nを有する前記それぞれの単層パーセプトロンネットワークのそれぞれの同等なピラミッド様サブネットワークを構築することであって、前記同等なピラミッド様サブネットワークが、前記m個の層の各層に1つ以上のそれぞれのアナログニューロンを含み、第1のm-1個の層の各アナログニューロンが、恒等変換を実装し、最後の層のアナログニューロンが、前記それぞれの単層パーセプトロンに対応する前記それぞれの計算ニューロンの前記活性化関数を実装する、構築することと、
L*K個の入力を有する入力ベクトルを形成するように、前記L個の単層パーセプトロンネットワークの各同等なピラミッド様サブネットワークの入力を連結することを含めて、各同等なピラミッド様サブネットワークを連結することによって、前記同等な疎結合ネットワークを構築することと、
前記同等な疎結合ネットワークの前記重み行列を計算することが、
前記L個の単層パーセプトロンネットワークの各単層パーセプトロンネットワークについて、
前記それぞれの単層パーセプトロンネットワークに対応する前記それぞれの計算ニューロンに対応する前記重み行列Vの重みベクトルU=Vi、i番目の行を設定することと、
前記重みベクトルUに基づく連立方程式を解くことによって、前記それぞれの同等なピラミッド様サブネットワークの接続の重みベクトルWiを計算することであって、前記連立方程式が、S個の変数を有するK個の方程式を含み、Sが、式
を使用して計算される、計算することと、を含む、請求項20に記載の方法。 - 前記ニューラルネットワークトポロジが、K個の入力、S個の層を有する多層パーセプトロンを含み、前記S個の層の各層iが、計算ニューロンLiと、と、前記Li計算ニューロンの各計算ニューロンの重みの行を含む対応する重み行列Viと、の対応するセットを含み、
前記ニューラルネットワークトポロジを前記アナログコンポーネントの同等な疎結合ネットワークに変換することが、
前記1つ以上の結合制約に従って、前記同等な疎結合ネットワークの結合度Nを導出することと、
前記多層パーセプトロンをQ=Σi=1,S(Li)個の単層パーセプトロンネットワークに分解することであって、各単層パーセプトロンネットワークが、前記Q個の計算ニューロンのそれぞれの計算ニューロンを含み、前記多層パーセプトロンを分解することが、前記Q個の計算ニューロンによって共有される前記K個の入力の1つ以上の入力を複製することを含む、分解することと、
前記Q個の単層パーセプトロンネットワークの各単層パーセプトロンネットワークについて、
式
を使用してそれぞれの同等なピラミッド様サブネットワークの層の数mを計算することであって、Ki,jが、前記多層パーセプトロンの前記それぞれの計算ニューロンの入力の数である、計算することと、
Ki,j個の入力、前記m個の層、および前記結合度Nを有する前記それぞれの単層パーセプトロンネットワークの前記それぞれの同等なピラミッド様サブネットワークを構築することであって、前記同等なピラミッド様サブネットワークが、前記m個の層の各層に1つ以上のそれぞれのアナログニューロンを含み、第1のm-1個の層の各アナログニューロンが、恒等変換を実装し、最後の層のアナログニューロンが、前記それぞれの単層パーセプトロンネットワークに対応する前記それぞれの計算ニューロンの前記活性化関数を実装する、構築することと、
Q*Ki,j個の入力を有する入力ベクトルを形成するように、前記Q個の単層パーセプトロンネットワークの各同等なピラミッド様サブネットワークの入力を連結することを含めて、各同等なピラミッド様サブネットワークを連結することによって、前記同等な疎結合ネットワークを構築することと、
前記同等な疎結合ネットワークの前記重み行列を計算することが、
前記Q個の単層パーセプトロンネットワークの各単層パーセプトロンネットワークについて、
重みベクトル
を設定することであって、前記重み行列Vの前記i番目の行が、前記それぞれの単層パーセプトロンネットワークに対応する前記それぞれの計算ニューロンに対応し、jが、前記多層パーセプトロンの前記それぞれの計算ニューロンの前記対応する層である、設定することと、
前記重みベクトルUに基づく連立方程式を解くことによって、前記それぞれの同等なピラミッド様サブネットワークの接続の重みベクトルWiを計算することであって、前記連立方程式が、S個の変数を有するKi,j個の連立方程式を含み、Sが、式
を使用して計算される、計算することと、を含む、請求項20に記載の方法。 - 前記ニューラルネットワークトポロジが、K個の入力、S個の層を有する畳み込みニューラルネットワーク(CNN)を含み、前記S個の層の各層iが、計算ニューロンLiと、前記Li計算ニューロンの各計算ニューロンの重みの行を含む対応する重み行列Viと、の対応するセットを含み、
前記ニューラルネットワークトポロジを前記アナログコンポーネントの同等な疎結合ネットワークに変換することが、
前記1つ以上の結合制約に従って、前記同等な疎結合ネットワークの結合度Nを導出することと、
前記CNNをQ=Σi=1,S(Li)個の単層パーセプトロンネットワークに分解することであって、各単層パーセプトロンネットワークが、前記Q個の計算ニューロンのそれぞれの計算ニューロンを含み、前記CNNを分解することが、前記Q個の計算ニューロンによって共有される前記K個の入力の1つ以上の入力を複製することを含む、分解することと、
前記Q個の単層パーセプトロンネットワークの各単層パーセプトロンネットワークについて、
式
を使用して、それぞれの同等なピラミッド様サブネットワークの層の数mを計算することであって、jが、前記CNN内の前記それぞれの計算ニューロンの前記対応する層であり、Ki,jが、前記CNN内の前記それぞれの計算ニューロンの入力の数である、計算することと、
Ki,j個の入力、前記m個の層、および前記結合度Nを有する前記それぞれの単層パーセプトロンネットワークの前記それぞれの同等なピラミッド様サブネットワークを構築することであって、前記同等なピラミッド様サブネットワークが、前記m個の層の各層に1つ以上のそれぞれのアナログニューロンを含み、第1のm-1個の層の各アナログニューロンが、恒等変換を実装し、最後の層のアナログニューロンが、前記それぞれの単層パーセプトロンネットワークに対応する前記それぞれの計算ニューロンの前記活性化関数を実装する、構築することと、
Q*Ki,j個の入力を有する入力ベクトルを形成するように、前記Q個の単層パーセプトロンネットワークの各同等なピラミッド様サブネットワークの入力を連結することを含めて、各同等なピラミッド様サブネットワークを連結することによって、前記同等な疎結合ネットワークを構築することと、
前記同等な疎結合ネットワークの前記重み行列を計算することが、
前記Q個の単層パーセプトロンネットワークの各単層パーセプトロンネットワークについて、
重みベクトル
を設定することであって、前記重み行列Vの前記i番目の行が、前記それぞれの単層パーセプトロンネットワークに対応する前記それぞれの計算ニューロンに対応し、jが、前記CNN内の前記それぞれの計算ニューロンの前記対応する層である、設定することと、
前記重みベクトルUに基づく連立方程式を解くことによって、前記それぞれの同等なピラミッド様サブネットワークの接続の重みベクトルWiを計算することであって、前記連立方程式が、S個の変数を有するKi,j個の連立方程式を含み、Sが、
式を使用して計算される、計算することと、を含む、請求項20に記載の方法。 - 前記ニューラルネットワークトポロジが、K個の入力、K個のニューロンを有する層Lp、L個のニューロンを有する層Ln、および重み行列W∈RL×Kを含み、Rが、実数の集合であり、前記層Lpの各ニューロンが、前記層Lnの各ニューロンに接続されており、前記層Lnの各ニューロンが、活性化関数Fを実行し、これにより、前記層Lnの出力が、入力xについての式Yo=F(W.x)を使用して計算され、
前記ニューラルネットワークトポロジを前記アナログコンポーネントの同等な疎結合ネットワークに変換することが、
前記1つ以上の結合制約に従って、可能な入力結合度NI>1および可能な出力結合度NO>1を導出することを含む、台形変換を実行することを含み、
K・L<L・NI+K・NOという判定に従って、恒等活性化関数を実行するK個のアナログニューロンを有する層LAp、恒等活性化関数を実行する
個のアナログニューロンを有する層LAh、および活性化関数Fを実行するL個のアナログニューロンを有するLAoを構築することであって、前記層LApの各アナログニューロンが、NO個の出力を有し、前記層LAhの各アナログニューロンが、NI個以下の入力およびNO個以下の出力を有し、かつ前記層LAoの各アナログニューロンが、NI個の入力を有するようにする、構築することと、
前記同等な疎結合ネットワークの前記重み行列を計算することと、が、
K・N・O+L・NI個の変数でのK・L個の方程式を含む行列方程式Wo.Wh=Wを解くことによって、疎重み行列WoおよびWhを生成することであって、これにより、前記層LAoの総出力が、式Yo=F(Wo.Wh.x)を使用して計算され、前記疎重み行列Wo∈RK×Mが、前記層LApおよびLAh間の接続を表し、前記疎重み行列Wh∈RM×Lが前記層LAhおよびLAo間の接続を表す、生成することを含む、請求項20に記載の方法。 - 前記台形変換を実行することが、
K・L≧L・NI+K・NOという判定に従って、
前記層Lpを分割して、K’・L≧L・NI+K’・NOとなるように、K’個のニューロンを有するサブ層Lp1、および(K-K’)個のニューロンを有するサブ層Lp2を取得することと、
K’個のニューロンを有する前記サブ層Lp1について、前記構築するステップ、および生成するステップを実行することと、
K-K’個のニューロンを有する前記サブ層Lp2について、前記分割するステップ、構築するステップ、および生成するステップを再帰的に実行することと、をさらに含む、請求項33に記載の方法。 - 前記ニューラルネットワークトポロジが、多層パーセプトロンネットワークを含み、前記方法が、
前記多層パーセプトロンネットワークの連続する層の各ペアについて、前記台形変換を反復的に実行し、かつ前記同等な疎結合ネットワークの前記重み行列を計算することをさらに含む、請求項34に記載の方法。 - 前記ニューラルネットワークトポロジが、(i)2つの全結合層の線形結合の計算、(ii)要素ごとの加算、および(iii)非線形関数計算を含む、回帰型ニューラルネットワーク(RNN)を含み、前記方法が、
(i)前記2つの全結合層、および(ii)前記非線形関数計算について、前記台形変換を実行し、かつ前記同等な疎結合ネットワークの前記重み行列を計算することをさらに含む、請求項34に記載の方法。 - 前記ニューラルネットワークトポロジが、(i)複数の全結合層の線形結合の計算、(ii)要素ごとの加算、(iii)アダマール積、および(iv)複数の非線形関数計算を含む、長期短期記憶(LSTM)ネットワークまたはゲート付き回帰型ユニット(GRU)ネットワークを含み、前記方法が、
(i)前記複数の全結合層、および(ii)前記複数の非線形関数計算について、前記台形変換を実行することと、前記同等な疎結合ネットワークの前記重み行列を計算することと、をさらに含む、請求項34に記載の方法。 - 前記ニューラルネットワークトポロジが、(i)複数の部分結合層、および(ii)1つ以上の全結合層()を含む畳み込みニューラルネットワーク(CNN)を含み、前記方法が、
ゼロの重みを有する欠けている接続を挿入することによって、前記複数の部分結合層を同等な全結合層に変換することと、
前記同等な全結合層および前記1つ以上の全結合層の連続する層の各ペアについて、前記台形変換を反復的に実行し、かつ前記同等な疎結合ネットワークの前記重み行列を計算することと、をさらに含む、請求項34に記載の方法。 - 前記ニューラルネットワークトポロジが、K個の入力、L個の出力ニューロン、および重み行列U∈RL×Kを含み、Rが、実数の集合であり、各出力ニューロンが、活性化関数Fを実行し、
前記ニューラルネットワークトポロジを前記アナログコンポーネントの同等な疎結合ネットワークに変換することが、
前記1つ以上の結合制約に従って、可能な入力結合度NI>1および可能な出力結合度NO>1を導出することを含む、近似変換を実行することと、
集合
からパラメータpを選択することと、
p>0という判定に従って、ピラミッドニューラルネットワークであって、前記ピラミッドニューラルネットワークがその出力層に
個のニューロンを有するように、前記同等な疎結合ネットワークの第1のp個の層を形成するピラミッドニューラルネットワークを構築することであって、前記ピラミッドニューラルネットワーク内の各ニューロンが、恒等関数を実行する、構築することと、
Np個の入力およびL個の出力を有する台形ニューラルネットワークを構築することであって、前記台形ニューラルネットワークの前記最後の層の各ニューロンが、前記活性化関数Fを実行し、すべての他のニューロンが、恒等関数を実行する、構築することと、を含み、
前記同等な疎結合ネットワークの前記重み行列を計算することが、
(i)以下のルール、すなわち、(a)Cが非ゼロ定数であり、かつki=(i-1)NI+1であるとして、
、および(b)kiを除く前記ニューロンのすべての重みjについて、
、に従って、前記ピラミッドニューラルネットワークの前記第1の層のあらゆるニューロンiの重みを設定すること、ならびに(ii)前記ピラミッドニューラルネットワークのすべての他の重みを1に設定することを含む、前記ピラミッドニューラルネットワークの重みを生成することと、
(i)式
に従って前記台形ニューラルネットワークの前記第1の層の各ニューロンiの重みを設定すること、および(ii)前記台形ニューラルネットワークの他の重みを1に設定することを含む、前記台形ニューラルネットワークの重みを生成することと、を含む、請求項20に記載の方法。 - 前記ニューラルネットワークトポロジが、i番目の層に前記K個の入力、S個の層、およびLi=1,S個の計算ニューロンを有する多層パーセプトロンと、L0=Kとして前記i番目の層の重み行列
と、を含み、
前記ニューラルネットワークトポロジを前記アナログコンポーネントの同等な疎結合ネットワークに変換することが、
前記多層パーセプトロンの前記S個の層の各層jについて、
Lj-1個の入力、Lj個の出力ニューロン、および重み行列Ujからなるそれぞれの単層パーセプトロンへの近似変換を実行することによって、それぞれのピラミッド-台形ネットワークPTNNXjを構築することと、
各ピラミッド台形ネットワークをスタックすることによって、前記同等な疎結合ネットワークを構築することと、を含む、請求項39に記載の方法。 - ニューラルネットワークのハードウェア実現のためのシステムであって、
1つ以上のプロセッサと、
メモリと、を含み、
前記メモリが、前記1つ以上のプロセッサによる実行用に構成された1つ以上のプログラムを記憶し、前記1つ以上のプログラムが、
ニューラルネットワークトポロジおよび訓練されたニューラルネットワークの重みを取得することと、
アナログ集積回路(IC)設計制約に基づいて、1つ以上の結合制約を計算することと、
前記ニューラルネットワークトポロジを、前記1つ以上の結合制約を満たすアナログコンポーネントの同等な疎結合ネットワークに変換することと、
前記訓練されたニューラルネットワークの前記重みに基づいて、前記同等な疎結合ネットワークの重み行列を計算することであって、前記重み行列の各要素が、前記同等な疎結合ネットワークのアナログコンポーネント間のそれぞれの接続を表す、計算することと、のための命令を含む、システム。 - 1つ以上のプロセッサを有するコンピュータシステムによる実行用に構成された1つ以上のプログラムを記憶している非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、
ニューラルネットワークトポロジおよび訓練されたニューラルネットワークの重みを取得することと、
アナログ集積回路(IC)設計制約に基づいて、1つ以上の結合制約を計算することと、
前記ニューラルネットワークトポロジを、前記1つ以上の結合制約を満たすアナログコンポーネントの同等な疎結合ネットワークに変換することと、
前記訓練されたニューラルネットワークの前記重みに基づいて、前記同等な疎結合ネットワークの重み行列を計算することであって、前記重み行列の各要素が、前記同等な疎結合ネットワークのアナログコンポーネント間のそれぞれの接続を表す、計算することと、のための命令を含む、非一時的コンピュータ可読記憶媒体。 - ニューラルネットワークのハードウェア実現のための方法であって、
ニューラルネットワークトポロジおよび訓練されたニューラルネットワークの重みを取得することと、
前記ニューラルネットワークトポロジを、複数の演算増幅器および複数の抵抗器を含むアナログコンポーネントの同等なアナログネットワークに変換することであって、各演算増幅器が、前記同等なアナログネットワークのアナログニューロンを表し、各抵抗器が、2つのアナログニューロン間の接続を表す、変換することと、
前記訓練されたニューラルネットワークの前記重みに基づいて、前記同等なアナログネットワークの重み行列を計算することであって、前記重み行列の各要素が、それぞれの接続を表す、計算することと、
前記重み行列の抵抗行列を生成することであって、前記抵抗行列の各要素が、前記重み行列のそれぞれの重みに対応し、抵抗値を表す、生成することと、を含む、方法。 - 前記重み行列の前記抵抗行列を生成することが、
可能な抵抗値の所定の範囲{R最小,R最大}を取得することと、前記所定の範囲内の初期ベース抵抗値Rベースを選択することと、
前記所定の範囲内で、制限された長さの抵抗値セットを選択することであって、前記制限された長さの抵抗値セットが、前記制限された長さの抵抗値セット内の{Ri,Rj}のすべての組み合わせについて、前記範囲[-Rベース,Rベース]内の最も均一な分布の可能な重み
を提供する、選択することと、
前記同等なアナログネットワークの、各アナログニューロンについてまたは各層について、のいずれかで、前記同等なアナログネットワークの、各ニューロンのまたは各層についての、入ってくる接続の最大重みおよびバイアスw最大に基づいて、R+=R-がRベース*w最大に最も近い抵抗器セット値であるように、前記制限された長さの抵抗値セットから抵抗値R+=R-を選択することと、
前記重み行列の各要素について、R1およびR2のすべての可能な値について、式
に従う誤差を可能な抵抗値の前記所定の範囲内で最小化する、それぞれの第1の抵抗値R1およびそれぞれの第2の抵抗値R2を選択することであって、wが、前記重み行列の前記それぞれの要素であり、rerrが、抵抗についての所定の相対許容差値である、選択することと、を含む、請求項43に記載の方法。 - 可能な抵抗値の前記所定の範囲が、100Kオーム~1Mオームの範囲の公称シリーズE24に従う抵抗を含む、請求項44に記載の方法。
- R+およびR-が、前記同等なアナログネットワークの各層について独立に選定される、請求項44に記載の方法。
- R+およびR-が、前記同等なアナログネットワークの各アナログニューロンについて独立に選定される、請求項44に記載の方法。
- 前記重み行列の第1の1つ以上の重みおよび第1の1つ以上の入力が、前記同等なアナログネットワークの第1の演算増幅器への1つ以上の接続を表し、前記方法が、
前記抵抗行列を生成する前に、
前記第1の1つ以上の重みを第1の値によって修正することと、
活性化関数を実行する前に、前記第1の演算増幅器を、前記第1の1つ以上の重みと前記第1の1つ以上の入力との線形結合に前記第1の値を乗算するように構成することと、をさらに含む、請求項43に記載の方法。 - 重みの所定の範囲を取得することと、
前記同等なアナログネットワークが、同じ入力に対して前記訓練されたニューラルネットワークと同様の出力を生成するように、前記重みの所定の範囲に従って前記重み行列を更新することと、をさらに含む、請求項43に記載の方法。 - 前記訓練されたニューラルネットワークが、前記ニューラルネットワークトポロジの各層が量子化された重みを有するように訓練されている、請求項43に記載の方法。
- 前記訓練されたニューラルネットワークを再訓練して、前記同等なアナログネットワークに、前記訓練されたニューラルネットワークと比較して異なる出力を生成させる、前記重みまたは前記抵抗値の誤差に対する感度を低下させることをさらに含む、請求項43に記載の方法。
- 所定の閾値よりも大きい閾値によって、その層の平均絶対重みよりも大きい任意の層における重みを最小化するために、前記訓練されたニューラルネットワークを再訓練することをさらに含む、請求項43に記載の方法。
- ニューラルネットワークのハードウェア実現のためのシステムであって、
1つ以上のプロセッサと、
メモリと、を含み、
前記メモリが、前記1つ以上のプロセッサによる実行用に構成された1つ以上のプログラムを記憶し、前記1つ以上のプログラムが、
ニューラルネットワークトポロジおよび訓練されたニューラルネットワークの重みを取得することと、
前記ニューラルネットワークトポロジを、複数の演算増幅器および複数の抵抗器を含むアナログコンポーネントの同等なアナログネットワークに変換することであって、各演算増幅器が、前記同等なアナログネットワークのアナログニューロンを表し、各抵抗器が、2つのアナログニューロン間の接続を表す、変換することと、
前記訓練されたニューラルネットワークの前記重みに基づいて、前記同等なアナログネットワークの重み行列を計算することであって、前記重み行列の各要素が、それぞれの接続を表す、計算することと、
前記重み行列の抵抗行列を生成することであって、前記抵抗行列の各要素が、前記重み行列のそれぞれの重みに対応し、抵抗値を表す、生成することと、のための命令を含む、システム。 - 1つ以上のプロセッサを有するコンピュータシステムによる実行用に構成された1つ以上のプログラムを記憶している非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、
ニューラルネットワークトポロジおよび訓練されたニューラルネットワークの重みを取得することと、
前記ニューラルネットワークトポロジを、複数の演算増幅器および複数の抵抗器を含むアナログコンポーネントの同等なアナログネットワークに変換することであって、各演算増幅器が、前記同等なアナログネットワークのアナログニューロンを表し、各抵抗器が、2つのアナログニューロン間の接続を表す、変換することと、
前記訓練されたニューラルネットワークの前記重みに基づいて、前記同等なアナログネットワークの重み行列を計算することであって、前記重み行列の各要素が、それぞれの接続を表す、計算することと、
前記重み行列の抵抗行列を生成することであって、前記抵抗行列の各要素が、前記重み行列のそれぞれの重みに対応し、抵抗値を表す、生成することと、のための命令を含む、非一時的コンピュータ可読記憶媒体。 - ニューラルネットワークのハードウェア実現のための方法であって、
ニューラルネットワークトポロジおよび訓練されたニューラルネットワークの重みを取得することと、
前記ニューラルネットワークトポロジを、複数の演算増幅器および複数の抵抗器を含むアナログコンポーネントの同等なアナログネットワークに変換することであって、各演算増幅器が、前記同等なアナログネットワークのアナログニューロンを表し、各抵抗器が、2つのアナログニューロン間の接続を表す、変換することと、
前記訓練されたニューラルネットワークの前記重みに基づいて、前記同等なアナログネットワークの重み行列を計算することであって、前記重み行列の各要素が、それぞれの接続を表す、計算することと、
前記重み行列の抵抗行列を生成することであって、前記抵抗行列の各要素が、前記重み行列のそれぞれの重みに対応する、生成することと、
前記同等なアナログネットワークを枝刈りして、前記抵抗行列に基づいて、前記複数の演算増幅器または前記複数の抵抗器の数を低減して、アナログコンポーネントの最適化されたアナログネットワークを取得することと、を含む、方法。 - 前記同等なアナログネットワークを枝刈りすることが、
所定の最小閾値抵抗値を下回る抵抗値を有する前記抵抗行列の1つ以上の要素に対応する抵抗器を、導体で置き換えることを含む、請求項55に記載の方法。 - 前記同等なアナログネットワークを枝刈りすることが、
所定の最大閾値抵抗値を上回る前記抵抗行列の1つ以上の要素に対応する、前記同等なアナログネットワークの1つ以上の接続を除去することを含む、請求項55に記載の方法。 - 前記同等なアナログネットワークを枝刈りすることが、
およそゼロである前記重み行列の1つ以上の要素に対応する、前記同等なアナログネットワークの1つ以上の接続を除去することを含む、請求項55に記載の方法。 - 前記同等なアナログネットワークを枝刈りすることが、
いかなる入力接続も有しない、前記同等なアナログネットワークの1つ以上のアナログニューロンを除去することを含む、請求項58に記載の方法。 - 前記同等なアナログネットワークを枝刈りすることが、
1つ以上のデータセットの計算を行うときに、前記アナログニューロンの使用を検出することに基づいて、前記同等なアナログネットワークのアナログニューロンをランク付けすることと、
前記ランク付けに基づいて前記同等なアナログネットワークの1つ以上のアナログニューロンを選択することと、
前記1つ以上のアナログニューロンを前記同等なアナログネットワークから除去することと、を含む、請求項55に記載の方法。 - 前記アナログニューロンの使用を検出することが、
モデリングソフトウェアを使用して前記同等なアナログネットワークのモデルを確立することと、
前記モデルを使用して前記1つ以上のデータセットの計算を生成することによって、アナログ信号の伝播を測定することと、を含む、請求項60に記載の方法。 - 前記アナログニューロンの使用を検出することが、
モデリングソフトウェアを使用して前記同等なアナログネットワークのモデルを確立することと、
前記モデルを使用して前記1つ以上のデータセットの計算を生成することによって、前記モデルの出力信号を測定することと、を含む、請求項60に記載の方法。 - 前記アナログニューロンの使用を検出することが、
モデリングソフトウェアを使用して前記同等なアナログネットワークのモデルを確立することと、
前記モデルを使用して前記1つ以上のデータセットの計算を生成することによって、前記アナログニューロンによって消費される電力を測定することと、を含む、請求項60に記載の方法。 - 前記同等なアナログネットワークを枝刈りした後、かつ前記同等なアナログネットワークを実装する回路を作製するための1つ以上のリソグラフィマスクを生成する前に、前記同等なアナログネットワークの前記重み行列を再計算し、かつ前記再計算された重み行列に基づいて前記抵抗行列を更新することをさらに含む、請求項55に記載の方法。
- 前記同等なアナログネットワークの各アナログニューロンについて、
前記重み行列を計算しながら、前記訓練されたニューラルネットワークの前記重みに基づいて、前記それぞれのアナログニューロンのそれぞれのバイアス値を計算することと、
前記それぞれのバイアス値が所定の最大バイアス閾値を上回っているという判定に従って、前記同等なアナログネットワークから前記それぞれのアナログニューロンを除去することと、
前記それぞれのバイアス値が所定の最小バイアス閾値を下回っているという判定に従って、前記それぞれのアナログニューロンを、前記同等なアナログネットワーク内の線形接合部で置換することと、をさらに含む、請求項55に記載の方法。 - 前記重み行列を生成する前に、前記同等なアナログネットワークの1つ以上のアナログニューロンからの接続の数を増加させることによって、前記同等なアナログネットワークのニューロンの数を低減することをさらに含む、請求項55に記載の方法。
- 前記ニューラルネットワークトポロジを変換する前に、前記同等なアナログネットワークが所定数未満のアナログコンポーネントを含むように、ニューラルネットワークの枝刈り技術を使用して、前記訓練されたニューラルネットワークを枝刈りして、前記ニューラルネットワークトポロジおよび前記訓練されたニューラルネットワークの前記重みを更新することをさらに含む、請求項55に記載の方法。
- 前記枝刈りが、前記訓練されたニューラルネットワークと前記同等なアナログネットワークとの間の出力の一致の、精度またはレベルを考慮して、反復実行される、請求項67に記載の方法。
- 前記ニューラルネットワークトポロジを前記同等なアナログネットワークに変換する前に、ネットワーク知識抽出を実行することをさらに含む、請求項55に記載の方法。
- ニューラルネットワークのハードウェア実現のためのシステムであって、
1つ以上のプロセッサと、
メモリと、を含み、
前記メモリが、前記1つ以上のプロセッサによる実行用に構成された1つ以上のプログラムを記憶し、前記1つ以上のプログラムが、
ニューラルネットワークトポロジおよび訓練されたニューラルネットワークの重みを取得することと、
前記ニューラルネットワークトポロジを、複数の演算増幅器および複数の抵抗器を含むアナログコンポーネントの同等なアナログネットワークに変換することであって、各演算増幅器が、前記同等なアナログネットワークのアナログニューロンを表し、各抵抗器が、2つのアナログニューロン間の接続を表す、変換することと、
前記訓練されたニューラルネットワークの前記重みに基づいて、前記同等なアナログネットワークの重み行列を計算することであって、前記重み行列の各要素が、それぞれの接続を表す、計算することと、
前記重み行列の抵抗行列を生成することであって、前記抵抗行列の各要素が、前記重み行列のそれぞれの重みに対応する、生成することと、
前記同等なアナログネットワークを枝刈りして、前記抵抗行列に基づいて、前記複数の演算増幅器または前記複数の抵抗器の数を低減して、アナログコンポーネントの最適化されたアナログネットワークを取得することと、のための命令を含む、システム。 - 1つ以上のプロセッサを有するコンピュータシステムによる実行用に構成された1つ以上のプログラムを記憶している非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、
ニューラルネットワークトポロジおよび訓練されたニューラルネットワークの重みを取得することと、
前記ニューラルネットワークトポロジを、複数の演算増幅器および複数の抵抗器を含むアナログコンポーネントの同等なアナログネットワークに変換することであって、各演算増幅器が、前記同等なアナログネットワークのアナログニューロンを表し、各抵抗器が、2つのアナログニューロン間の接続を表す、変換することと、
前記訓練されたニューラルネットワークの前記重みに基づいて、前記同等なアナログネットワークの重み行列を計算することであって、前記重み行列の各要素が、それぞれの接続を表す、計算することと、
前記重み行列の抵抗行列を生成することであって、前記抵抗行列の各要素が、前記重み行列のそれぞれの重みに対応する、生成することと、
前記同等なアナログネットワークを枝刈りして、前記抵抗行列に基づいて、前記複数の演算増幅器または前記複数の抵抗器の数を低減して、アナログコンポーネントの最適化されたアナログネットワークを取得することと、のための命令を含む、非一時的コンピュータ可読記憶媒体。 - 集積回路であって、
アナログコンポーネントのアナログネットワークを含み、前記アナログコンポーネントのアナログネットワークが、
ニューラルネットワークトポロジおよび訓練されたニューラルネットワークの重みを取得するステップと、
前記ニューラルネットワークトポロジを、複数の演算増幅器および複数の抵抗器を含むアナログコンポーネントの同等なアナログネットワークに変換するステップであって、各演算増幅器が、それぞれのアナログニューロンを表し、各抵抗器が、それぞれの第1のアナログニューロンとそれぞれの第2のアナログニューロンとの間のそれぞれの接続を表す、変換するステップと、
前記訓練されたニューラルネットワークの前記重みに基づいて、前記同等なアナログネットワークの重み行列を計算するステップであって、前記重み行列の各要素が、それぞれの接続を表す、計算するステップと、
前記重み行列の抵抗行列を生成するステップであって、前記抵抗行列の各要素が、前記重み行列のそれぞれの重みに対応する、生成するステップと、
前記抵抗行列に基づいて、前記アナログコンポーネントの同等なアナログネットワークを実装する回路を作製するための1つ以上のリソグラフィマスクを生成するステップと、
リソグラフィプロセスを使用して、前記1つ以上のリソグラフィマスクに基づく前記回路を作製するステップと、を含む方法によって作製される、集積回路。 - 1つ以上のデジタル信号に基づいて、前記アナログコンポーネントの同等なアナログネットワークのアナログ入力を生成するように構成された1つ以上のデジタルアナログ変換器をさらに含む、請求項72に記載の集積回路。
- 前記集積回路の推論の数に基づいて、サンプリング周波数で一次元または二次元のアナログ入力を処理するように構成されたアナログ信号サンプリングモジュールをさらに含む、請求項72に記載の集積回路。
- 前記複数の演算増幅器の動作範囲に適合するようにアナログ信号をスケールダウンするかまたはスケールアップするための電圧変換モジュールをさらに含む、請求項72に記載の集積回路。
- CCDカメラから取得された1つ以上のフレームを処理するように構成されたタクト信号処理モジュールをさらに含む、請求項72に記載の集積回路。
- 前記訓練されたニューラルネットワークが、長期短期記憶(LSTM)ネットワークであり、前記集積回路が、信号タクトを同期させ、かつ時系列処理を可能にするための1つ以上のクロックモジュールをさらに含む、請求項72に記載の集積回路。
- 前記アナログコンポーネントの同等なアナログネットワークの出力に基づいてデジタル信号を生成するように構成された1つ以上のアナログデジタル変換器をさらに含む、請求項72に記載の集積回路。
- 前記回路が、エッジアプリケーションから取得された一次元または二次元のアナログ信号を処理するように構成された1つ以上の信号処理モジュールを含む、請求項72に記載の集積回路。
- 前記訓練されたニューラルネットワークが、検出される所定の量のガスを含有するガス混合物中の異なるガスの選択的感知のために、異なるガス混合物に対するガスセンサのアレイの信号を含む訓練データセットを使用して訓練されており、
前記ニューラルネットワークトポロジが、16個のガスセンサによる測定に基づいて3つの二元ガス成分を検出するために設計された一次元深層畳み込みニューラルネットワーク(1D-DCNN)であり、16個のセンサごとの1D畳み込みブロック、3つの共有または共通の1D畳み込みブロック、および3つの稠密層を含み、
前記同等なアナログネットワークが、(i)アナログニューロン当たり最大100個の入出力接続、(ii)任意の数の時間ステップによる遅延を生じさせる遅延ブロック、(iii)5の信号制限、(iv)15個の層、(v)およそ100,000個のアナログニューロン、および(vi)およそ4,900,000個の接続を含む、請求項72に記載の集積回路。 - 前記訓練されたニューラルネットワークが、MOSFETデバイスの残存耐用年数(RUL)を予測するために、異なるMOSFETの熱老化時系列データを含む訓練データセットを使用して訓練されており、
前記ニューラルネットワークトポロジが、各層に64個のニューロンを有する4つのLSTM層、これに続く、それぞれ64個のニューロンおよび1つのニューロンを有する2つの稠密層を含み、
前記同等なアナログネットワークが、(i)アナログニューロン当たり最大100個の入出力接続、(ii)5の信号制限、(iii)18個の層、(iv)3,000~3,200個のアナログニューロン、および(v)123,000~124,000個の接続を含む、請求項72に記載の集積回路。 - 前記訓練されたニューラルネットワークが、電池管理システム(BMS)で使用するためのリチウムイオン電池の健康状態(SOH)および充電状態(SOC)を監視するために、異なる市販のLiイオン電池の連続使用中の放電および温度データを含む時系列データを含む訓練データセットを使用して訓練されており、
前記ニューラルネットワークトポロジが、入力層、各層に64個のニューロンを有する2つのLSTM層、これに続く、SOC値およびSOH値を生成するための2つのニューロンを有する出力稠密層を含み、
前記同等なアナログネットワークが、(i)アナログニューロン当たり最大100個の入出力接続、(ii)5の信号制限、(iii)9つの層、(iv)1,200~1,300個のアナログニューロン、および(v)51,000~52,000個の接続を含む、請求項72に記載の集積回路。 - 前記訓練されたニューラルネットワークが、電池管理システム(BMS)で使用するためのリチウムイオン電池の健康状態(SOH)を監視するために、異なる市販のLiイオン電池の連続使用中の放電および温度データを含む時系列データを含む訓練データセットを使用して訓練されており、
前記ニューラルネットワークトポロジが、18個のニューロンを有する入力層、100個のニューロンを有する単純回帰層、および1つのニューロンを有する稠密層を含み、
前記同等なアナログネットワークが、(i)アナログニューロン当たり最大100個の入出力接続、(ii)5の信号制限、(iii)4つの層、(iv)200~300個のアナログニューロン、および(v)2,200~2,400個の接続を含む、請求項72に記載の集積回路。 - 前記訓練されたニューラルネットワークが、発声コマンドを識別するために、発話コマンドを含む訓練データセットを使用して訓練されており、
前記ニューラルネットワークトポロジが、1つのニューロンを有する深さ方向に分離可能な畳み込みニューラルネットワーク(DS-CNN)層であり、
前記同等なアナログネットワークが、(i)アナログニューロン当たり最大100個の入出力接続、(ii)5の信号制限、(iii)13個の層、(iv)およそ72,000個のアナログニューロン、および(v)およそ260万個の接続を含む、請求項72に記載の集積回路。 - 前記訓練されたニューラルネットワークが、所定の期間にわたって様々な身体活動を行う異なる個人の光電式容積脈波記録法(PPG)データ、加速度計データ、温度データ、および電気皮膚応答信号データ、ならびにPPGセンサデータおよび3軸加速度計データに基づいて身体運動中の脈拍数を判定するためのECGセンサから取得された基準心拍数、を含む訓練データセットを使用して訓練されており、
前記ニューラルネットワークトポロジが、時系列畳み込みを行う、各々が16個のフィルタおよび20のカーネルを有する2つのConv1D層、各々が16個のニューロンを有する2つのLSTM層、ならびにそれぞれ16個のニューロンおよび1つのニューロンを有する2つの稠密層を含み、
前記同等なアナログネットワークが、(i)任意の数の時間ステップを生成するための遅延ブロック、(ii)アナログニューロン当たり最大100個の入出力接続、(iii)5の信号制限、(iv)16個の層、(v)700~800個のアナログニューロン、および(vi)12,000~12,500個の接続を含む、請求項72に記載の集積回路。 - 前記訓練されたニューラルネットワークが、パルスドップラレーダ信号に基づいて異なるオブジェクトを分類するように訓練されており、
前記ニューラルネットワークトポロジが、マルチスケールLSTMニューラルネットワークを含む、請求項72に記載の集積回路。 - 前記訓練されたニューラルネットワークが、人間活動のタイプの認識を実行するように訓練されており、
前記ニューラルネットワークトポロジが、各々が12個のフィルタおよび64のカーネル次元の畳み込み層を有し、かつ各々に、最大枝刈り層と、Nがクラスの数であるとして、それぞれ、1024個のニューロンおよびN個のニューロンの2つの共通の稠密層と、が続く、3つのチャネル方向の畳み込みネットワークを含み、
前記同等なアナログネットワークが、(i)任意の数の時間ステップを生成するための遅延ブロック、(ii)アナログニューロン当たり最大100個の入出力接続、(iii)10個のアナログニューロンの出力層、(iv)5の信号制限、(v)10個の層、(vi)1,200~1,300個のアナログニューロン、および(vi)20,000~21,000個の接続を含む、請求項72に記載の集積回路。 - 前記訓練されたニューラルネットワークが、畳み込み演算を使用して心拍数データとマージされる加速度計データに基づいて人間活動の異常なパターンを検出するようにさらに訓練されている、請求項72に記載の集積回路。
- ニューラルネットワークのハードウェア実現のためのシステムであって、
1つ以上のプロセッサと、
メモリと、を含み、
前記メモリが、前記1つ以上のプロセッサによる実行用に構成された1つ以上のプログラムを記憶し、前記1つ以上のプログラムが、
ニューラルネットワークトポロジおよび訓練されたニューラルネットワークの重みを取得することと、
前記ニューラルネットワークトポロジを、複数の演算増幅器および複数の抵抗器を含むアナログコンポーネントの同等なアナログネットワークに変換することであって、各演算増幅器が、それぞれのアナログニューロンを表し、各抵抗器が、それぞれの第1のアナログニューロンとそれぞれの第2のアナログニューロンとの間のそれぞれの接続を表す、変換することと、
前記訓練されたニューラルネットワークの前記重みに基づいて、前記同等なアナログネットワークの重み行列を計算することであって、前記重み行列の各要素が、それぞれの接続を表す、計算することと、
前記重み行列の抵抗行列を生成することであって、前記抵抗行列の各要素が、前記重み行列のそれぞれの重みに対応する、生成することと、
前記抵抗行列に基づいて、前記アナログコンポーネントの同等なアナログネットワークを実装する回路を作製するための1つ以上のリソグラフィマスクを生成することと、
リソグラフィプロセスを使用して、前記1つ以上のリソグラフィマスクに基づく前記回路を作製することと、のための命令を含む、システム。 - 1つ以上のプロセッサを有するコンピュータシステムによる実行用に構成された1つ以上のプログラムを記憶している非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、
ニューラルネットワークトポロジおよび訓練されたニューラルネットワークの重みを取得することと、
前記ニューラルネットワークトポロジを、複数の演算増幅器および複数の抵抗器を含むアナログコンポーネントの同等なアナログネットワークに変換することであって、各演算増幅器が、それぞれのアナログニューロンを表し、各抵抗器が、それぞれの第1のアナログニューロンとそれぞれの第2のアナログニューロンとの間のそれぞれの接続を表す、変換することと、
前記訓練されたニューラルネットワークの前記重みに基づいて、前記同等なアナログネットワークの重み行列を計算することであって、前記重み行列の各要素が、それぞれの接続を表す、計算することと、
前記重み行列の抵抗行列を生成することであって、前記抵抗行列の各要素が、前記重み行列のそれぞれの重みに対応する、生成することと、
前記抵抗行列に基づいて、前記アナログコンポーネントの同等なアナログネットワークを実装する回路を作製するための1つ以上のリソグラフィマスクを生成することと、
リソグラフィプロセスを使用して、前記1つ以上のリソグラフィマスクに基づく前記回路を作製することと、のための命令を含む、非一時的コンピュータ可読記憶媒体。 - ニューラルネットワークのハードウェア実現のためのライブラリを生成する方法であって、
複数のニューラルネットワークトポロジを取得することであって、各ニューラルネットワークトポロジが、それぞれのニューラルネットワークに対応する、取得することと、
各ニューラルネットワークトポロジを、アナログコンポーネントのそれぞれの同等なアナログネットワークに変換することと、
複数の回路を作製するための複数のリソグラフィマスクを生成することであって、各回路が、アナログコンポーネントのそれぞれの同等なアナログネットワークを実装する、生成することと、を含む、方法。 - 新たなニューラルネットワークトポロジおよび訓練されたニューラルネットワークの重みを取得することと、
前記新たなニューラルネットワークトポロジを前記複数のニューラルネットワークトポロジと比較することに基づいて、前記複数のリソグラフィマスクから1つ以上のリソグラフィマスクを選択することと、
前記重みに基づいて、新たな同等なアナログネットワークの重み行列を計算することと、
前記重み行列の抵抗行列を生成することと、
前記抵抗行列および前記1つ以上のリソグラフィマスクに基づいて、前記新たな同等なアナログネットワークを実装する回路を作製するための新たなリソグラフィマスクを生成することと、をさらに含む、請求項91に記載の方法。 - 前記新たなニューラルネットワークトポロジが、複数のサブネットワークトポロジを含み、前記1つ以上のリソグラフィマスクを選択することが、各サブネットワークトポロジを前記複数のネットワークトポロジの各ネットワークトポロジと比較することにさらに基づく、請求項92に記載の方法。
- 前記複数のサブネットワークトポロジの1つ以上のサブネットワークトポロジが、前記複数のネットワークトポロジの任意のネットワークトポロジと比較することに失敗し、前記方法が、
前記1つ以上のサブネットワークトポロジの各サブネットワークトポロジを、アナログコンポーネントのそれぞれの同等なアナログサブネットワークに変換することと、
1つ以上の回路を作製するための1つ以上のリソグラフィマスクを生成することであって、前記1つ以上の回路の各回路が、アナログコンポーネントのそれぞれの同等なアナログサブネットワークを実装する、生成することと、をさらに含む、請求項93に記載の方法。 - それぞれのネットワークトポロジをそれぞれの同等なアナログネットワークに変換することが、
前記それぞれのネットワークトポロジを複数のサブネットワークトポロジに分解することと、
各サブネットワークトポロジを、アナログコンポーネントのそれぞれの同等なアナログサブネットワークに変換することと、
前記それぞれの同等なアナログネットワークを取得するように、各同等なアナログサブネットワークを構成することと、を含む、請求項91に記載の方法。 - 前記それぞれのネットワークトポロジを分解することが、前記それぞれのネットワークトポロジの1つ以上の層を前記複数のサブネットワークトポロジとして識別することを含む、請求項95に記載の方法。
- 各回路が、
アナログコンポーネントのそれぞれの同等なアナログネットワークの模式図を生成することと、
前記模式図に基づいてそれぞれの回路レイアウト設計を生成することと、によって取得される、請求項91に記載の方法。 - 前記複数の回路を作製するための前記複数のリソグラフィマスクを生成する前に、1つ以上の回路レイアウト設計を組み合わせることをさらに含む、請求項97に記載の方法。
- ニューラルネットワークのハードウェア実現のためのライブラリを生成するためのシステムであって、
1つ以上のプロセッサと、
メモリと、を含み、
前記メモリが、前記1つ以上のプロセッサによる実行用に構成された1つ以上のプログラムを記憶し、前記1つ以上のプログラムが、
複数のニューラルネットワークトポロジを取得することであって、各ニューラルネットワークトポロジが、それぞれのニューラルネットワークに対応する、取得することと、
各ニューラルネットワークトポロジを、アナログコンポーネントのそれぞれの同等なアナログネットワークに変換することと、
複数の回路を作製するための複数のリソグラフィマスクを生成することであって、各回路が、アナログコンポーネントのそれぞれの同等なアナログネットワークを実装する、生成することと、のための命令を含む、システム。 - 1つ以上のプロセッサを有するコンピュータシステムによる実行用に構成された1つ以上のプログラムを記憶している非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、
複数のニューラルネットワークトポロジを取得することであって、各ニューラルネットワークトポロジが、それぞれのニューラルネットワークに対応する、取得することと、
各ニューラルネットワークトポロジを、アナログコンポーネントのそれぞれの同等なアナログネットワークに変換することと、
複数の回路を作製するための複数のリソグラフィマスクを生成することであって、各回路が、アナログコンポーネントのそれぞれの同等なアナログネットワークを実装する、生成することと、のための命令を含む、非一時的コンピュータ可読記憶媒体。 - アナログニューロモルフィック回路のエネルギー効率を最適化するための方法であって、
複数の演算増幅器および複数の抵抗器を含むアナログコンポーネントのアナログネットワークを実装する集積回路を取得することであって、前記アナログネットワークが、訓練されたニューラルネットワークを表し、各演算増幅器が、それぞれのアナログニューロンを表し、各抵抗器が、それぞれの第1のアナログニューロンとそれぞれの第2のアナログニューロンとの間のそれぞれの接続を表す、取得することと、
前記アナログネットワークの1つの層から後続の層に信号を同時に転送することを含む複数の試験入力のために、前記集積回路を使用して推論を生成することと、
前記集積回路を使用して推論を生成しながら、
前記複数の演算増幅器の信号出力のレベルが平衡化されているかどうかを判定することと、
前記信号出力のレベルが平衡化されているという判定に従って、
信号の伝播のために信号形成に影響を与える、前記アナログネットワークの活性なセットのアナログニューロンを判定することと、
所定の期間、前記活性なセットのアナログニューロンとは相違する、前記アナログネットワークの1つ以上のアナログニューロンの電力供給をオフにすることと、を含む、方法。 - 前記活性なセットのアナログニューロンを判定することが、前記アナログネットワークを通した信号伝播の遅延を計算することに基づく、請求項101に記載の方法。
- 前記活性なセットのアナログニューロンを判定することが、前記アナログネットワークを通した前記信号の伝播を検出することに基づく、請求項101に記載の方法。
- 前記訓練されたニューラルネットワークが、フィードフォワードニューラルネットワークであり、前記活性なセットのアナログニューロンが、前記アナログネットワークの活性な層に属し、電力供給をオフにすることが、前記アナログネットワークの前記活性な層の前の1つ以上の層の電力供給をオフにすることを含む、請求項101に記載の方法。
- 前記所定の期間が、信号遅延を考慮して、前記アナログネットワークを通した信号の伝播をシミュレートすることに基づいて計算される、請求項101に記載の方法。
- 前記訓練されたニューラルネットワークが、回帰型ニューラルネットワーク(RNN)であり、前記アナログネットワークが、前記複数の演算増幅器以外かつ前記複数の抵抗器以外の1つ以上のアナログコンポーネントをさらに含み、前記方法が、
前記信号出力のレベルが平衡化されているという判定に従って、前記所定の期間、1つ以上のアナログコンポーネントの電力供給をオフにすることをさらに含む、請求項101に記載の方法。 - 前記所定の期間の後、前記アナログネットワークの前記1つ以上のアナログニューロンの電力供給をオンにすることをさらに含む、請求項101に記載の方法。
- 前記複数の演算増幅器の前記信号出力のレベルが平衡化されているかどうかを判定することが、前記アナログネットワークの1つ以上の演算増幅器が所定の閾値信号レベルを超えて出力しているかどうかを検出することに基づく、請求項101に記載の方法。
- 前記推論を生成しながら、前記所定の期間前記オフにすることと、前記所定の期間前記活性なセットのアナログニューロンをオンにすることと、を繰り返すことをさらに含む、請求項101に記載の方法。
- 前記信号出力のレベルが平衡化されているという判定に従って、各推論サイクルについて、
第1の時間区間の間に、信号の伝播のために信号形成に影響を与える、前記アナログネットワークの第1の層のアナログニューロンを判定することと、
前記所定の期間、前記第1の層の前の、前記アナログネットワークの第1の1つ以上のアナログニューロンの電力供給をオフにすることと、
前記第1の時間区間に続く第2の時間区間の間に、前記所定の期間、前記アナログネットワークの、前記第1の層のアナログニューロンおよび前記第1の1つ以上のアナログニューロンを含む、第2の1つ以上のアナログニューロンの電力供給をオフにすることと、をさらに含む、請求項101に記載の方法。 - 前記1つ以上のアナログニューロンが、前記アナログネットワークの第1の1つ以上の層のアナログニューロンからなり、前記活性なセットのアナログニューロンが、前記アナログネットワークの第2の層のアナログニューロンからなり、前記アナログネットワークの前記第2の層が、前記第1の1つ以上の層の層とは相違する、請求項101に記載の方法。
- アナログニューロモルフィック回路のエネルギー効率を最適化するためのシステムであって、
1つ以上のプロセッサと、
メモリと、を含み、
前記メモリが、前記1つ以上のプロセッサによる実行用に構成された1つ以上のプログラムを記憶し、前記1つ以上のプログラムが、
複数の演算増幅器および複数の抵抗器を含むアナログコンポーネントのアナログネットワークを実装する集積回路を取得することであって、前記アナログネットワークが、訓練されたニューラルネットワークを表し、各演算増幅器が、それぞれのアナログニューロンを表し、各抵抗器が、それぞれの第1のアナログニューロンとそれぞれの第2のアナログニューロンとの間のそれぞれの接続を表す、取得することと、
前記アナログネットワークの1つの層から後続の層に信号を同時に転送することを含む複数の試験入力のために、前記集積回路を使用して推論を生成することと、
前記集積回路を使用して推論を生成しながら、
前記複数の演算増幅器の信号出力のレベルが平衡化されているかどうかを判定することと、
前記信号出力のレベルが平衡化されているという判定に従って、
信号の伝播のために信号形成に影響を与える、前記アナログネットワークの活性なセットのアナログニューロンを判定することと、
所定の期間、前記活性なセットのアナログニューロンとは相違する、前記アナログネットワークの1つ以上のアナログニューロンの電力供給をオフにすることと、のための命令を含む、システム。 - 1つ以上のプロセッサを有するコンピュータシステムによる実行用に構成された1つ以上のプログラムを記憶している非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、
複数の演算増幅器および複数の抵抗器を含むアナログコンポーネントのアナログネットワークを実装する集積回路を取得することであって、前記アナログネットワークが、訓練されたニューラルネットワークを表し、各演算増幅器が、それぞれのアナログニューロンを表し、各抵抗器が、それぞれの第1のアナログニューロンとそれぞれの第2のアナログニューロンとの間のそれぞれの接続を表す、取得することと、
前記アナログネットワークの1つの層から後続の層に信号を同時に転送することを含む複数の試験入力のために、前記集積回路を使用して推論を生成することと、
前記集積回路を使用して推論を生成しながら、
前記複数の演算増幅器の信号出力のレベルが平衡化されているかどうかを判定することと、
前記信号出力のレベルが平衡化されているという判定に従って、
信号の伝播のために信号形成に影響を与える、前記アナログネットワークの活性なセットのアナログニューロンを判定することと、
所定の期間、前記活性なセットのアナログニューロンとは相違する、前記アナログネットワークの1つ以上のアナログニューロンの電力供給をオフにすることと、のための命令を含む、非一時的コンピュータ可読記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2023179328A JP2024001230A (ja) | 2020-06-25 | 2023-10-18 | ニューラルネットワークのアナログハードウェア実現 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/RU2020/000306 WO2021262023A1 (en) | 2020-06-25 | 2020-06-25 | Analog hardware realization of neural networks |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023179328A Division JP2024001230A (ja) | 2020-06-25 | 2023-10-18 | ニューラルネットワークのアナログハードウェア実現 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022548547A true JP2022548547A (ja) | 2022-11-21 |
JP7371235B2 JP7371235B2 (ja) | 2023-10-30 |
Family
ID=74844972
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022515539A Active JP7371235B2 (ja) | 2020-06-25 | 2020-06-25 | ニューラルネットワークのアナログハードウェア実現 |
JP2023179328A Pending JP2024001230A (ja) | 2020-06-25 | 2023-10-18 | ニューラルネットワークのアナログハードウェア実現 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023179328A Pending JP2024001230A (ja) | 2020-06-25 | 2023-10-18 | ニューラルネットワークのアナログハードウェア実現 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3963514A1 (ja) |
JP (2) | JP7371235B2 (ja) |
KR (1) | KR20220088845A (ja) |
CN (1) | CN114424213A (ja) |
WO (1) | WO2021262023A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023167607A1 (en) * | 2022-03-04 | 2023-09-07 | PolyN Technology Limited | Systems and methods for human activity recognition |
WO2023220437A1 (en) * | 2022-05-13 | 2023-11-16 | PolyN Technology Limited | Systems and methods for human activity recognition using analog neuromorphic computing hardware |
WO2024076163A1 (ko) * | 2022-10-06 | 2024-04-11 | 오픈엣지테크놀로지 주식회사 | 신경망 연산방법과 이를 위한 npu 및 컴퓨팅 장치 |
KR102627460B1 (ko) * | 2022-10-28 | 2024-01-23 | 주식회사 페블스퀘어 | 뉴럴 네트워크를 구현하는 뉴로모픽 장치 및 그 동작 방법 |
CN115708668A (zh) * | 2022-11-15 | 2023-02-24 | 广东技术师范大学 | 光感忆阻传感设备以及电子设备 |
CN116432726B (zh) * | 2023-06-14 | 2023-08-25 | 之江实验室 | 一种光电混合的深度神经网络运算装置和运算方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02178758A (ja) * | 1988-12-29 | 1990-07-11 | Fujitsu Ltd | ニューラルネット構成情報処理装置 |
US20080154822A1 (en) * | 2006-10-30 | 2008-06-26 | Techguard Security Llc | Systems and methods for creating an artificial neural network |
JP2019003546A (ja) * | 2017-06-19 | 2019-01-10 | 株式会社デンソー | 多層ニューラルネットワークのニューロンの出力レベル調整方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2644264B1 (fr) * | 1989-03-10 | 1991-05-10 | Thomson Csf | Reseau neuronal analogique programmable |
FR2688080B1 (fr) * | 1992-02-28 | 1994-04-15 | Air Liquide | Reseau neuronal analogique. |
US9619749B2 (en) * | 2014-03-06 | 2017-04-11 | Progress, Inc. | Neural network and method of neural network training |
FR3089663B1 (fr) * | 2018-12-07 | 2021-09-17 | Commissariat Energie Atomique | Neurone artificiel pour puce neuromorphique à synapses résistives |
-
2020
- 2020-06-25 WO PCT/RU2020/000306 patent/WO2021262023A1/en unknown
- 2020-06-25 EP EP20859652.8A patent/EP3963514A1/en active Pending
- 2020-06-25 JP JP2022515539A patent/JP7371235B2/ja active Active
- 2020-06-25 CN CN202080048490.6A patent/CN114424213A/zh active Pending
- 2020-06-25 KR KR1020227008037A patent/KR20220088845A/ko not_active Application Discontinuation
-
2023
- 2023-10-18 JP JP2023179328A patent/JP2024001230A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02178758A (ja) * | 1988-12-29 | 1990-07-11 | Fujitsu Ltd | ニューラルネット構成情報処理装置 |
US20080154822A1 (en) * | 2006-10-30 | 2008-06-26 | Techguard Security Llc | Systems and methods for creating an artificial neural network |
JP2019003546A (ja) * | 2017-06-19 | 2019-01-10 | 株式会社デンソー | 多層ニューラルネットワークのニューロンの出力レベル調整方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2021262023A1 (en) | 2021-12-30 |
KR20220088845A (ko) | 2022-06-28 |
JP2024001230A (ja) | 2024-01-09 |
EP3963514A1 (en) | 2022-03-09 |
JP7371235B2 (ja) | 2023-10-30 |
CN114424213A (zh) | 2022-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7371235B2 (ja) | ニューラルネットワークのアナログハードウェア実現 | |
TWI796257B (zh) | 神經網路的模擬硬體實現 | |
Azghadi et al. | Hardware implementation of deep network accelerators towards healthcare and biomedical applications | |
Gaikwad et al. | Efficient FPGA implementation of multilayer perceptron for real-time human activity classification | |
US20220280072A1 (en) | Systems and Methods for Human Activity Recognition Using Analog Neuromorphic Computing Hardware | |
KR20240021743A (ko) | 음성 명료도를 위한 훈련된 신경망의 아날로그 하드웨어 구현 | |
WO2021259482A1 (en) | Analog hardware realization of neural networks | |
US20230081715A1 (en) | Neuromorphic Analog Signal Processor for Predictive Maintenance of Machines | |
TWI634488B (zh) | 人造神經網路之簡化裝置和簡化方法以及應用於簡化人造神經網路之非暫態電腦可讀取儲存媒體 | |
WO2024049998A1 (en) | Neuromorphic analog signal processor for predictive maintenance of machines | |
US11885271B2 (en) | Systems and methods for detonation control in spark ignition engines using analog neuromorphic computing hardware | |
WO2023167607A1 (en) | Systems and methods for human activity recognition | |
US20210406662A1 (en) | Analog hardware realization of trained neural networks for voice clarity | |
WO2023220437A1 (en) | Systems and methods for human activity recognition using analog neuromorphic computing hardware | |
RU2796649C2 (ru) | Аналоговая аппаратная реализация нейронных сетей | |
US11823037B1 (en) | Optocoupler-based flexible weights in neuromorphic analog signal processors | |
US20240005140A1 (en) | Quantization Algorithms for Analog Hardware Realization of Neural Networks | |
Stewart et al. | One-shot federated learning with neuromorphic processors | |
US20230147781A1 (en) | Sound Signal Processing Using A Neuromorphic Analog Signal Processor | |
Abdel-Aty-Zohdy et al. | A recurrent dynamic neural network approach and implementation, for noise-contaminated signal representation | |
US20240202513A1 (en) | Compact CMOS Spiking Neuron Circuit that works with an Analog Memory-Based Synaptic Array | |
Girau et al. | FPGA-Targeted Neural Architecture for Embedded Alertness Detection. | |
Lammie | Simulation and implementation of novel deep learning hardware architectures for resource constrained devices | |
Bramini | Designing an end-to-end Pipeline for Developing and Deploying IoT Solutions on Embedded Neuromorphic Platforms | |
Thakur | Stochastic Electronics for Neuromorphic Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220307 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220307 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230309 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230313 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20230607 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20230810 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230911 |
|
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: 20230919 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231018 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7371235 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |