JP2021103441A - ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム - Google Patents

ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム Download PDF

Info

Publication number
JP2021103441A
JP2021103441A JP2019234567A JP2019234567A JP2021103441A JP 2021103441 A JP2021103441 A JP 2021103441A JP 2019234567 A JP2019234567 A JP 2019234567A JP 2019234567 A JP2019234567 A JP 2019234567A JP 2021103441 A JP2021103441 A JP 2021103441A
Authority
JP
Japan
Prior art keywords
neural network
layer
function
processing
separation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019234567A
Other languages
English (en)
Other versions
JP6856112B1 (ja
Inventor
山本 康平
Kohei Yamamoto
康平 山本
素子 加賀谷
Motoko Kagaya
素子 加賀谷
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2019234567A priority Critical patent/JP6856112B1/ja
Application granted granted Critical
Publication of JP6856112B1 publication Critical patent/JP6856112B1/ja
Publication of JP2021103441A publication Critical patent/JP2021103441A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

【課題】量子化ニューラルネットワークモデルの処理効率の低下を抑制しつつ、量子化ニューラルネットワークモデルの精度を向上させる。【解決手段】複数の処理層を含んだ第1のニューラルネットワークを取得する入力部と、前記第1のニューラルネットワークに含まれる畳み込み層および全結合層の少なくとも一つの処理層を修正対象層として特定し、前記修正対象層の後段に対して分離結合処理を追加するとともに、前記修正対象層の重みパラメータに第1の量子化関数を導入し、前記修正対象層の直後の活性化関数または前記活性化関数の出力に対して第2の量子化関数を導入して、第2のニューラルネットワークを生成する修正部と、前記第2のニューラルネットワークの訓練を行う学習部と、訓練後の前記第2のニューラルネットワークを出力する出力部と、を備える、ニューラルネットワーク軽量化装置が提供される。【選択図】図1

Description

本発明は、ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラムに関する。
近年、各種の分野においてニューラルネットワークが用いられている。例えば、物体の認識または物体の位置検出などを目的とした一般的なニューラルネットワークのモデルが知られている。かかる一般的なニューラルネットワークのモデルでは、畳み込み層または全結合層における演算に、16〜32ビットの浮動小数点によってそれぞれ表現される特徴量および重みパラメータが使用される。
一方、例えば、量子化ニューラルネットワークの形態の一つである2値化ニューラルネットワークでは、畳み込み層または全結合層における演算に使用される特徴量および重みパラメータは、それぞれ(−1と1で表現される)1ビット(すなわち2値)で表現され得る。これによって、畳み込み層または全結合層での浮動小数点演算がビット演算に置き換えられ得る。ビット演算が使用される場合には、浮動小数点演算が使用される場合よりも、低消費電力かつ高速な演算処理が実行され得るとともに、メモリ使用量も低減され得るため、FPGA(Field Programmable Gate Array)またはモバイル端末などといった、演算リソースの限られたデバイス上でもディープラーニングモデルの効率的な処理が可能となることが知られている。
例えば、2値化ニューラルネットワークの構築方法が開示されている(例えば、非特許文献1参照)。より詳細に、かかる非特許文献1には、全ての畳み込み層または全結合層において、浮動小数点で表現される重みパラメータを符号関数により−1または1で表現される2値に変換するとともに、入力される特徴量も符号関数により−1または1で表現される2値に変換する方法が開示されている。
また、量子化ニューラルネットワークの構築方法が開示されている(例えば、非特許文献2参照)。より詳細に、かかる非特許文献2には、量子化ニューラルネットワークの畳み込み層が含む、任意のビット数で構成されるチャネル数を、単純に増加させることによって、量子化ニューラルネットワークの精度を高める方法が開示されている。
Itay Hubara、他4名、"Binarized Neural Networks"、[online]、Neural Information ProcessingSystems (2016)、[令和1年12月16日検索]、インターネット<http://papers.nips.cc/paper/6573-binarized-neural-networks> Asit Mishra、他3名、"WRPN: Wide Reduced-Precision Networks"、International Conference on Learning Representations (2018)、[令和1年12月16日検索]、インターネット<https://openreview.net/forum?id=B1ZvaaeAZ>
しかしながら、非特許文献1に開示されている方法によれば、畳み込み層または全結合層に入力されるデータ(例えば、特徴量および重みパラメータなど)の2値化に伴って生じる誤差(量子化誤差)の影響が大きくなりやすい。そのため、非特許文献1に開示されている方法によれば、量子化ニューラルネットワークモデルの精度が大きく劣化してしまう可能性がある。
また、非特許文献2に開示されている方法によれば、チャネル数の増加によって量子化ニューラルネットワークの精度が向上し得る。しかし、チャネル数の増加に伴って必要な演算の規模が大きくなってしまう。そのため、非特許文献2に開示されている方法によれば、量子化ニューラルネットワークモデルの処理効率を大きく低下させてしまう可能性がある。
そこで、量子化ニューラルネットワークモデルの処理効率の低下を抑制しつつ、量子化ニューラルネットワークモデルの精度を向上させることを可能とする技術が提供されることが望まれる。
上記問題を解決するために、本発明のある観点によれば、複数の処理層を含んだ第1のニューラルネットワークを取得する入力部と、前記第1のニューラルネットワークに含まれる畳み込み層および全結合層の少なくとも一つの処理層を修正対象層として特定し、前記修正対象層の後段に対して分離結合処理を追加するとともに、前記修正対象層の重みパラメータに第1の量子化関数を導入し、前記修正対象層の直後の活性化関数または前記活性化関数の出力に対して第2の量子化関数を導入して、第2のニューラルネットワークを生成する修正部と、前記第2のニューラルネットワークの訓練を行う学習部と、訓練後の前記第2のニューラルネットワークを出力する出力部と、を備える、ニューラルネットワーク軽量化装置が提供される。
前記分離結合処理は、前記修正対象層の出力に対して、チャネルデータ単位で二つ以上のグループに分割し、分割後の二つ以上のグループの一部または全部のグループの対応するチャネルデータ間において、加算、減算および乗算の少なくとも1つの演算を実行し、チャネルデータ単位で結合する処理を含んでもよい。
前記分離結合処理は、前記修正対象層の出力に対して、チャネルデータ単位で2つのグループに分割し、分割後の2つのグループの対応するチャネルデータ間において、加算、減算および乗算の少なくとも1つの演算を実行し、チャネルデータ単位で結合する処理を含んでもよい。
前記第1の量子化関数および前記第2の量子化関数それぞれは、符号関数であってもよい。
前記修正部は、前記分離結合処理の結果に前記学習部によって訓練可能な第1の係数パラメータの乗算処理を適用してもよい。
前記修正部は、前記分離結合処理の結果に前記学習部によって訓練可能な第2の係数パラメータの加算処理を適用してもよい。
前記修正部は、前記活性化関数を前記第2の量子化関数に置換することによって、前記活性化関数に対して前記第2の量子化関数を導入してもよい。
前記修正部は、前記活性化関数の直後に前記第2の量子化関数を挿入することによって、前記活性化関数の出力に対して前記第2の量子化関数を導入してもよい。
前記修正部は、前記修正対象層の後段かつ前記第2の量子化関数の導入位置の前段に、前記分離結合処理を追加してもよい。
前記分離結合処理においては、前記二つ以上のグループのいずれのグループ間においてもチャネルデータ同士の重複がないように、または、少なくともいずれか2つのグループ間において少なくとも一部のチャネルデータ同士が重複するように分割されてもよい。
また、本発明の別の観点によれば、複数の処理層を含んだ第1のニューラルネットワークを取得することと、前記第1のニューラルネットワークに含まれる畳み込み層および全結合層の少なくとも一つの処理層を修正対象層として特定し、前記修正対象層の後段に対して分離結合処理を追加するとともに、前記修正対象層の重みパラメータに第1の量子化関数を導入し、前記修正対象層の直後の活性化関数または前記活性化関数の出力に対して第2の量子化関数を導入して、第2のニューラルネットワークを生成することと、前記第2のニューラルネットワークの訓練を行うことと、訓練後の前記第2のニューラルネットワークを出力することと、を含む、ニューラルネットワーク軽量化方法が提供される。
また、本発明の別の観点によれば、コンピュータを、複数の処理層を含んだ第1のニューラルネットワークを取得する入力部と、前記第1のニューラルネットワークに含まれる畳み込み層および全結合層の少なくとも一つの処理層を修正対象層として特定し、前記修正対象層の後段に対して分離結合処理を追加するとともに、前記修正対象層の重みパラメータに第1の量子化関数を導入し、前記修正対象層の直後の活性化関数または前記活性化関数の出力に対して第2の量子化関数を導入して、第2のニューラルネットワークを生成する修正部と、前記第2のニューラルネットワークの訓練を行う学習部と、訓練後の前記第2のニューラルネットワークを出力する出力部と、を備えるニューラルネットワーク軽量化装置として機能させるためのプログラムが提供される。
以上説明したように本発明によれば、量子化ニューラルネットワークモデルの処理効率の低下を抑制しつつ、量子化ニューラルネットワークモデルの精度を向上させることを可能とする技術が提供される。
本発明の実施形態に係るニューラルネットワーク軽量化装置の機能構成例を示す図である。 軽量化対象のニューラルネットワークの一例を示す図である。 修正部の動作例を示すフローチャートである。 分離結合処理の追加、第1の量子化関数の導入、および、第2の量子化関数の導入の第1のパターンを説明するための図である。 分離結合処理の追加、第1の量子化関数の導入、および、第2の量子化関数の導入の第2のパターンを説明するための図である。 分離結合処理の追加、第1の量子化関数の導入、および、第2の量子化関数の導入の第3のパターンを説明するための図である。 分離結合処理の例を示す図である。 分離結合処理における和と差と積の演算結果の例を示す図である。 和と差と積のそれぞれの演算結果に対して符号関数が適用されることによって2つの入力特徴量が表現可能なパターンを二次元平面上に示した図である。 分離結合処理の変形例を示す図である。 各演算結果に対して適用される量子化関数を変更することによって表現可能なパターンの一例を二次元平面上に示した図である。 本発明の実施形態に係るニューラルネットワーク軽量化装置の例としての情報処理装置のハードウェア構成を示す図である。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
また、本明細書および図面において、実質的に同一の機能構成を有する複数の構成要素を、同一の符号の後に異なる数字を付して区別する場合がある。ただし、実質的に同一の機能構成を有する複数の構成要素等の各々を特に区別する必要がない場合、同一符号のみを付する。また、異なる実施形態の類似する構成要素については、同一の符号の後に異なるアルファベットを付して区別する場合がある。ただし、異なる実施形態の類似する構成要素等の各々を特に区別する必要がない場合、同一符号のみを付する。
(1.実施形態の詳細)
続いて、本発明の実施形態の詳細について説明する。
(1−1.構成の説明)
まず、本発明の実施形態に係るニューラルネットワーク軽量化装置の構成例について説明する。図1は、本発明の実施形態に係るニューラルネットワーク軽量化装置の機能構成例を示す図である。図1に示されるように、本発明の実施形態に係るニューラルネットワーク軽量化装置10は、入力部100、修正部101、学習部102および出力部103を備える。
ニューラルネットワーク軽量化装置10は、CPU(Central Processing Unit)などの演算装置を含み、図示しないメモリにより記憶されているプログラムがCPUによりRAM(Random Access Memory)に展開されて実行されることにより、その機能が実現され得る。このとき、当該プログラムを記録した、コンピュータに読み取り可能な記録媒体も提供され得る。あるいは、ニューラルネットワーク軽量化装置10は、専用のハードウェアにより構成されていてもよいし、複数のハードウェアの組み合わせにより構成されてもよい。
(入力部100)
入力部100は、軽量化対象のニューラルネットワーク(第1のニューラルネットワークおよび軽量化対象のニューラルネットワークの学習に使用されるデータ(学習用データセット)を取得する。例えば、入力部100は、軽量化対象のニューラルネットワークおよび学習用データセットを、図示しないメモリから読み出すことによって取得してもよい。例えば、軽量化対象のニューラルネットワークは、学習前のニューラルネットワークの構造(モデル構造)であってよい。
図2は、軽量化対象のニューラルネットワークの一例を示す図である。図2に示されるように、軽量化対象のニューラルネットワークは、第1層から第N層(Nは2以上の整数)までの複数の層によって構成される。第1層には、入力データが入力され、第N層からは、出力データが出力される。第1層から第N層までの各層には、処理層が含まれており、第1層から第N層までの各層の次層には、活性化関数が挿入されている。第1層から第N層までの各層に含まれる処理層は、次層に含まれる活性化関数に対して出力を行う。
図2に示された例では、第1層から第(N−1)層までの各層に含まれる処理層は、畳み込み層であり、第N層に含まれる処理層は、全結合層である。しかし、第1層から第N層までの各層に含まれる処理層の種類は、図2に示された例に限定されない。例えば、軽量化対象のニューラルネットワークは、処理層として畳み込み層および全結合層の一方を、1または複数含んでもよいし、処理層として畳み込み層および全結合層のそれぞれを、1または複数含んでもよい。また、軽量化対象のニューラルネットワークは、畳み込み層以外かつ全結合層以外の処理層を含んでもよい。
また、図2には、軽量化対象のニューラルネットワークの第1層から第N層までの処理層によって使用される重みパラメータとして、重みパラメータw〜wが示されている。本発明の実施形態では、軽量化対象のニューラルネットワークの各処理層による演算に、16〜32ビットの浮動小数点によってそれぞれ表現される特徴量および重みパラメータが使用される場合を想定する。しかし、軽量化対象のニューラルネットワークの各処理層によって使用される特徴量および重みパラメータそれぞれの形式は、かかる例に限定されない。
図1に戻って説明を続ける。入力部100によって取得された軽量化対象のニューラルネットワークおよび学習用データセットは、修正部101に出力される。
(修正部101)
修正部101は、入力部100から入力された軽量化対象のニューラルネットワークに基づいて、軽量化対象のニューラルネットワークに含まれる畳み込み層および全結合層の少なくとも一つの処理層を修正対象層として特定する。ここでは、第1層から第(N−1)層に含まれる畳み込み層、および、第N層に含まれる全結合層の全部を、修正対象層として特定する場合を想定する。しかし、修正部101は、軽量化対象のニューラルネットワークに含まれる畳み込み層および全結合層の一部のみを修正対象層として特定してもよい。例えば、修正部101は、軽量化対象のニューラルネットワークに含まれる畳み込み層および全結合層のうち、あらかじめ定められた一部のみを修正対象層として特定してもよい。
修正部101は、修正対象層の後段に対して後に説明する分離結合処理を追加する。なお、本発明の実施形態においては、ある位置P1の後段とは、位置P1よりも後ろの位置P2を示し、位置P1と位置P2との間に処理が挟まれていない場合(位置P1の直後に位置P2が存在する場合)を含む他、位置P1と位置P2との間に何らかの処理が挟まれる場合も含まれ得る。同様に、ある位置P1の前段とは、位置P1よりも前の位置P3を示し、位置P1と位置P3との間に処理が挟まれていない場合(位置P1の直前に位置P3が存在する場合)を含む他、位置P1と位置P3との間に何らかの処理が挟まれる場合も含まれ得る。
また、修正部101は、修正対象層の重みパラメータに量子化関数(第1の量子化関数)を導入する。さらに、修正部101は、修正対象層の直後の活性化関数(すなわち、修正対象層が属する層(第l層)の次層(第l+1層)の活性化関数)または当該活性化関数の出力に対して量子化関数(第2の量子化関数)を導入する。これによって、修正部101は、修正後のニューラルネットワーク(第2のニューラルネットワーク)を生成する。かかる分離結合処理の追加、第1の量子化関数の導入、および、第2の量子化関数の導入が実行される順序は限定されない。修正部101によって生成された修正後のニューラルネットワークおよび学習用データセットは、学習部102に出力される。
(学習部102)
学習部102は、修正部101から入力された学習用データセットに基づいて、修正部101から入力された修正後のニューラルネットワークの訓練を行う。例えば、学習部102は、誤差逆伝播法(バックプロパゲーション)などを用いて、修正後のニューラルネットワークの訓練を行う。これによって、修正後のニューラルネットワークに含まれる各処理層の重みパラメータが更新される。なお、重みパラメータの初期値には、乱数が使用されてよいが、軽量化対象のニューラルネットワークの訓練済みの重みパラメータがあれば、訓練済みの重みパラメータが初期値として利用されてもよい。訓練が終わった訓練済みのニューラルネットワークは、出力部103に出力される。
(出力部103)
出力部103は、訓練済みのニューラルネットワークを出力する。出力部103による訓練済みのニューラルネットワークの出力はどのように行われてもよい。例えば、出力部103は、訓練済みのニューラルネットワークを記録媒体に出力することによって、記録媒体に訓練済みのニューラルネットワークを記録してもよい。あるいは、出力部103は、訓練済みのニューラルネットワークを通信装置に出力することによって、通信装置を介して訓練済みのニューラルネットワークを他の装置に送信してもよい。
(1−2.動作の説明)
続いて、本発明の実施形態に係るニューラルネットワーク軽量化装置10の動作例について説明する。上記したように、入力部100によって、軽量化対象のニューラルネットワーク(図2)および学習用データセットが取得される。ここでは一例として、学習用データとして2次元画像が使用される場合を想定する。このとき、軽量化対象のニューラルネットワークに含まれる第l(エル)層の畳み込み層によって行われる演算は、下記の数式(1)のように示される。
Figure 2021103441
ここで、xは、第l(エル)層の畳み込み層への入力特徴量を示し、wは、第l層の畳み込み層によって使用される重みパラメータを示し、添え字i、j、n、mは、それぞれ出力チャネル、入力チャネル、画像の幅、画像の高さを示し、f()は、活性化関数を示している。ただし、数式(1)において第(l+1)層への入力特徴量xl+1 に対応する画像の幅と画像の高さを示す添え字は省略されている。数式(1)に示されるように、重みパラメータと入力特徴量との内積が計算された後に、活性化関数が適用される。例えば、活性化関数にはランプ関数などが利用されてよい。また、活性化関数の適用前にバッチ正規化が適用されてもよい。
図3は、修正部101の動作例を示すフローチャートである。修正部101は、入力部100から入力された軽量化対象のニューラルネットワークに基づいて、軽量化対象のニューラルネットワークに含まれる畳み込み層または全結合層を修正対象層として特定する(S200)。ここでは、上記したように、修正部101が、軽量化対象のニューラルネットワークに含まれる全部の畳み込み層および全結合層を修正対象層として特定する場合を想定する。しかし、上記したように、修正部101は、軽量化対象のニューラルネットワークに含まれる畳み込み層および全結合層の一部のみを修正対象層として特定してもよい。
修正部101は、修正対象層の重みパラメータに量子化関数(第1の量子化関数)を導入する。さらに、修正部101は、修正対象層の直後の活性化関数または活性化関数の出力に対して量子化関数(第2の量子化関数)を導入する(S201)。例えば、量子化関数は、連続的な値を離散的な値に変換する関数を意味し得る。本発明の実施形態では、第1の量子化関数および第2の量子化関数それぞれが、符号関数である場合を想定する。例えば、符号関数は、連続的な値を2値のいずれかに変換する関数を意味し得る。例えば、符号関数は、下記の数式(2)によって示され得る。
Figure 2021103441
仮に、第l(エル)層の畳み込み層が修正対象層として特定され、第l層の畳み込み層の重みパラメータに量子化関数(第1の量子化関数)が導入され、第l層の畳み込み層の直後の活性化関数に対して量子化関数(第2の量子化関数)が導入された場合を想定する。かかる場合には、第l層の畳み込み層の出力特徴量y と、この出力特徴量y に対して量子化関数sgn()が導入された結果としての第(l+1)層の畳み込み層への入力特徴量xl+1 とは、下記の数式(3)(4)によって示され得る。
Figure 2021103441
ただし、数式(1)における第(l+1)層への入力特徴量xl+1 と同様に、数式(3)において第l層の畳み込み層からの出力特徴量y に対応する画像の幅と画像の高さを示す添え字は省略されている。
ここで、数式(3)における入力特徴量x j,n,mは、前層である第(l−1)層からの出力に対して、数式(4)と同等の式が適用されることによって既に2値化されている。さらに、数式(3)において重みパラメータも量子化関数sgn()によって2値化される。すなわち、数式(3)において、重みパラメータと入力特徴量との乗算は、XNORによるビット演算によって行われ、そのビット演算結果同士の加算は、ポップカウントの操作(1になっているビットを数える操作)に置き換えられる。したがって、第1の量子化関数および第2の量子化関数の導入によって低消費電力かつ高速な処理が可能となる。
しかしながら、数式(3)によって示される内積(積和演算)の結果は整数となる一方、その整数が量子化関数によって量子化される際に量子化誤差が発生し得る。量子化誤差はニューラルネットワークのモデルの精度に大きな影響を与えるため、量子化誤差に対しては何らかの対策が必要となる。特に前段の層から後段の層への出力が2値化される場合には、数式(4)に示されるように、正負の情報しか後段の層に伝播されないため、後段の層に伝播される情報量は大きく欠落してしまう。
これに対して、非特許文献1に記載の方法では、特段の対策が取られておらず、高精度な結果が得られないモデルが生成される。
一方、非特許文献2に記載の方法では、畳み込み層が備えるフィルタ数(チャネル数)を増加することによって、量子化誤差の影響を低減することに成功している。このような量子化誤差の影響の低減は、2値化された特徴量の多数の組み合わせによって、(2値化が行われながらも)表現能力が維持されるために達成され得ると考えられる。例えば、特徴量が2値化されていても、チャネル数が64であれば、特徴量は264通りのパターンを表現し得るが、チャネル数が128であれば、特徴量は2128通りのパターンを表現し得る。すなわち、チャネル数の増加によって2値化された特徴量の表現能力を増強することができる。
しかしながら、チャネル数の増加に比例して必要な積和演算回数も増加してしまう。例えば、入力特徴量のサイズがH×Wピクセルで表現され、出力チャネル数がCであり、畳み込みフィルタサイズがK×Kの重みパラメータ、ストライド幅が1であり、入力特徴量の周囲に0を1ピクセルずつ埋めた場合を想定する。かかる場合には、K=3となり、積の演算回数は、C×K×K×H×W回であり、和の演算回数は(C−1)×(K×K−1)×(H×W−1)回となる。したがって、出力チャネル数Cの増加に比例して積和演算回数が増加してしまうため、チャネル数の増加によってモデルの精度は向上したとしても、学習処理または推論処理の速度面での効率が低下してしまう。
そこで、本発明の実施形態では、ニューラルネットワークモデルのチャネル数の増加を抑制しつつ、ニューラルネットワークモデルの表現能力を向上させる手段として、修正対象層の後段(すなわち、修正対象層における内積演算の後段)に対して分離結合処理を追加する。すなわち、修正部101は、分離結合処理の追加、第1の量子化関数の導入、および、第2の量子化関数の導入によって、修正後のニューラルネットワークを生成する。ここで、分離結合処理の追加、第1の量子化関数の導入、および、第2の量子化関数の導入には、幾つかのパターンが挙げられる。
以下では、分離結合処理の追加、第1の量子化関数の導入、および、第2の量子化関数の導入のパターンの例として、3つのパターンについて説明する。例えば、分離結合処理の追加、第1の量子化関数の導入、および、第2の量子化関数の導入は、これらのパターンのいずれか一つが選択的に実行されればよい。なお、以下では、第1の量子化関数をsgn1()と表現し、第2の量子化関数をsgn2()と表現する場合がある。
図4は、分離結合処理の追加、第1の量子化関数sgn1()の導入、および、第2の量子化関数sgn2()の導入の第1のパターンを説明するための図である。図5は、分離結合処理の追加、第1の量子化関数sgn1()の導入、および、第2の量子化関数sgn2()の導入の第2のパターンを説明するための図である。図6は、分離結合処理の追加、第1の量子化関数sgn1()の導入、および、第2の量子化関数sgn2()の導入の第3のパターンを説明するための図である。
なお、図4〜図6に示された例では、修正対象層が第l(エル)層の畳み込み層である場合を想定する。しかし、修正処理層が他の処理層である場合も同様に、分離結合処理の追加、第1の量子化関数sgn1()の導入、および、第2の量子化関数sgn2()の導入が行われてよい。
図4に示されるように、修正部101は、第l(エル)層の畳み込み層の重みパラメータwに第1の量子化関数sgn1()を導入してよい。さらに、修正部101は、第l(エル)層の畳み込み層の直後の活性化関数(すなわち、第l+1層の活性化関数)の直後(すなわち、第l+1層の活性化関数の後段かつ第l+1層の畳み込み層の前段)に第2の量子化関数sgn2()を挿入することによって、活性化関数の出力に対して第2の量子化関数sgn2()を導入してよい。さらに、修正部101は、第l層の畳み込み層の後段かつ第2の量子化関数sgn2()の導入位置の前段(かつ、第l層の活性化関数の後段)に、分離結合処理を追加してよい。
あるいは、図5に示されるように、修正部101は、図4に示されたパターンと同様に、第l(エル)層の畳み込み層の重みパラメータwに第1の量子化関数sgn1()を導入してよい。さらに、修正部101は、図4に示されたパターンと同様に、第l(エル)層の畳み込み層の直後の活性化関数(すなわち、第l+1層の活性化関数)の直後に第2の量子化関数sgn2()を挿入することによって、活性化関数の出力に対して第2の量子化関数sgn2()を導入してよい。さらに、修正部101は、図4に示されたパターンと異なり、第l層の畳み込み層の後段かつ第2の量子化関数sgn2()の導入位置の前段(かつ、第l層の活性化関数の前段)に、分離結合処理を追加してもよい。
あるいは、図6に示されるように、修正部101は、図4に示されたパターンと同様に、第l(エル)層の畳み込み層の重みパラメータwに第1の量子化関数sgn1()を導入してよい。さらに、修正部101は、図4に示されたパターンと異なり、第l(エル)層の畳み込み層の直後の活性化関数(すなわち、第l+1層の活性化関数)を第2の量子化関数sgn2()に置換することによって、活性化関数に対して第2の量子化関数sgn2()を導入してもよい。さらに、修正部101は、第l層の畳み込み層の後段かつ第2の量子化関数sgn2()の導入位置の前段に、分離結合処理を追加してもよい。
以下の説明では、図6に示されたパターンのように、第l(エル)層の畳み込み層の重みパラメータwに第1の量子化関数sgn1()が導入され、第l層の畳み込み層の直後の活性化関数が第2の量子化関数sgn2()に置換され、第l層の畳み込み層の後段かつ第2の量子化関数sgn2()の導入位置の前段に、分離結合処理が追加される場合を主に想定する。しかし、分離結合処理の追加、第1の量子化関数sgn1()の導入、および、第2の量子化関数sgn2()の導入は、かかるパターンに限定されない。
図7は、分離結合処理の例を示す図である。処理N100は、第l(エル)層からの出力(数式(3)における第l層の出力特徴量yに相当)を入力特徴量N101として受け付ける。図7には、入力特徴量N101が6チャネルによって構成された例が示されているが、入力特徴量N101のチャネル数は限定されない。
処理N110は、入力特徴量N101をチャネルデータ単位で2つのグループ(入力特徴量N111および入力特徴量N112)に分割する。図7には、6チャネルによって構成された入力特徴量N101を3チャネルデータずつの2つのグループに分割する例が示されている。そして、処理N120は、分割後の2つのグループ(入力特徴量N111および入力特徴量N112)の対応するチャネルデータ間の対応する要素同士において、加算、減算および乗算の各演算を実行して、演算結果N131〜N133を得る。演算結果N131は、加算結果に該当し、演算結果N132は、減算結果に該当し、演算結果N133は、乗算結果に該当する。なお、除算は乗算の一態様として位置づけられる。
処理N130は、処理N120によって得られた演算結果N131〜N133をチャネルデータ単位で結合する。図7に示された例では、演算結果N131〜N133それぞれが3つのチャネルによって構成されている。すなわち、処理N130は、演算結果N131〜N133を構成する9つのチャネルデータを結合する。結合後のデータは、処理N130から第l層の後段の量子化関数(本例では、符号関数)に出力される。結合後のデータは、量子化関数によって2値化される。
以上に説明した分割結合処理の意義について整理する。第l層の畳み込み層の出力特徴量y(入力特徴量N101に該当)は、上記したように符号同士の内積演算の結果である。したがって、第l層の畳み込み層のチャネル数がCであり、フィルタサイズがK×Kである場合、第l層の畳み込み層の出力特徴量が、C×K×Kの値で除算されれば、出力特徴量yの各要素の値は、−1〜1の値域を持つコサインの値で表現可能な値に変換され得る。このとき、分離結合処理における和と差と積の演算結果N131〜N133について検証する。
図8は、分離結合処理における和と差と積の演算結果N131〜N133の例を示す図である。図8の左の図は、和の演算結果N131に該当する。図8の中央の図は、差の演算結果N132に該当する。図8の右の図は、積の演算結果N133に該当する。各図において、縦軸は1つ目のグループに該当する入力特徴量N111がコサインで表現された値であり、横軸は2つ目のグループに該当する入力特徴量N112がコサインで表現された値である。
図8の各図の色調は、和と差と積のそれぞれの演算結果の大きさを示し、濃い領域ほど演算結果の値が小さく、薄い領域ほど演算結果の値が大きくなるように示されている。さらに、図8の各図には、演算結果が0となる領域が破線で示されている。すなわち、図8の左の図(和の演算結果)では、破線の右上領域が正の演算結果が得られる領域であり、破線の左下領域が負の演算結果が得られる領域である。
図8の中央の図(差の演算結果)では、破線の右下領域が正の演算結果が得られる領域であり、破線の左上領域が負の演算結果が得られる領域である。図8の右の図(積の演算結果)では、破線の右上領域と左下領域が正の演算結果が得られる領域であり、破線の右下領域と左上領域が負の演算結果が得られる領域である。したがって、各図における破線は、分離結合処理の後に適用される符号関数における正負条件の境界(符号関数が2値のいずれを出力するかの境界)に当たる。
以上の説明から把握されるように、分割後の2つの入力特徴量の和と差と積のそれぞれの演算結果に対して符号関数が適用されることによって、分割後の2つの入力特徴量は、符号関数によって符号化(2値化)された後においても、2=8パターンの表現能力を得ることができる。
図9は、和と差と積のそれぞれの演算結果に対して符号関数が適用されることによって2つの入力特徴量が表現可能なパターンを二次元平面上に示した図である。図9を参照すると、二次元平面が8つの領域に分割されている。すなわち、分割後の2つの入力特徴量の和と差と積のそれぞれの演算結果に対して符号関数が適用されることによって、分割後の2つの入力特徴量は、符号関数によって符号化(2値化)された後においても、二次元平面上の8つの領域のいずれに属するかを表現することが可能となる。
以上に説明した分割統合処理によれば、チャネル数を増加させずにニューラルネットワークのモデルに多くのパターンを表現させることが可能となる。例えば、64チャネルの入力特徴量が(64/2=)32チャネルずつの2つのグループに分割され、分割後の2つの入力特徴量の和と差と積のそれぞれの演算結果に対して符号関数が適用された場合、分割後の入力特徴量は、832=296パターンを表現することが可能である。
一方、単純にチャネル数を増加させる方法では、96チャネルの入力特徴量を用意すれば、入力特徴量は、296パターンを表現することが可能である。しかしながら、上記したように、チャネル数を増加させることによって必要な演算の規模が大きくなってしまう(計算コストが増加してしまう)。より正確に言えば、ある畳み込み層Aの出力チャネル数の変更は、次の層Bの入力チャネル数にも影響を与えるため、A層とB層の両方の計算コストが増加してしまう。
本発明の実施形態においても、64チャネルの入力特徴量に対して分離結合処理を適用するとチャネル数が96チャネルに増えるため、単純にチャネル数を増加させる方法と同様に、B層の計算コストを増加させてしまう。しかしながら、単純にチャネル数を増加させる方法においては、64チャネルに32チャネルが追加されることから、A層にかかる追加の計算コストとして、32×K×K×H×W回の乗算と、31×(K×K−1)×(H×W−1)回の加算とが発生する。さらに、32×K×K個のパラメータを格納するメモリ容量が必要となる。一方、本発明の実施形態では、A層にかかる追加の計算コストは、分離結合処理における要素単位の和と差と積の演算であり、H×W回の乗算と、2×H×W回の加算のみでよい。
したがって、本発明の実施形態によれば、単純にチャネル数を増加する方法よりも、少ない計算コストと少ないメモリ使用量とによって、単純にチャネル数を増加する方法と同等の表現能力を得ることができる。
図3に戻って説明を続ける。修正部101が、特定した修正対象層に関して、分離結合処理の追加、第1の量子化関数sgn1()の導入、および、第2の量子化関数sgn2()の導入を行うと、軽量化対象のニューラルネットワークに含まれる全部の畳み込み層および全結合層に関して、分離結合処理の追加、第1の量子化関数sgn1()の導入、および、第2の量子化関数sgn2()の導入を行ったか否かを判定する(S202)。
修正部101は、分離結合処理の追加、第1の量子化関数sgn1()の導入、および、第2の量子化関数sgn2()の導入が行われていない畳み込み層または全結合層(未修正の処理層)が存在する場合には(S202において「No」)、当該未修正の処理層を修正対象層として特定する動作に移行する(S200)。一方、修正部101は、未修正の処理層が存在しない場合には(S202において「Yes」)、修正を終了する。
図1に戻って説明を続ける。修正部101は、このようにして生成した修正後のニューラルネットワークおよび学習用データセットを、学習部102に出力する。学習部102は、上記したように、修正部101から入力された学習用データセットに基づいて、修正部101から入力された修正後のニューラルネットワークの訓練を行う。訓練が終わった訓練済みのニューラルネットワークは、出力部103に出力される。出力部103は、上記したように、訓練済みのニューラルネットワークを出力する。
(1−3.効果の説明)
本発明の実施形態によれば、複数の処理層を含んだ軽量化対象のニューラルネットワークを取得する入力部100と、軽量化対象のニューラルネットワークに含まれる畳み込み層および全結合層の少なくとも一つの処理層を修正対象層として特定し、修正対象層の後段に対して分離結合処理を追加するとともに、修正対象層の重みパラメータに第1の量子化関数を導入し、修正対象層の直後の活性化関数または活性化関数の出力に対して第2の量子化関数を導入して、修正後のニューラルネットワークを生成する修正部101と、修正後のニューラルネットワークの訓練を行う学習部102と、訓練後かつ修正後のニューラルネットワークを出力する出力部103と、を備える、ニューラルネットワーク軽量化装置10が提供される。
かかる構成によれば、量子化ニューラルネットワークモデルの処理効率の低下を抑制しつつ、量子化ニューラルネットワークモデルの精度を向上させることを可能とする技術が提供される。
図7に示した処理N120では、和と差と積の演算が行われる。このうち和と差の演算によれば、入力特徴量と重みパラメータがそれぞれ2値の場合に、3値の重みパラメータで演算する場合と同等の効果が得られる。具体的には、処理N110で2グループに分割された重みパラメータをそれぞれw、wとし、入力特徴量をxとし、畳み込み演算の記号を*とすると、和の演算によれば、下記の数式(5)に示されるように、2値化された重みパラメータ同士(符号同士)の加算によって一つの重みパラメータが表現され得る。
Figure 2021103441
すなわち、−1と1に2値化された重みパラメータ同士の和の演算結果は、−2、0、2の3値で表現される重みパラメータと等価となる。差の演算結果が行われる場合も同様に、2値化された重みパラメータ同士(符号同士)の減算によって一つの重みパラメータが表現され得る。したがって、和の演算または差の演算によれば、重みパラメータによる表現のバリエーションが増えるため、ニューラルネットワークのモデルの性能の向上が期待される。
以上、本発明の実施形態の詳細について説明した。
(2.各種の変形例)
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
例えば、分離結合処理の後に適用される符号関数における正負条件の境界は、訓練可能な係数パラメータを用いて要素単位またはチャネル単位で調整されてもよい。より詳細に、修正部101は、分離結合処理の結果に学習部102によって訓練可能な第1の係数パラメータαの乗算処理を適用してもよい。このとき、学習部102は、修正後のニューラルネットワークとともに第1の係数パラメータαを訓練してよい。あるいは、修正部101は、分離結合処理の結果に学習部102によって訓練可能な第2の係数パラメータβの加算処理を適用してもよい。このとき、学習部102は、修正後のニューラルネットワークとともに第2の係数パラメータβを訓練してよい。
あるいは、下記の数式(6)に示されるように、修正部101は、分離結合処理の結果に第1の係数パラメータαの乗算処理と第2の係数パラメータβの加算処理とを適用してもよい。このとき、学習部102は、修正後のニューラルネットワークとともに第1の係数パラメータαおよび第2の係数パラメータβを訓練してよい。
Figure 2021103441
ここで、z は、分離結合処理の結果を示している。数式(6)に示されるように、分離結合処理の結果z に対して、第1の係数パラメータαおよび第2の係数パラメータβが適用され、符号関数が適用された後のxが出力されるようにし、学習部102によって第1の係数パラメータαおよび第2の係数パラメータβも訓練されるようにすれば、符号関数における正負条件の境界がチャネル単位で調整され得る。
上記では、分離結合処理において、入力特徴量N101がチャネルデータ単位で2つのグループに分割される場合について主に説明した。しかし、分割後のグループの数は二つに限定されない。例えば、分離結合処理においては、入力特徴量N101がチャネルデータ単位で2つ以上のグループに分割されてもよい。かかる場合、処理N120は、分割後の二つ以上のグループの対応するチャネルデータ間の対応する要素同士において、加算、減算および乗算の少なくとも1つの演算を実行してもよい。このとき、処理N130は、各演算結果をチャネルデータ単位で結合すればよい。
また、分割後の二つ以上のグループの全部の対応する要素同士において、加算、減算および乗算の各演算が実行されなくてもよい。例えば、分割後の二つ以上のグループの一部のみの対応する要素同士において、加算、減算および乗算の各演算が実行されてもよい。このとき、分割後の二つ以上のグループのうち、演算が実行されなかったグループは、処理N120において演算されずに処理N130に出力され、処理N130において、演算が実行されたグループの演算結果とチャネルデータ単位で結合されればよい。
また、処理N120において演算が実行されるルートと、処理N120における演算が実行されずに処理N130に出力されるルートとの双方に対して出力が行われるグループが存在してもよい。さらに、修正部101は、加算、減算および乗算の全部を行わなくてもよい。例えば、修正部101は、分割後の二つ以上のグループの一部または全部のグループの対応するチャネルデータ間の対応する要素同士において、加算、減算および乗算の少なくとも1つの演算を実行すればよい。
図10は、分離結合処理の変形例を示す図である。図10には、処理N200は、処理N110と同様に、入力特徴量N201をチャネルデータ単位で2つのグループ(入力特徴量N211および入力特徴量N212)に分割する例が示されている。
このとき、図10に示されるように、処理N220は、分割後の2つのグループ(入力特徴量N211および入力特徴量N212)の対応するチャネルデータ間の対応する要素同士において乗算のみを実行して、演算結果N233を得てもよい。また、図10に示されるように、分割後の2つのグループの一部(入力特徴量N211)は、処理N220において演算されずに処理N230に出力されてもよい。かかる場合、処理N230において、演算されなかったグループのデータN231と演算が実行されたグループの演算結果N233とがチャネルデータ単位で結合されればよい。
さらに、修正部101は、分割後の二つ以上のグループの一部または全部の対応するチャネルデータ間の対応する要素同士において、加算、減算および乗算のうちの二つ以上の演算を連続的に実行してチャネルデータ単位の統合を行ってもよい。例えば、修正部101は、分割後の二つ以上のグループの一部または全部のグループの対応するチャネルデータ間の対応する要素同士において、加算を行った後に乗算を行ってチャネルデータ単位の統合を行ってもよい。
また、上記では、分離結合処理において、二つ以上のグループのいずれのグループ間においてもチャネルデータ同士の重複がないように分割が行われる場合を主に想定した。しかし、分離結合処理において、二つ以上のグループの少なくともいずれか2つのグループ間において少なくとも一部のチャネルデータ同士が重複するように分割が行われてもよい。同一のチャネルデータ同士の演算だけが行われても有効な演算結果が得られないことが推測されるが、異なるチャネルデータ同士の演算が一部にでも含まれていれば、有効な演算結果が得られると推測される。
また、上記では、軽量化対象のニューラルネットワークに対して、符号関数が導入されることによって、修正後のニューラルネットワークとして2値化ニューラルネットワークが生成される場合を主に説明した。しかし、軽量化対象のニューラルネットワークに対して導入される量子化関数は、2値化を行う関数(符号関数)に限らず、任意の量子化ビット数を出力する関数であってよい。例えば、2ビットを使用して4値を表現する量子化関数は、下記の数式(7)に示されるような4値化関数によって表現され得る。
Figure 2021103441
また、上記では、和と差と積の演算結果それぞれに対して、同一の符号関数が適用される場合を主に説明した。しかし、和と差と積の演算結果それぞれの一部または全部に対して、異なる量子化関数が適用されてもよい。例えば、和と差の演算結果それぞれに対して、数式(7)によって示される4値化関数が適用され、積の演算結果に対して、符号関数が適用されてもよい。このようにして各演算結果に対して適用される量子化関数を変更することによって、分割後の入力特徴量の表現可能なパターンの数を適宜に変更することが可能である。
図11は、各演算結果に対して適用される量子化関数を変更することによって表現可能なパターンの一例を二次元平面上に示した図である。図11を参照すると、二次元平面が24個の領域に分割されている。すなわち、分割後の入力特徴量の各演算結果に対して量子化関数を変更することによって、分割後の入力特徴量は、量子化関数によって量子化された後において、二次元平面上の24個の領域のいずれに属するかを表現することが可能となる。
(3.ハードウェア構成例)
続いて、本発明の実施形態に係るニューラルネットワーク軽量化装置10のハードウェア構成例について説明する。以下では、本発明の実施形態に係るニューラルネットワーク軽量化装置10のハードウェア構成例として、情報処理装置900のハードウェア構成例について説明する。なお、以下に説明する情報処理装置900のハードウェア構成例は、ニューラルネットワーク軽量化装置10のハードウェア構成の一例に過ぎない。したがって、ニューラルネットワーク軽量化装置10のハードウェア構成は、以下に説明する情報処理装置900のハードウェア構成から不要な構成が削除されてもよいし、新たな構成が追加されてもよい。
図12は、本発明の実施形態に係るニューラルネットワーク軽量化装置10の例としての情報処理装置900のハードウェア構成を示す図である。情報処理装置900は、CPU(Central Processing Unit)901と、ROM(Read Only Memory)902と、RAM(Random Access Memory)903と、ホストバス904と、ブリッジ905と、外部バス906と、インタフェース907と、入力装置908と、出力装置909と、ストレージ装置910と、通信装置911と、を備える。
CPU901は、演算処理装置および制御装置として機能し、各種プログラムに従って情報処理装置900内の動作全般を制御する。また、CPU901は、マイクロプロセッサであってもよい。ROM902は、CPU901が使用するプログラムや演算パラメータ等を記憶する。RAM903は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一時記憶する。これらはCPUバス等から構成されるホストバス904により相互に接続されている。
ホストバス904は、ブリッジ905を介して、PCI(Peripheral Component Interconnect/Interface)バス等の外部バス906に接続されている。なお、必ずしもホストバス904、ブリッジ905および外部バス906を分離構成する必要はなく、1つのバスにこれらの機能を実装してもよい。
入力装置908は、マウス、キーボード、タッチパネル、ボタン、マイクロフォン、スイッチおよびレバー等ユーザが情報を入力するための入力手段と、ユーザによる入力に基づいて入力信号を生成し、CPU901に出力する入力制御回路等から構成されている。情報処理装置900を操作するユーザは、この入力装置908を操作することにより、情報処理装置900に対して各種のデータを入力したり処理動作を指示したりすることができる。
出力装置909は、例えば、CRT(Cathode Ray Tube)ディスプレイ装置、液晶ディスプレイ(LCD)装置、OLED(Organic Light Emitting Diode)装置、ランプ等の表示装置およびスピーカ等の音声出力装置を含む。
ストレージ装置910は、データ格納用の装置である。ストレージ装置910は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置等を含んでもよい。ストレージ装置910は、例えば、HDD(Hard Disk Drive)で構成される。このストレージ装置910は、ハードディスクを駆動し、CPU901が実行するプログラムや各種データを格納する。
通信装置911は、例えば、ネットワークに接続するための通信デバイス等で構成された通信インタフェースである。また、通信装置911は、無線通信または有線通信のどちらに対応してもよい。
以上、本発明の実施形態に係るニューラルネットワーク軽量化装置10のハードウェア構成例について説明した。
10 ニューラルネットワーク軽量化装置
100 入力部
101 修正部
102 学習部
103 出力部

Claims (12)

  1. 複数の処理層を含んだ第1のニューラルネットワークを取得する入力部と、
    前記第1のニューラルネットワークに含まれる畳み込み層および全結合層の少なくとも一つの処理層を修正対象層として特定し、前記修正対象層の後段に対して分離結合処理を追加するとともに、前記修正対象層の重みパラメータに第1の量子化関数を導入し、前記修正対象層の直後の活性化関数または前記活性化関数の出力に対して第2の量子化関数を導入して、第2のニューラルネットワークを生成する修正部と、
    前記第2のニューラルネットワークの訓練を行う学習部と、
    訓練後の前記第2のニューラルネットワークを出力する出力部と、
    を備える、ニューラルネットワーク軽量化装置。
  2. 前記分離結合処理は、前記修正対象層の出力に対して、チャネルデータ単位で二つ以上のグループに分割し、分割後の二つ以上のグループの一部または全部のグループの対応するチャネルデータ間において、加算、減算および乗算の少なくとも1つの演算を実行し、チャネルデータ単位で結合する処理を含む、
    請求項1に記載のニューラルネットワーク軽量化装置。
  3. 前記分離結合処理は、前記修正対象層の出力に対して、チャネルデータ単位で2つのグループに分割し、分割後の2つのグループの対応するチャネルデータ間において、加算、減算および乗算の少なくとも1つの演算を実行し、チャネルデータ単位で結合する処理を含む、
    請求項2に記載のニューラルネットワーク軽量化装置。
  4. 前記第1の量子化関数および前記第2の量子化関数それぞれは、符号関数である、
    請求項1〜3のいずれか一項に記載のニューラルネットワーク軽量化装置。
  5. 前記修正部は、前記分離結合処理の結果に前記学習部によって訓練可能な第1の係数パラメータの乗算処理を適用する、
    請求項1〜4のいずれか一項に記載のニューラルネットワーク軽量化装置。
  6. 前記修正部は、前記分離結合処理の結果に前記学習部によって訓練可能な第2の係数パラメータの加算処理を適用する、
    請求項1〜5のいずれか一項に記載のニューラルネットワーク軽量化装置。
  7. 前記修正部は、前記活性化関数を前記第2の量子化関数に置換することによって、前記活性化関数に対して前記第2の量子化関数を導入する、
    請求項1〜6のいずれか一項に記載のニューラルネットワーク軽量化装置。
  8. 前記修正部は、前記活性化関数の直後に前記第2の量子化関数を挿入することによって、前記活性化関数の出力に対して前記第2の量子化関数を導入する、
    請求項1〜6のいずれか一項に記載のニューラルネットワーク軽量化装置。
  9. 前記修正部は、前記修正対象層の後段かつ前記第2の量子化関数の導入位置の前段に、前記分離結合処理を追加する、
    請求項1〜8のいずれか一項に記載のニューラルネットワーク軽量化装置。
  10. 前記分離結合処理においては、前記二つ以上のグループのいずれのグループ間においてもチャネルデータ同士の重複がないように、または、少なくともいずれか2つのグループ間において少なくとも一部のチャネルデータ同士が重複するように分割される、
    請求項2に記載のニューラルネットワーク軽量化装置。
  11. 複数の処理層を含んだ第1のニューラルネットワークを取得することと、
    前記第1のニューラルネットワークに含まれる畳み込み層および全結合層の少なくとも一つの処理層を修正対象層として特定し、前記修正対象層の後段に対して分離結合処理を追加するとともに、前記修正対象層の重みパラメータに第1の量子化関数を導入し、前記修正対象層の直後の活性化関数または前記活性化関数の出力に対して第2の量子化関数を導入して、第2のニューラルネットワークを生成することと、
    前記第2のニューラルネットワークの訓練を行うことと、
    訓練後の前記第2のニューラルネットワークを出力することと、
    を含む、ニューラルネットワーク軽量化方法。
  12. コンピュータを、
    複数の処理層を含んだ第1のニューラルネットワークを取得する入力部と、
    前記第1のニューラルネットワークに含まれる畳み込み層および全結合層の少なくとも一つの処理層を修正対象層として特定し、前記修正対象層の後段に対して分離結合処理を追加するとともに、前記修正対象層の重みパラメータに第1の量子化関数を導入し、前記修正対象層の直後の活性化関数または前記活性化関数の出力に対して第2の量子化関数を導入して、第2のニューラルネットワークを生成する修正部と、
    前記第2のニューラルネットワークの訓練を行う学習部と、
    訓練後の前記第2のニューラルネットワークを出力する出力部と、
    を備えるニューラルネットワーク軽量化装置として機能させるためのプログラム。
JP2019234567A 2019-12-25 2019-12-25 ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム Active JP6856112B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019234567A JP6856112B1 (ja) 2019-12-25 2019-12-25 ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019234567A JP6856112B1 (ja) 2019-12-25 2019-12-25 ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム

Publications (2)

Publication Number Publication Date
JP6856112B1 JP6856112B1 (ja) 2021-04-07
JP2021103441A true JP2021103441A (ja) 2021-07-15

Family

ID=75267946

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019234567A Active JP6856112B1 (ja) 2019-12-25 2019-12-25 ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム

Country Status (1)

Country Link
JP (1) JP6856112B1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023014124A1 (ko) * 2021-08-04 2023-02-09 주식회사 사피온코리아 신경망 파라미터의 양자화 방법 및 장치
WO2023101276A1 (ko) * 2021-11-30 2023-06-08 삼성전자 주식회사 영상 처리 장치 및 그 동작 방법
WO2024053018A1 (ja) * 2022-09-07 2024-03-14 日本電信電話株式会社 畳み込みニューラルネットワーク高速化装置、畳み込みニューラルネットワーク高速化方法、および畳み込みニューラルネットワーク高速化プログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113705791B (zh) * 2021-08-31 2023-12-19 上海阵量智能科技有限公司 神经网络推理量化的方法、装置、电子设备及存储介质
CN113887706B (zh) * 2021-09-30 2024-02-06 苏州浪潮智能科技有限公司 一种针对一阶段目标检测网络的低比特量化的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018055514A (ja) * 2016-09-30 2018-04-05 沖電気工業株式会社 情報処理装置、情報処理方法、およびプログラム
JP2019212206A (ja) * 2018-06-08 2019-12-12 沖電気工業株式会社 ニューラルネットワーク軽量化装置、情報処理装置、ニューラルネットワーク軽量化方法およびプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018055514A (ja) * 2016-09-30 2018-04-05 沖電気工業株式会社 情報処理装置、情報処理方法、およびプログラム
JP2019212206A (ja) * 2018-06-08 2019-12-12 沖電気工業株式会社 ニューラルネットワーク軽量化装置、情報処理装置、ニューラルネットワーク軽量化方法およびプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023014124A1 (ko) * 2021-08-04 2023-02-09 주식회사 사피온코리아 신경망 파라미터의 양자화 방법 및 장치
WO2023101276A1 (ko) * 2021-11-30 2023-06-08 삼성전자 주식회사 영상 처리 장치 및 그 동작 방법
WO2024053018A1 (ja) * 2022-09-07 2024-03-14 日本電信電話株式会社 畳み込みニューラルネットワーク高速化装置、畳み込みニューラルネットワーク高速化方法、および畳み込みニューラルネットワーク高速化プログラム
WO2024053120A1 (ja) * 2022-09-07 2024-03-14 日本電信電話株式会社 畳み込みニューラルネットワーク高速化装置、畳み込みニューラルネットワーク高速化方法、および畳み込みニューラルネットワーク高速化プログラム

Also Published As

Publication number Publication date
JP6856112B1 (ja) 2021-04-07

Similar Documents

Publication Publication Date Title
JP6856112B1 (ja) ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム
US11816577B2 (en) Augmentation of audiographic images for improved machine learning
US11915128B2 (en) Neural network circuit device, neural network processing method, and neural network execution program
CN112074806B (zh) 用于块浮点计算的系统、方法和计算机存储介质
US20190347553A1 (en) Training neural networks using mixed precision computations
JP7325158B2 (ja) ニューラル・ネットワーク・コアにおける動的精度のためのデータ表現
CN109328362B (zh) 渐进式神经网络
CN101253493B (zh) 在图形处理单元上训练卷积神经网络
JP6801529B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP2019212206A (ja) ニューラルネットワーク軽量化装置、情報処理装置、ニューラルネットワーク軽量化方法およびプログラム
EP4283533A1 (en) Quantum convolution operator
CN110825884A (zh) 基于人工智能的嵌入表示处理方法、装置及电子设备
Chervyakov et al. Residue number system-based solution for reducing the hardware cost of a convolutional neural network
CN112446888B (zh) 图像分割模型的处理方法和处理装置
CN114821605B (zh) 一种文本的处理方法、装置、设备和介质
JP2020190996A (ja) ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム
US20230394306A1 (en) Multi-Modal Machine Learning Models with Improved Computational Efficiency Via Adaptive Tokenization and Fusion
Ankan et al. Mastering probabilistic graphical models using python
CN113490955B (zh) 用于产生金字塔层的架构的系统和方法
Vasicek et al. Evolutionary functional approximation of circuits implemented into FPGAs
CN116324828A (zh) 秘密决策树测试装置、秘密决策树测试系统、秘密决策树测试方法、及程序
Gaihua et al. Instance segmentation convolutional neural network based on multi-scale attention mechanism
CN114187598A (zh) 手写数字识别方法、系统、设备及计算机可读存储介质
US20220405561A1 (en) Electronic device and controlling method of electronic device
CN113158045B (zh) 一种基于图神经网络推理的可解释推荐方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210114

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210301

R150 Certificate of patent or registration of utility model

Ref document number: 6856112

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150