[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2018132830A - ニューラルネットワーク構築方法、ニューラルネットワーク装置及びニューラルネットワーク装置更新方法 - Google Patents

ニューラルネットワーク構築方法、ニューラルネットワーク装置及びニューラルネットワーク装置更新方法 Download PDF

Info

Publication number
JP2018132830A
JP2018132830A JP2017024315A JP2017024315A JP2018132830A JP 2018132830 A JP2018132830 A JP 2018132830A JP 2017024315 A JP2017024315 A JP 2017024315A JP 2017024315 A JP2017024315 A JP 2017024315A JP 2018132830 A JP2018132830 A JP 2018132830A
Authority
JP
Japan
Prior art keywords
neural network
update
update data
control unit
hardware
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.)
Pending
Application number
JP2017024315A
Other languages
English (en)
Inventor
松田総一
Soichi Matsuda
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.)
Leap Mind Inc
Original Assignee
Leap Mind 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 Leap Mind Inc filed Critical Leap Mind Inc
Priority to JP2017024315A priority Critical patent/JP2018132830A/ja
Publication of JP2018132830A publication Critical patent/JP2018132830A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】 ディープラーニングに用いられるCNNを、より小型のハードウェアで実現し(小型のハードウェア化)、家庭電化製品や産業機器等に容易に実装できる仕組みを提供できるようになる。
【解決手段】 ニューラルネットワークを構築するニューラルネットワーク構築方法は、畳み込みニューラルネットワークを設計し、所定の学習データを用いて学習させることによって、前記畳み込みニューラルネットワークを構築する構築ステップと、前記構築した前記畳み込みニューラルネットワークを論理回路でハードウェア化するハードウェア化ステップと、を含む。前記畳み込みニューラルネットワークは、ディープラーニングによって学習され、FPGAに畳み込みニューラルネットワークのパラメータを書き込むことによって、論理回路でハードウェア化した前記畳み込みニューラルネットワークを構築することができる。
【選択図】図1

Description

