JP2020087288A - Dnn軽量化装置 - Google Patents

Dnn軽量化装置 Download PDF

Info

Publication number
JP2020087288A
JP2020087288A JP2018225157A JP2018225157A JP2020087288A JP 2020087288 A JP2020087288 A JP 2020087288A JP 2018225157 A JP2018225157 A JP 2018225157A JP 2018225157 A JP2018225157 A JP 2018225157A JP 2020087288 A JP2020087288 A JP 2020087288A
Authority
JP
Japan
Prior art keywords
filter
representative
filters
storage unit
unit
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
JP2018225157A
Other languages
English (en)
Inventor
徹也 石川
Tetsuya Ishikawa
徹也 石川
克彰 ▲高▼橋
克彰 ▲高▼橋
Katsuaki Takahashi
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.)
Aisin Corp
Original Assignee
Aisin Seiki 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 Aisin Seiki Co Ltd filed Critical Aisin Seiki Co Ltd
Priority to JP2018225157A priority Critical patent/JP2020087288A/ja
Publication of JP2020087288A publication Critical patent/JP2020087288A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

【課題】CNNに含まれる畳込み層を効率的に軽量化することを可能とする。【解決手段】実施形態のDNN軽量化装置は、一例として、畳込みディープニューラルネットワークの畳込み層において用いられる複数のフィルタを含むフィルタブロックを記憶する全フィルタ格納部と、フィルタブロックを分解し、フィルタブロックから分解した複数のフィルタを、類似するフィルタを集めた複数のグループにクラスタリングし、グループ毎に、当該グループに含まれるフィルタを代表する代表フィルタを生成するフィルタクラスタリング部と、代表フィルタと、当該代表フィルタと同じグループにクラスタリングされた各フィルタが属するフィルタブロックと、当該フィルタブロックにおいて各フィルタを適用する順番と、を示すフィルタインデックスを算出するフィルタインデックス算出部と、代表フィルタを記憶する代表フィルタ格納部と、フィルタインデックスを記憶するフィルタインデックス格納部と、を備える。【選択図】図3

Description

