[go: up one dir, main page]

JP7708381B2 - ニューラルネットワークを具現化する装置及びその動作方法 - Google Patents

ニューラルネットワークを具現化する装置及びその動作方法

Info

Publication number
JP7708381B2
JP7708381B2 JP2021094973A JP2021094973A JP7708381B2 JP 7708381 B2 JP7708381 B2 JP 7708381B2 JP 2021094973 A JP2021094973 A JP 2021094973A JP 2021094973 A JP2021094973 A JP 2021094973A JP 7708381 B2 JP7708381 B2 JP 7708381B2
Authority
JP
Japan
Prior art keywords
neural network
processor
feature map
input
neural
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021094973A
Other languages
English (en)
Other versions
JP2021193565A (ja
Inventor
▲ひょん▼秀 金
純完 權
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2021193565A publication Critical patent/JP2021193565A/ja
Application granted granted Critical
Publication of JP7708381B2 publication Critical patent/JP7708381B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Image Analysis (AREA)

Description

本発明は、ニューラルネットワークを具現化する装置及びその動作方法に関する。
メモリ中心のニューラルネットワーク装置は、生物学的脳をモデリングしたコンピュータ科学的アーキテクチャ(computational architecture)を参照する。メモリ中心のニューラルネットワーク技術の発展により、多種の電子システムにおいて、メモリ中心のニューラルネットワークを活用して入力データを分析し、有効な情報を抽出する研究が活発に進められている。
従って、メモリ中心のニューラルネットワークを利用し、大量の入力データをリアルタイムで分析し、所望する情報を抽出するためには、演算を効率的に処理することができる技術が要求される。
米国特許出願第2017/0286830号明細書
本発明が解決しようとする課題は、ニューラルネットワークを利用し、化学構造を生成する装置及び方法を提供することである。また、前記方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供することである。解決すべき技術的課題は、前述のような技術的課題に限定されるものではなく、他の技術的課題が存在し得る。
前述の技術的課題を達成するための技術的手段として、本開示の第1側面は、ニューラルネットワークを具現化するニューラルモルフィック装置において、少なくとも1つのプログラムが保存されたメモリと、クロスバーアレイ回路を含むオンチップメモリ(on-chip memory)と、前記少なくとも1つのプログラムを実行することにより、ニューラルネットワークを駆動する少なくとも1つのプロセッサと、を含み、前記少なくとも1つのプロセッサは、バイナリ加重値を、前記クロスバーアレイ回路に含まれるシナプス回路に保存し、前記メモリから入力フィーチャマップ(input feature map)を獲得し、前記入力フィーチャマップを時間ドメインバイナリベクトル(temporal domain binary vector)に変換し、前記時間ドメインバイナリベクトルを、前記クロスバーアレイ回路の入力値として提供し、前記バイナリ加重値と前記時間ドメインバイナリベクトルとのコンボリューション演算を行うことにより、出力フィーチャマップ(output feature map)を出力するものであるニューラルモルフィック装置することができる。
本開示の第2側面は、ニューラルネットワークを具現化するニューラルネットワーク装置において、少なくとも1つのプログラムが保存されたメモリと、前記少なくとも1つのプログラムを実行することにより、ニューラルネットワークを駆動する少なくとも1つのプロセッサと、を含み、前記少なくとも1つのプロセッサは、バイナリ加重値及び入力フィーチャマップを前記メモリから獲得し、前記入力フィーチャマップを時間ドメインバイナリベクトルに変換し、前記バイナリ加重値と前記時間ドメインバイナリベクトルとのコンボリューション演算を行うことにより、出力フィーチャマップを出力するものであるニューラルネットワーク装置を提供することができる。
本開示の第3側面は、ニューラルモルフィック装置において、ニューラルネットワークを具現化する方法において、バイナリ加重値をクロスバーアレイ回路に含まれるシナプス回路に保存する段階と、メモリから入力フィーチャマップを獲得する段階と、前記入力フィーチャマップを時間ドメインバイナリベクトルに変換する段階と、前記時間ドメインバイナリベクトルを、前記クロスバーアレイ回路の入力値として提供する段階と、前記バイナリ加重値と前記時間ドメインバイナリベクトルとのコンボリューション演算を行うことにより、出力フィーチャマップを出力する段階と、を含む方法を提供することができる。
本開示の第4側面は、ニューラルネットワーク装置において、ニューラルネットワークを具現化する方法において、バイナリ加重値及び入力フィーチャマップをメモリから獲得する段階と、前記入力フィーチャマップを時間ドメインバイナリベクトルに変換する段階と、前記バイナリ加重値と前記時間ドメインバイナリベクトルとのコンボリューション演算を行うことにより、出力フィーチャマップを出力する段階と、を含む方法を提供することができる。
本開示の第5側面は、第3側面及び第4側面の方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供することができる。
前述の本開示の課題解決手段によれば、バイナリ加重値及び時間ドメインバイナリベクトルを利用することにより、モデルサイズ及び演算量を低減させることができる。
また、本開示の他の課題解決手段のうちの一つによれば、バイナリ加重値と時間ドメインバイナリベクトルとの時間軸XNOR演算を行うことにより、マルチビットデータを利用するニューラルネットワークと同様なレベルの学習性能及び最終分類/認識正確度を確保することができる。
生物学的ニューロンと、生物学的ニューロンの動作を模写した数学的モデルと、について説明するための図である。 一実施形態による、ニューラルモルフィック装置の動作方法について説明するための図である。 一実施形態による、ニューラルモルフィック装置の動作方法について説明するための図である。 一実施形態による、ベクトル・行列乗算と、クロスバーアレイで行われる演算とを比較するための図である。 一実施形態による、ベクトル・行列乗算と、クロスバーアレイで行われる演算とを比較するための図である。 一実施形態による、ニューラルモルフィック装置において、コンボリューション演算が行われる例示について説明するための図である。 一実施形態による、ニューラルネットワークで行われる演算について説明するための図である。 一実施形態による、初期加重値をバイナリ加重値に変換する例示について説明するための図である。 一実施形態による、初期加重値をバイナリ加重値に変換する例示について説明するための図である。 一実施形態による、初期加重値をバイナリ加重値に変換する例示について説明するための図である。 一実施形態による、入力フィーチャマップを時間ドメインバイナリベクトルに変換する例示について説明するための図である。 一実施形態による、入力フィーチャマップを時間ドメインバイナリベクトルに変換する例示について説明するための図である。 一実施形態による、バイナリ加重値と時間ドメインバイナリベクトルとをバッチ正規化過程に適用することについて説明するための図である。 一実施形態による、フォンノイマン(von Neumann)構造を利用するニューラルネットワーク装置のブロック図である。 一実施形態による、インメモリ構造を利用するニューラルモルフィック装置のブロック図である。 一実施形態による、ニューラルネットワーク装置において、ニューラルネットワークを具現化する方法について説明するためのフローチャートである。 一実施形態による、ニューラルモルフィック装置において、ニューラルネットワークを具現化する方法について説明するためのフローチャートである。 一実施形態による、ニューラルネットワーク装置のハードウェア構成を図示したブロック図である。 一実施形態による、ニューラルモルフィック装置のハードウェア構成を図示したブロック図である。
本明細書において、多様なところに記載されている「一部実施形態において」または「一実施形態において」という語句は、必ずしもいずれも同一である実施形態を示すものではない。
本開示の一部実施形態は、機能的なブロック構成、及び多様な処理段階によっても示される。そのような機能ブロックの一部または全部は、特定機能を遂行する多様な個数のハードウェア及び/又はソフトウェア構成によっても具現化される。例えば、本開示の機能ブロックは、1つ以上のマイクロプロセッサによって具現化されるか、あるいは所定機能のための回路構成によっても具現化される。また、例えば、本開示の機能ブロックは、多様なプログラミング言語またはスクリプティング言語によっても具現化される。該機能ブロックは、1つ以上のプロセッサで実行されるアルゴリズムによっても具現化される。また、本開示は、電子的な環境設定、信号処理及び/又はデータ処理などのために、従来技術を採用することができる。「メカニズム」、「要素」、「手段」、及び「構成」のような用語は、汎用され、機械的であって物理的な構成として限定されるものではない。
また、図面に図示された構成要素間の連結線または連結部材は、機能的な連結、及び/又は、物理的または回路的な連結を例示的に示しただけのものである。実際の装置においては、代替可能であったり、追加されたりする、多様な機能的連結、物理的連結または回路連結によっても構成要素間の連結が示される。
以下、添付された図面を参照して、本開示について詳細に説明する。
図1は、生物学的ニューロンと、生物学的ニューロンの動作を模写した数学的モデルと、について説明するための図面である。
該生物学的ニューロンは、ヒト神経系に存在する細胞を意味する。該生物学的ニューロンは、基礎的な生物学的計算個体の一つである。ヒト頭脳は、およそ1000億個ほどの生物学的ニューロンと、生物学的ニューロンとの間の100兆個ほどの連結(interconnect)を含んでいる。
図1を参照すれば、生物学的ニューロン10は、単一細胞である。生物学的ニューロン10は、細胞核(nucleus)、及び多様な細胞器官(organelles)を含む神経細胞体(neuronal cell body)を含む。多様な細胞器官は、ミトコンドリア、細胞体から放射される多数の樹状突起(dendrites)、及び多くの分岐拡張線(extension)で縦断する軸索突起を含む。
一般的に、軸索突起は、ニューロンから他のニューロンに信号を送信する機能を遂行し、樹状突起は、他のニューロンから信号を受信する機能を遂行する。例えば、互いに異なるニューロンが連結されている場合、ニューロンの軸索突起を介して伝達された信号は、他のニューロンの樹状突起によって受信され得る。そのとき、ニューロン間において信号は、シナプス(synapse)と称される特化された連結を介して伝達され、さまざまなニューロンが互いに連結され、神経網(neural network)を形成する。シナプスを基準に神経伝達物質(neurotransmitter)を分泌するニューロンは、シナプス前ニューロン(pre-synaptic neuron)と称され、神経伝達物質を介して伝達される情報を受けるニューロンは、シナプス後ニューロン(post-synaptic neuron)とも称される。
一方、人間の頭脳は、多数のニューロンが互いに連結されて形成される神経網を介し、多様な信号を伝達及び処理することにより、膨大な量の情報を学習して記憶することができる。人間の頭脳内のニューロン間の膨大な数の連結は、生物学的コンピューティングの巨大並列属性(massively parallel nature)に直接関連するが、人工神経網を模写し、膨大な量の情報を効率的に処理するための多様な試みがなされてきた。例えば、人工神経網をニューロンレベルで具現化するために設計されたコンピューティングシステムとして、ニューラルモルフィック装置が研究されている。
一方、生物学的ニューロン10の動作は、数学的モデル11にも模写される。生物学的ニューロン10に対応する数学的モデル11は、ニューラルモルフィック演算の一例として、多数のニューロンからの情報について、シナプス加重値(synaptic weight)を乗じる乗算演算、シナプス加重値が乗じられた値(ω0x0,ω1x1,ω2x2)に係わる加算演算(Σ)、及び、加算演算結果について、特性関数(b)及び活性関数(f)を適用する演算を含む。ニューラルモルフィック演算によってニューラルモルフィック演算結果が提供され得る。ここで、x0,x1,x2,…のような値は、アクソン値に該当し、ω0,ω1,ω2、…のような値は、シナプス加重値に該当する。
図2A及び図2Bは、一実施形態による、ニューラルモルフィック装置の動作方法について説明するための図である。
図2Aを参照すれば、ニューラルモルフィック装置は、クロスバーアレイ回路ユニットを含んでもよい。該クロスバーアレイ回路ユニットは、複数のクロスバーアレイ回路を含み、それぞれのクロスバーアレイ回路は、RCA(resistive crossbar memory arrays)によっても具現化される。具体的には、それぞれのクロスバーアレイ回路は、シナプス前ニューロンに対応する入力ノード(input node)210、シナプス後ニューロンに対応するニューロン回路220、及び、入力ノード210とニューロン回路220との連結を提供するシナプス回路230を含んでもよい。
一実施形態において、ニューラルモルフィック装置のクロスバーアレイ回路は、4個の入力ノード210、4個のニューロン回路220、及び、16個のシナプス回路230を含んでいるが、それら個数は、多様に変更され得る。入力ノード210の個数がN個(ここで、Nは、2以上の自然数である)であり、ニューロン回路220の個数がM個(ここで、Mは、2以上の自然数であり、Nと同じであっても、異なっていてもよい)である場合、N*M個のシナプス回路230がマトリックス状にも配列される。
具体的には、入力ノード210と連結され、第1方向(例えば、横方向)に延びる配線21と、ニューロン回路220と連結され、第1方向と交差する第2方向(例えば、縦方向)に延びる配線22とが提供され得る。以下、説明の便宜のために、第1方向に延びる配線21をロウ配線(row line)とし、第2方向に延びる配線22をカラム配線(column line)とする。複数のシナプス回路230は、ロウ配線21とカラム配線22との交差点ごとに配され、対応するロウ配線21と、対応するカラム配線22とを互いに連結させることができる。
入力ノード210は、信号、例えば、特定データに該当する信号を生成し、ロウ配線21に送る役割を行い、ニューロン回路220は、シナプス回路230を経たシナプス信号を、カラム配線22を介して受信して処理する役割を遂行することができる。入力ノード210は、アクソンにも対応し、ニューロン回路220は、ニューロンにも対応する。しかし、シナプス前ニューロンであるか、またはシナプス後ニューロンであるかということは、他のニューロンとの相対的な関係によっても決定される。例えば、入力ノード210が他ニューロンとの関係において、シナプス信号を受信する場合、シナプス後ニューロンとして機能することができる。同様に、ニューロン回路220が、他ニューロンとの関係において信号を送る場合、シナプス前ニューロンとして機能することができる。
入力ノード210とニューロン回路220との連結は、シナプス回路230を介しても行われる。ここで、シナプス回路230は、両端に印加される電気的パルス、例えば、電圧または電流により、電気伝導度(electrical conductance)あるいは加重値(weight)が変わる素子である。
シナプス回路230は、例えば、可変抵抗素子を含んでもよい。該可変抵抗素子は、両端に印加される電圧または電流により、互いに異なる抵抗状態間においてスイッチングすることができる素子であり、複数の抵抗状態を有することができる多様な物質、例えば、遷移金属酸化物、ペロブスカイト(perovskite)系物質のような金属酸化物;カルコゲナイド(chalcogenide)系物質のような相変化物質;強誘電物質;強磁性物質などを含む単一膜構造または多重膜構造、を有することができる。可変抵抗素子及び/又はシナプス回路230が高抵抗状態から低抵抗状態に変わる動作をセット(set)動作と言い、低抵抗状態から高抵抗状態に変わる動作をリセット(reset)動作と言うことができる。
ニューラルモルフィック装置の動作について、図2Bを参照して説明すれば、次の通りである。説明の便宜のために、ロウ配線21を、上側から順に、第1ロウ配線21A、第2ロウ配線21B、第3ロウ配線21C及び第4ロウ配線21Dと称し、カラム配線22を、左側から順に、第1カラム配線22A、第2カラム配線22B、第3カラム配線22C、及び第4カラム配線22Dと称する。
図2Bを参照すれば、最初状態において、シナプス回路230全部は、伝導度が相対的に低い状態、すなわち、高抵抗状態にもある。一部シナプス回路230が低抵抗状態である場合、それらを高抵抗状態にする初期化動作が追加して必要にもなる。シナプス回路230それぞれは、抵抗及び/又は伝導度の変化に要求される所定臨界値を有することができる。さらに具体的には、各シナプス回路230の両端に、所定臨界値より小さい大きさの電圧または電流が印加されれば、シナプス回路230の伝導度は、変化せず、一方、シナプス回路230に所定臨界値より大きい電圧または電流が印加されれば、シナプス回路230の伝導度は、変化する。
この状態において、特定データを、特定カラム配線22の結果として出力する動作を遂行するために、入力ノード210の出力に対応し、特定データに該当する入力信号がロウ配線21にも入る。このとき、該入力信号は、ロウ配線21それぞれに対する電気的パルスの印加としても示され得る。例えば、ロウ配線21に、「0011」のデータに該当する入力信号が入る場合、「0」に対応するロウ配線21、例えば、第1ロウ配線21A及び第2ロウ配線21Bには、電気的パルスが印加されず、「1」に対応するロウ配線21、例えば、第3ロウ配線21C及び第4ロウ配線21Dにだけ電気的パルスが印加され得る。このとき、カラム配線22は、出力のために、適切な電圧または電流によっても駆動される。
一例として、特定データを出力するカラム配線22が既定である場合、そのカラム配線22は、「1」に対応するロウ配線21との交差点に位置するシナプス回路230がセット動作であるときに要求される電圧(以下、セット電圧)以上の大きさを有する電圧を印加されるように駆動され、残りのカラム配線22は、残りのシナプス回路230がセット電圧より小さい大きさの電圧を印加されるようにも駆動される。例えば、該セット電圧の大きさがVsetであり、「0011」のデータを出力するカラム配線22が第3カラム配線22Cと定められた場合、第3カラム配線22Cと、第3ロウ配線21C及び第4ロウ配線21Cとの交差点に位置する第1シナプス回路230A及び第2シナプス回路230Bに、Vset以上の電圧が印加されるように、第3ロウ配線21C及び第4ロウ配線21Dに印加される電気的パルスの大きさは、Vset以上でもあり、第3カラム配線22Cに印加される電圧は、0Vでもある。それにより、第1シナプス回路230A及び第2シナプス回路230Bは、低抵抗状態にもなる。低抵抗状態の第1シナプス回路230A及び第2シナプス回路230Bの伝導度は、電気的パルスの個数が増加するほど、漸進的に上昇する。印加される電気的パルスの大きさ及び幅は、実質的に一定でもある。第1シナプス回路230A及び第2シナプス回路230Bを除いた残りのシナプス回路230は、Vsetより小さい電圧を印加されるように、残りのカラム配線、すなわち、第1カラム配線22A、第2カラム配線22B、及び第4カラム配線22Dに印加される電圧は、0VとVsetとの間の値、例えば、1/2Vsetの値を有することができる。それにより、第1シナプス回路230A及び第2シナプス回路230Bを除いた残りのシナプス回路230の抵抗状態は、変化しない。
他の一例として、特定データを出力するカラム配線22が定められていない。そのような場合、特定データに該当する電気的パルスをロウ配線21に印加しながら、カラム配線22それぞれに流れる電流を測定し、最も先に所定臨界電流に逹するカラム配線22、例えば、第3カラム配線22Cが特定データを出力したカラム配線22にもなる。
以上で説明した方式により、互いに異なるデータが、互いに異なるカラム配線22にそれぞれ出力され得る。
図3A及び図3Bは、一実施形態による、ベクトル・行列乗算と、クロスバーアレイで行われる演算とを比較するための図である。
まず、図3Aを参照すれば、入力フィーチャマップ(input feature map)と加重値とのコンボリューション演算は、ベクトル・行列乗算(vector-matrix multiplication)を利用しても行われる。例えば、該入力フィーチャマップのピクセルデータは、行列X 310によっても表現され、該加重値は、行列W 311によっても表現される。出力フィーチャマップ(output feature map)のピクセルデータは、行列X 310と行列W 311との乗算演算結果値である行列Y 312によっても表現される。
図3Bを参照すれば、クロスバーアレイの不揮発性メモリ素子を利用し、ベクトル乗算演算が行われる。図3Aと比較して説明すれば、入力フィーチャマップのピクセルデータは、不揮発性メモリ素子の入力値としても受信され、該入力値は、電圧320でもある。また、加重値は、不揮発性メモリ素子のシナプス、すなわち、メモリセルにも保存され、該メモリセルに保存された加重値は、コンダクタンス321でもある。従って、不揮発性メモリ素子の出力値は、電圧320とコンダクタンス321との乗算演算結果値である電流322によっても表現される。
図4は、一実施形態による、ニューラルモルフィック装置において、コンボリューション演算が行われる例示について説明するための図面である。
該ニューラルモルフィック装置は、入力フィーチャマップ410のピクセルを提供され、該ニューラルモルフィック装置のクロスバーアレイ回路400は、RCAによっても具現化される。
該ニューラルモルフィック装置は、デジタル信号形態の入力フィーチャマップを受信することができ、DAC(digital analog converter)420を利用し、該入力フィーチャマップをアナログ信号形態の電圧に変換することができる。一実施形態において、該ニューラルモルフィック装置は、DAC 420を利用し、該入力フィーチャマップのピクセル値を電圧に変換した後、該電圧を、クロスバーアレイ回路400の入力値401として提供することができる。
また、該ニューラルモルフィック装置のクロスバーアレイ回路400には、学習された加重値が保存される。該加重値は、クロスバーアレイ回路400のメモリセルにも保存され、該メモリセルに保存された加重値は、コンダクタンス402でもある。このとき、該ニューラルモルフィック装置は、入力値401とコンダクタンス402とのベクトル乗算演算を行うことにより、出力値を算出することができ、該出力値は、電流403によっても表現される。すなわち、該ニューラルモルフィック装置は、クロスバーアレイ回路400を利用し、入力フィーチャマップと加重値とのコンボリューション演算結果と同一結果値を出力することができる。
クロスバーアレイ回路400から出力された電流403は、アナログ信号なので、電流403を、他のクロスバーアレイ回路の入力フィーチャマップとして使用するために、該ニューラルモルフィック装置は、ADC(analog digital converter)430を利用することができる。該ニューラルモルフィック装置は、ADC 430を利用し、アナログ信号である電流403を、デジタル信号に変換することができる。一実施形態において、該ニューラルモルフィック装置は、ADC 430を利用して、電流403を入力フィーチャマップ410のピクセルと同一ビット数のデジタル信号に変換することができる。例えば、入力フィーチャマップ410が、ピクセルが4ビットのデータである場合、該ニューラルモルフィック装置は、ADC 430を利用して、電流403を、4ビットのデータに変換することができる。
該ニューラルモルフィック装置は、活性化ユニット440を利用して、ADC 430で変換されたデジタル信号に対して、活性化関数を適用することができる。該活性化関数としては、シグモイド(sigmoid)関数、Tanh関数及びReLU(rectified linear unit)関数を利用することができるが、デジタル信号に適用することができる活性化関数は、それらに制限されるものではない。
該活性化関数が適用されたデジタル信号は、他のクロスバーアレイ回路450の入力フィーチャマップとしても利用される。該活性化関数が適用されたデジタル信号が、他のクロスバーアレイ回路450の入力フィーチャマップとして利用される場合、前述の過程が、他のクロスバーアレイ回路450にも同様に適用される。
図5は、一実施形態による、ニューラルネットワークで行われる演算について説明するための図である。
図5を参照すれば、ニューラルネットワーク500は、入力レイヤ、隠れ層、及び出力レイヤを含む構造を有し、受信される入力データ(例えば、I及びI)を基に演算を行い、遂行結果を基に、出力データ(例えば、O及びO)を生成することができる。
例えば、図5に示されているように、ニューラルネットワーク500は、入力レイヤ(Layer 1)、2個の隠れ層(Layer 2及びLayer 3)及び出力レイヤ(Layer 4)を含んでよい。ニューラルネットワーク500は、有効な情報を処理することができるさらに多くのレイヤを含むので、ニューラルネットワーク500は、シングルレイヤを有するニューラルネットワークより複雑なデータ集合を処理することができる。一方、ニューラルネットワーク500は、4レイヤを含むように図示されているが、それは、例示に過ぎず、ニューラルネットワーク500は、さらに少なかったり多かったりするレイヤを含むか、あるいは、さらに少なかったり多かったりするチャネルを含んでもよい。すなわち、ニューラルネットワーク500は、図5に図示されたところとは異なる、多様な構造のレイヤを含んでもよい。
ニューラルネットワーク500に含まれたレイヤそれぞれは、複数のチャネルを含んでもよい。該チャネルは、ニューロン、プロセッシングエレメント(PE:processing element)、ユニット、または、それと同様な用語によって知られた、複数の人工ノード(artificial node)にも該当する。例えば、図5に示されているように、Layer 1は、2個のチャネル(ノード)、Layer 2及びLayer 3それぞれは、3個のチャネルを含んでもよい。ただし、それは、例示に過ぎず、ニューラルネットワーク500に含まれたレイヤそれぞれは、多様な個数のチャネル(ノード)を含んでもよい。
ニューラルネットワーク500のレイヤそれぞれに含まれたチャネルは、互いに連結され、データを処理することができる。例えば、1つのチャネルは、他のチャネルからデータを受信して演算することができ、演算結果を、さらに他のチャネルに出力することができる。
チャネルそれぞれの入力及び出力それぞれは、入力フィーチャマップ及び出力フィーチャマップとも称される。該入力フィーチャマップは、複数の入力アクティベーションを含み、該出力フィーチャマップは、複数の出力アクティベーションを含んでもよい。すなち、該フィーチャマップまたは該アクティベーションは、1チャネル一チャネルの出力であると同時に、次のレイヤに含まれたチャネルの入力に該当するパラメータでもある。
一方、チャネルそれぞれは、以前レイヤに含まれたチャネルから受信されたアクティベーション及び加重値に基づき、自体のアクティベーションを決定することができる。加重値は、各チャネルにおける出力アクティベーションを計算するために利用されるパラメータであり、チャネル間の連結関係に割り当られる値でもある。
チャネルそれぞれは、入力を受信し、出力アクティベーションを出力する演算ユニット(computational unit)またはプロセッシングエレメント(processing element)によっても処理され、チャネルそれぞれの入力・出力は、マッピングされる。例えば、σは、活性化関数(activation function)であり、w j,kは、(i-1)番目レイヤに含まれたk番目チャネルから、i番目レイヤに含まれたj番目チャネルへの加重値であり、b jは、i番目レイヤに含まれたj番目チャネルのバイアス(bias)であり、a jは、i番目レイヤのj番目チャネルのアクティベーションであるとするとき、アクティベーションa jは、以下のような式1を利用しても計算される。
図5に示されているように、2番目レイヤ(Layer 2)の最初チャネルCH1のアクティベーションは、a とも表現される。また、a は、式1により、a =σ(w 1,1×a +w 1,2×a +b )の値を有することができる。ただし、前述の式1は、ニューラルネットワーク500においてデータを処理するために利用されるアクティベーション及び加重値について説明するための単なる例示に過ぎず、それに制限されるものではない。該アクティベーションは、以前レイヤから受信されたアクティベーションの和(sum)に、バッチ正規化(batch normalization)及び活性化関数(activation function)を適用することによって獲得された値でもある。
図6Aないし図6Cは、一実施形態による、初期加重値をバイナリ加重値に変換する例示について説明するための図である。
図6Aを参照すれば、入力レイヤ601、出力レイヤ602及び初期加重値W11,W12、…、W32、W33が図示されている。入力レイヤ601の3つのニューロンそれぞれには、3つの入力アクティベーションI、I、Iが対応し、出力レイヤ602の3つのニューロンそれぞれには、3つの出力アクティベーションO、O、Oが対応し得る。また、第n番目入力アクティベーションIと第m番目出力アクティベーションOは、初期加重値Wnmが適用される。
図6Bの初期加重値610は、図6Aによる初期加重値W11、W12、…、W32、W33を行列で表現したものである。
ニューラルネットワークの学習過程においては、初期加重値610が決定され得る。一実施形態において、初期加重値610は、32ビットの浮動小数点(floating point)によっても表現される。
初期加重値610は、バイナリ加重値620にも変換される。バイナリ加重値620は、1ビットの大きさを有することができる。本発明においては、ニューラルネットワークの推論過程において、初期加重値610の代わりに、バイナリ加重値620を利用することにより、モデルサイズ及び演算量を低減させることができる。例えば、32ビットの初期加重値610を、1ビットのバイナリ加重値620に変換する場合、モデルサイズを1/32ほど圧縮することができる。
一実施形態において、初期加重値610の最大値と最小値とに基づき、初期加重値610は、バイナリ加重値620にも変換される。他の実施形態において、ニューラルネットワークに入力可能な初期加重値の最大値と最小値とに基づき、初期加重値610は、バイナリ加重値620にも変換される。
例えば、ニューラルネットワークに入力可能な初期加重値の最大値が1.00であり、最小値が-1.00でもある。初期加重値が0.00以上である場合、バイナリ加重値1にも変換され、初期加重値が0.00未満である場合、バイナリ加重値-1にも変換される。
また、バイナリ加重値620には、初期加重値610の絶対値の平均値630が乗じられる。バイナリ加重値620に、初期加重値610の絶対値の平均値630が乗じられることにより、バイナリ加重値620を利用する場合にも、初期加重値610を利用する場合と同様な結果値を得ることができる。
例えば、以前レイヤに、1024個のニューロンが存在し、現在レイヤに、512個のニューロンが存在すると仮定すれば、現在レイヤに属する512個のニューロンは、それぞれ1024個の初期加重値610を有することになるが、各ニューロン別に、1024個の32ビット浮動小数点の初期加重値610の絶対値の平均値が計算された後で、該計算結果は、バイナリ加重値620に乗じられる。
具体的には、所定の出力アクティベーションO、O、Oの算出に利用される初期加重値610の絶対値の平均値が、所定の出力アクティベーションO、O、Oの算出に利用される初期加重値610にも乗じられる。
例えば、図6Aを参照すれば、第1出力アクティベーションOが算出される過程においては、初期加重値W11、W21、及びW31が利用され得る。初期加重値W11、W及びW31それぞれは、バイナリ加重値W11’、W21’、及びW31’に変換され、バイナリ加重値W11’、W21’、及びW31’には、初期加重値W11、W21、及びW31の絶対値の平均値
が乗じられる。
同じ方式により、バイナリ加重値W12’、W22’、及びW32’には、初期加重値W12、W22、及びW32の絶対値の平均値
が乗じられる。また、バイナリ加重値W13’、W23’、及びW33’には、初期加重値W13、W23、及びW33の絶対値の平均値
図6Cを参照すれば、初期加重値610、バイナリ加重値620、及び初期加重値610の絶対値の平均値630が具体的な数値として図示されている。図6Cにおいては、説明の便宜のために、初期加重値610を10進数で表現したが、初期加重値610は、32ビットの浮動小数点であることを前提にしている。
図6Cにおいては、初期加重値が0.00以上である場合、バイナリ加重値1に変換され、初期加重値が0.00未満である場合、バイナリ加重値-1に変換されることが図示されている。
また、初期加重値W11、W21、及びW31の絶対値の平均値は、「0.28」であり、初期加重値W12、W22、及びW32の絶対値の平均値は、「0.37」であり、初期加重値W13、W23、及びW33の絶対値の平均値は、「0.29」であることが図示されている。
図7A及び図7Bは、一実施形態による、入力フィーチャマップを時間ドメインバイナリベクトル(temporal domain binary vector)に変換する例示について説明するための図である。
該入力フィーチャマップは、複数の時間ドメインバイナリベクトルにも変換される。該入力フィーチャマップは、複数の入力アクティベーションを含み、該複数の入力アクティベーションそれぞれは、時間ドメインバイナリベクトルにも変換される。
該入力フィーチャマップは、量子化レベルに基づき、複数の時間ドメインバイナリベクトルにも変換される。一実施形態において、ニューラルネットワークに入力可能な入力アクティベーションの最大値と最小値との範囲がN個(Nは自然数)の量子化レベルにも区分される。例えば、該量子化レベル区分のためには、シグモイド関数またはtanh関数などが利用され得るが、それらに制限されるものではない。
例えば、図7Aを参照すれば、量子化レベルが9個に設定され、ニューラルネットワークに入力可能な入力アクティベーションの最大値と最小値とがそれぞれ1.0、-1.0である場合、量子化レベルは、「1.0、0.75、0.5、0.25、0、-0.25、-0.5、-0.75、-1.0」にも区分される。
一方、図7Aにおいては、量子化レベル間の間隔が同一に設定されるように図示されているが、量子化レベル間の間隔は、非線形にも設定される。
量子化レベルがN個に設定された場合、時間ドメインバイナリベクトルは、(N-1)個のエレメントを有することができる。例えば、図7Aを参照すれば、量子化レベルが9個に設定された場合、時間ドメインバイナリベクトルは、8個のエレメントt、t、…、t、tを有することができる。
入力アクティベーションが、N個の量子化レベルのうちいずれの量子化レベルに属するかということに基づき、該入力アクティベーションは、時間ドメインバイナリベクトルにも変換される。例えば、所定の入力アクティベーションが0.75以上の値を有する場合、所定の入力アクティベーションは、時間ドメインバイナリベクトル(+1,+1,+1,+1,+1,+1,+1,+1)にも変換される。また、例えば、所定の入力アクティベーションが-0.25未満及び-0.5以上の値を有する場合、所定の入力アクティベーションは、時間ドメインバイナリベクトル(+1,+1,+1,-1,-1,-1,-1,-1)にも変換される。
図7Bを参照すれば、入力フィーチャマップ710に含まれた複数の入力アクティベーションそれぞれが、時間バイナリベクトルに変換される例示が示されている。第1アクティベーションは、0未満及び-0.25以上の値を有するので、時間ドメインバイナリベクトル(-1,-1,-1,-1,+1,+1,+1,+1)にも変換され、第2アクティベーションは、0.5未満及び0.25以上の値を有するので、時間ドメインバイナリベクトル(-1,-1,+1,+1,+1,+1,+1,+1)にも変換される。また、第3アクティベーションは、-0.75未満及び-1.0以上の値を有するので、時間ドメインバイナリベクトル(-1,-1,-1,-1,-1,-1,-1,+1)にも変換され、第4アクティベーションは、0.75以上の値を有するので、時間ドメインバイナリベクトル(+1,+1,+1,+1,+1,+1,+1,+1)にも変換される。
一方、従来の方式により、ニューラルネットワークの各レイヤの入力アクティベーションそれぞれをバイナリ値に変換させる場合、入力アクティベーションが有する情報が喪失され、レイヤ間の情報伝達が正常になされない。
一方、本開示のように、ニューラルネットワークの各レイヤの入力アクティベーションそれぞれを、時間ドメインバイナリベクトルに変換する場合、複数個のバイナリ値を基に、本来の入力アクティベーションに近似させることができる。
図8は、一実施形態による、バイナリ加重値と時間ドメインバイナリベクトルとを、バッチ正規化過程に適用することについて説明するための図である。
一般的に、ニューラルネットワークアルゴリズムモデルにおいては、入力アクティベーション(最初の入力値、または以前レイヤの出力値)と初期加重値(32ビットの浮動小数点)との積、及び、その結果の合算(MAC:multiply and accumulate)を行った後で、各ニューロン別に別途のバイアス値をさらに加える。そして、その結果値に対し、ニューロン別にバッチ正規化を行う。そして、その結果を活性化関数に入力した後で、活性化関数出力値を、次のレイヤの入力値として伝達する。
それは、式2のように表現することができる。式2においてIは、入力アクティベーションを、Wnmは、初期加重値を、Bは、バイアス値を、αは、バッチ正規化の初期スケール値を、βは、バッチ正規化のバイアス値を、fは、活性化関数を、Oは、出力アクティベーションを意味する。
図8を参照すれば、入力アクティベーションI 810は、時間ドメインバイナリベクトルI (t)820にも変換される。時間ドメインバイナリベクトル生成部(temporal binary vector generator)は、入力アクティベーションI 810を時間ドメインバイナリベクトルI (t)820に変換することができる。
図7A及び図7Bで説明したように、既設定量子化レベルにより、入力アクティベーションI 810は、時間ドメインバイナリベクトルI (t)820にも変換される。一方、時間ドメインバイナリベクトルI (t)820それぞれに含まれるエレメントの個数は、量子化レベルの個数によっても決定される。例えば、量子化レベルの個数がN個である場合、時間ドメインバイナリベクトルI (t)820それぞれに含まれるエレメントの個数は、(N-1)個でもある。
一方、入力アクティベーションI 810が、時間ドメインバイナリベクトルI (t)820に変換される場合、時間ドメインバイナリベクトルI (t)820を利用した演算結果は、時間ドメインバイナリベクトルI (t)820に含まれるエレメントの個数T 850ほど増幅される。それにより、時間ドメインバイナリベクトルI (t)820を利用する場合、演算結果をエレメントの個数T 850ほどで除することにより、本来のMAC演算結果と同一な結果を得ることができる。それに係わる具体的な説明は、式5及び式6を利用して行う。
図6A-図6Cで説明したように、初期加重値Wnmは、バイナリ加重値W nm 830にも変換される。例えば、sign関数を介し、初期加重値Wnmは、バイナリ加重値W nm 830にも変換される。
時間ドメインバイナリベクトルI (t)820とバイナリ加重値W nm 830とのコンボリューション演算が行われる。一実施形態において、時間ドメインバイナリベクトルI (t)820とバイナリ加重値W nm 830とのXNOR演算及び加算演算が行われる。
時間ドメインバイナリベクトルI (t)820とバイナリ加重値W nm 830とのXNOR演算を行った後で、その結果をいずれも合わせれば、本来のマルチビット入力アクティベーションI 810とバイナリ初期加重値Wnmとのコンボリューション演算を行った結果と同一な増減の様相を示すことになる。
時間ドメインバイナリベクトルI (t)820とバイナリ加重値W nm 830との演算は、下記式3のように表現することができる。
コンボリューション演算結果として、中間アクティベーションX 840が算出されyる。中間アクティベーションX 840は、下記式4のようにも示される。
中間アクティベーションX 840には、初期加重値の絶対値の平均値S 860が乗じられ得る。
また、中間アクティベーションX 840には、時間ドメインバイナリベクトルI (t)820それぞれに含まれるエレメントの個数T 850によっても除される。時間ドメインバイナリベクトルI (t)820それぞれに含まれるエレメントの個数は、量子化レベルの個数によっても決定される。時間ドメインバイナリベクトルI (t)820を利用した演算結果は、エレメントの個数T 850ほど増幅されるので、中間アクティベーションX 840をエレメントの個数T 850で除することにより、本来のMAC演算結果と同一な結果を得ることができる。
中間アクティベーションX 840に、初期加重値の絶対値の平均値S 860が乗じられ、時間ドメインバイナリベクトルI (t)820それぞれに含まれたエレメントの個数T 860で除されることにより、出力アクティベーションO 870が算出され得る。出力アクティベーションO 870は、下記式5のようにも示される。
一実施形態において、バッチ正規化が行われる場合、バッチ正規化の初期スケール値に対し、初期加重値の絶対値の平均値S 860が乗じられ、時間ドメインバイナリベクトルI (t)820に含まれるエレメントの個数T 850で除されることにより、修正スケール値(modified scale value)α”が算出され得る。
数式2によるニューラルネットワークアルゴリズムモデルに、バイナリ加重値W nm 830、時間ドメインバイナリベクトルIbn(t)820及び修正スケール値α”を適用する場合、式2は、下記式6のようにも表現される。
本開示においては、マルチビットの浮動小数点によって表現される初期加重値Wnmを、+1または-1を有するバイナリ加重値W nm 830に変換することにより、モデルサイズ及び演算量を低減させることができる。
本開示においては、バイナリ加重値W nm 830に、初期加重値の絶対値の平均値S 860を乗じることにより、バイナリ加重値W nm 830を利用する場合にも、初期加重値Wnmを利用する場合と同様な結果値を得ることができる。
一方、初期加重値の絶対値の平均値S 860は、前記式6のように、バッチ正規化演算に含めることができるので(MXα)、モデルパラメータがさらに生ぜす、モデルサイズ節減に損失がなく、また演算量節減にも損失が生じない。すなわち、式2と比較したとき、式6においては、別途のパラメータ、及び別途の手続きが追加されずに演算が行われ得ることを確認することができる。
本開示においては、マルチビットの入力アクティベーションI 810を、2ビットないし3ビットの低いビット数に量子化した後で、それを複数のエレメントを有する時間ドメインバイナリベクトルI (t)820に変換することができる。また、本開示においては、バイナリ加重値W nm 830と時間ドメインバイナリベクトルI (t)820との時間軸XNOR演算を行うことにより、バイナリMAC演算を基とした32ビット浮動小数点ニューラルネットワークと同様なレベルの学習性能及び最終分類/認識正確度を確保することができる。
一方、エレメントの個数T 860は、前記式6のように、バッチ正規化演算に含めることができるので(αX1/T)、モデルパラメータがさらに生じることなく、モデルサイズ節減に損失がなく、また演算量節減にも損失が生じない。すなわち、式2と比較したときに、式6においては、別途のパラメータ、及び別途の手続きが追加されずに演算が行われ得ることを確認することができる。
例えば、32ビットの入力アクティベーションI 810を、T個のエレメントを有する時間ドメインバイナリベクトルI (t)820に変換する場合、モデルサイズをT/32ほど圧縮することができる。
図9は、一実施形態による、フォンノイマン(von Neumann)構造を利用するニューラルネットワーク装置のブロック図である。
図9を参照すれば、ニューラルネットワーク装置900は、外部入力受信部910、メモリ920、時間ドメインバイナリベクトル生成部930、コンボリューション演算部940、及びニューラル演算部950を含んでよい。
図9に示されたニューラルネットワーク装置900には、本実施形態と係わる構成要素だけが図示されている。従って、ニューラルネットワーク装置900には、図9に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいことが、当該技術分野の当業者にとっては自明であろう。
外部入力受信部910は、外部からニューラルネットワークモデル関連情報、入力イメージ(または、オーディオ)データなどを受信することができる。外部入力受信部910から受信された各種情報及びデータは、メモリ920にも保存される。
一実施形態において、メモリ920は、入力フィーチャマップを保存する第1メモリと、バイナリ加重値、その他実数パラメータ、モデル構造定義変数などを保存する第2メモリとに区分され得る。一方、メモリ920に保存されたバイナリ加重値は、ニューラルネットワークの学習が完了した初期加重値(例えば、32ビットの浮動小数点)が変換された値でもある。
時間ドメインバイナリベクトル生成部930は、メモリ920から、入力フィーチャマップを受信することができる。時間ドメインバイナリベクトル生成部930は、該入力フィーチャマップを、時間ドメインバイナリベクトルに変換することができる。該入力フィーチャマップは、複数の入力アクティベーションを含み、時間ドメインバイナリベクトル生成部930は、該複数の入力アクティベーションそれぞれを、時間ドメインバイナリベクトルに変換することができる。
具体的には、時間ドメインバイナリベクトル生成部930は、量子化レベルに基づき、入力フィーチャマップを複数の時間ドメインバイナリベクトルに変換することができる。一実施形態において、ニューラルネットワークに入力可能な入力アクティベーションの最大値と最小値との範囲がN個(Nは自然数)の量子化レベルに区分される場合、時間ドメインバイナリベクトル生成部930は、該入力アクティベーションを、(N-1)個のエレメントを有する時間ドメインバイナリベクトルに変換することができる。
コンボリューション演算部940は、メモリ920から、バイナリ加重値を受信することができる。また、コンボリューション演算部940は、時間ドメインバイナリベクトル生成部930から、複数の時間ドメインバイナリベクトルを受信することができる。
コンボリューション演算部940は、加算器(adder)を含み、コンボリューション演算部940は、バイナリ加重値と、複数の時間ドメインバイナリベクトルとのコンボリューション演算を行うことができる。
ニューラル演算部950は、コンボリューション演算部940から、バイナリ加重値と、複数の時間ドメインバイナリベクトルとのコンボリューション演算結果を受信することができる。また、ニューラル演算部950は、メモリ920から、バッチ正規化の修正スケール値、バッチ正規化のバイアス値、及び活性化関数などを受信することができる。
ニューラル演算部950においては、バッチ正規化、プーリング(pooling)が行われ、活性化関数が適用され得るが、ニューラル演算部950で行われて適用され得る演算は、それらに制限されるものではない。
一方、バッチ正規化の修正スケール値は、初期スケール値に対し、初期加重値の絶対値の平均値が乗じられ、時間ドメインバイナリベクトルに含まれるエレメントの個数Tで除されることにより、修正スケール値が算出され得る。
ニューラル演算部950においてバッチ正規化が行われ、活性化関数が適用されることにより、出力フィーチャマップが出力され得る。該出力フィーチャマップは、複数の出力アクティベーションを含んでもよい。
図10は、一実施形態による、インメモリ構造を利用するニューラルモルフィック装置のブロック図である。
図10を参照すれば、ニューラルモルフィック装置1000は、外部入力受信部1010、メモリ1020、時間ドメインバイナリベクトル生成部1030、オンチップメモリ(on-chip memory)1040、及びニューラル演算部1050を含んでよい。
図10に示されたニューラルモルフィック装置1000には、本実施形態と係わる構成要素だけが図示されている。従って、ニューラルモルフィック装置1000には、図10に示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいことが、当該技術分野の当業者にとっては自明であろう。
外部入力受信部1010は、外部からニューラルネットワークモデル関連情報、入力イメージ(または、オーディオ)データなどを受信することができる。外部入力受信部1010から受信された各種情報及びデータは、メモリ1020にも保存される。
メモリ1020は、入力フィーチャマップ、その他実数パラメータ、モデル構造定義変数などを保存することができる。図9のニューラルネットワーク装置900とは異なり、バイナリ加重値は、メモリ1020ではなく、オンチップメモリ1040に保存されるが、詳細な内容は、後述する。
時間ドメインバイナリベクトル生成部1030は、メモリ1020から、入力フィーチャマップを受信することができる。時間ドメインバイナリベクトル生成部1030は、該入力フィーチャマップを、時間ドメインバイナリベクトルに変換することができる。該入力フィーチャマップは、複数の入力アクティベーションを含み、時間ドメインバイナリベクトル生成部1030は、該複数の入力アクティベーションそれぞれを、時間ドメインバイナリベクトルに変換することができる。
具体的には、時間ドメインバイナリベクトル生成部1030は、量子化レベルに基づき、入力フィーチャマップを、複数の時間ドメインバイナリベクトルに変換することができる。一実施形態において、ニューラルネットワークに入力可能な入力アクティベーションの最大値と最小値との範囲が、N個(Nは自然数)の量子化レベルに区分される場合、時間ドメインバイナリベクトル生成部1030は、該入力アクティベーションを、(N-1)個のエレメントを有する時間ドメインバイナリベクトルに変換することができる。
オンチップメモリ1040は、入力部1041、クロスバーアレイ回路1042、及び出力部1043を含んでよい。
クロスバーアレイ回路1042は、複数のシナプス回路(例えば、可変抵抗)を含んでもよい。バイナリ加重値は、複数のシナプス回路にも保存される。該複数のシナプス回路に保存されたバイナリ加重値は、ニューラルネットワークの学習が完了した初期加重値(例えば、32ビットの浮動小数点)が変換された値でもある。
入力部1041は、時間ドメインバイナリベクトル生成部1030から、複数の時間ドメインバイナリベクトルを受信することができる。
入力部1041に、複数の時間ドメインバイナリベクトルが受信されると、クロスバーアレイ回路1042においては、バイナリ加重値と、複数の時間ドメインバイナリベクトルとのコンボリューション演算を行うことができる。
出力部1043は、コンボリューション演算結果を、ニューラル演算部1050に伝達することができる。
ニューラル演算部1050は、出力部1043から、バイナリ加重値と、複数の時間ドメインバイナリベクトルとのコンボリューション演算結果を受信することができる。また、ニューラル演算部1050は、メモリ1020から、バッチ正規化の修正スケール値、バッチ正規化のバイアス値、及び活性化関数などを受信することができる。
ニューラル演算部1050においては、バッチ正規化、プーリングが行われ、活性化関数が適用され得るが、ニューラル演算部1050において行われて、適用され得る演算は、それらに制限されるものではない。
一方、バッチ正規化の修正スケール値は、初期スケール値に対し、初期加重値の絶対値の平均値が乗じられ、時間ドメインバイナリベクトルに含まれるエレメントの個数Tで除されることにより、修正スケール値が算出される。
ニューラル演算部1050でバッチ正規化が行われ、活性化関数が適用されることにより、出力フィーチャマップが出力され得る。該出力フィーチャマップは、複数の出力アクティベーションを含んでもよい。
図11は、一実施形態による、ニューラルネットワーク装置において、ニューラルネットワークを具現化する方法について説明するためのフローチャートである。
図11を参照すれば、段階1110において、ニューラルネットワーク装置は、バイナリ加重値及び入力フィーチャマップを、メモリから獲得することができる。
段階1120において、該ニューラルネットワーク装置は、入力フィーチャマップを、時間ドメインバイナリベクトルに変換することができる。
一実施形態において、該ニューラルネットワーク装置は、入力フィーチャマップに係わる量子化レベルに基づき、入力フィーチャマップを、時間ドメインバイナリベクトルに変換することができる。
具体的に、ニューラルネットワーク装置は、ニューラルネットワークに入力可能な最大値と最小値との範囲を、N個(Nは自然数)の量子化レベルに区分し、入力フィーチャマップのアクティベーションそれぞれが、N個の量子化レベルのうちいずれの量子化レベルに属するかに基づき、アクティベーションそれぞれを、時間ドメインバイナリベクトルに変換することができる。
一方、該ニューラルネットワーク装置は、ニューラルネットワークに入力可能な最大値と最小値との範囲を、線形的な量子化レベル、または非線形的な量子化レベルに区分することができる。
段階1130において、該ニューラルネットワーク装置は、バイナリ加重値と時間ドメインバイナリベクトルとのコンボリューション演算を行うことにより、出力フィーチャマップを出力することができる。
該ニューラルネットワーク装置は、コンボリューション演算結果に対し、バッチ正規化を行うことにより、出力フィーチャマップを出力することができる。
一実施形態において、該ニューラルネットワーク装置は、バッチ正規化の初期スケール値に対し、初期加重値の絶対値の平均値を乗じ、時間ドメインバイナリベクトルそれぞれに含まれるエレメントの個数で除することにより、修正スケール値を算出することができる。該ニューラルネットワーク装置は、修正スケール値に基づき、バッチ正規化を行うことができる。
該ニューラルネットワーク装置は、ニューラルネットワークに適用されるバイアス値それぞれに、初期スケール値を乗じる乗算演算を行い、乗算演算結果を前記出力フィーチャマップに反映させることができる。
また、該ニューラルネットワーク装置は、コンボリューション演算結果に対し、バッチ正規化を行い、バッチ正規化の遂行結果について、活性化関数を適用することにより、出力フィーチャマップを出力することができる。
図12は、一実施形態による、ニューラルモルフィック装置において、ニューラルネットワークを具現化する方法について説明するためのフローチャートである。
図12を参照すれば、段階1210において、ニューラルモルフィック装置は、バイナリ加重値を、クロスバーアレイ回路に含まれるシナプス回路に保存することができる。
段階1220において、該ニューラルモルフィック装置は、メモリから、入力フィーチャマップを獲得することができる。
段階1230において、該ニューラルモルフィック装置は、入力フィーチャマップを、時間ドメインバイナリベクトルに変換することができる。
一実施形態において、該ニューラルモルフィック装置は、入力フィーチャマップに係わる量子化レベルに基づき、入力フィーチャマップを、時間ドメインバイナリベクトルに変換することができる。
具体的に、該ニューラルモルフィック装置は、ニューラルネットワークに入力可能な最大値と最小値との範囲を、N個(Nは自然数)の量子化レベルに区分し、入力フィーチャマップのアクティベーションそれぞれが、N個の量子化レベルのうちいずれの量子化レベルに属するかに基づき、アクティベーションそれぞれを、時間ドメインバイナリベクトルに変換することができる。
一方、該ニューラルモルフィック装置は、ニューラルネットワークに入力可能な最大値と最小値との範囲を、線形的な量子化レベル、または非線形的な量子化レベルに区分することができる。
段階1240において、該ニューラルモルフィック装置は、時間ドメインバイナリベクトルを、クロスバーアレイ回路の入力値として提供することができる。
段階1250において、該ニューラルモルフィック装置は、バイナリ加重値と時間ドメインバイナリベクトルとのコンボリューション演算を行うことにより、出力フィーチャマップを出力することができる。
該ニューラルモルフィック装置は、コンボリューション演算結果に対し、バッチ正規化を行うことにより、出力フィーチャマップを出力することができる。
一実施形態において、該ニューラルモルフィック装置は、バッチ正規化の初期スケール値に対し、初期加重値の絶対値の平均値を乗じ、時間ドメインバイナリベクトルそれぞれに含まれるエレメントの個数で除することにより、修正スケール値を算出することができる。該ニューラルモルフィック装置は、修正スケール値に基づき、バッチ正規化を行うことができる。
該ニューラルモルフィック装置は、ニューラルネットワークに適用されるバイアス値それぞれに、初期スケール値を乗じる乗算演算を行い、乗算演算結果を、前記出力フィーチャマップに反映させることができる。
また、該ニューラルモルフィック装置は、コンボリューション演算結果に対し、バッチ正規化を行い、バッチ正規化遂行結果について、活性化関数を適用することにより、出力フィーチャマップを出力することができる。
図13は、一実施形態による、ニューラルネットワーク装置のハードウェア構成を図示したブロック図である。
ニューラルネットワーク装置1300は、PC(personal computer)、サーバデバイス、モバイルデバイス、埋め込みデバイスのような多種のデバイスによっても具現化される。具体的な例として、ニューラルネットワークを利用した音声認識、映像認識、映像分類などを行うスマートフォン、タブレットデバイス、AR(augmented reality)デバイス、IoT(internet of things)、自律走行自動車、ロボティックス、医療機器などに該当し得るが、それらに制限されるものではない。さらに、ニューラルネットワーク装置1300は、前述のようなデバイスに搭載される専用ハードウェアアクセラレータ(HW accelerator)にも該当し、ニューラルネットワーク装置1300は、ニューラルネットワーク駆動のための専用モジュールであるNPU(neural processing unit)、TPU(Tensor processing unit)、ニューラルエンジン(Neural Engine)のようなハードウェアアクセラレータでもあるが、それらに制限されるものではない。
図13を参照すれば、ニューラルネットワーク装置1300は、プロセッサ1310及びメモリ1320を含む。図9に図示されたニューラルネットワーク装置1300には、本実施形態と係わる構成要素だけが図示されている。従って、ニューラルネットワーク装置1300には、図13に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいことが、当該技術分野の当業者にとっては自明であろう。
プロセッサ1310は、ニューラルネットワーク装置1300を実行するための全般的な機能を制御する役割を行う。例えば、プロセッサ1310は、ニューラルネットワーク装置1300内のメモリ1320に保存されたプログラムを実行することにより、ニューラルネットワーク装置1300を全般的に制御する。プロセッサ1310は、ニューラルネットワーク装置1300内に具備されたCPU(central processing unit)、GPU(graphics processing unit)、AP(application processor)などによっても 具現化される、それらに制限されるものではない。
メモリ1320は、ニューラルネットワーク装置1300内で処理される各種データを保存するハードウェアであり、例えば、メモリ1320は、ニューラルネットワーク装置1300で処理されたデータ及び処理されるデータを保存することができる。また、メモリ1320は、ニューラルネットワーク装置1300によって駆動されるアプリケーション、ドライバなどを保存することができる。メモリ1320は、DRAM(dynamic random access memory)・SRAM(static random access memory)のようなRAM(random access memory)、ROM(read only memory)、EEPROM(electrically erasable programmable read only memory)、CD-ROM(compact disc read only memory)、ブルーレイ(登録商標)、または他の光学ディスクストレージ、HDD(hard disk drive)、SSD(solid static driver)、あるいはフラッシュメモリを含んでもよい。
プロセッサ1310は、メモリ1320から、ニューラルネットワークデータ、例えば、イメージデータ、フィーチャマップデータ、加重値データなどを、リード/ライト(read/write)し、リード/ライトされたデータを利用し、ニューラルネットワークを実行する。該ニューラルネットワークが実行されるとき、プロセッサ1310は、出力フィーチャマップに係わるデータを生成するために、入力フィーチャマップと加重値とのコンボリューション演算を反復的に行う。そのとき、該入力フィーチャマップのチャネル数、加重値のチャネル数、入力フィーチャマップの大きさ、加重値の大きさ、値の精密度(precision)のような多様なファクタに依存し、コンボリューション演算の演算量が決定される。
ニューラルネットワーク装置1300で駆動される実際のニューラルネットワークは、さらに複雑なアーキテクチャによっても具現化される。それにより、プロセッサ1310は、数億から数百億に至るほどに非常に多くの演算量(operation count)の演算を行うことになり、プロセッサ1310が演算のためにメモリ1320にアクセスする頻度が共に飛躍的に増大してしまう。そのような演算量負担により、比較的処理性能が低いスマートフォン、タブレット、ウェラブルデバイスのようなモバイルデバイス、埋め込みデバイスなどにおいて、ニューラルネットワークの処理が円滑ではなくなる。
プロセッサ1310は、コンボリューション演算、バッチ正規化演算、プーリング演算、活性化関数演算などを行うことができる。一実施形態において、プロセッサ1310は、マルチヘッドセルフアテンションを求めるために、行列乗算演算、変形演算及び転置演算を行うことができる。マルチヘッドセルフアテンションを求める過程において、変形演算及び転置演算は、行列乗算演算の以後または以前にも遂行される。
プロセッサ1310は、バイナリ加重値及び入力フィーチャマップを、メモリ920から獲得し、該入力フィーチャマップを、時間ドメインバイナリベクトルに変換することができる。また、プロセッサ1310は、バイナリ加重値と時間ドメインバイナリベクトルとのコンボリューション演算を行うことにより、出力フィーチャマップを出力することができる。
図14は、一実施形態による、ニューラルモルフィック装置のハードウェア構成を図示したブロック図である。
図14を参照すれば、ニューラルモルフィック装置1400は、プロセッサ1410及びオンチップメモリ1420を含んでもよい。図14に示されたニューラルモルフィック装置1400には、本実施形態と係わる構成要素だけが図示されている。従って、ニューラルモルフィック装置1400には、図14に示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいことが、当該技術分野の当業者にとっては自明であろう。
ニューラルモルフィック装置1400は、スマートフォン、ドローン、タブレットデバイス、ARデバイス、IoTデバイス、自律走行自動車、ロボティックス、医療機器のような低電力ニューラルネットワーク駆動が必要なデジタルシステムにも搭載されるが、それらに制限されるものではない。
ニューラルモルフィック装置1400は、複数のオンチップメモリ1420を含み、オンチップメモリ1420それぞれは、複数のクロスバーアレイ回路によっても構成される。該クロスバーアレイ回路は、複数のシナプス前ニューロン、複数のシナプス後ニューロン、及び、複数のシナプス前ニューロンと複数のシナプス後ニューロンとのそれぞれの連結を提供するシナプス回路、すなわち、メモリセルを含んでもよい。一実施形態において、該クロスバーアレイ回路は、RCAによっても具現化される。
外部メモリ1430は、ニューラルモルフィック装置1400で処理される各種データを保存するハードウェアであり、外部メモリ1430は、ニューラルモルフィック装置1400で処理されたデータ及び処理されるデータを保存することができる。また、外部メモリ1430は、ニューラルモルフィック装置1400によって駆動されるアプリケーション、ドライバなどを保存することができる。外部メモリ1430は、DRAM・SRAMのようなRAM、ROM、EEPROM、CD-ROM、ブルーレイ、または他の光学ディスクストレージ、HDD、SSD、あるいはフラッシュメモリを含んでもよい。
プロセッサ1410は、ニューラルモルフィック装置1400を駆動するための全般的な機能を制御する役割を行う。例えば、プロセッサ1410は、ニューラルモルフィック装置1400内のオンチップメモリ1420に保存されたプログラムを実行することにより、ニューラルモルフィック装置1400を全般的に制御する。プロセッサ1410は、ニューラルモルフィック装置1400内に具備されたCPU、GPU、APなどによっても具現化されるが、それらに制限されるものではない。プロセッサ1410は、外部メモリ1430から、各種データをリード/ライトし、リード/ライトされたデータを利用し、ニューラルモルフィック装置1400を実行する。
プロセッサ1410は、複数の限界値に基づき、入力フィーチャマップのピクセル値を二進化することにより、複数のバイナリフィーチャマップを生成することができる。プロセッサ1410は、複数のバイナリフィーチャマップのピクセル値を、クロスバーアレイ回路ユニットの入力値として提供することができる。プロセッサ1410は、DACを利用し、ピクセル値をアナログ信号(電圧)に変換することができる。
プロセッサ1410は、クロスバーアレイ回路ユニットに適用される加重値を、クロスバーアレイ回路ユニットに含まれるシナプス回路に保存することができる。該シナプス回路に保存された加重値は、コンダクタンスでもある。また、プロセッサ1410は、入力値と、シナプス回路に保存されたカーネル値との乗算演算を行うことにより、クロスバーアレイ回路ユニットの出力値を算出することができる。
プロセッサ1410は、クロスバーアレイ回路ユニットで算出された出力値を合成(merge)することにより、出力フィーチャマップのピクセル値を生成することができる。一方、該クロスバーアレイ回路ユニットで算出された出力値(または、算出された出力値に加重値が乗じられた結果値)は、アナログ信号形態(電流)であるので、プロセッサ1410は、ADCを利用し、出力値をデジタル信号に変換することができる。また、プロセッサ1410は、ADCにおいてデジタル信号に変換された出力値に、活性化関数を適用することができる。
プロセッサ1410は、バイナリ加重値を、クロスバーアレイ回路に含まれるシナプス回路に保存し、外部メモリ1430から、入力フィーチャマップを獲得することができる。また、プロセッサ1410は、入力フィーチャマップを、時間ドメインバイナリベクトルに変換し、該時間ドメインバイナリベクトルを、クロスバーアレイ回路の入力値として提供することができる。また、プロセッサ1410は、バイナリ加重値と時間ドメインバイナリベクトルとのコンボリューション演算を行うことにより、出力フィーチャマップを出力することができる。
本実施形態は、コンピュータによって実行されるプログラムモジュールのようなコンピュータによって実行可能な命令語を含む記録媒体の形態にも具現化される。コンピュータ可読媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体でもあり、揮発性及び不揮発性の媒体、分離型及び非分離型の媒体をいずれも含む。また、該コンピュータ可読媒体は、コンピュータ記録媒体及び通信媒体のいずれを含んでもよい。該コンピュータ記録媒体は、コンピュータ可読命令語、データ構造、プログラムモジュール、または、その他データのような情報保存のための任意の方法または技術によって具現化された揮発性及び不揮発性、分離型及び非分離型の媒体のいずれをも含む。該通信媒体は、典型的に、コンピュータ可読命令語、データ構造、プログラムモジュールのような変調されたデータ信号のその他データ、またはその他伝送メカニズムを含み、任意の情報伝達媒体を含む。
また、本明細書において、「部」は、プロセッサまたは回路のようなハードウェア構成(hardware component)、及び/又は、プロセッサのようなハードウェア構成によって実行されるソフトウェア構成(software component)でもある。
前述の本明細書の説明は、例示のためのものであり、本明細書の内容が属する技術分野の当業者であるならば、本発明の技術的思想や必須な特徴を変更することなく、他の具体的な形態に容易に変形が可能であることを理解することができるであろう。従って、上記の実施形態は、全ての面において例示的なものであり、限定的なものではないと理解されなければならない。例えば、単一型と説明されている各構成要素は、分散されて実施され、同様に、分散型と説明されている構成要素は、結合された形態でも実施される。
本実施形態の範囲は、前述の詳細な説明ではなく、特許請求の範囲によって示され、特許請求の範囲の意味、範囲、及び、その均等概念から導き出される全ての変更され、変形された形態が含まれるものと解釈されなければならない。
10 生物学的ニューロン
11 生物学的ニューロンの数学的モデル
210 入力ノード
220 ニューラル回路
400,1042 クロスバーアレイ回路
410 入力フィーチャマップ
420 DAC
430 ADC
440 活性化ユニット
500 ニューラルネットワーク
601 入力レイヤ
602 出力レイヤ
810 入力アクティベーション
820 時間ドメインバイナリベクトル
830 バイナリ加重値
840 中間アクティベーション
850 個数T
860 平均値S
870 出力アクティベーションO
900,1300 ニューラルネットワーク装置
910 外部入力装置
920,1020,1320 メモリ
930,1030 時間ドメインバイナリベクトル生成部
940 コンボリューション演算部
950,1050 ニューラル演算部
1000,1400 ニューロモルフィック装置
1010 入力受信部
1040,1420 オンチップメモリ
1041 入力部
1043 出力部
1310,1410 プロセッサ
1430 外部メモリ

Claims (18)

  1. ニューラルネットワークを具現化するニューラルモルフィック装置であって、
    少なくとも1つのプログラムが保存されたメモリと、
    クロスバーアレイ回路を含むオンチップメモリと、
    前記少なくとも1つのプログラムを実行することにより、ニューラルネットワークを駆動する少なくとも1つのプロセッサと、を含み、
    前記少なくとも1つのプロセッサは、
    初期重み値の最大値および最小値に基づいて、前記初期重み値から変換されたバイナリ加重値を、前記クロスバーアレイ回路に含まれるシナプス回路に保存し、
    前記メモリから入力フィーチャマップを獲得し、
    前記入力フィーチャマップのアクティベーションそれぞれが、N個の量子化レベルのうちいずれの量子化レベルに属するかに基づき、前記アクティベーションそれぞれを、正のエレメントおよび負のエレメントの少なくとも一方を含むエレメントのシーケンスとして表現する時間ドメインバイナリベクトルに変換し(Nは自然数)
    前記時間ドメインバイナリベクトルを、前記クロスバーアレイ回路の入力値として提供し、
    前記バイナリ加重値と前記時間ドメインバイナリベクトルとのコンボリューション演算を行うことにより、出力フィーチャマップを出力する、
    ニューラルモルフィック装置。
  2. 前記少なくとも1つのプロセッサは、
    前記コンボリューション演算結果に対してバッチ正規化を行うことにより、出力フィーチャマップを出力する、
    請求項1に記載のニューラルモルフィック装置。
  3. 前記少なくとも1つのプロセッサは、
    前記バッチ正規化の初期スケール値に対し、初期加重値の絶対値の平均値を乗じ、前記時間ドメインバイナリベクトルそれぞれに含まれたエレメントの個数で除することにより、修正スケール値を算出し、
    前記修正スケール値に基づき、前記バッチ正規化を行う、
    請求項2に記載のニューラルモルフィック装置。
  4. 前記少なくとも1つのプロセッサは、
    前記ニューラルネットワークに入力可能な最大値と最小値との範囲をN個の量子化レベルに区分する(Nは自然数)、
    請求項に記載のニューラルモルフィック装置。
  5. 前記少なくとも1つのプロセッサは、
    前記ニューラルネットワークに入力可能な最大値と最小値との範囲を、非線形的な量子化レベルに区分する、
    求項に記載のニューラルモルフィック装置。
  6. 前記少なくとも1つのプロセッサは、
    前記ニューラルネットワークに適用されるバイアス値それぞれに、前記初期スケール値を乗じる乗算演算を行い、
    前記乗算演算結果を前記出力フィーチャマップに反映させる、
    請求項3に記載のニューラルモルフィック装置。
  7. 前記少なくとも1つのプロセッサは、
    前記コンボリューション演算結果に対して前記バッチ正規化を行い、
    前記バッチ正規化の遂行結果について活性化関数を適用することにより、出力フィーチャマップを出力する、
    請求項3に記載のニューラルモルフィック装置。
  8. ニューラルネットワークを具現化するニューラルネットワーク装置であって、
    少なくとも1つのプログラムが保存されたメモリと、
    前記少なくとも1つのプログラムを実行することにより、ニューラルネットワークを駆動する少なくとも1つのプロセッサと、を含み、
    前記少なくとも1つのプロセッサは、
    初期重み値の最大値および最小値に基づいて、前記初期重み値から変換されたバイナリ加重値及び入力フィーチャマップを前記メモリから獲得し、
    前記入力フィーチャマップのアクティベーションそれぞれが、N個の量子化レベルのうちいずれの量子化レベルに属するかに基づき、前記アクティベーションそれぞれを、正のエレメントおよび負のエレメントの少なくとも一方を含むエレメントのシーケンスとして表現する時間ドメインバイナリベクトルに変換し(Nは自然数)
    前記バイナリ加重値と前記時間ドメインバイナリベクトルとのコンボリューション演算を行うことにより、出力フィーチャマップを出力する、
    ニューラルネットワーク装置。
  9. 前記少なくとも1つのプロセッサは、
    前記コンボリューション演算結果に対してバッチ正規化を行うことにより、出力フィーチャマップを出力する、
    請求項に記載のニューラルネットワーク装置。
  10. 前記少なくとも1つのプロセッサは、
    前記バッチ正規化の初期スケール値に対して、初期加重値の絶対値の平均値を乗じ、前記時間ドメインバイナリベクトルそれぞれに含まれたエレメントの個数で除することにより、修正スケール値を算出し、
    前記修正スケール値に基づき、前記バッチ正規化を行う、
    請求項に記載のニューラルネットワーク装置。
  11. 前記少なくとも1つのプロセッサは、
    前記ニューラルネットワークに入力可能な最大値と最小値との範囲をN個の量子化レベルに区分する(Nは自然数)、
    求項に記載のニューラルネットワーク装置。
  12. 前記少なくとも1つのプロセッサは、
    前記ニューラルネットワークに入力可能な最大値と最小値との範囲を、非線形的な量子化レベルに区分する、
    請求項11に記載のニューラルネットワーク装置。
  13. 前記少なくとも1つのプロセッサは、
    前記ニューラルネットワークに適用されるバイアス値それぞれに、前記初期スケール値を乗じる乗算演算を行い、
    前記乗算演算結果を前記出力フィーチャマップに反映させる、
    請求項10に記載のニューラルネットワーク装置。
  14. 前記少なくとも1つのプロセッサは、
    前記コンボリューション演算結果に対して前記バッチ正規化を行い、前記バッチ正規化の遂行結果について活性化関数を適用することにより、出力フィーチャマップを出力する、
    請求項10に記載のニューラルネットワーク装置。
  15. ニューラルモルフィック装置において、ニューラルネットワークを具現化する方法であって、
    前記ニューラルモルフィック装置に備えられたプロセッサの制御下で、初期重み値の最大値および最小値に基づいて、前記初期重み値から変換されたバイナリ加重値をクロスバーアレイ回路に含まれるシナプス回路に保存する段階と、
    前記プロセッサで、メモリから入力フィーチャマップを獲得する段階と、
    前記プロセッサの制御下で、前記入力フィーチャマップのアクティベーションそれぞれが、N個の量子化レベルのうちいずれの量子化レベルに属するかに基づき、前記アクティベーションそれぞれを、正のエレメントおよび負のエレメントの少なくとも一方を含むエレメントのシーケンスとして表現する時間ドメインバイナリベクトルに変換する段階と(Nは自然数)
    前記プロセッサの制御下で、前記時間ドメインバイナリベクトルを、前記クロスバーアレイ回路の入力値として提供する段階と、
    前記プロセッサの制御下で、前記バイナリ加重値と前記時間ドメインバイナリベクトルとのコンボリューション演算を行うことにより、出力フィーチャマップを出力する段階と、
    を含む、方法。
  16. ニューラルネットワーク装置において、ニューラルネットワークを具現化する方法であって、
    前記ニューラルネットワーク装置に備えられたプロセッサの制御下で、初期重み値の最大値および最小値に基づいて、前記初期重み値から変換されたバイナリ加重値及び入力フィーチャマップをメモリから獲得する段階と、
    前記プロセッサの制御下で、前記入力フィーチャマップのアクティベーションそれぞれが、N個の量子化レベルのうちいずれの量子化レベルに属するかに基づき、前記アクティベーションそれぞれを、正のエレメントおよび負のエレメントの少なくとも一方を含むエレメントのシーケンスとして表現する時間ドメインバイナリベクトルに変換する段階と(Nは自然数)
    前記プロセッサの制御下で、前記バイナリ加重値と前記時間ドメインバイナリベクトルとのコンボリューション演算を行うことにより、出力フィーチャマップを出力する段階と、
    を含む、方法。
  17. プログラムを記録したコンピュータで読み取り可能な記録媒体であって、
    前記コンピュータのプロセッサにより前記プログラムが実行されると、請求項15に記載の方法を前記コンピュータに実施させる、
    コンピュータで読み取り可能な記録媒体。
  18. プログラムを記録したコンピュータで読み取り可能な記録媒体であって、
    前記コンピュータのプロセッサにより前記プログラムが実行されると、請求項16に記載の方法を前記コンピュータにじっしさせる、
    コンピュータで読み取り可能な記録媒体。
JP2021094973A 2020-06-08 2021-06-07 ニューラルネットワークを具現化する装置及びその動作方法 Active JP7708381B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0069100 2020-06-08
KR1020200069100A KR20210152244A (ko) 2020-06-08 2020-06-08 뉴럴 네트워크를 구현하는 장치 및 그 동작 방법

Publications (2)

Publication Number Publication Date
JP2021193565A JP2021193565A (ja) 2021-12-23
JP7708381B2 true JP7708381B2 (ja) 2025-07-15

Family

ID=74285407

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021094973A Active JP7708381B2 (ja) 2020-06-08 2021-06-07 ニューラルネットワークを具現化する装置及びその動作方法

Country Status (5)

Country Link
US (1) US20210383203A1 (ja)
EP (1) EP3923201A1 (ja)
JP (1) JP7708381B2 (ja)
KR (1) KR20210152244A (ja)
CN (1) CN113837371A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021118734A1 (de) * 2020-07-22 2022-01-27 Honda Motor Co., Ltd. Bild-Identifikationsvorrichtung, Verfahren zum Durchführen einer semantischen Segregation und Programm
TWI783854B (zh) * 2021-03-17 2022-11-11 神盾股份有限公司 乘積和運算裝置
KR102722598B1 (ko) * 2021-10-14 2024-10-25 한국항공대학교산학협력단 이진화 컨볼루션 신경망의 공간적 인접성을 이용한 연산 속도 향상 장치 및 방법
CN114925018B (zh) * 2022-07-22 2022-10-21 中科声龙科技发展(北京)有限公司 片上交叉开关系统及芯片
KR102627460B1 (ko) * 2022-10-28 2024-01-23 주식회사 페블스퀘어 뉴럴 네트워크를 구현하는 뉴로모픽 장치 및 그 동작 방법
WO2025105918A1 (ko) * 2023-11-16 2025-05-22 주식회사 템퍼스 컨볼루션 신경망을 구현하기 위한 신경망 아날로그 연산 시스템

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018092377A (ja) 2016-12-02 2018-06-14 国立大学法人東京工業大学 ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム
US20190102359A1 (en) 2018-09-28 2019-04-04 Intel Corporation Binary, ternary and bit serial compute-in-memory circuits
JP2019160319A (ja) 2018-03-09 2019-09-19 キヤノン株式会社 多階層ニューラルネットワークモデルを最適化して適用する方法及び装置、及び記憶媒体
US20190286953A1 (en) 2016-04-14 2019-09-19 XNOR.ai, Inc. System and Methods for Efficiently Implementing a Convolutional Neural Network Incorporating Binarized Filter and Convolution Operation for Performing Image Classification
US20190347550A1 (en) 2018-05-14 2019-11-14 Samsung Electronics Co., Ltd. Method and apparatus with neural network parameter quantization
JP2020514886A (ja) 2017-03-01 2020-05-21 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 抵抗型処理ユニットアレイ、抵抗型処理ユニットアレイを形成する方法およびヒステリシス動作のための方法
WO2020100393A1 (ja) 2018-11-15 2020-05-22 LeapMind株式会社 ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、およびニューラルネットワーク処理プログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515885B2 (en) * 2010-10-29 2013-08-20 International Business Machines Corporation Neuromorphic and synaptronic spiking neural network with synaptic weights learned using simulation
US9984323B2 (en) * 2015-03-26 2018-05-29 International Business Machines Corporation Compositional prototypes for scalable neurosynaptic networks
US10678508B2 (en) * 2018-03-23 2020-06-09 Amazon Technologies, Inc. Accelerated quantized multiply-and-add operations
US12111878B2 (en) * 2018-10-12 2024-10-08 International Business Machines Corporation Efficient processing of convolutional neural network layers using analog-memory-based hardware
JP6694177B2 (ja) * 2018-10-30 2020-05-13 嶋田 隆一 直流遮断装置
CN110390351B (zh) * 2019-06-24 2020-07-24 浙江大学 一种基于深度学习的致痫灶三维自动定位系统
CN110842915B (zh) * 2019-10-18 2021-11-23 南京大学 一种基于忆阻交叉阵列的机器人控制系统及方法
US11714999B2 (en) * 2019-11-15 2023-08-01 International Business Machines Corporation Neuromorphic device with crossbar array structure storing both weights and neuronal states of neural networks
KR102577326B1 (ko) * 2020-03-30 2023-09-13 한국전자통신연구원 온-디바이스 양자화기를 포함하는 신경망 연산 장치, 신경망 연산 장치의 동작 방법, 그리고 신경망 연산 장치를 포함하는 컴퓨팅 장치
WO2021210527A1 (ja) * 2020-04-13 2021-10-21 LeapMind株式会社 ニューラルネットワーク回路の制御方法
US11038520B1 (en) * 2020-04-15 2021-06-15 International Business Machines Corporation Analog-to-digital conversion with reconfigurable function mapping for neural networks activation function acceleration
CN115699020A (zh) * 2020-06-05 2023-02-03 华为技术有限公司 用于神经网络的量化

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190286953A1 (en) 2016-04-14 2019-09-19 XNOR.ai, Inc. System and Methods for Efficiently Implementing a Convolutional Neural Network Incorporating Binarized Filter and Convolution Operation for Performing Image Classification
JP2018092377A (ja) 2016-12-02 2018-06-14 国立大学法人東京工業大学 ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム
JP2020514886A (ja) 2017-03-01 2020-05-21 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 抵抗型処理ユニットアレイ、抵抗型処理ユニットアレイを形成する方法およびヒステリシス動作のための方法
JP2019160319A (ja) 2018-03-09 2019-09-19 キヤノン株式会社 多階層ニューラルネットワークモデルを最適化して適用する方法及び装置、及び記憶媒体
US20190347550A1 (en) 2018-05-14 2019-11-14 Samsung Electronics Co., Ltd. Method and apparatus with neural network parameter quantization
US20190102359A1 (en) 2018-09-28 2019-04-04 Intel Corporation Binary, ternary and bit serial compute-in-memory circuits
WO2020100393A1 (ja) 2018-11-15 2020-05-22 LeapMind株式会社 ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、およびニューラルネットワーク処理プログラム

Also Published As

Publication number Publication date
JP2021193565A (ja) 2021-12-23
KR20210152244A (ko) 2021-12-15
US20210383203A1 (en) 2021-12-09
EP3923201A1 (en) 2021-12-15
CN113837371A (zh) 2021-12-24

Similar Documents

Publication Publication Date Title
JP7708381B2 (ja) ニューラルネットワークを具現化する装置及びその動作方法
US11954588B2 (en) Analog neuromorphic circuits for dot-product operation implementing resistive memories
US9646243B1 (en) Convolutional neural networks using resistive processing unit array
EP3970073B1 (en) Training of artificial neural networks
US11620505B2 (en) Neuromorphic package devices and neuromorphic computing systems
US11087204B2 (en) Resistive processing unit with multiple weight readers
US20200012924A1 (en) Pipelining to improve neural network inference accuracy
CN108009640B (zh) 基于忆阻器的神经网络的训练装置及其训练方法
US11386319B2 (en) Training of artificial neural networks
JP2021500646A (ja) 人工ニューラル・ネットワークを訓練する方法および人工ニューラル・ネットワークを実施する装置(人工ニューラル・ネットワークの訓練)
JP6293963B1 (ja) ニューロモルフィック素子を含むアレイの制御装置、離散化ステップサイズの演算方法およびプログラム
KR102744306B1 (ko) 뉴럴 네트워크를 분할하는 방법 및 뉴로모픽 장치
CN111656368A (zh) 硬件加速的离散式神经网络
CN109460817A (zh) 一种基于非易失存储器的卷积神经网络片上学习系统
KR20210143614A (ko) 뉴럴 네트워크를 구현하는 뉴로모픽 장치 및 그 동작 방법
KR20230005309A (ko) 아날로그 인공지능 네트워크 추론을 위한 행별 컨볼루션 신경망 매핑을 위한 효율적 타일 매핑
JP2022008236A (ja) ニューロモルフィック装置及びニューラルネットワークを具現する方法
KR102714239B1 (ko) 아날로그 크로스바 어레이들을 업데이트하기 위한 희소 수정가능 비트 길이 결정 펄스 생성
Lu et al. NVMLearn: a simulation platform for non-volatile-memory-based deep learning hardware
US11443171B2 (en) Pulse generation for updating crossbar arrays
KR102824754B1 (ko) 전압 강하를 고려한 뉴럴 네트워크 장치 및 이의 구현 방법
KR102866109B1 (ko) 뉴럴 네트워크 장치 및 이의 동작 방법
Kaneko et al. On the Control of Computing-in-memory Devices with Resource-efficient Digital Circuits towards their On-chip Learning

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240607

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250519

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: 20250603

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250624

R150 Certificate of patent or registration of utility model

Ref document number: 7708381

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150