本発明は、ハードウェア化したニューラルネットワークの構築方法に関する。また、本発明は、内容を更新可能なハードウェア化したニューラルネットワークに関する。また、そのニューラルネットワークの更新方法に関する。
ニューラルネットワーク(Neural Network)は、人工知能を実現する手法の一つとして広く研究が行われている。特に、2012年頃から、ディープラーニング(Deep Learning)技術が広く研究され画像認識や音声認識等の分野においてめざましい成果が得られている。
ディープラーニング技術においては、畳み込み層(Convolutional Layer)と、プーリング層(PoolingLayer)と呼ばれる2種の層を交互に20層から30層程度繰り返す構造を有する畳み込みニューラルネットワーク(Convolutional Neural Network )が用いられる場合が多い。
畳み込み層は、一般的な画像処理におけるフィルター(例えば、ラプラシアンフィルター等)とほぼ同様の処理を実行するが、フィルターの内容が学習によって決定していく点が、通常のフィルターと異なる。ここで、そのフィルターの値がニューラルネットにおける重みに相当する。
プーリング層は、例えば、画像中の一定の領域内の最大値を取る等の手法で、画像解像度を落とす処理が実行される。プーリングとは、例えば画像処理の場合、フィルター結果について物体の画像中の位置への依存性を減らすために、画素を間引く処理と考えることもできる。
通常、ニューラルネットワーク(以下、NNと称する)は、コンピュータ上で仮想的に構築され、ソフトウェアによって、各層の演算処理が実行される。しかし、畳み込みニューラルネットワーク(以下、CNNと称する)はこのように複雑な処理を実行する層が多数(20層〜30層程度)重畳しているので、その演算量は巨大なものとなりがちである。そのため、一般的な汎用のCPU等を用いる通常のコンピュータではなく、GPU(Graphics Processing Unit)を用いた演算装置を用いてニューラルネットワークの演算処理を実行させる場合も多い。
その結果、NN、特にディープラーニングを実現しうるCNN等のコンピュータ装置は大規模なものとなりがちであり、一般的な家庭電化製品に実装することは困難であった。
汎用的なCPUを用いたソフトウェアによる演算では演算処理速度が遅く、一般的な家庭電化製品や、産業機器等に実装することは困難である。また、上述したGPUを用いれば比較的高速な演算処理を実現できるが、ハードウェア規模や消費電力を小さくすることは困難である。
例えば、CNNを1チップから数チップのLSIで実現できれば、小型の家庭電化製品等にも実装しやすくなり、好適であるが、そのような手法は未だ知られていない。そのため、小型の家庭電化製品等や、産業機器にも搭載可能なCNNを実現する手法が望まれている。
<先行特許文献>
3層程度のレイヤー構造を採用するNNをハードウェア化しようとする試みは、既に種々の提案がなされている。例えば、下記特許文献1においては、3層のNNのシナプスの荷重に上限値と下限値とを与える構成が開示されている。このような構成によって、学習によるシナプス荷重が収束しやすくなり、ハードウェア化を行いやすくなると記述されている。
また、下記特許文献2においては、ソフトウェアで実現されている3層のNNを、効率よくハードウェア化する技術が開示されている。そして、NNのニューロンを、その応答関数を記録したROM又はRAMで構成することによって、NNを効率よくハードウェア化できると記載されている。
特開平7−152716号公報 特開平9−106390号公報
しかし、ディープラーニングに用いられるCNNは、畳み込みという複雑な処理を多層に渡り実行しなければならず、特許文献1や特許文献2の手法でハードウェア化しようとしても、ハードウェア量が膨大となってしまう。
本発明は上記事情に鑑み、ディープラーニングに用いられるCNNを、より小型のハードウェアで実現し、家庭電化製品や産業機器等に容易に実装できる仕組みを提供することを目的とする。
第1の発明(以下同様)は、ニューラルネットワークを構築するニューラルネットワーク構築方法であって、畳み込みニューラルネットワークを設計し、所定の学習データを用いて学習させることによって、前記畳み込みニューラルネットワークを構築する構築ステップと、前記構築した前記畳み込みニューラルネットワークを論理回路でハードウェア化するハードウェア化ステップと、を含み、論理回路でハードウェア化した前記畳み込みニューラルネットワークを構築することを特徴とするニューラルネットワーク構築方法である。
第2の発明は、請求項1記載の発明において、前記畳み込みニューラルネットワークは、ディープラーニングを実行できる量子化ニューラルネットワークであることを特徴とする。
第3の発明は、請求項1記載の発明において、前記畳み込みニューラルネットワークは、ディープラーニングを実行できる2値化ニューラルネットワークであることを特徴とする。
第4の発明は、請求項1から3のいずれか1項に記載の発明において、前記ハードウェア化ステップは、前記論理回路としてプログラマブルロジックデバイスを用い、前記畳み込みニューラルネットワークのパラメータを、前記プログラマブルロジックデバイスに書き込むことによって、ハードウェア化した記畳み込みニューラルネットワークを構築することを特徴とする。
第5の発明は、請求項1から4のいずれか1項に記載の発明において、前記プログラマブルロジックデバイスは、FPGAであることを特徴とする。
第6の発明は、ニューラルネットワークを備えたニューラルネットワーク装置であって、論理回路を用いてハードウェア化した前記ニューラルネットワークと、前記ニューラルネットワークの内容を更新するニューラルネットワーク制御部と、を有し、前記ニューラルネットワークは、畳み込みニューラルネットワークのパラメータが書き込まれたプログラマブルロジックデバイスであり、前記ニューラルネットワーク制御部は、前記プログラマブルロジックデバイスに更新された畳み込みニューラルネットワークの更新データを書き込むことを特徴とするニューラルネットワーク装置である。
第7の発明は、請求項6記載の発明において、前記畳み込みニューラルネットワークは、ディープラーニングを実行できる量子化畳み込みニューラルネットワークであることを特徴とする。
第8の発明は、請求項6記載の発明において、前記畳み込みニューラルネットワークは、ディープラーニングを実行できる2値化畳み込みニューラルネットワークであることを特徴とする。
第9の発明は、請求項6から8のいずれか1項に記載の発明において、前記プログラマブルロジックデバイスは、FPGAであることを特徴とする。
第10の発明は、請求項6から9のいずれか1項に記載の発明において、外部記憶装置に対して前記更新データの書き込み及び読み出しを行う外部入出力部、を備え、前記ニューラルネットワーク部は、前記外部入出力部が前記外部記憶装置から読み出した前記更新データを前記プログラマブルロジックデバイスに書き込むことを特徴とする。
第11の発明は、請求項10に記載の発明において、外部のネットワークから前記更新データを受信する通信部、を備え、前記ニューラルネットワーク制御部は、前記通信部が受信した前記更新データを、前記外部入出力部に対して送り、前記外部入出力部は、前記送られてきた前記更新データを前記外部記憶装置に書き込み、さらに、前記外部入出力部は、前記外部記憶装置から前記更新データを読み出して、読み出した前記更新データを前記ニューラルネットワーク制御部に送り、前記ニューラルネットワーク制御部は、送られてきた前記更新データを、前記プログラマブルロジックデバイスに書き込むことを特徴とする。
第12の発明は、請求項11に記載の発明の前記ニューラルネットワークを更新するニューラルネットワーク装置更新方法であって、更新サーバが、前記ニューラルネットワーク装置に対して、前記更新された畳み込みニューラルネットワークの更新データを、送信する送信ステップと、前記ニューラルネットワーク装置の前記通信部が、前記更新データを受信し、前記ニューラルネットワーク制御部は、前記通信部が受信した前記更新データを、前記外部入出力部に対して送り、前記外部入出力部は、前記送られてきた前記更新データを前記外部記憶装置に書き込む受信ステップと、前記外部入出力部は、前記外部記憶装置から前記更新データを読み出して、読み出した前記更新データを前記ニューラルネットワーク制御部に送り、前記ニューラルネットワーク制御部は、送られてきた前記更新データを、前記プログラマブルロジックデバイスに書き込む更新ステップと、を含むことを特徴とするニューラルネットワーク装置更新方法である。
第13の発明は、請求項12の発明において、前記更新ステップの後、前記通信部が、更新が完了した旨のメッセージを前記更新サーバに送信する更新完了送信ステップ、を含むことを特徴とする。
第14の発明は、請求項13の発明において、前記更新サーバは、前記更新更新が完了した旨のメッセージを受信した場合、所定の登録データベース中にニューラルネットワークの内容が更新された旨の情報を登録する登録データベース更新ステップ、を含むことを特徴とする。
本発明のニューラルネットワークシステム構築方法によれば、ニューラルネットワークを論理回路でハードウェア化したので、各種装置に容易に実装することができる。その結果、小型の装置にもニューラルネットワークを導入することができ、より多くの装置にニューラルネットワークを導入することができる。
実施形態のニューラルネットワーク装置の製造方法の流れを示すフロー図である。 実施形態のニューラルネットワーク装置の構成ブロック図である。 実施形態のニューラルネットワーク装置の更新の流れを示すフロー図である。
以下、図面を参照して本発明を具体化した実施形態について説明する。実施形態のニューラルネットワーク装置の製造の流れは、NN(ニューラルネットワーク)の学習から、そのハードウェア化、製品への組み込み、等を含む。さらに、実施形態のニューラルネットワーク装置は、ニューラルネットワーク装置の使用中に当該製品中に実装されているNNの更新(メンテナンス)が可能であるが、その更新の流れについては図3において後述する。本実施形態においては、NNとして例えばCNNを中心として説明を行うが、他の種類のNNを用いてもよい。
このニューラルネットワーク装置(以下、NN装置と呼ぶ)は、例えば家庭電化製品、オフィス製品等を想定している。なお、NN装置としてはこれらにとどまらず、例えば産業機器など、今後新たに登場する各種機器・装置も含めることができる。
図1は、本ニューラルネットワーク装置の製造の流れを示すフローチャートである。
まず、ニューラルネットワーク開発者は、ディープラーニング技術に基づき、所定の目的のNNの構築(ここでは、例えばCNNの構築)を行う(ステップS1)。NNの構築は、NNの設計、すなわち、CNNの構成、ニューロン数、レイヤー数等の設計が含まれる。さらに、NNの構築には、目的に応じた学習も含まれる。この学習に際して、学習用のデータの作成、及びそれを用いたディープラーニング技術による学習等を行う。これらのNNの構築(設計・学習含む)は、既存の仕組みを用いて行って良く、例えば上述したGPU等でCNNを構成し、学習させることによってCNNを構築することが好適である。このステップS1は、請求の範囲の構築ステップの好適な一例に相当する。
本実施形態において特徴的なことは、このCNNとして、Binary Convolution Neural Network(2値化畳み込みニューラルネットワーク:以下、BCNNと称する)や、Qauantized Convolution Neural Network(量子化畳み込みニューラルネットワーク:以下、QCNNと称する)等を用いたことである。BCNNは、単にBNNと呼ぶ場合もあり、また、QCNNも、単にQNNと呼ぶ場合もある。このようなBCNNやQCNNを利用してNNを構成することによって、データ量、演算量を大幅に減少させることができ、後述するようなNNのハードウェア化が容易になったものである。
<BCNN>
BCNNは、例えば、次の論文にその一例が詳しい内容が記載されている。
"Mohammad et al.,: XNOR-Net:ImageNet Classification Using Binary Convolution Neural Networks. arXiv reprint arXiv:1603.05279v4(2 Aug. 2016)"
この論文におけるBCNNは、CNNのweightsとinputとをBinarization(2値化)したものであり、メモリ使用量が1/32、演算速度が58倍高速化されると記載されている。従来のCNNのデータやパラメータは、32ビット〜64ビットの浮動小数点データであるのに対して、大幅なデータ量、パラメータ量の削減をすることが可能である。この結果、後述するようなハードウェア化を容易に行うことができる。
<QCNN>
QCNNは、例えば、次の論文にその一例の詳しい内容が記載されている。
"Wu et al.,: Qantized Convolutional Neural Networks: Training Neural Networks with Low Precision Weights and Activations. arXiv reprint arXiv:1609.07061v1(22 Sep. 2016)"
また、QNNについては、例えば、下記の論文にその一例の詳細が記載されている。
"Hubara et al.,: Qantized Neural Networks: Training Neural Networks with Low Precision Weights and Activations. arXiv reprint arXiv:1609.07061v1(22 Sep. 2016)”
この論文のQNNにおいては、CNNのweightsとactivationnsとがさまざまに量子化されている。例えば、特に1ビット幅に量子化することも好適であり、メモリやパラメータの演算量等を大幅に減少させることができると記載されている。1ビットに量子化の場合は、32ビットの数値演算を行う例(例えばAlexNet)との比較で、51%の正確性が実現されると上記QNNの論文には記載されている。
このように、ステップS1においては、QCNNやBCNNを用いてCNNを設計し、学習を行って、最終的な学習済みのCNNを構築する。このステップS1の動作は、通常のNN技術者やNN開発会社が行ってよい。
次に、ステップS1で構築(設計・学習を含む)したCNNを、ハードウェア化する(ステップS2)。ハードウェア化は、構築したCNNのパラメータを用いて、そのCNNと同様の動作を実行するハードウェアを製作することによって実行される。製作したハードウェアを特に、ハードウェア化NNと呼ぶ。このステップS2は請求の範囲のハードウェア化ステップの好適な一例に相当する。
本実施形態においては、ハードウェア化NNとして、例えば半導体チップを製作することによって行われる。特に、本実施形態においては、設計・開発したCNNのパラメータその他の情報をFPGA(Field Programmable Gate Array)に書き込むことによって、CNNと同様の動作を実行しうる半導体チップを製作する。本実施形態で特徴的なことは、このようにNNをFPGA上の論理回路で構成していることである。上述したように、本実施形態のCNNは、BCNNや、QCNNを利用しているので、パラメータの量を少なくすることができ、近年の汎用的な1チップのFPGAに書き込む(プログラムする)ことが可能であり、論理回路によってCNNを実現することができる。本実施形態においては、ステップS2で製作したハードウェア化NN、すなわちFPGAを、便宜上NN−FPGAと呼ぶ。
なお、本実施形態では、FPGAを利用したが、プログラマブルロジックデバイス(Programmable Logic Device)、すなわち、製造後にユーザの手許で内部論理回路を定義・変更できる集積回路であれば、他のプログラマブルロジックデバイスを用いてもよい。本実施形態におけるNN−FPGAは、請求の範囲におけるプログラマブルロジックデバイスの好適な一例に相当する。
次に、このようにして製作したNN−FPGAを、NNを利用した製品に実装し、最終的な製品を製造する(ステップS3)。
従来、NNの構築には、上述したように、コンピュータのソフトウェアを利用して仮想的に構築する場合や、GPU等を利用して構築する場合等があるが、いずれにしても大型の装置となりがちである。したがって、従来は、NNを小型の装置(例えば家庭電化製品等)に実装することは困難であった。
これに対して、本実施形態では、NNを1チップの半導体(FPGA)で構成することができたので、多種多様な製品に実装することができる。その結果、人工知能を利用した様々な製品を製造することが可能となった。例えば、家庭電化製品のような小型の機器であっても、NN−FPGAを実装させることにより、容易に人工知能を搭載する事が可能である。例えば、人工知能によって食材を判断してその判断結果に応じて、その食材の適切な焼き加減を実現できる調理器や、人工知能によって食器の汚れぐあいを判断しその判断結果に応じて、食器に対する適切な洗浄を行える食器洗浄機等を製造することが可能である。
本実施形態では、1チップの半導体(FPGA)でNNを実現する例を主として説明するが、複数チップのFPGAで実現してもよい。どの程度の個数のFPGAを必要かは、利用するQCNN(量子化畳み込みニューラルネットワーク)の量子化ビット数にも依存する。また、利用するFPGAの論理ブロック数にも依存する。例えば、量子化のビット数が大きい場合は、複数個のFPGAでNNを実現してもよい。
なお、ステップS3における製造の対象であるNN装置は、NNを実装することができる全ての装置を含む。家庭電化製品以外にも、各種産業機器、運輸・交通機器、各種工作機械や重機等、種々の装置を、本実施形態における製造対象(NN装置)とすることができる。
これまで説明したステップS1〜S3の実行者は誰でもよいが、例えば、NNの技術者、NNの開発企業、メーカー、NNの研究所等が単独で、または複数主体が協力して実行することができる。また、ステップS1〜S3の実行者が互いに異なっていてもよい。本実施形態では、ステップS1〜3が、例えば、NN装置の研究製造会社及びその関連会社によって実行されるものとして説明を続ける。
このようにして製造された各種NN装置は、販売されてエンドユーザに渡される(ステップS4)。ステップS4の実行者も誰でもよく、各種商社や販売会社が実行することができる。また、各種の販売店や、インターネット上での販売を実施するネット上の店舗や通信販売会社が実行することもできる。本実施形態では、ステップS4は、例えば上記NN装置の研究製造会社(又はその関連販売会社)が実行することとして説明を続ける。
次に、エンドユーザは、入手したNN装置の登録データベースへの登録を行う(ステップS5)。この登録は、エンドユーザが、例えば、インターネットを介して、NN装置の研究製造会社にアクセスし、当該NN装置の製造番号や、その所有者(つまり、そのエンドユーザ)の氏名や住所、インターネット上のアドレス等を入力することによって行うことが好適である。また、そのNN装置に実装されているNNのバージョン番号や、NNの更新を行った日時等を登録データベースに登録することも好適である。研究製造会社へのアクセスは、図2において後述する通信部12を介して行ってもよいし、スマートホンやパソコンを介してアクセスしてもよい。研究製造会社は、登録データベースを保持し、外部からの登録アクセスを受け付ける管理サーバを備えることが好適である。この管理サーバは、後述する更新サーバと共用してもよい。
このようにして入力されたデータが、研究製造会社が管理している登録データベースに登録される。登録データベースは、研究製造会社(の管理サーバ)が管理してよいが他の主体が管理してもよい。なお、登録データベースへの登録はインターネット経由以外の方法でもよい。例えばエンドユーザは、上記エンドユーザの氏名や住所、NNのバージョン情報等の情報を書面に記入して郵送やFAXで研究製造会社又は登録データベースの管理会社に送付してもよい。
<NN装置の更新>
図1で説明したように、NNは、ある所定の学習が完了したことを以て、そのNNが完成する。そして、完成したNNを実装したNN装置が製造・販売される。しかし、製造・販売後も上記研究販売会社が当該NNの学習を続行し、よりよいNNを構築することも好ましい。例えば、調理器においては、新しい食材が利用できる場合は、新しい食材に対する学習が必要である。そのため、調理器(NN装置)を製造・販売後も学習を続行し、新しい食材や、新しいメニューに対応させた(改良された)NNを構築することも好適である。そして、この改良されたNNを、既に販売されたNN装置に新たに導入させることができればエンドユーザにとって調理器(NN装置)の利便性が向上して好ましい。このような処理を実現するためには、例えば、そのNN装置がNN装置の研究販売会社と通信可能に構成されていることが好適である。
このように、販売後にNNの内容を更新可能なNN装置10の構成ブロック図が図2に示されている。同図に示すようにNN装置10は、通信部12と、外部入出力部14と、NN制御部16と、NN−FPGA18と、装置制御部20と、を備えている。
通信部12は、研究製造会社と通信を行い、上述したステップS5における登録や、NNの更新データ(後に詳述する)を受信する通信のための手段である。例えば、インターネットに接続する通信インターフェースとそのドライバソフトウェア等で構成することが好適であるが、他の通信手段でもよい。外部のネットワーク接続し、NNの更新データを受信することができればどのような手段でもよい。
外部入出力部14は、NNの更新データを入力(書き込み)・出力(読み出し)する手段の一つであり、更新データを外部記憶装置15に書き込む動作と、読み出す動作と、を実行する。例えば、USBインターフェースが好ましいが、その他、ICカードリーダーや、メモリーカードリーダー等であってもよい。外部記憶装置15は、不揮発性の所定の記憶手段であり、例えばUSBメモリや、SDカード等が好適に用いられる。
したがって、周囲にインターネット通信環境が利用できない場合(上記通信部12が使用できない場合)等でも、更新データが格納された外部記憶装置15から更新データを入力する(読み出す)ことができる。例えば、外部入出力部14として、USBメモリインターフェースを用いて、USBメモリを介してNNの更新データを入力してもよい。外部入出力部14は、USBメモリ等の外部記憶装置15から、NNの更新データを入力することができればどのような手段でもよい。
NN制御部16は、本NN装置10に実装されているNN−FPGA18のデータの更新を制御する制御手段である。このNN制御部16は、外部入出力部14からNNの更新データを受信し、受信したNNの更新データを、NN−FPGA18に書き込む手段であるが、その他本実施形態で説明する種々の動作を実行する。このNN制御部16は、請求の範囲のニューラルネットワーク制御部の好適な一例に相当する。
NN制御部16は、例えば、NN装置10のCPUと、このCPUが実行するプログラムと、から構成することができる。本実施形態で説明するNN制御部16の動作はこのプログラムで記述されている。
NN−FPGA18は、上述したハードウェア化NNの好適な一例であり、NN装置に実装されるためにNNのデータが書き込まれ、NNとして機能するFPGAである。このNN−FPGAは、請求の範囲のニューラルネットワークの好適な一例に相当し、プログラマブルロジックデバイスの好適な一例にも相当する。
装置制御部20は、外部からの入力データ(外部入力:図2参照)をNN−FPGA18に供給し、その出力を受け取り、その出力に基づき装置の操作出力(図2参照)を送出する。この装置制御部20は、NN−FPGA18をNNとして用いて、各NN装置10の動作を実行する手段である。例えば、食材の写真を撮影し、その画像データが「外部入力」(図2参照)として装置制御部20に供給されると、装置制御部20は、当該画像データをNN−FPGA18に供給し、食材名や、その加熱時間等を推定させる。これら推定結果は、図2における「出力」として、装置制御部20に戻される。装置制御部20は、かかる「出力」に基づき、加熱時間等を操作するために操作出力(図2参照)を出力することができる。このように、装置制御部20は、各NN装置10毎にNNを利用して種々の推定結果等を得て、その推定結果等に基づき種々の動作を実行する。ここでは、「推定」の例を示したが、「画像認識」「言語解析」等に用いる場合もあり、各NN装置の動作に応じて種々の判断を行ってよい。
装置制御部20は、NN装置10のCPUと、このCPUが実行するプログラムと、から構成してよい。また、例えば、NN制御部16と共通のプログラムで実現されていてもよい。
次に、このような構成のNN装置10のNN−FPGA18の内容(データ)を更新する動作について説明する。図3には、かかる更新の動作のフロー図が示されている。
上述したように、研究製造会社は、NN装置10を販売した後も、そこに実装されているNN(NN−FPGA18で実現されているCNN)の学習を続行し、改良を行うことが好適である(ステップS10)。
研究製造会社は、改良したNN(例えばCNN)のデータ(更新データ)を、既に販売されているNN装置10に供給するために、エンドユーザの当該NN装置に送信する(ステップS11)。この送信は、例えばインターネットを介して、当該NN装置10に上記更新データを送信することによって行われる。その宛先としては、上述した研究製造会社(の管理サーバ)が管理する登録データベースの登録内容を用いてよい。この登録データベースには、NN装置10のインターネット上のアドレス等が登録されており、このアドレスを利用してエンドユーザのNN装置10に対して更新データを送信することができる。
なお、ステップS11は、請求の範囲の送信ステップの好適な一例に相当する。また、研究製造会社の管理サーバは、請求の範囲の更新サーバの好適な一例に相当する。言い換えれば、研究製造会社の管理サーバは、登録データベースを関しており、請求の範囲の更新サーバとして機能する。そして、この管理サーバが、ステップS11の送信の動作(請求の範囲の送信ステップの動作)を実行することが好適である。本実施形態では、管理サーバが登録データベースを備えており、更新サーバとして動作する例を説明する。しかし、登録データべースを他のユーザのアフターサービス等で利用し、管理サーバ・更新サーバとは別体に構成してもよい。
なお、図3のステップS11においては、上で説明したように登録データベースに登録されているインターネット上のアドレスに基づき、更新データを送信したが、更新データを別の手段でエンドユーザに送ってもよい。例えば、研究製造会社は、NNの更新データを、USBメモリ等に格納して、このUSBメモリをエンドユーザ宛に郵送してもよい。この場合、そのエンドユーザの住所は上記登録データベース中に登録されている住所を用いてよい。
NN装置10の通信部12は、ステップS11で送信されてきた更新データを受信する(ステップS12)。通信部12は、この更新データをNN制御部16に送信する。NN制御部16は、更新データを外部入出力部14に送る。外部入出力部14は、外部の外部記憶装置15(例えばSDカード、USBメモリ)に更新データを書き込む。なお、外部記憶装置15は不揮発性であることが好ましいが、当該NNの用途等によっては、RAMを用いてもよい場合もある。また、本実施形態では、外部記憶装置15を用いたが、NN装置10の内部の半導体記憶装置や、内部のハードディスク等を利用してもよい。
また、ステップS12は、請求の範囲の受信ステップの好適な一例に相当する。すなわち、受信とは、外部記憶装置15に更新データが書き込まれるまでの動作をいう。また、SDカードやUSBメモリメモリは、請求の範囲の外部記憶装置15の好適な一例に相当する。外部記憶装置15としては、磁気的(ハードディスク装置、磁気カード)、光学的(DVD記憶装置、CD記憶装置)、電気的(半導体記憶装置、ICカード)にデータを記憶可能な手段であれば、その他種々の記憶手段を用いることができる。
次に、NN制御部16は、外部記憶装置15中の更新データを読み出すように外部入出力部14に指示する。外部入出力部14は、かかる指示に従って、外部記憶装置15(例えば、SDカード)から更新データを読み出して、NN制御部16に送信する。NN制御部16は、送信されてきた更新データをNN−FPGA18に書き込む。NN−FPGA18に書き込むことによってNNの内容を更新する(ステップS13)。
なお、インターネットを介した更新を行わない場合は、NNの更新データが格納されたUSBメモリ(SDカード、その他不揮発性記憶手段でよい)を、NN装置10のエンドユーザに郵送することも好適である。このように郵送されてきた場合は、エンドユーザが郵送物(USBメモリ)を受け取り、そのUSBメモリを外部入出力部14に接続する。外部入出力部14はUSBインターフェースを含み、接続されたUSBメモリ内の更新データをNN制御部16に送信することができる。
NN制御部16は、いずれの場合も、外部入出力部14から更新データを受信し、受信した更新データをNN−FPGA18に書き込む。NN−FPGA18に書き込むことによってNNの内容を更新する(ステップS13)。
これによって、NN装置10は、より優れたNNが実装され、エンドユーザにとってより便利なNN装置10が実現される。ステップS13は、請求の範囲の更新ステップの好適な一例に相当する。また、NN制御部16は、請求の範囲のニューラルネットワーク制御部の好適な一例に相当する。
更新が完了した後、NN制御部16は、更新が完了した旨のメッセージを返すように通信部12に指示を行う。通信部12は、当該メッセージをインターネット等を介して研究製造会社に送信する(ステップS14)。ステップS14は、請求の範囲の更新完了送信ステップの好適な一例に相当する。
なお、更新データがSDカード(又はUSBメモリ等)に格納されて、そのSDカードが郵送等で送られてきた場合は、更新が完了した旨のメッセージも郵送で送ることが好適である。その場合は、エンドユーザが、更新が完了した旨のメッセージの手紙等を郵送で研究製造会社宛に送付する。
研究製造会社は、更新が完了した旨のメッセージを受信すると、それに基づき、登録データベース中にNNの内容が更新された旨の情報や、NNの更新データのバージョン番号等を登録し、更新する(ステップS15)。更新が完了した旨のメッセージが郵送で送られてきたときも、同様に登録データベースを更新することが好適である。また、ステップS15は、請求の範囲の登録データベース更新ステップの好適な一例に相当する。
このような図3に示す処理によって、販売された後でもNNの内容を更新することができ、エンドユーザに対してより優れたNN装置10を提供することができる。
<その他の形態>
上で説明した図3に示す構成では、通信部12と外部入出力部14と、が備えられている例を示したが、通信部12は通常は備えていないような形態を採用してもよい。この場合は、SDカード等からのみNNの更新を行うことができる。また、NN装置10とは別体のパソコン等において、更新データをSDカードにダウンロードし、更新データをダウンロードしたSDカードを用いてNN装置10の更新を行ってもよい。
また、図3における説明では、研究製造会社の更新サーバが更新データを送信する構成を説明したが、更新データのアクセス先アドレスのみをNN装置10に送信し、NN装置10の通信部12が、そのアドレスにアクセスし、更新データをダウンロードするように構成してもよい。このようにNN装置10側がダウンロードしにいくような構成でも、実質的には「更新データの送信、更新データの受信」と同等であり、本発明の範囲に含まれる。
また、更新データは、NN装置10のNN(NN−FPGA18)の全てのパラメータ等を更新するデータでもよいし、一部の更新部分のみを更新するデータであってもよい。
また、上記実施形態では、ハードウェア化したNNとして、FPGAを用いる例を説明したが、プログラム可能なデバイスであれば他のデバイスを用いてもよいし、当該他のデバイスと、FPGAとを組み合わせて構成としてもよい。
以上に示した本実施形態は、発明の構成の一例を示したものであり、構成は発明の範囲内において適宜変更することができる。
10…NN装置
12…通信部
14…外部入出力部
15…外部記憶装置
16…NN制御部
18…NN−FPGA
20…装置制御部