本発明の実施形態は、DNN軽量化装置に関する。
深層ディープニューラルネットワーク(以下、DNNと言う)は、様々な分野で広く適用されている。特に、画像処理の分野では、畳込み演算を利用したDNNである畳込みニューラルネットワーク(以下、CNNと言う)が使用されており、CNNを用いた推論器が様々なタスクにおいて従来の技術を凌駕する性能を示している。CNNの特徴は、通常のDNNで用いられる全結合層だけでなく、畳込み演算を行う畳込み層を有することであり、CNNは、これらの2種類の層を多層に積み重ねることによって構成される。
ところで、高性能な深層学習を小型の機器において実現するためには、DNNの軽量化が必須である。DNNを軽量化する手段としては、蒸留、枝刈り、行列分解の3つの手段が広く知られている。蒸留とは、学習済みの軽量化されていないDNN、および学習データを用いて、小さなDNNを効率的に再学習させる手法である。この蒸留によれば、学習データだけを用いて小さなDNNを学習させるよりも高い性能のDNNが得られ易く、かつDNNの軽量化を実現できる。
枝刈りは、ニューラルネットワークにおけるニューロン同士を結ぶ結合のうち、結合の弱いものを削除することによって、DNNを軽量化する手法である。また、行列分解は、ニューラルネットワークにおけるニューロンの結合をひとつのテンソル(高階の行列)とみなし、これを小さな行列の掛け合わせで表現することによってDNNを軽量化する手法である。
G.Hinton、他2名、"Distilling the Knowledge in a Neural Network"、[online]、平成27年3月9日、arXiv、[平成30年10月19日検索]インターネット<https://arxiv.org/> I.Cugu、他2名、"MicroExpNet: An Extremely Small and Fast Model For Expression Recognition From Frontal Face Images"、[online]、平成30年8月13日、arXiv、[平成30年10月19日検索]インターネット<https://arxiv.org/> S.Han、他2名、"Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding"、[online]、平成28年2月15日、arXiv、[平成30年10月19日検索]インターネット<https://arxiv.org/> Y.Kim、他5名、"Compression of Deep Convolutional Neural Networks for Fast and Low Power Mobile Applications"、[online]、平成28年2月24日、arXiv、[平成30年10月19日検索]インターネット<https://arxiv.org/> D.P.Kingma、他1名、"Adam: A Method for Stochastic Optimization"、[online]、平成29年1月30日、arXiv、[平成30年10月19日検索]インターネット<https://arxiv.org/>
しかしながら、DDNを軽量化する手段のうち蒸留は、学習データを必要とするため、学習データが無い場合には、実施することができない。また、枝刈りは、DNNの層のうち全結合層には、軽量化の効果が非常に高いが、畳込み層に対しては軽量化の効果が小さく、畳込み層に対して枝刈りによる軽量化をさらに進めると、DNNの精度が急激に劣化することがある。また、行列分解も、枝刈りと同様に、全結合層に対しては軽量化に対して一定の効果が得られるが、畳込み層に対しては軽量化の効果が小さい。
そこで、実施形態の課題の一つは、DNNが有する畳込み層を効率的に軽量化することが可能なDNN軽量化装置提供することである。
実施形態のDNN軽量化装置は、一例として、畳込みディープニューラルネットワークの畳込み層において用いられる複数のフィルタを含むフィルタブロックを記憶する全フィルタ格納部と、フィルタブロックを分解し、フィルタブロックから分解した複数のフィルタを、類似するフィルタを集めた複数のグループにクラスタリングし、グループ毎に、当該グループに含まれるフィルタを代表する代表フィルタを生成するフィルタクラスタリング部と、代表フィルタと、当該代表フィルタと同じグループにクラスタリングされた各フィルタが属するフィルタブロックと、当該フィルタブロックにおいて各フィルタを適用する順番と、を示すフィルタインデックスを算出するフィルタインデックス算出部と、代表フィルタを記憶する代表フィルタ格納部と、フィルタインデックスを記憶するフィルタインデックス格納部と、を備える。よって、一例として、CNNの畳込み層を効率的に軽量化することができる。
また、実施形態のDNN軽量化装置は、一例として、フィルタクラスタリング部は、確率的勾配法によって代表フィルタの勾配を算出し、算出した勾配に基づいて代表フィルタを更新し、当該更新後の代表フィルタに基づいて、複数のフィルタを複数のグループにクラスタリングし直す。よって、一例として、短時間に、代表フィルタを更新することができる。
また、実施形態のDNN軽量化装置は、一例として、畳込みディープニューラルネットワークの畳込み層において用いられるフィルタブロックを複数のフィルタに分解して類似するフィルタでクラスタリングした各グループの代表フィルタを記憶する代表フィルタ格納部と、代表フィルタと、当該代表フィルタと同じグループにクラスタリングされた各フィルタが属するフィルタブロックと、当該フィルタブロックにおいて各フィルタを適用する順番と、を示すフィルタインデックスを記憶するフィルタインデックス格納部と、代表フィルタ格納部に記憶される代表フィルタおよびフィルタインデックス格納部に記憶されるフィルタインデックスに基づいて、フィルタを代表フィルタにより置き換えたフィルタブロックを生成し、当該生成したフィルタブロックを用いて、画像データに対して畳込み演算を実行する畳込み演算部と、を備える。よって、一例として、CNNの畳込み層を効率的に軽量化することができる。
図1は、本実施形態にかかるサーバのハードウェア構成の一例を示すブロック図である。 図2は、本実施形態にかかる車両に搭載される車両制御システムのシステム構成の一例を示すブロック図である。 図3は、本実施形態にかかるサーバおよびECUの機能構成の一例を示すブロック図である。 図4は、本実施形態にかかるサーバによるCNNの軽量化処理の流れの一例を示すフローチャートである。 図5は、本実施形態にかかるサーバによるフィルタブロックのフィルタクラスタリングの一例を説明するための図である。 図6は、本実施形態にかかる車両が有するECUによるCNNの軽量化処理の流れの一例を示すフローチャートである。
以下、本発明の例示的な実施形態が開示される。以下に示される実施形態の構成、ならびに当該構成によってもたらされる作用、結果、および効果は、一例である。本発明は、以下の実施形態に開示される構成以外によって実現可能であるとともに、基本的な構成に基づく種々の効果や、派生的な効果のうち、少なくとも1つを得ることが可能である。
まず、図1を用いて、本実施形態にかかる車両における深層ニューラルネットワーク(以下、DNNと言う)を用いた画像処理の軽量化に関わるサーバのハードウェア構成について説明する。
図1は、本実施形態にかかるサーバのハードウェア構成の一例を示すブロック図である。図1に示すように、本実施形態にかかるサーバ100は、PC(Personal Computer)等の一般的な情報処理装置と同様のコンピュータ資源を有している。
図1に示す例において、サーバ100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、通信インターフェース(I/F)104と、入出力インターフェース(I/F)105と、SSD(Solid State Drive)106と、を有している。これらのハードウェアは、データバス107を介して互いに接続されている。
CPU101は、サーバ100を統括的に制御するハードウェアプロセッサである。CPU101は、ROM102等に記憶された各種の制御プログラム(コンピュータプログラム)を読み出し、当該各種の制御プログラムに規定されたインストラクションにしたがって各種の機能を実現する。
ROM102は、上述した各種の制御プログラムの実行に必要なパラメータなどを記憶する不揮発性の主記憶装置である。
RAM103は、CPU101の作業領域を提供する揮発性の主記憶装置である。
通信インターフェース104は、サーバ100と外部装置との間の通信を実現するインターフェースである。例えば、通信インターフェース104は、サーバ100と車両との間の無線通信による信号の送受信を実現する。
入出力インターフェース105は、サーバ100と外部装置との接続を実現するインターフェースである。外部装置としては、例えば、サーバ100のオペレータが使用する入出力デバイスなどが考えられる。
SSD106は、書き換え可能な不揮発性の補助記憶装置である。本実施形態にかかるサーバ100においては、補助記憶装置として、SSD106に替えて(またはSSD106に加えて)、HDD(Hard Disk Drive)が設けられてもよい。
次に、図2を用いて、本実施形態にかかる車両に搭載される車両制御システムのシステム構成について説明する。図2は、本実施形態にかかる車両に搭載される車両制御システムのシステム構成の一例を示すブロック図である。
図2に示すように、車両制御システムは、車載カメラ201と、ドライバモニタカメラ202と、ECU(Electronic Control Unit)203と、表示装置204と、を有している。
車載カメラ201は、車両の周囲を撮像可能である。例えば、車載カメラ201は、車両の前方、後方、および側方(左右両方)の路面を含む領域を撮像するように複数設けられる。車載カメラ201によって得られる画像データは、車両の周辺の状況の監視(障害物の検出等)に使用される。車載カメラ201は、CCD(Charge Coupled Device)またはCIS(CMOS Image Sensor)等の撮像素子を有するデジタルカメラである。車載カメラ201は、所定のフレームレートで車両の周囲を撮像可能である。そして、車載カメラ201は、車両の周囲を撮像して得られた画像データ(撮像画像)をECU203に出力する。
ドライバモニタカメラ202は、車両を運転する運転者を撮像可能である。ドライバモニタカメラ202は、CCDやCIS等の撮像素子を有するデジタルカメラである。ドライバモニタカメラ202は、車両の運転席に着座する乗員(すなわち、運転者)の顔が、視野の中心に位置するように、視野角および姿勢が調整されている。そして、ドライバモニタカメラ202は、運転者の顔を順次撮像し、当該撮像により得られる画像データ(撮像画像)をECU203に順次出力する。
表示装置204は、車両の車室内のダッシュボード等に設けられ、ECU203の指示に応じて画像を表示する装置である。表示装置204は、例えば、液晶ディスプレイ(LCD:Liquid Crystal Display)や、有機EL(OELS:Organic Electroluminescent Display)等によって構成される。
ECU203は、コンピュータ等で構成され、ハードウェアとソフトウェアが協働することにより、車両の制御全般を司る。具体的には、ECU203は、例えば、CPU203a、ROM203b、RAM203c、SSD203d等を有している。
CPU203aは、車両全体の制御を行う。CPU203aは、ROM203b等の不揮発性の記憶装置にインストールされ記憶されたプログラムを読み出し、当該プログラムに従って演算処理を実行する。例えば、CPU203aは、車載カメラ201またはドライバモニタカメラ202の撮像により得られた画像データに対するDNNを用いた画像処理や、表示装置204に表示させる画像データの合成等を実行する。
ROM203bは、各種プログラムおよび当該プログラムの実行に必要なパラメータ等を記憶する。RAM203cは、CPU203aでの演算に用いられる各種のデータを一時的に記憶する。SSD203dは、書き換え可能な不揮発性の記憶部であって、ECU203の電源がオフされた場合にあってもデータを記憶することができる。
CPU203aや、ROM203b、RAM203c等は、同一パッケージ内に集積されうる。また、ECU203は、CPU203aに替えて、DSP(Digital Signal Processor)等の他の論理演算プロセッサや論理回路等が用いられる構成であってもよい。また、SSD203dに替えてHDD(Hard Disk Drive)が設けられてもよいし、SSD203dやHDDは、ECU203とは別に設けられてもよい。
ところで、畳込み演算を行う畳込み層を含むDNNである畳込みニューラルネットワーク(以下、CNNと言う)を用いた画像処理には、畳込み層の軽量化が求められている。特に、高性能なCNNを、車両が有するECU203等の小型の機器に組み込むためには、畳込み層の軽量化が必要である。DNNを軽量化する手段として、蒸留や、枝刈り、行列分解等の手法が知られている。しかしながら、これらの手法では、DNNが含む全結合層を軽量化することはできるが、畳込み層を効率的に軽量化することは難しい。
そこで、本実施形態では、サーバおよびECU203に対して以下のような機能を持たせることで、CNNにおける畳込み層を軽量化することを実現する。本実施形態では、サーバ100およびECU203それぞれが、DNN軽量化装置の一例として機能する。本実施形態では、サーバ100をDNN軽量化装置の一例として用いているが、これに限定するものではなく、ワークステーション等の演算装置をDNN軽量化装置として用いることも可能である。
次に、図3を用いて、本実施形態にかかるサーバ100およびECU203の機能構成の一例について説明する。図3は、本実施形態にかかるサーバおよびECUの機能構成の一例を示すブロック図である。図3に示すサーバ100およびECU203において実現される機能は、ソフトウェアとハードウェアとの協働によって実現される。つまり、図3に示す例において、サーバ100の機能は、CPU101がROM102などに記憶されたプログラムを読み出して実行した結果として実現され、ECU203の機能は、CPU203aがROM203bなどに記憶されたプログラムを読み出して実行した結果として実現される。図3に示すサーバおよびECU203の機能の一部または全部が専用のハードウェア(回路)によって実現されても良い。
図3に示すように、本実施形態にかかるサーバ100は、機能構成として、全フィルタ格納部301、フィルタクラスタリング部302、フィルタインデックス算出部303、フィルタインデックス格納部304、および代表フィルタ格納部305を有している。
全フィルタ格納部301は、サーバ100が有するROM102やSSD106等の不揮発性の記憶媒体により実現され、複数のフィルタブロックを有するフィルタブロック群を記憶する記憶部である。ここで、フィルタブロックは、CNNが含む畳込み層において用いられる複数のフィルタを有する。これらのフィルタブロックは、全フィルタ格納部301に対して、予め保存されているものとする。本実施形態では、全フィルタ格納部301に記憶されるフィルタブロックは、車両が有するECU203におけるCNNには用いられない。
フィルタクラスタリング部302は、全フィルタ格納部301に記憶されるフィルタブロックを複数のフィルタに分解して、当該複数のフィルタを、類似するフィルタを集めたグループにクラスタリング(以下、フィルタクラスタリングと言う)する。次いで、フィルタクラスタリング部302は、フィルタクラスタリングしたグループ毎に、当該グループに含まれるフィルタを代表する代表フィルタを生成する。そして、フィルタクラスタリング部302は、生成した代表フィルタを代表フィルタ格納部305に保存する。代表フィルタ格納部305は、SSD106等の書き換え可能な不揮発性の記憶媒体により実現される。
本実施形態では、フィルタクラスタリング部302は、図3に示すように、初期代表フィルタ生成部302a、確率的勾配算出部302b、および代表フィルタ更新部302cを有する。初期代表フィルタ生成部302aは、全フィルタ格納部301に記憶されるフィルタブロックを複数のフィルタに分解する。次いで、初期代表フィルタ生成部302aは、フィルタブロックから分解した複数のフィルタを、類似するフィルタを集めた複数のグループにフィルタクラスタリングする。
そして、初期代表フィルタ生成部302aは、各グループに含まれる複数のフィルタから、任意のフィルタを、当該グループに含まれるフィルタを代表するフィルタ(以下、代表フィルタと言う)の初期値として生成する。その際、初期代表フィルタ生成部302aは、各グループに含まれる複数のフィルタから、ランダムに選択したフィルタを、代表フィルタとして生成する。
確率的勾配算出部302bは、確率的勾配法によって、代表フィルタの勾配を算出する。代表フィルタ更新部302cは、代表フィルタの勾配の算出結果に基づいて、各グループの代表フィルタを更新する。そして、代表フィルタ更新部302cは、更新した代表フィルタを、代表フィルタ格納部305に保存する。代表フィルタ格納部305は、SSD106等の書き換え可能な不揮発性の記憶媒体により実現される。さらに、代表フィルタ更新部302cは、各グループの代表フィルタの更新結果に基づいて、複数のフィルタを複数のグループにクラスタリングし直す。
フィルタインデックス算出部303は、代表フィルタ、およびフィルタクラスタリング部302によるフィルタクラスタリングの結果に基づいて、フィルタインデックスを算出する。ここで、フィルタインデックスは、代表フィルタと、当該代表フィルタと同じグループにクラスタリングされた各フィルタが属するフィルタブロックと、当該フィルタブロックにおいて各フィルタを適用する順番と、を示す情報である。言い換えると、フィルタインデックス算出部303は、フィルタクラスタリング部302によるフィルタクラスタリングの結果に基づいて、各フィルタブロックに含まれる各フィルタが属するグループを示すフィルタインデックスを算出する。
そして、フィルタインデックス算出部303は、算出したフィルタインデックスをフィルタインデックス格納部304に保存する。フィルタインデックス格納部304は、SSD106等の書き換え可能な不揮発性の記憶媒体により実現される。
これにより、車両が有するECU203において、CNNを用いた画像処理を実行する場合に、CNNの畳込み演算に用いるフィルタブロックを構成する全てのフィルタを記憶していなくても、当該フィルタブロックを生成して、当該生成したフィルタブロックを用いて畳込み演算を実行できる。その結果、CNNの畳込み層を効率的に軽量化することができる。
次に、図3を用いて、本実施形態にかかるECU203の機能構成について説明する。本実施形態にかかるECU203は、機能構成として、入力画像格納部311、前処理部312、畳込み演算部313、特徴量処理部314、出力データ格納部315、代表フィルタ格納部316、およびフィルタインデックス格納部317を有している。
入力画像格納部311は、SSD203d等の書き換え可能な不揮発性の記憶媒体により実現され、ECU203においてCNNを用いた画像処理を実行する画像データを記憶する。本実施形態では、入力画像格納部311は、車載カメラ201またはドライバモニタカメラ202の撮像により得られる画像データを記憶する。
本実施形態では、入力画像格納部311は、CNNを用いた画像処理を実行する画像データとして、車載カメラ201またはドライバモニタカメラ202の撮像により得られる画像データを記憶しているが、これに限定するものではない。例えば、入力画像格納部311は、車両が有するLIDAR(Light Detection and Ranging)、TOF(Time Of Flight)カメラ、ミリ波レーダー、超音波センサ等によって計測した車両と周辺の物体との間の距離の測定結果を表す画像データを記憶しても良い。
代表フィルタ格納部316は、ROM203bやSSD203d等の不揮発性の記憶媒体により実現され、サーバ100により生成される代表フィルタを記憶する。本実施形態では、代表フィルタ格納部316には、ECU203を出荷する際に、サーバ100により生成される代表フィルタが保存される。
フィルタインデックス格納部317は、ROM203bやSSD203d等の不揮発性の記憶媒体により実現され、サーバ100により算出されるフィルタインデックスを記憶する。本実施形態では、フィルタインデックス格納部317には、ECU203を出荷する際に、サーバ100により算出されるフィルタインデックスが保存される。
前処理部312は、入力画像格納部311に記憶される画像データに対して、ECU203において実行するCNNに必要な前処理を実行する。ここで、前処理は、例えば、画像データのサイズに調整や、画像データに含まれるノイズの除去等である。
畳込み演算部313は、ECU203において実行するCNNに含まれる畳込み層の畳込み演算を実行する。本実施形態では、畳込み演算部313は、代表フィルタ格納部316に記憶される代表フィルタおよびフィルタインデックス格納部317に記憶されるフィルタインデックスに基づいて、入力画像格納部311に記憶される画像データに対して畳込み演算を実行する。
具体的には、畳込み演算部313は、代表フィルタおよびフィルタインデックスに基づいて、フィルタを代表フィルタにより置き換えてフィルタブロックを生成する。そして、畳込み演算部313は、生成したフィルタブロック(言い換えると、代表フィルタにより構成されるフィルタブロック)を用いて、前処理を実行した画像データに対して畳込み演算を実行する。
これにより、車両が有するECU203において、CNNを用いた画像処理を実行する場合に、CNNの畳込み演算に用いるフィルタブロックを構成する全てのフィルタを記憶していなくても、代表フィルタによりフィルタブロックを生成して畳込み演算を実行できる。その結果、CNNの畳込み層を効率的に軽量化することができる。
特徴量処理部314は、畳込み演算部313における畳込み演算によって抽出される画像データの特徴量に基づいて、CNNに含まれる畳込み演算以外の処理(以下、後処理と言う。例えば、プーリング層や、全結合層、出力層)を実行する。そして、特徴量処理部314は、後処理の実行結果(例えば、画像データに含まれる顔画像が笑顔か否かの判定結果、画像データに含まれる人物の肩や腕の位置の判定結果、画像データに含まれる腕の形状、車両の走行位置の判定結果、車両が駐車可能な否かの判定結果)を出力データとして出力データ格納部315に保存する。出力データ格納部315は、SSD203d等の書き換え可能な不揮発性の記憶媒体により実現される。
次に、図4を用いて、本実施形態にかかるサーバ100によるCNNの軽量化処理の流れの一例について説明する。図4は、本実施形態にかかるサーバによるCNNの軽量化処理の流れの一例を示すフローチャートである。
まず、初期代表フィルタ生成部302aは、全フィルタ格納部301に記憶されるフィルタブロックを複数のフィルタに分解し、分解した複数のフィルタを、複数のグループにフィルタクラスタリングする(ステップS401)。
一般に、クラスタリングでは、K-Meansと呼ばれる手法が広く知られているが、CNNの畳込み層において用いられるフィルタのように、その数が多い場合(例えば、フィルタの枚数が、数十万枚から数千万枚である場合)、K-Meansによるクラスタリングでは、その計算に時間がかかる。そのため、K-Meansによるクラスタリングでは、フィルタクラスタリングにかけることができる時間(以下、実時間と言う)内に、有益なクラスタリングの結果を得ることが難しい場合がある。
そこで、通常、K-Meansでは、勾配法と呼ばれる最適化手法によってクラスタリングを行っているが、本実施形態では、初期代表フィルタ生成部302aは、SGDや、RMSPrоp、Adam等の確率的勾配法によってフィルタクラスタリングを実行する。これにより、有益なフィルタクラスタリングの結果を、実時間内に得ることができる。
次いで、初期代表フィルタ生成部302aは、各グループの代表フィルタを生成する(ステップS402)。本実施形態では、初期代表フィルタ生成部302aは、各グループに属する複数のフィルタの中からランダムにフィルタを選択し、当該選択したフィルタを代表フィルタの初期値とする。
確率的勾配算出部302bは、確率的勾配法によって、各グループの代表フィルタの勾配を算出する(ステップS403)。確率的勾配算出部302bは、K-Meansで使用される目的関数と同一の目的関数を用いて、代表フィルタの勾配を算出するものとする。代表フィルタの勾配の算出には、いずれの確率的勾配法を用いても良い。例えば、確率的勾配算出部302bは、フィルタブロックから分解した複数のフィルタの中から予め設定された数の一部のフィルタを選択し、選択したフィルタの中から、ランダムに代表フィルタを選択した選択した代表フィルタの勾配を算出する。これにより、全てのフィルタからランダムに代表フィルタを選択し、当該選択した代表フィルタの勾配を算出し、その算出結果に基づいて代表フィルタを更新する場合と比較して、短時間に、代表フィルタを更新することができる。
代表フィルタ更新部302cは、確率的勾配算出部302bにより算出される代表フィルタの勾配に基づいて、各グループの代表フィルタを更新し、かつ代表フィルタの更新結果に基づいて、複数のフィルタを複数のグループにクラスタリングし直す(ステップS404)。
次いで、確率的勾配算出部302bは、各グループの代表フィルタの更新を、予め設定された繰返回数、繰り返したか否かを判断する(ステップS405)。本実施形態では、代表フィルタの更新を繰り返した回数に基づいて、代表フィルタを更新するか否かを判断しているが、これに限定するものではなく、予め設定された終了条件に基づいて、代表フィルタを更新するか否かを判断しても良い。
各グループの代表フィルタの更新が、予め設定された繰返回数、繰り返されていない場合(ステップS405:No)、確率的勾配算出部302bは、再び、確率的勾配法によって、各グループの更新後の代表フィルタの勾配を算出する(ステップS403)。そして、代表フィルタ更新部302cは、更新後の代表フィルタの勾配に基づいて、各グループの代表フィルタを更新し、かつ代表フィルタの更新結果に基づいて、複数のフィルタを複数のグループにクラスタリングし直す(ステップS404)。
各グループの代表フィルタの更新が予め設定された繰返回数、繰り返された場合(ステップS405:Yes)、代表フィルタ更新部302cは、更新後の代表フィルタを、代表フィルタ格納部305に保存する(ステップS406)。さらに、フィルタインデックス算出部303は、フィルタインデックスを算出し、当該算出したフィルタインデックスをフィルタインデックス格納部304に保存する(ステップS407)。
ここで、図5を用いて、本実施形態にかかるサーバ100によるフィルタブロックのフィルタクラスタリングの一例について説明する。図5は、本実施形態にかかるサーバによるフィルタブロックのフィルタクラスタリングの一例を説明するための図である。
図5に示すように、初期代表フィルタ生成部202aは、全フィルタ格納部301に記憶される3つのフィルタブロックF1〜F3を、複数のフィルタF−1−1,F−1−2,F−1−3,F−1−4,F−1−5,F−1−6,F−2−1,F−2−2,F−2−3,F−2−4,F−2−5,F−2−6,F−3−1,F−3−2,F−3−3,F−3−4,F−3−5,F−3−6に分解する。
次に、初期代表フィルタ生成部202aは、図5に示すように、分解したフィルタF−1−1,F−1−2,F−1−3,F−1−4,F−1−5,F−1−6,F−2−1,F−2−2,F−2−3,F−2−4,F−2−5,F−2−6,F−3−1,F−3−2,F−3−3,F−3−4,F−3−5,F−3−6を、類似するフィルタを集めた3つのグループG1〜G3にフィルタクラスタリングする。
そして、初期代表フィルタ生成部302aは、図5に示すように、グループG1〜G3のそれぞれから、ランダムに代表フィルタを選択する。確率的勾配算出部302bは、確率的勾配法によって、代表フィルタの勾配を算出する。
代表フィルタ更新部302cは、代表フィルタの勾配の算出結果に基づいて、代表フィルタを更新するとともに、代表フィルタの更新結果に基づいて、フィルタF−1−1,F−1−2,F−1−3,F−1−4,F−1−5,F−1−6,F−2−1,F−2−2,F−2−3,F−2−4,F−2−5,F−2−6,F−3−1,F−3−2,F−3−3,F−3−4,F−3−5,F−3−6を、複数のグループにフィルタクラスタリングし直す。代表フィルタ更新部302cは、代表フィルタの更新を、予め設定された繰返回数、繰り返す。その後、代表フィルタ更新部302cは、代表フィルタF−2−1,F−1−4,F−3−5を、代表フィルタ格納部305に保存する。
また、フィルタインデックス算出部303は、図5に示すように、代表フィルタF−2−1,F−1−4,F−3−5、およびフィルタクラスタリングの結果に基づいて、フィルタインデックスを算出して、フィルタインデックス格納部304に保存する。例えば、フィルタインデックス算出部303は、図5に示すように、代表フィルタF−2−1と、当該代表フィルタF−2−1と同じグループG1にクラスタリングされたフィルタF−1−1が属するフィルタブロックF−1と、当該フィルタブロックF−1においてフィルタF−1−1を適用する順番(1番目)と、をフィルタインデックスとして算出する。
次に、図6を用いて、本実施形態にかかる車両が有するECU203によるCNNの軽量化処理の流れの一例について説明する。図6は、本実施形態にかかる車両が有するECUによるCNNの軽量化処理の流れの一例を示すフローチャートである。
まず、ECU203は、CNNによる画像処理を実行する画像データを予め入力画像格納部311に保存する(ステップS601)。前処理部312は、入力画像格納部311に記憶される画像データに対して、CNNに必要な前処理を実行する(ステップS602)。
畳込み演算部313は、代表フィルタ格納部316に記憶される代表フィルタおよびフィルタインデックス格納部317に記憶されるフィルタインデックスに基づいて、前処理を実行した画像データに対して畳込み演算を実行する(ステップS603)。
具体的には、畳込み演算部313は、代表フィルタおよびフィルタインデックスに基づいて、フィルタを代表フィルタにより置き換えたフィルタブロックを生成する。次いで、畳込み演算部313は、生成したフィルタブロック(言い換えると、代表フィルタにより構成されるフィルタブロック)を用いて、前処理を実行した画像データに対して畳込み演算を実行する。これにより、ECU203が、畳込み演算に用いるフィルタブロックを構成する全てのフィルタを記憶する必要が無くなるので、畳込み層を効率的に軽量化することができる。
特徴量処理部314は、畳込み演算部313における畳込み演算によって抽出された画像データの特徴量に基づいて、後処理を実行する(ステップS604)。そして、特徴量処理部314は、後処理の実行結果を出力データとして出力データ格納部315に保存する(ステップS605)。
このように、本実施形態にかかるサーバ100および車両によれば、畳込み演算を行うECU203が、畳込み演算に用いるフィルタブロックを構成する全てのフィルタを記憶する必要が無くなるので、畳込み層を効率的に軽量化することができる。
100 サーバ
101,203a CPU
102,203b ROM
103,203c RAM
104 通信I/F
105 入出力I/F
106,203d SSD
107 データバス
201 車載カメラ
202 ドライバモニタカメラ
203 ECU
204 表示装置
301 全フィルタ格納部
302 フィルタクラスタリング部
302a 初期代表フィルタ生成部
302b 確率的勾配算出部
302c 代表フィルタ更新部
303 フィルタインデックス算出部
304,317 フィルタインデックス格納部
305,316 代表フィルタ格納部
311 入力画像格納部
312 前処理部
313 畳込み演算部
314 特徴量処理部
315 出力データ格納部

