JP6684951B2 - 人工知能推論演算装置 - Google Patents

人工知能推論演算装置 Download PDF

Info

Publication number
JP6684951B2
JP6684951B2 JP2019117980A JP2019117980A JP6684951B2 JP 6684951 B2 JP6684951 B2 JP 6684951B2 JP 2019117980 A JP2019117980 A JP 2019117980A JP 2019117980 A JP2019117980 A JP 2019117980A JP 6684951 B2 JP6684951 B2 JP 6684951B2
Authority
JP
Japan
Prior art keywords
cnn
artificial intelligence
pixel
image data
cnn processing
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
JP2019117980A
Other languages
English (en)
Other versions
JP2020042774A (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.)
Gyrfalcon Technology Inc
Original Assignee
Gyrfalcon Technology Inc
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 Gyrfalcon Technology Inc filed Critical Gyrfalcon Technology Inc
Publication of JP2020042774A publication Critical patent/JP2020042774A/ja
Application granted granted Critical
Publication of JP6684951B2 publication Critical patent/JP6684951B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Landscapes

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

Description

本発明は、機械学習の分野に関し、特に、セルラーニューラルネットワーク(CNN)ベースデジタル集積回路(IC)を用いた人工知能(AI)推論演算装置に関する。
セルラーニューラルネットワーク又はセルラー非線形ネットワーク(CNN)は、1988年以降、限定するものではないが画像処理を含む多くの様々な分野や課題に応用されてきた。しかしながら、従来のCNNアプローチの大半は、ソフトウェアを用いた解決策(例えば、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク等)か、他の用途用(図形処理、汎用計算(general computation)等)に設計されたハードウェアによるものかのいずれか、であった。結果として、従来のCNNアプローチは、計算速度が遅すぎる及び/又は高価すぎるものであって、大量の画像データを処理するには実用性に欠いていた。画像データは、任意の二次元データ(例えば、静止写真、画像、ビデオストリームの一フレーム、音声データを変形したもの等)であり得る。
従来技術の装置による推論は、長距離クラウド接続によって機械学習モデルにデータを供給したり、そのようなデータ及び深層学習モデルを単一の演算システム内に保持したりすることによって行われてきた。但し、単一演算システムの場合には、その要件によって機械学習の商業的利用がごく限られた人に限られてしまう。なぜなら、信頼できる推論に必要な十分訓練されたモデルや、大量のデータを処理するための膨大な計算能力を所有する人がわずかしかいないからである。従来技術のクラウドによる解決策の場合は、このようなデータ処理を行えるサイトにデータを送ることで計算能力の問題を解決可能である。但し、クラウドによる解決策は、クライアントに2つの異なる問題を引き起こす。第一に、データは中央倉庫へと移動するので、そこで作業する人々にデータが晒されることとなり、クラウドを介するとデータを非公開で処理することができない。第二に、クラウドとクライアントとは遠く離れているため、データの処理速度がかなり遅いものとなってしまう。従って、このような問題、欠点、及び不具合を克服する、改良された人工知能推論演算装置とすることが望ましい。
この節は、本発明の幾つかの態様を要約し、幾つかの好適な実施形態を簡潔に紹介することを目的とする。この節や更には要約や発明の名称において、その目的が不明瞭にならないようにするために、単純化または省略が行われることがある。このような単純化または省略は、本発明の範囲を限定することを意図しない。
人工知能推論演算装置を開示する。本発明の一態様によれば、人工知能推論演算装置は、プリント基板(PCB)とこのプリント基板に実装されている幾つかの電子部品とを備える。電子部品は、無線通信モジュールと、制御装置モジュールと、メモリモジュールと、ストレージモジュールと、深層学習モデルにおいて畳み込み演算を行い入力データから特徴を抽出するよう構成されている少なくとも一つのセルラーニューラルネットワーク(CNN)ベース集積回路(IC)とを備える。各CNNベースICは、少なくとも一つの入力/出力データバスに動作可能に連結される幾つかのCNN処理エンジンを含む。各CNN処理エンジンは、クロックスキュー回路によりループ状に接続される。無線通信モジュールは、深層学習モデルの訓練済みフィルタ係数、入力データ、及び分類結果を送信するよう構成される。
本発明の目的、特徴及び利点については、添付の図面を共に参照しながら、本発明の実施形態についての以下の詳細な説明によって明らかとなるであろう。
本発明の特徴、態様、及び利点は、以下の説明、添付の特許請求の範囲並びに次のような添付の図面によってより良く理解されるであろう。
本発明の一実施形態に係る、入力画像データから特徴を抽出するよう設計されている集積回路の例を示すブロック図である。 本発明の一実施形態に係る、入力画像データから特徴を抽出するよう設計されている集積回路の例を示すブロック図である。 本発明の一実施形態に係る、一以上のCNN処理エンジンの動作を制御するよう構成されている制御装置の例を示す機能ブロック図である。 本発明の一実施形態に係る、CNN処理エンジンの例を示す図である。 本発明の一実施形態に係る、(M+2)−画素×(M+2)−画素領域内のM×M画素位置を示す図である。 本発明の一実施形態に係る、画素位置の例を示す図である。 本発明の一実施形態に係る、画素位置の例を示す図である。 本発明の一実施形態に係る、画素位置の例を示す図である。 本発明の一実施形態に係る、ある画素位置で3×3畳み込みを行うためのデータ配列の例を示す図である。 本発明の一実施形態に係る、ある画素位置で3×3畳み込みを行うための回路の例を示す機能ブロック図である。 本発明の一実施形態に係る、修正(rectification)の例を示す図である。 本発明の一実施形態に係る、2×2プーリング演算の例を示す図である。 本発明の一実施形態に係る、2×2プーリング演算の例を示す図である。 本発明の一実施形態に係る、M−画素×M−画素ブロックを(M/2)−画素×(M/2)−画素ブロックに縮小する2×2プーリング演算の例を示す図である。 本発明の一実施形態に係る、入力画像内のM−画素×M−画素ブロックと対応する(M+2)−画素×(M+2)−画素領域の例を示す図である。 本発明の一実施形態に係る、入力画像内のM−画素×M−画素ブロックと対応する(M+2)−画素×(M+2)−画素領域の例を示す図である。 本発明の一実施形態に係る、入力画像内のM−画素×M−画素ブロックと対応する(M+2)−画素×(M+2)−画素領域の例を示す図である。 本発明の一実施形態に係る、受け取った画像データを保存するための第一メモリバッファセットの例を示す図である。 本発明の一実施形態に係る、フィルタ係数を保存するための第二メモリバッファセットの例について2つの動作モードを示す図である。 本発明の一実施形態に係る、第二メモリバッファセット内でのフィルタ係数の保存スキームの例を示す図である。 本発明の一実施形態に係る、例示的なクロックスキュー回路を介してループ状に接続されている複数のCNN処理エンジンの例を示す図である。 本発明の一実施形態に係る、畳み込みニューラルネットワークに基づく画像処理技術の例を示す概略図である。 本発明の一実施形態に係る、二値化3×3フィルタカーネルを有する訓練済みの畳み込みニューラルネットワークモデルを実現するための処理の例を示すフローチャートである。 本発明に係る、フィルタカーネル変換スキームの例を示す図である。 データ変換スキームの例を示す図である。 本発明の一実施形態に係る、例示的な人工知能推論演算装置の重要な部品(salient components)を示す機能図である。 本発明の一実施形態に係る、4つのCNN処理エンジンと2つのI/Oデータバスを備えたCNNベースデジタルICについて、画像データのデータパターンとフィルタ係数の第一の例を示す図である。 本発明の一実施形態に係る、4つのCNN処理エンジンと2つのI/Oデータバスを備えたCNNベースデジタルICについて、画像データのデータパターンとフィルタ係数の第二の例を示す図である。
以下の記載では、本発明を詳しく理解するための細部にわたる詳細な説明を多数行っている。しかし、それらの細部をその通りに用いなくとも発明の実施が可能であることは当業者にとって明らかであろう。本明細書での記載及び表現は、当該技術で経験のある者すなわち当業者が最も効果的にその作業の本質を他の当業者に伝えるために用いる通常の手段である。他の例では、本発明の態様を不必要に曖昧にすることを回避するため、周知の、方法、手順及び部品類について詳細には説明していない。
本明細書における、「一実施形態」、「ある実施形態」という表現は、その実施形態に関連して記載した特定の特徴、構造又は特性が、本発明の少なくとも一つの実施形態において含まれ得ることを示している。本明細書において「一実施形態において」という表現が様々な箇所で使われているが、これは必ずしも同じ一つの実施形態を指すというわけではなく、別々の実施形態の相互に排他的な異なる即ち代替的な実施形態でもない。更に、本発明の一以上の実施形態を表すプロセスフローチャート、図、回路においてブロックの順番は、本質的に特定の順番を何ら示すものではなく、本発明における限定を示唆するものでもない。本明細書で使用する「上」、「下」、「右」及び「左」という用語は、記載上の目的で相対的な位置を示すためのものであって、絶対的な座標系を示すものではない。
本発明の実施形態について、図1A〜図20Bを参照して以下に述べる。但し、これらの図面に関して以下に述べる詳細な記載が説明を目的とするものであり、本発明がこれらの限定された実施形態を超えた範囲に及ぶことを、当業者は容易に理解するであろう。
まず、デジタル集積回路(IC)100の例を示すブロック図である図1Aを参照すると、このデジタル集積回路100は、本発明の一実施形態に従って入力画像から特徴を抽出するためのものである。
集積回路100は、デジタル半導体チップとして実現され、CNN処理エンジン制御装置110と、少なくとも一つの入力/出力(I/O)データバス120と動作可能に連結される一以上のニューラルネットワーク(CNN)処理エンジン102とを備える。制御装置110は、CNN処理エンジン102の様々な演算を制御するよう構成され、修正(rectifications)等の非線形演算(例えば、シグモイド関数)による多層構造の3×3畳み込み演算及び2×2プーリング演算を行うことによって、画像処理技術を用いて入力画像から特徴を抽出する。3×3畳み込みを行うには、デジタル形式の画像データと対応するフィルタ係数とが必要であり、これらは入力/出力データバス120を介してCNN処理エンジン102に供給される。デジタル半導体チップは、論理ゲート、マルチプレクサ、レジスタファイル、メモリ、状態機械(state machine)等を備えることが知られている。
一実施形態によれば、デジタル集積回路100は、拡張可能であってスケーラブルである。例えば、一つの半導体チップ上でデジタル集積回路100を複数コピーすることができる。
CNN処理エンジンは全て同じものである。説明を簡略化するために、図1Bには少数のCNN処理エンジンのみ(即ち、CNN処理エンジン122a−122h、132a−132h)を示している。本発明において、デジタル半導体チップ上のCNN処理エンジンの数に制限はない。
各CNN処理エンジン122a−122h、132a−132hは、CNN処理ブロック124と、第一メモリバッファセット126と、第二メモリバッファセット128とを備える。第一メモリバッファセット126は、画像データを受け取って、受取済みの画像データをCNN処理ブロック124に供給するよう構成される。第二メモリバッファセット128は、フィルタ係数を保存して、受取済みのフィルタ係数をCNN処理ブロック124に供給するよう構成される。一般に、一つのチップ上のCNN処理エンジンの数は、2である(nは整数(即ち、0、1、2、3,...))。図1Bに示すように、CNN処理エンジン122a〜122hは、第一入力/出力データバス130aに動作可能に連結されており、一方CNN処理エンジン132a〜132hは、第二入力/出力データバス130bに動作可能に連結されている。各入力/出力データバス130a〜130bは、独立してデータ(即ち、画像データとフィルタ係数と)を送信するよう構成される。一実施形態において、第一及び第二メモリバッファセットは、ランダムアクセスメモリ(RAM)を備える。第一及び第二セットはそれぞれ論理的に定義される。言い換えると、第一及び第二セットのそれぞれの大きさは、それぞれの画像データとフィルタ係数の量を収容するよう再構成可能である。
ここで示した第一及び第二I/Oデータバス130a〜130bは、CNN処理エンジン122a〜122h、132a〜132hを逐次スキームで接続している。別の実施形態では、性能向上のためにデータを並列入力及び出力するという同じ目的を達成するために、少なくとも一つのI/OデータバスはCNN処理エンジンに対する他の接続スキームを有してもよい。
図2は、集積回路上に構成される少なくとも一つのCNN処理エンジンの様々な演算を制御するための制御装置200の例を示す図である。制御装置200は、画像データ読み込み制御部212、フィルタ係数読み込み制御部214、画像データ出力制御部216及び画像処理演算制御部218を制御する回路を備える。制御装置200は更に、集積回路内の特定の構成(例えば、CNN処理エンジンの数、入力/出力データバスの数等)を保存するためのレジスタファイル220を備える。
画像データ読み込み制御部212は、対応するI/Oデータバスを介した各CNN処理エンジンへの画像データの読み込みを制御する。フィルタ係数読み込み制御部214は、対応するI/Oデータバスを介した各CNN処理エンジンへのフィルタ係数の読み込みを制御する。画像データ出力制御部216は、対応するI/Oデータバスを介した各CNN処理エンジンからの画像データの出力を制御する。画像処理演算制御部218は、畳み込み、修正(rectification)、プーリング演算等の様々な演算を制御する。これらの演算は、集積回路のユーザが定義する指示セット(例えば、畳み込み、修正、プーリング等の一連の演算を含むファイル)によってユーザが定義可能である。
図3は、CNN処理エンジン302をより詳細に示す図である。CNN処理ブロック304は、それぞれのメモリバッファからの(M+2)−画素×(M+2)−画素領域の画像データと対応するフィルタ係数とを用いてM×M画素位置で3×3畳み込みを行うことによって、M×M畳み込み演算結果を同時に得るデジタル回路を備える。この(M+2)−画素×(M+2)−画素領域は、M−画素×M−画素の中央部分であるM×M画素位置と、この中央部分を囲む一画素境界部とで形成される。Mは正の整数である。一実施形態において、Mは14であって、従って(M+2)は16となり、M×Mは14×14=196となって、M/2は7となる。
図4は、CNN処理エンジン302で使用する、M×M画素位置410の中央部分を備える(M+2)−画素×(M+2)−画素領域420を表す図である。
画像データは、入力画像における画素の特性(例えば、画素の色(例えば、RGB(赤、緑、青))値のうちの一つ、画素と観測位置との距離)を表す。一般に、RGBの値は、0と255との間の整数である。フィルタ係数の値は、浮動小数点整数であって、正又は負のいずれかであり得る。
より速く演算するために、CNN処理ブロック304では、少ない数の計算性能向上技術が用いられ実施されてきた。一実施形態において、画像データの表現は、できる限り少ないビット数を用いる(例えば、5ビット表現)。別の実施形態において、各フィルタ係数は、基数点を有する整数として表される。同様に、フィルタ係数を表す整数として、できる限り少ないビット数を用いる。結果として、より速い演算とするために固定小数点数演算を用いて3×3畳み込みが行える。
各3×3畳み込み手続きによって、以下の式に基づく一つの畳み込み演算結果、Out(m,n)が得られる。
Figure 0006684951
ここで、m、nは、(M+2)−画素×(M+2)−画素領域の内部でどの画像データ(画素)で畳み込み演算が行われたかを同定するための対応する行及び列番号である。
In(m,n,i,j)はこの領域内の画素位置(m,n)に中心がある3−画素×3−画素エリアである。
C(i,j)は、9つの重み係数(weight coefficient)C(3×3)のうちの一つを表しており、各重み係数は3−画素×3−画素エリアのうちの一つに対応する。
bはオフセット係数を表す。
i,jは、重み係数C(i,j)の添え字(indices)である。
各CNN処理ブロック304は、M×Mの畳み込み演算結果を同時に生成し、全てのCNN処理エンジンが同時処理を行う。
図5A〜図5Cは、M×M画素位置の3つの異なる例を示す図である。図5Aに示す第一画素位置531は、(M+2)−画素×(M+2)−画素領域内の左上角部の3−画素×3−画素エリアの中心にある。図5Bに示す第二画素位置532は、第一画素位置531の右側に一画素分シフトさせたものである。図5Cに示す第三画素位置533は、典型的な画素位置の例である。M×M画素位置として、この(M+2)−画素×(M+2)−画素領域内部の複数の重複する3−画素×3−画素エリアが含まれる。
各サンプリング位置で3×3の畳み込み演算を行うための、データ配列の例を図6に示す。画像データ(即ち、In(3×3))とフィルタ係数(即ち、重み係数C(3×3)とオフセット係数b)とが例示的なCNN3×3回路600に供給される。式(1)に従って3×3畳み込み演算を行った後、一つの出力結果(即ち、Out(1×1))が生成される。各サンプリング位置において、画像データIn(3×3)は、画素座標(m,n)605を中心として8つの直接隣接画素601〜604、606〜609を有する。
図7は、各画素位置において3×3畳み込みを行うためのCNN3×3回路700の例を示す機能図である。回路700は、加算器721、乗算器722、シフタ723、修正器(rectifier)724、及びプーリング演算装置725を少なくとも備える。デジタル半導体を実装する際、これらの全てを論理ゲート及びマルチプレクサを用いて実現可能であって、周知の方法(例えば、ヴェリログ(Verilog)等のハードウェア記述言語)を用いて生成される。加算器721と乗算器722は、加法演算及び乗法演算に使用される。シフタ723は、3×3畳み込みに含まれる固定小数点数演算に応じて出力結果をシフトさせるためのものである。修正器724は、負の出力結果をゼロに設定するためのものである。プーリング演算装置725は、2×2プーリング演算を行うためのものである。
画像データは第一メモリバッファセット306に保存され、フィルタ係数は第二メモリバッファセット308に保存される。画像データとフィルタ係数とは共に、デジタル集積回路の各クロックで、CNN処理ブロック304に供給される。フィルタ係数(即ち、C(3×3)とb)は、第二メモリバッファセット308からCNN処理ブロック304へと直接供給される。但し、画像データは、第一メモリバッファセット306からマルチプレクサMUX305を介してCNN処理ブロック304へと供給される。マルチプレクサ305は、クロック信号(例えば、パルス312)に基づいて第一メモリバッファセットから画像データを選択する。
または、マルチプレクサMUX305は、クロックスキュー回路320を介して第一隣接CNN処理エンジンから(図示しない図3の左側から)画像データを選択する。
同時に、CNN処理ブロック304に供給した画像データのコピーが、クロックスキュー回路320を介して第二隣接CNN処理エンジンに(図示しない図3の右側に)送られる。クロックスキュー回路320は、公知の技術(例えば、Dフリップフロップ322)によって実現可能である。
第一隣接CNN処理エンジンを、クロックスキュー回路320により形成されるループ内の上流隣接CNN処理エンジンと呼ぶ場合がある。第二隣接CNN処理エンジンを、下流CNN処理エンジンと呼ぶ場合がある。別の実施形態において、クロックスキュー回路のデータフロー方向が逆の場合には、第一及び第二CNN処理エンジンもそれぞれ逆に下流、上流隣接処理エンジンとなる。
各画像データグループの3×3畳み込みを事前に定義したフィルタ係数の数について行った後、畳み込み演算結果Out(m,n)が別のクロック信号(例えば、パルス311)に基づいて別のマルチプレクサMUX307を介して第一メモリバッファセットに送られる。パルス311とパルス312との時間関係を明示するためにクロック周期310の例を示す。図示するようにパルス311はパルス312の一つ前のクロックであり、結果として、特定の画像データブロックがクロックスキュー回路320を介して全てのCNN処理エンジンによって処理された後に、3×3畳み込み演算結果が第一メモリバッファセット内に保存される。
畳み込み演算結果Out(m,n)が式(1)より得られた後に、画像処理演算制御部218の指示によって修正手続きを行ってもよい。畳み込み演算結果Out(m,n)がゼロ未満(即ち負の値)であればゼロと設定される。言い換えると、正の値の出力結果のみが維持される。図8に、修正結果の二つの例を示す。正の出力値10.5は10.5のままとし、一方−2.3は0になる。修正によって、集積回路に非線形性が生じる。
2×2プーリング演算が必要ならば、M×M出力結果が(M/2)×(M/2)に縮小される。(M/2)×(M/2)出力結果を第一メモリバッファセットの対応する位置に保存するために、適切なメモリアドレスをたどって4つの(M/2)×(M/2)出力結果を一つのCNN処理エンジン内で処理できるようにするような追加的なブックキーピング(bookkeeping)技術が必要である。
2×2プーリング演算について説明するために、2−画素×2−画素のブロックを、4つの出力結果のうちの最も大きい値である単一の値10.5に減じる出力結果の第一の例を図9Aに図示する。図9Aに示す技術を「最大プーリング(max pooling)」と呼ぶ。図9Bに示す、4つの出力結果の平均値4.6を単一値として使用する場合、これを「平均プーリング(average pooling)」と呼ぶ。プーリング演算には他の例もあり、例えば、「最大プーリング」と「平均プーリング」とを組み合わせた「最大平均混合プーリング(mixed max average pooling)」がある。プーリング演算の主な目的は、処理する画像データのサイズを縮小することである。図10に、M×M画素位置を、2×2プーリング演算によって、(M/2)×(M/2)位置に縮小する例を示すが、これによって元のサイズの1/4になっている。
入力画像は、通常、大量の画像データを含む。画像処理作業を行うために、図11Aに示すように、入力画像1100をM−画素×M−画素ブロック1111〜1112に区分する。次に、このような各M−画素×M−画素ブロックと関連づけられた画像データが、対応する各CNN処理エンジンに供給される。特定のM−画素×M−画素ブロック内の各M×M画素位置において、対応するCNN処理ブロック内で3×3畳み込みが同時に行われる。
本発明において、入力画像が特定の特徴寸法を有する必要はないが、所定の画像処理手順に関して事前に定義した特徴寸法に合うように入力画像のサイズを変更する必要があるかもしれない。ある実施形態では、(2×M)−画素×(2×M)−画素の正方形が必要となる。Kは正の整数(1、2、3、4等)である。Mが14でKが4であれば、特徴寸法は224である。別の実施形態において、入力画像は(2×M)−画素及び(2×M)−画素の寸法の矩形であって、IとJとは正の整数である。
M−画素×M−画素ブロックの境界部周辺の画素位置において3×3畳み込みを適切に行うには、隣接ブロックからの追加の画像データが必要である。図11Bに、(M+2)−画素×(M+2)−画素領域1130内の(破線で囲んだ)典型的なM−画素×M−画素ブロック1120を示す。この(M+2)−画素×(M+2)−画素領域は、現在のブロックからのM−画素×M−画素ブロックの中央部と、対応する隣接ブロックからの4つの端部(即ち、上、右、下及び左)と4つの角部(即ち、左上、右上、右下及び左下)とによって形成される。更なる詳細については、図12及び第一メモリバッファセットの対応する記述にて示す。
図11Cは、M−画素×M−画素ブロック1122〜1124及びこれらに関連付けた(M+2)−画素×(M+2)−画素領域1132〜1134の2つの例を示す図である。これら2つの例示的なブロック1122〜1124は、入力画像の周辺に沿って位置している。第一の例であるM−画素×M−画素ブロック1122は、左上角部に位置しているので、この第一例のブロック1122は、2つの端部と1つの角部とに隣接部を有する。画像データを形成するために関連付けた(M+2)−画素×(M+2)−画素領域1132において、(斜線部で示す)隣接部がない2つの端部と3つの角部には、値「0」を用いる。同様に、第二例であるブロック1124の関連付けた(M+2)−画素×(M+2)−画素領域1134では、上側端部と二つの上側角部に「0」を使用する必要がある。入力画像の周辺に沿った他のブロックも同様に処理される。言い換えると、入力画像の各画素において3×3畳み込みを行うために、入力画像の周辺の外側にゼロ(0)の層が追加される。多くの周知の技術を用いてこれを実現可能である。例えば、第一メモリバッファセットのデフォルト値をゼロに設定する。隣接ブロックによって画像データが埋められない場合には、そのような端部や角部の値はゼロとなる。
更に、入力画像は大量の画像データを含み得るので、入力画像全体を各CNN処理ブロックに供給することができない場合がある。従って、第一メモリバッファセットを各CNN処理エンジン上に構成して、入力画像の画像データの一部を保存する。図12に示すように、第一メモリバッファセットは、9つの異なるデータバッファを備える。9つのバッファは、以下に示すように(M+2)−画素×(M+2)−画素領域に合うように設計される。
1)中央部を表す、画像データのM×M画素を保存するバッファ−0
2)上側端部を表す、画像データの1×M画素を保存するバッファ−1
3)右側端部を表す、画像データのM×1画素を保存するバッファ−2
4)下側端部を表す、画像データの1×M画素を保存するバッファ−3
5)左側端部を表す、画像データのM×1画素を保存するバッファ−4
6)左上角部を表す、画像データの1×1画素を保存するバッファ−5
7)右上角部を表す、画像データの1×1画素を保存するバッファ−6
8)右下角部を表す、画像データの1×1画素を保存するバッファ−7
9)左下角部を表す、画像データの1×1画素を保存するバッファ−8
I/Oデータバスから受け取った画像データは、連続するブロック内のM×M画素の画像データの形式である。画像データの各M×M画素は、現在のブロックのバッファ−0に保存される。受け取ったM×M画素の画像データの左側の列は、前のブロックのバッファ−2に保存され、受け取ったM×M画素の画像データの右側の列は、次のブロックのバッファ−4に保存される。受け取ったM×M画素の画像データの上側と下側の行と4つの角部は、入力画像(例えば、図11A〜図11C)の配置に基づいて対応するブロックの各バッファに保存される。
フィルタ係数を保存する第二メモリバッファセットの例について図13Aに示す。一実施形態において、一対の独立バッファBuffer0 1301とBuffer1 1302とが提供される。この一対の独立バッファによって、バッファ1301〜1302のうちの一つがI/Oデータバス1330からデータを受け取り、もう一方が(図示しない)CNN処理ブロックにデータを供給することができる。ここでは2つの動作モードについて示す。
フィルタ係数の保存スキームの例について図13Bに示す。一対のバッファのそれぞれ(即ち、Buffer0 1301又はBuffer1 1302)は幅(即ち、ワード長(word size)1310)を有する。一実施形態において、ワード長は120ビットである。従って、各フィルタ係数(即ち、C(3×3)及びb)は、第一の例示的な保存スキーム1311において12ビットを占める。第二の例示的な保存スキーム1312において、各フィルタ係数は6ビットを占めるので、各ワードに20個の係数を保存する。第三の例示的なスキーム1313において、3ビットが各係数に用いられ、従って、4セットのフィルタ係数(40個の係数)が保存される。最後に、第四の例示的な保存スキーム1314において、各ワードに80個の係数が保存される。各係数は1.5ビットを占める。即ち、データアーキテクチャは、用途に応じて柔軟である。
別の実施形態において、I/O遅延を避けるために、フィルタ係数全体を保存する第三メモリバッファを設けることができる。一般に、入力画像は、全てのフィルタ係数を収容可能とするような特定のサイズであることが求められる。これについては、このような第三メモリバッファを収容するために第一メモリバッファセット内の使用されていない容量を割り当てることによって行える。全てのメモリバッファはRAM(ランダムアクセスメモリ)内で論理的に定義されるので、このような第三メモリバッファを作成するために周知の技術を使用可能である。言い換えると、第一及び第二メモリバッファセットは、様々な量の画像データ及び/又はフィルタ係数に合うように調整可能である。更に、RAMの総量は、画像処理作業に何が必要かによって決まる。
集積回路上で1以上のCNN処理エンジンを構成する場合、CNN処理エンジンは、クロックスキュー回路を介して第一及び第二隣接CNN処理エンジンと接続される。説明を簡略化するために、画像データ用のCNN処理ブロックとメモリバッファのみを示す。図14にCNN処理エンジングループ用のクロックスキュー回路1440の例を示す。CNN処理エンジンは、第二の例示的なクロックスキュー回路1440を介して接続され、ループを形成する。言い換えると、各CNN処理エンジンは、自身の画像データを第一隣接部に送ると同時に、第二隣接部の画像データを受け取る。クロックスキュー回路1440は、周知の方法で実現可能である。例えば、各CNN処理エンジンはDフリップフロップ1442で接続される。
二つのCNN処理エンジンのみをループ状に接続するという特別な場合は、第一隣接部と第二隣接部とが同一である。
次に、本発明の一実施形態に係る、畳み込みニューラルネットワークに基づく画像処理技術の例を示す概略図である図15を参照する。畳み込みニューラルネットワークに基づいて、第一のフィルタ又は重みセット1520を用いて畳み込みにより、多層構造の入力画像データ1511a〜1511cが処理される。画像データ1511a〜1511cは、フィルタ1520より大きいので、画像データの対応する重複サブ領域1515のそれぞれが処理される。畳み込み結果が得られたのちに、第一プーリング演算1530の前に活性化(activation)が行われてもよい。一実施形態において、活性化は正規化線形関数(rectified linear unit (ReLU))で行われる修正で達成される。第一プーリング演算1530の結果、画像データが縮小され、縮小された画像データのセット1531a〜1531c(reduced set of iagery data)となる。2×2プーリングの場合、縮小された画像データセットは、以前のセットの4分の1に縮小される。
この畳み込み−プーリング手続きが繰り返される。縮小された画像データセット1531a〜1531cは、次に、第二フィルタセット1540を用いて畳み込みにより処理される。同様に、各重複サブ領域1535が処理される。第二プーリング演算1540の前に別の活性化を行うことができる。幾つかの層について畳み込み−プーリング手続きが繰り返され、最終的に全結合(FC)層1560に接続される。画像分類において、予め定義したカテゴリについてそれぞれの確率をFC層1560にて演算することができる。
このように繰り返した畳み込み−プーリング手続きを、既知のデータセット又はデータベースを用いて訓練(train)する。画像分類に関して、データセットには予め定義したカテゴリが含まれる。画像データを分類するための使用前に、フィルタ、活性化、及びプーリングの特定のセット、例えば、特定のフィルタ種類の組み合わせ、フィルタの数、フィルタの順序、プーリングの種類、及び/又はいつ活性化を行うか等を調整して取得可能である。一実施形態において、畳み込みニューラルネットワークは、ビジュアルジオメトリーグループ(Visual Geometry Group)(VGG16)アーキテクチャニューラルネットに基づいており、13の畳み込み層と3つの全結合ネットワーク層を含む。
訓練済みの畳み込みニューラルネットワークモデルは、図16に示す例示的な複数の工程1600により実現される。アクション1602において、まず、十分に多くの入力データ(例えば、画像データ、変換後の音声データ、光学式文字認識(OCR)データ等)を含むラベル付きのデータセットの画像分類を基に、畳み込みニューラルネットワークモデルを訓練することによって、畳み込みニューラルネットワークモデルを得る。例えば、各カテゴリについて少なくとも4000データがある。言い換えると、ラベル付きのデータセット内の各データは、分類すべきカテゴリと関連付けられている。畳み込みニューラルネットワークモデルは、複数の順序付けられたフィルタグループを備える(例えば、各フィルタグループは畳み込みニューラルネットワークモデル内の一つの畳み込み層に対応する)。複数の順序付けられたフィルタグループにおいて、各フィルタは、標準3×3フィルタカーネル(即ち、浮動小数点数形式の9つの係数(例えば、図17の標準3×3フィルタカーネル1710)を含む。この9つのフィルタはそれぞれ、負又は正の実数(即ち、小数部(fraction)を備えた数)であり得る。初期の畳み込みニューラルネットワークモデルは、限定するものではないが、M×net、caffe、tensorflow等の多くの異なるフレームワークから得てもよい。
次に、アクション1604において、それぞれの標準3×3フィルタカーネル1710を、カーネル変換スキームセットにより、複数の順序付けられたフィルタグループ内の現在処理されているフィルタグループの対応する2値(bi−valued)3×3フィルタカーネル1720へと変換することで、畳み込みニューラルネットワークモデルが修正される。一実施形態において、対応する2値3×3フィルタカーネル1720内の9つの係数C(i,j)にはそれぞれ、値「A」が割り当てられ、この値は、以下の式で示すように、標準3×3フィルタカーネル1710内の係数の絶対値の平均に対応する係数の符号(sign)を掛けたものに等しい。
Figure 0006684951
フィルタグループは、複数の順序付けられたフィルタグループに定義した順序で一度に一つずつ変換される。場合によっては、2つの連続するフィルタグループが、畳み込みニューラルネットワークモデルの訓練がより効率的となるようにオプションで組み合わせられる。
次に、アクション1606において、修正した畳み込みニューラルネットワークモデルが、所望の収束基準が満たされる即ち所望の収束基準に到達するまで再訓練される。周知の収束基準が数多くあり、予め定義した再訓練工程の回数を終了すること、フィルタカーネル変換による精度低下(accuracy loss)が収束すること等の収束基準があるがこれらに限定されない。一実施形態において、以前の再訓練工程で既に変換済みのものを含む全てのフィルタグループを微調整のために変更又は一部変更可能である。別の実施形態において、現在処理中のフィルタグループの再訓練工程の間には、既に変更済みのフィルタグループは凍結(frozen)又は一部を変更しないようにする。
処理1600は次に決定1608へと移り、未変換のフィルタグループがあるかどうかが判断される。「Yes」の場合には、処理1600を戻して、全てのフィルタグループが変換されるまで1604から1606のアクションを繰り返す。その後、決定1608が「No」になる。アクション1610では、全てのフィルタグループ内の2値3×3フィルタカーネルの係数は、浮動小数点数形式から固定小数点数形式に変換され、CNNベース集積回路で要求されるデータ構造を収容するようにする。更に、固定小数点をCNNベース集積回路内の再構成可能回路(reconfigurable circuit)として実装する。一実施形態において、12ビット固定小数点数形式を用いてフィルタ係数が実装される。別の実施形態において、12ビットの仮数と2ビットの指数を備えた特殊な浮動小数点形式を用いてフィルタ係数が実装される。更に別の実施形態において、活性化の画像データが5ビットの仮数と4ビットの指数で実装される。
図18は、画素ごとに8ビット(0〜255)から5ビット(0〜31)へと変換するためのデータ変換スキームの一例を示す図である。例えば、ビット0〜7は0になり、ビット8〜15は1になる。
図16の処理1600において述べたように、畳み込みニューラルネットワークモデルはCNNベース集積回路用に訓練される。訓練済みの係数や重みの集合全体を、(画像データ、音声スペクトル、指紋、掌紋、光学式文字認識(OCR)等の)特定のデータ形式の特徴抽出器(feature extractor)としてCNNベース集積回路に対して予め構成しておく。一般に、多くの畳み込み層は、各層内に多くのフィルタを有する。一実施形態において、VGG16モデルは、13の畳み込み層を含む。ソフトウェアベースの画像分類作業では、従来、畳み込み層の演算が演算作業の大部分(例えば、90%)を占める。この演算作業が、CNNベースIC100等の専用ハードウェアにより大幅に減少する。
会話、顔認識、ジェスチャー認識等の異なるドメインの特徴をより良く抽出するために、そのようなドメインに対して異なる畳み込み層係数セットを構成し設ける。そして、そのようなドメインの特定のタスクについては一般的な特徴抽出器として畳み込み層の特定のセットが使用される。例えば、顔認識ドメインにおける家族の顔認識という特定のタスク、及び、更に同じ顔認識のドメインにおける会社の従業員の顔認識という特定のタスク等である。更にこのような2つの特定タスクは、顔検出に使用される同じ畳み込み層係数のセットを共有可能である。
人工知能(AI)推論演算装置1900の例について図19に示す。このAI演算装置1900の例は、幾つかの電子部品を実装したプリント基板(PCB)1920を備える。電子部品は、無線通信インタフェース1902、CNNベース集積回路(IC)1904(例えば、図1AのCNNベースIC100)、制御装置1906、メモリ1908、及びストレージ1910を含む。無線通信インタフェース1902の例には、WiFi、ブルートゥース(登録商標)等を含むが、これらに限定されない。制御装置1906の例には、MIPS、ARM等の中央処理装置を含むが、これらに限定されない。メモリ1908の例には、ダイナミックRAM(Random Access Memory)、スタティックRAM等を含むが、これらに限定されない。ストレージ1910の例には、不揮発性メモリ等を含むがこれに限定されない。
CNNベースIC1904は、深層学習モデルにおいて畳み込み演算を行い、入力データから特徴を抽出するよう構成される。深層学習モデルの例には、VGG16、ResNet、MobileNet等を含むがこれらに限定されない。無線通信インタフェースモジュール1902は、深層学習モデルの訓練済みフィルタ係数1941と入力データ1942とをスマートクライアントデバイス(smart client device)1930から受信し、分類結果1951をスマートクライアントデバイス1930に送るよう構成される。スマートクライアントデバイス1930は、入力データを取得しフィルタ係数を送信することができる。スマートクライアントデバイスの例には、スマートフォン、タブレット等を含むが、これらに限定されない。深層学習モデルは更に、活性化層とプーリング層とを備える。
制御装置1906は、深層学習モデルの訓練済みのフィルタ係数1941を各CNNベースIC1904内にロードするよう構成される。更に、制御装置1906は、受信した入力データ1942について各CNNベースIC上で深層学習モデルを実行するよう構成される。最後に、制御装置1906は、各CNNベースIC1904から抽出された特徴から全結合層(例えば、図15のFC層1560)を実行し(performing)、分類結果1951を得るよう構成される。
各CNNベースIC1904は、特定のデータ構造(即ち、入力データの順序やフィルタ係数の順序)が必要である。図20A及び図20Bに、データ構造の2つの例を示す。
まず図20Aを参照すると、第一の例のCNNベースデジタルICにおいて、入力画像データから特徴を抽出するために行われる畳み込み演算の順番が示される。この例示的なCNNベースデジタルICは、クロックスキュー回路(例えば、図14のクロックスキュー回路1440)で接続された4つのCNN処理エンジンと2つのI/Oデータバスとを備える。I/Oデータバス#1がCNN処理エンジン1及び2用であって、I/Oデータバス#2がCNN処理エンジン3及び4用である。クロックスキュー回路においてデータアクセスの方向は、エンジン#1→エンジン#2→エンジン#3→エンジン#4→エンジン#1の方向である。第一の例において、CNN処理エンジン#1の上流隣接CNN処理エンジンは、CNN処理エンジン#4である。
図20Aの第一の例では、12のフィルタを含む8つの画像データセットが使用される。8つの画像データセットは、2つの画像データグループに分割され、各画像データグループに4つの画像データセットが含まれる。12のフィルタのフィルタ係数は、3つのフィルタグループに分割され、各フィルタグループに4セットのフィルタ係数が含まれる。各フィルタグループは、2つの画像データグループに対応する2つのサブグループに更に分割される。各サブグループは、2つの画像データグループのうちの対応する一つと関連する4セットのフィルタ係数の一部を備える。
入力画像の各ブロック(例えば、図11Aの入力画像1100のうちのブロック1111)の畳み込み演算の順番は、画像データの第一画像データグループ(即ち、Im(1)、Im(2)、Im(3)及びIm(4))で始まり、各CNN処理エンジン(即ち、エンジン#1〜4)にロードされる(ロード−1)。クロックスキュー回路(例えば、図14のクロックスキュー回路1440)の接続性に応じて周期的に畳み込み演算を行うために、第一フィルタグループの第一部分のフィルタ係数(則ち、Im(1)〜Im(4)に関連するフィルタ1〜4用のF(i,j))がロードされる。第一部分の順番は、上流隣接CNN処理エンジンからの画像データの周期的なアクセスによって決定される。畳み込み演算を4回行った後、第二画像データグループ(即ち、Im(5)、Im(6)、Im(7)、Im(8))がロードされる(ロード−2)。第一フィルタグループの第二部分のフィルタ係数(則ち、Im(5)〜Im(8)に関連するフィルタ1〜4用のF(i,j))がロードされ使用される。畳み込み演算を4回行った後、フィルタ1〜4に関する畳み込み演算結果が出力され(出力−1)、各CNN処理エンジンの第一メモリバッファセットの指定領域に保存される。
その後、残りのフィルタグループに関する畳み込み演算が継続される。第一画像データグループ(即ち、Im(1)〜Im(4))が各CNN処理エンジンに再びロードされる(ロード−3)。第二フィルタグループの第一部分のフィルタ係数(則ち、Im(1)〜Im(4)に関連するフィルタ5〜8用のF(i,j))がロードされる。畳み込み演算が4回行われる。第二画像データグループ(即ち、Im(5)〜Im(8))がロードされる(ロード−4)。第二フィルタグループの第二部分のフィルタ係数(則ち、Im(5)〜Im(8)に関連するフィルタ5〜8用のF(i,j))が、畳み込み演算を更に4回行うためにロードされる。その後フィルタ5〜8に関する畳み込み演算結果が出力される(出力−2)。第一及び第二部分を用いて第三フィルタグループ(即ち、フィルタ9〜12)のフィルタ係数についてこのプロセスを継続する。そしてフィルタ9〜12に関する畳み込み演算結果が出力される(出力−3)。
第二の例のCNNベースデジタルICの畳み込み演算の順番について図20Bに示す。この第二の例のICは、クロックスキュー回路でのデータアクセスの方向が逆であること(即ち、エンジン#1→エンジン#4→エンジン#3→エンジン#2→エンジン#1)を除いて、第一の例のICと同じである。即ち、CNN処理エンジン#1の上流隣接CNN処理エンジンは、CNN処理エンジン#2である。結果として、フィルタ係数の順番が異なる。但し、最終的な畳み込み演算結果は同じである。
他の接続スキームによりループを形成することも可能である。図20A〜図20Bに示した二つの例と同様に、当業者であれば、フィルタ係数の対応する順番を導出可能である。
出力(即ち、出力−1、出力−2、出力−3)後に、任意のセットのフィルタ係数を破棄可能であることが、図20A〜図20Bに示す例から明らかである。結果として、フィルタ係数は、先入れ先出し形式で保存される。但し、各画像データグループは、次のフィルタセット用に再ロードされる可能性があるので保存しておく必要がある。画像データはRAM(即ち、第一のメモリバッファセット)に保存されるので、再ロード動作は周知の技術により行うことができる。
フィルタ係数と画像データとの間での畳み込み演算は、以下の式により表される。
Figure 0006684951
尚、
F(i,j):j番目の画像データに関連するi番目のフィルタのフィルタ係数
Im(j):j番目の画像データ
Out(i):i番目の畳み込み演算結果
図20A〜図20Bに示す例において、i=1,12であってj=1,8であるので、12個のOut(i)、8個のIm(j)、12×8=96個のF(i,j)フィルタ係数がある。当業者であれば、異なる数の画像データ、フィルタ、CNN処理エンジン、及びI/Oデータバスを含む他の組み合わせを同様に導出可能であろう。画像データの数がCNN処理エンジンの数の倍数でない場合には、いずれかの空白部分をゼロとする。
更に、CNN処理エンジンへと順次接続する例において2つのI/Oデータバスを示した(即ち、第一I/OデータバスにはCNN処理エンジンの前半、第二I/OデータバスにはCNN処理エンジンの後半)。しかしながら、I/Oデータバスを別の態様、例えば交互に、CNN処理エンジンへと接続してもよい(即ち、第一I/Oデータバスには奇数のCNN処理エンジン、第二I/Oデータバスには他のCNN処理エンジン)。
本発明についてその具体的な実施形態を参照して記載してきたが、これらの実施形態は単に例示的なものであって本発明を限定するものではない。このように具体的に開示した例示的な実施形態についての様々な修正や変更が当業者には示唆されるであろう。例えば、現在の技術を基に、無線通信インタフェースモジュールについて示したが、同じことを実現するのに任意のローカル接続の近距離データ送信を用いてもよい。更に、AI演算装置の応用として画像分類を示しこれについて説明したが、画像検出等の他の種類のAIタスクを使用して同じことを実現してもよい。つまり、本発明の範囲は、本明細書で記載した具体的な例としての実施形態に限定されず、当業者にとって容易に示唆される全ての修正が、本出願の精神及び範囲及び添付の特許請求の範囲内に含まれるものである。

Claims (12)

  1. 複数の電子部品が実装されているプリント基板(PCB)を備え、
    前記複数の電子部品は、
    無線通信インタフェースモジュールと、
    制御装置モジュールと、
    深層学習モデルにおいて畳み込み演算を行って入力データの特徴を抽出するよう構成されている少なくとも一つのセルラーニューラルネットワーク(CNN)ベース集積回路(IC)と、
    を有し、
    各CNNベースICは、少なくとも一つの入力/出力データバスに動作可能に連結されている複数のCNN処理エンジンを含み、前記複数のCNN処理エンジンは、クロックスキュー回路によりループ状に接続されており、
    各前記CNN処理エンジンは、
    対応する入力データと訓練済みのフィルタ係数とを用いて畳み込み演算結果を同時に得るよう構成されているCNN処理ブロックと、
    前記CNN処理ブロックに動作可能に連結されている、前記対応する入力データを保存するための第一メモリバッファセットと、
    前記CNN処理ブロックに動作可能に連結されている、前記訓練済みのフィルタ係数を保存するための第二メモリバッファセットと、
    を含
    前記無線通信インタフェースモジュールは、前記深層学習モデルの訓練済みフィルタ係数をスマートクライアントデバイスから受信するよう構成され、
    前記制御装置モジュールは、前記深層学習モデルの前記訓練済みフィルタ係数を前記各CNNベースIC内にロードするよう構成される、
    人工知能推論演算装置。
  2. 前記無線通信インタフェースモジュールは、前記スマートクライアントデバイスから入力データを受信するよう構成されている、
    請求項に記載の人工知能推論演算装置。
  3. 前記無線通信インタフェースモジュールは、分類結果を前記スマートクライアントデバイスに送信するよう構成されている、
    請求項に記載の人工知能推論演算装置。
  4. 前記無線通信インタフェースモジュールは、ブルートゥース(登録商標)に基づく、
    請求項に記載の人工知能推論演算装置。
  5. 前記無線通信インタフェースモジュールは、WiFiに基づく、
    請求項に記載の人工知能推論演算装置。
  6. 前記スマートクライアントデバイスは、スマートフォンを含む、
    請求項に記載の人工知能推論演算装置。
  7. 前記制御装置モジュールは、受信した前記入力データに関して各前記CNNベースICで前記深層学習モデルを実行するよう構成されている、
    請求項に記載の人工知能推論演算装置。
  8. 前記制御装置モジュールは、各前記CNNベースICから抽出した特徴により全結合層を実行するよう構成されている、
    請求項に記載の人工知能推論演算装置。
  9. 各前記CNN処理エンジンは、活性化及びプーリング演算を更に行う、
    請求項1に記載の人工知能推論演算装置。
  10. 前記入力データは、5ビットの仮数と4ビットの指数とを含む浮動小数点形式で実装される、
    請求項1に記載の人工知能推論演算装置。
  11. 前記訓練済みのフィルタ係数は、12ビットの仮数と2ビットの指数とを含む浮動小数点形式で実装される、
    請求項1に記載の人工知能推論演算装置。
  12. 前記複数の電子部品は、メモリモジュールとストレージとを更に有する、
    請求項1に記載の人工知能推論演算装置。
JP2019117980A 2018-09-11 2019-06-26 人工知能推論演算装置 Active JP6684951B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/128,463 2018-09-11
US16/128,463 US10331983B1 (en) 2018-09-11 2018-09-11 Artificial intelligence inference computing device

Publications (2)

Publication Number Publication Date
JP2020042774A JP2020042774A (ja) 2020-03-19
JP6684951B2 true JP6684951B2 (ja) 2020-04-22

Family

ID=65818353

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019117980A Active JP6684951B2 (ja) 2018-09-11 2019-06-26 人工知能推論演算装置

Country Status (4)

Country Link
US (1) US10331983B1 (ja)
EP (1) EP3624014A1 (ja)
JP (1) JP6684951B2 (ja)
CN (1) CN110059815B (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11250461B2 (en) 2019-03-01 2022-02-15 Mastercard International Incorporated Deep learning systems and methods in artificial intelligence
US20210034958A1 (en) * 2019-07-19 2021-02-04 Pavel Sinha Configurable processor for implementing convolution neural networks
CN111899241B (zh) * 2020-07-28 2022-03-18 华中科技大学 一种定量化的炉前pcb贴片缺陷在线检测方法及***
US11335108B2 (en) * 2020-08-10 2022-05-17 Marlabs Incorporated System and method to recognise characters from an image
US11763496B2 (en) 2021-09-30 2023-09-19 Lemon Inc. Social networking based on asset items

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5140670A (en) 1989-10-05 1992-08-18 Regents Of The University Of California Cellular neural network
US5355528A (en) 1992-10-13 1994-10-11 The Regents Of The University Of California Reprogrammable CNN and supercomputer
US5764858A (en) * 1995-09-14 1998-06-09 University Of Southern California One-dimensional signal processor with optimized solution capability
EP0797165B1 (en) 1996-03-21 2002-11-27 STMicroelectronics S.r.l. Cellular neural network to obtain the so-called unfolded Chua's circuit
US6754645B2 (en) 2001-03-20 2004-06-22 Winbond Electronics Corp. Voltage-mode pulse width modulation VLSI implementation of neural networks
US9620145B2 (en) * 2013-11-01 2017-04-11 Google Inc. Context-dependent state tying using a neural network
US9613001B2 (en) * 2013-12-20 2017-04-04 Intel Corporation Processing device for performing convolution operations
US9430829B2 (en) * 2014-01-30 2016-08-30 Case Western Reserve University Automatic detection of mitosis using handcrafted and convolutional neural network features
US11256982B2 (en) * 2014-07-18 2022-02-22 University Of Southern California Noise-enhanced convolutional neural networks
US9563825B2 (en) * 2014-11-20 2017-02-07 Adobe Systems Incorporated Convolutional neural network using a binarized convolution layer
US9418319B2 (en) 2014-11-21 2016-08-16 Adobe Systems Incorporated Object detection using cascaded convolutional neural networks
US9666183B2 (en) * 2015-03-27 2017-05-30 Qualcomm Incorporated Deep neural net based filter prediction for audio event classification and extraction
US20160358069A1 (en) * 2015-06-03 2016-12-08 Samsung Electronics Co., Ltd. Neural network suppression
CN109086877B (zh) * 2016-04-29 2020-05-08 中科寒武纪科技股份有限公司 一种用于执行卷积神经网络正向运算的装置和方法
US9858636B1 (en) * 2016-06-30 2018-01-02 Apple Inc. Configurable convolution engine
US10360470B2 (en) * 2016-10-10 2019-07-23 Gyrfalcon Technology Inc. Implementation of MobileNet in a CNN based digital integrated circuit
US10043095B2 (en) * 2016-10-10 2018-08-07 Gyrfalcon Technology, Inc. Data structure for CNN based digital integrated circuit for extracting features out of an input image
CN108345939B (zh) * 2017-01-25 2022-05-24 微软技术许可有限责任公司 基于定点运算的神经网络
CN107066239A (zh) * 2017-03-01 2017-08-18 智擎信息***(上海)有限公司 一种实现卷积神经网络前向计算的硬件结构
US10051423B1 (en) * 2017-06-02 2018-08-14 Apple Inc. Time of flight estimation using a convolutional neural network
US20180358003A1 (en) * 2017-06-09 2018-12-13 Qualcomm Incorporated Methods and apparatus for improving speech communication and speech interface quality using neural networks
CN107657581B (zh) * 2017-09-28 2020-12-22 中国人民解放军国防科技大学 一种卷积神经网络cnn硬件加速器及加速方法
CN108038815B (zh) * 2017-12-20 2019-12-17 深圳云天励飞技术有限公司 集成电路
US10685446B2 (en) * 2018-01-12 2020-06-16 Intel Corporation Method and system of recurrent semantic segmentation for image processing

Also Published As

Publication number Publication date
JP2020042774A (ja) 2020-03-19
EP3624014A1 (en) 2020-03-18
CN110059815A (zh) 2019-07-26
US10331983B1 (en) 2019-06-25
CN110059815B (zh) 2020-03-24

Similar Documents

Publication Publication Date Title
JP6684951B2 (ja) 人工知能推論演算装置
US10366302B2 (en) Hierarchical category classification scheme using multiple sets of fully-connected networks with a CNN based integrated circuit as feature extractor
US10360470B2 (en) Implementation of MobileNet in a CNN based digital integrated circuit
US10387740B2 (en) Object detection and recognition apparatus based on CNN based integrated circuits
US11593916B2 (en) Image super-resolution method and apparatus
US10339445B2 (en) Implementation of ResNet in a CNN based digital integrated circuit
US10402628B2 (en) Image classification systems based on CNN based IC and light-weight classifier
US11151361B2 (en) Dynamic emotion recognition in unconstrained scenarios
US20180157940A1 (en) Convolution Layers Used Directly For Feature Extraction With A CNN Based Integrated Circuit
JP5376920B2 (ja) コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置
JP2020068027A (ja) アンサンブル学習ベースの画像分類システム
CN108665063B (zh) 用于bnn硬件加速器的双向并行处理卷积加速***
JP2019185784A (ja) モジュール接続されているcnnベース集積回路を用いた深層学習画像処理システム
CN113034358B (zh) 一种超分辨率图像处理方法以及相关装置
US11526723B2 (en) Apparatus and methods of obtaining multi-scale feature vector using CNN based integrated circuits
JP7261226B2 (ja) 演算処理装置
US20210019606A1 (en) Cellular neural network integrated circuit having multiple convolution layers of duplicate weights
US10936938B2 (en) Method for visualizing neural network models
WO2023036157A1 (en) Self-supervised spatiotemporal representation learning by exploring video continuity
US20200218777A1 (en) Signal Processing Method and Apparatus
WO2022179588A1 (zh) 一种数据编码方法以及相关设备
WO2023109748A1 (zh) 一种神经网络的调整方法及相应装置
US20210019602A1 (en) Using and training cellular neural network integrated circuit having multiple convolution layers of duplicate weights in performing artificial intelligence tasks
WO2021120036A1 (zh) 数据处理装置和数据处理方法
JP2018116419A (ja) データ処理装置及びニューラルネットワークシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190626

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190626

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190703

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200116

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200330

R150 Certificate of patent or registration of utility model

Ref document number: 6684951

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250