Claims (14)

  1. ニューラルネットワークを構築するニューラルネットワーク構築方法であって、
    畳み込みニューラルネットワークを設計し、所定の学習データを用いて学習させることによって、前記畳み込みニューラルネットワークを構築する構築ステップと、
    前記構築した前記畳み込みニューラルネットワークを論理回路でハードウェア化するハードウェア化ステップと、
    を含み、論理回路でハードウェア化した前記畳み込みニューラルネットワークを構築する
    ことを特徴とするニューラルネットワーク構築方法。
  2. 前記畳み込みニューラルネットワークは、ディープラーニングを実行できる量子化ニューラルネットワークである
    ことを特徴とする請求項1記載のニューラルネットワーク構築方法。
  3. 前記畳み込みニューラルネットワークは、ディープラーニングを実行できる2値化ニューラルネットワークである
    ことを特徴とする請求項1記載のニューラルネットワーク構築方法。
  4. 前記ハードウェア化ステップは、前記論理回路としてプログラマブルロジックデバイスを用い、前記畳み込みニューラルネットワークのパラメータを、前記プログラマブルロジックデバイスに書き込むことによって、ハードウェア化した記畳み込みニューラルネットワークを構築する
    ことを特徴とする請求項1から3のいずれか1項に記載のニューラルネットワーク構築方法。
  5. 前記プログラマブルロジックデバイスは、FPGAである
    ことを特徴とする請求項1から4のいずれか1項に記載のニューラルネットワーク構築方法。
  6. ニューラルネットワークを備えたニューラルネットワーク装置であって、
    論理回路を用いてハードウェア化した前記ニューラルネットワークと、
    前記ニューラルネットワークの内容を更新するニューラルネットワーク制御部と、
    を有し、
    前記ニューラルネットワークは、畳み込みニューラルネットワークのパラメータが書き込まれたプログラマブルロジックデバイスであり、
    前記ニューラルネットワーク制御部は、前記プログラマブルロジックデバイスに更新された畳み込みニューラルネットワークの更新データを書き込む
    ことを特徴とするニューラルネットワーク装置。
  7. 前記畳み込みニューラルネットワークは、ディープラーニングを実行できる量子化畳み込みニューラルネットワークである
    ことを特徴とする請求項6記載のニューラルネットワーク装置。
  8. 前記畳み込みニューラルネットワークは、ディープラーニングを実行できる2値化畳み込みニューラルネットワークである
    ことを特徴とする請求項6記載のニューラルネットワーク装置。
  9. 前記プログラマブルロジックデバイスは、FPGAである
    ことを特徴とする請求項6から8のいずれか1項に記載のニューラルネットワーク装置。
  10. 外部記憶装置に対して前記更新データの書き込み及び読み出しを行う外部入出力部、
    を備え、
    前記ニューラルネットワーク部は、前記外部入出力部が前記外部記憶装置から読み出した前記更新データを前記プログラマブルロジックデバイスに書き込む
    ことを特徴とする請求項6から9のいずれか1項に記載のニューラルネットワーク装置。
  11. 外部のネットワークから前記更新データを受信する通信部、
    を備え、前記ニューラルネットワーク制御部は、前記通信部が受信した前記更新データを、前記外部入出力部に対して送り、前記外部入出力部は、前記送られてきた前記更新データを前記外部記憶装置に書き込み、
    さらに、前記外部入出力部は、前記外部記憶装置から前記更新データを読み出して、読み出した前記更新データを前記ニューラルネットワーク制御部に送り、前記ニューラルネットワーク制御部は、送られてきた前記更新データを、前記プログラマブルロジックデバイスに書き込む
    ことを特徴とする請求項10に記載のニューラルネットワーク装置。
  12. 請求項11に記載のニューラルネットワーク装置の前記ニューラルネットワークを更新するニューラルネットワーク装置更新方法であって、
    更新サーバが、前記ニューラルネットワーク装置に対して、前記更新された畳み込みニューラルネットワークの更新データを、送信する送信ステップと、
    前記ニューラルネットワーク装置の前記通信部が、前記更新データを受信し、前記ニューラルネットワーク制御部は、前記通信部が受信した前記更新データを、前記外部入出力部に対して送り、前記外部入出力部は、前記送られてきた前記更新データを前記外部記憶装置に書き込む受信ステップと、
    前記外部入出力部は、前記外部記憶装置から前記更新データを読み出して、読み出した前記更新データを前記ニューラルネットワーク制御部に送り、前記ニューラルネットワーク制御部は、送られてきた前記更新データを、前記プログラマブルロジックデバイスに書き込む更新ステップと、
    を含むことを特徴とするニューラルネットワーク装置更新方法。
  13. 前記更新ステップの後、前記通信部が、更新が完了した旨のメッセージを前記更新サーバに送信する更新完了送信ステップ、
    を含むことを特徴とする請求項12記載のニューラルネットワーク装置更新方法。
  14. 前記更新サーバは、前記更新更新が完了した旨のメッセージを受信した場合、所定の登録データベース中にニューラルネットワークの内容が更新された旨の情報を登録する登録データベース更新ステップ、
    を含むことを特徴とする請求項13記載のニューラルネットワーク装置更新方法。