Claims (3)

  1. 畳込みディープニューラルネットワークの畳込み層において用いられる複数のフィルタを含むフィルタブロックを記憶する全フィルタ格納部と、
    前記フィルタブロックを分解し、前記フィルタブロックから分解した前記複数のフィルタを、類似するフィルタを集めた複数のグループにクラスタリングし、前記グループ毎に、当該グループに含まれる前記フィルタを代表する代表フィルタを生成するフィルタクラスタリング部と、
    前記代表フィルタ、および前記フィルタクラスタリング部によるクラスタリングの結果に基づいて、前記代表フィルタと、当該代表フィルタと同じ前記グループにクラスタリングされた前記各フィルタが属する前記フィルタブロックと、当該フィルタブロックにおいて前記各フィルタを適用する順番と、を示すフィルタインデックスを算出するフィルタインデックス算出部と、
    前記代表フィルタを記憶する代表フィルタ格納部と、
    前記フィルタインデックスを記憶するフィルタインデックス格納部と、
    を備えるDNN軽量化装置。
  2. 前記フィルタクラスタリング部は、確率的勾配法によって前記代表フィルタの勾配を算出し、算出した前記勾配に基づいて前記代表フィルタを更新し、前記代表フィルタの更新結果に基づいて、前記複数のフィルタを前記複数のグループにクラスタリングし直す請求項1に記載のDNN軽量化装置。
  3. 畳込みディープニューラルネットワークの畳込み層において用いられるフィルタブロックを複数のフィルタに分解して類似する前記フィルタでクラスタリングした各グループの代表フィルタを記憶する代表フィルタ格納部と、
    前記代表フィルタと、当該代表フィルタと同じ前記グループにクラスタリングされた前記各フィルタが属する前記フィルタブロックと、当該フィルタブロックにおいて前記各フィルタを適用する順番と、を示すフィルタインデックスを記憶するフィルタインデックス格納部と、
    前記代表フィルタ格納部に記憶される前記代表フィルタおよび前記フィルタインデックス格納部に記憶される前記フィルタインデックスに基づいて、前記フィルタを前記代表フィルタにより置き換えた前記フィルタブロックを生成し、当該生成したフィルタブロックを用いて、画像データに対して畳込み演算を実行する畳込み演算部と、
    を備えるDNN軽量化装置。
JP2018225157A 2018-11-30 2018-11-30 Dnn軽量化装置 Pending JP2020087288A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018225157A JP2020087288A (ja) 2018-11-30 2018-11-30 Dnn軽量化装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018225157A JP2020087288A (ja) 2018-11-30 2018-11-30 Dnn軽量化装置

Publications (1)

Publication Number Publication Date
JP2020087288A true JP2020087288A (ja) 2020-06-04

Family

ID=70910064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018225157A Pending JP2020087288A (ja) 2018-11-30 2018-11-30 Dnn軽量化装置

Country Status (1)

Country Link
JP (1) JP2020087288A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116359762A (zh) * 2023-04-27 2023-06-30 北京玖行智研交通科技有限公司 一种基于深度学习和网络压缩的电池荷电状态估计方法
JP7488375B2 (ja) 2020-06-23 2024-05-21 中興通訊股▲ふん▼有限公司 ニューラルネットワークの生成方法、機器及びコンピュータ可読記憶媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7488375B2 (ja) 2020-06-23 2024-05-21 中興通訊股▲ふん▼有限公司 ニューラルネットワークの生成方法、機器及びコンピュータ可読記憶媒体
CN116359762A (zh) * 2023-04-27 2023-06-30 北京玖行智研交通科技有限公司 一种基于深度学习和网络压缩的电池荷电状态估计方法
CN116359762B (zh) * 2023-04-27 2024-05-07 北京玖行智研交通科技有限公司 一种基于深度学习和网络压缩的电池荷电状态估计方法