JP2017024315A 2017-02-13 2017-02-13 ニューラルネットワーク構築方法、ニューラルネットワーク装置及びニューラルネットワーク装置更新方法 Pending JP2018132830A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017024315A JP2018132830A (ja) 2017-02-13 2017-02-13 ニューラルネットワーク構築方法、ニューラルネットワーク装置及びニューラルネットワーク装置更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017024315A JP2018132830A (ja) 2017-02-13 2017-02-13 ニューラルネットワーク構築方法、ニューラルネットワーク装置及びニューラルネットワーク装置更新方法

Publications (1)

Publication Number Publication Date
JP2018132830A true JP2018132830A (ja) 2018-08-23

Family

ID=63249682

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017024315A Pending JP2018132830A (ja) 2017-02-13 2017-02-13 ニューラルネットワーク構築方法、ニューラルネットワーク装置及びニューラルネットワーク装置更新方法

Country Status (1)

Country Link
JP (1) JP2018132830A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110110852A (zh) * 2019-05-15 2019-08-09 电科瑞达(成都)科技有限公司 一种深度学习网络移植到fpag平台的方法
JP2020060967A (ja) * 2018-10-10 2020-04-16 LeapMind株式会社 ニューラルネットワーク処理装置、およびニューラルネットワーク処理方法
CN111416743A (zh) * 2020-03-19 2020-07-14 华中科技大学 一种卷积网络加速器、配置方法及计算机可读存储介质
JPWO2021084717A1 (ja) * 2019-10-31 2021-05-06
KR102268813B1 (ko) * 2020-12-14 2021-06-25 주식회사 모빌린트 딥러닝 알고리즘을 위한 fpga 설계 방법 및 시스템
JP7028377B1 (ja) * 2021-03-25 2022-03-02 Tdk株式会社 情報処理装置、隠れノードの設定方法及び情報処理装置の製造方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002135110A (ja) * 2000-10-19 2002-05-10 Oki Electric Ind Co Ltd 機能変更装置
JP2004258863A (ja) * 2003-02-25 2004-09-16 Konica Minolta Holdings Inc コンピュータシステム及びプログラマブル論理回路並びに回路データの書き込み方法並びにデータ作成プログラム
JP2008071288A (ja) * 2006-09-15 2008-03-27 Ricoh Co Ltd ソフトウェア管理方法及び管理システム
JP2014238617A (ja) * 2013-06-05 2014-12-18 富士通株式会社 データ処理装置、データ処理方法及び情報処理装置
JP2015005844A (ja) * 2013-06-20 2015-01-08 日本電気株式会社 再構成可能素子、再構成装置及び再構成方法
WO2015175155A1 (en) * 2014-05-12 2015-11-19 Qualcomm Incorporated Distributed model learning
JP2016051198A (ja) * 2014-08-28 2016-04-11 株式会社アイ・オー・データ機器 ネットワークシステムおよびネットワーク方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002135110A (ja) * 2000-10-19 2002-05-10 Oki Electric Ind Co Ltd 機能変更装置
JP2004258863A (ja) * 2003-02-25 2004-09-16 Konica Minolta Holdings Inc コンピュータシステム及びプログラマブル論理回路並びに回路データの書き込み方法並びにデータ作成プログラム
JP2008071288A (ja) * 2006-09-15 2008-03-27 Ricoh Co Ltd ソフトウェア管理方法及び管理システム
JP2014238617A (ja) * 2013-06-05 2014-12-18 富士通株式会社 データ処理装置、データ処理方法及び情報処理装置
JP2015005844A (ja) * 2013-06-20 2015-01-08 日本電気株式会社 再構成可能素子、再構成装置及び再構成方法
WO2015175155A1 (en) * 2014-05-12 2015-11-19 Qualcomm Incorporated Distributed model learning
JP2016051198A (ja) * 2014-08-28 2016-04-11 株式会社アイ・オー・データ機器 ネットワークシステムおよびネットワーク方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JIAXIANG WU, ET AL.: "Quantized Convolutional Neural Networks for Mobile Devices", COMPUTER VISION AND PATTERN RECOGNITION, 2016 IEEE CONFERENCE ON, JPN6017031054, 27 June 2016 (2016-06-27), US, pages 4820 - 4828, XP033021674, ISSN: 0003864668, DOI: 10.1109/CVPR.2016.521 *
中原啓貴: "人工知能コーナはじめました C言語で高性能人工知能回路づくりに挑戦! ピッタリ!ディープ・ニューラル", INTERFACE, vol. 2016年8月号, JPN6017031053, 16 June 2016 (2016-06-16), JP, pages 91 - 95, ISSN: 0003864667 *
小田 哲 外3名: "「Jubatus:Big Dataのリアルタイム処理を可能にする分散処理技術」", 電子情報通信学会技術研究報告, vol. 第111巻,第409号, JPN6019003077, 19 January 2012 (2012-01-19), pages 35 - 40, ISSN: 0003968863 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7040771B2 (ja) 2018-10-10 2022-03-23 LeapMind株式会社 ニューラルネットワーク処理装置、通信装置、ニューラルネットワーク処理方法、およびプログラム
JP2020060967A (ja) * 2018-10-10 2020-04-16 LeapMind株式会社 ニューラルネットワーク処理装置、およびニューラルネットワーク処理方法
CN110110852A (zh) * 2019-05-15 2019-08-09 电科瑞达(成都)科技有限公司 一种深度学习网络移植到fpag平台的方法
CN110110852B (zh) * 2019-05-15 2023-04-07 电科瑞达(成都)科技有限公司 一种深度学习网络移植到fpag平台的方法
TWI830940B (zh) * 2019-10-31 2024-02-01 日商日本電氣股份有限公司 資訊處理電路以及資訊處理電路的設計方法
JPWO2021084717A1 (ja) * 2019-10-31 2021-05-06
WO2021084717A1 (ja) * 2019-10-31 2021-05-06 日本電気株式会社 情報処理回路および情報処理回路の設計方法
JP7310910B2 (ja) 2019-10-31 2023-07-19 日本電気株式会社 情報処理回路および情報処理回路の設計方法
CN111416743B (zh) * 2020-03-19 2021-09-03 华中科技大学 一种卷积网络加速器、配置方法及计算机可读存储介质
CN111416743A (zh) * 2020-03-19 2020-07-14 华中科技大学 一种卷积网络加速器、配置方法及计算机可读存储介质
WO2022131389A1 (ko) * 2020-12-14 2022-06-23 주식회사 모빌린트 딥러닝 알고리즘을 위한 fpga 설계 방법 및 시스템
KR102268813B1 (ko) * 2020-12-14 2021-06-25 주식회사 모빌린트 딥러닝 알고리즘을 위한 fpga 설계 방법 및 시스템
WO2022201425A1 (ja) * 2021-03-25 2022-09-29 Tdk株式会社 情報処理装置、隠れノードの設定方法及び情報処理装置の製造方法
JP7028377B1 (ja) * 2021-03-25 2022-03-02 Tdk株式会社 情報処理装置、隠れノードの設定方法及び情報処理装置の製造方法