Similar Documents

Publication Publication Date Title
Sekikawa et al. Eventnet: Asynchronous recursive event processing
US10438112B2 (en) Method and apparatus of learning neural network via hierarchical ensemble learning
US20180012082A1 (en) System and method for image analysis
US20180137406A1 (en) Efficient Convolutional Neural Networks and Techniques to Reduce Associated Computational Costs
US20220083797A1 (en) Method for recognizing object in image
KR20170078516A (ko) 신경망 기반 영상 신호 처리를 수행하는 방법 및 장치
CN111445418A (zh) 图像去雾处理方法、装置及计算机设备
KR20180048930A (ko) 분류를 위한 강제된 희소성
Lu et al. Edge compression: An integrated framework for compressive imaging processing on cavs
Dewan et al. Deeptemporalseg: Temporally consistent semantic segmentation of 3d lidar scans
CN111105030B (zh) 用于车辆感知系统的神经网络中的激活零旁路和权重剪枝
JP2020087288A (ja) Dnn軽量化装置
CN114418030A (zh) 图像分类方法、图像分类模型的训练方法及装置
RU2745010C1 (ru) Способы реконструкции карты глубины и электронное вычислительное устройство для их реализации
WO2022179606A1 (zh) 一种图像处理方法及相关装置
CN116432736A (zh) 神经网络模型优化方法、装置及计算设备
EP3933768B1 (en) Method and apparatus for processing image, electronic device, and storage medium
CN112528932B (zh) 用于优化位置信息的方法、装置、路侧设备和云控平台
JP2020086836A (ja) 情報処理装置、情報処理方法およびプログラム
DE102023109072A1 (de) Datenaugmentierung für domänenverallgemeinerung
DE102022206060A1 (de) Verteidigung von multimodalen fusionsmodellen gegen angreifer mit nur einer quelle
CN115271037A (zh) 一种面向点云的高效二值化神经网络量化方法及装置
DE102021210721A1 (de) Verfahren und system zum adversarischen training unter verwendung metagelernter initialisierung
Sharma et al. Performance analysis of semantic segmentation algorithms trained with JPEG compressed datasets
US20220277559A1 (en) Image analysis model comprising an integer coupling layer