Similar Documents

Publication Publication Date Title
JP2018132830A (ja) ニューラルネットワーク構築方法、ニューラルネットワーク装置及びニューラルネットワーク装置更新方法
US11922308B2 (en) Generating neighborhood convolutions within a large network
US20210256361A1 (en) Apparatus and mechanism for processing neural network tasks using a single chip package with multiple identical dies
CN106462375B (zh) 图形管线状态对象和模型
US9418341B1 (en) Determining quality signals for electronic mail offer campaigns
WO2023207487A1 (zh) 一种电路走线确定方法及相关设备
US20220012579A1 (en) Neural network accelerator system for improving semantic image segmentation
Ertugrul et al. Embedding 3D models in offline physical environments
US20210365614A1 (en) Machine learning based design framework
CN109314103A (zh) 用于远程现场可编程门阵列处理的方法和装置
Brafman et al. Service composition in stochastic settings
US20220391668A1 (en) Methods and apparatus to iteratively search for an artificial intelligence-based architecture
US20220114495A1 (en) Apparatus, articles of manufacture, and methods for composable machine learning compute nodes
US20220027022A1 (en) Optimizing Object Displays on User Interfaces
CN115345669A (zh) 文案生成方法、装置、存储介质及计算机设备
CN108090110A (zh) 推荐软件动作以创建图像和推荐图像以示范软件动作的效果
CN117077599B (zh) 一种现场可编程逻辑门阵列视图生成方法及装置
US20190220914A1 (en) Methods and apparatus to translate and manage product data
JP2021022231A (ja) 管理装置、管理方法、および管理プログラム
Shi et al. A novel tree-based representation for evolving analog circuits and its application to memristor-based pulse generation circuit
CN116910373A (zh) 房源推荐方法、装置、电子设备及存储介质
US20220012860A1 (en) Methods and apparatus to synthesize six degree-of-freedom views from sparse rgb-depth inputs
CN116249988A (zh) 用于提供关于配置过程的推荐的方法和系统
US20240362503A1 (en) Domain transformation to an immersive virtual environment using artificial intelligence
US20240326339A1 (en) Integration of 3d printed assistance components with e-commerce purchases

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180518

A603 Late request for extension of time limit during examination

Free format text: JAPANESE INTERMEDIATE CODE: A603

Effective date: 20180518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181112

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190226