JP6869676B2 - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
JP6869676B2
JP6869676B2 JP2016188412A JP2016188412A JP6869676B2 JP 6869676 B2 JP6869676 B2 JP 6869676B2 JP 2016188412 A JP2016188412 A JP 2016188412A JP 2016188412 A JP2016188412 A JP 2016188412A JP 6869676 B2 JP6869676 B2 JP 6869676B2
Authority
JP
Japan
Prior art keywords
codebook
information processing
layer
weight parameter
parameter
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
JP2016188412A
Other languages
English (en)
Other versions
JP2018055260A (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.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Priority to JP2016188412A priority Critical patent/JP6869676B2/ja
Priority to US15/713,470 priority patent/US11720786B2/en
Publication of JP2018055260A publication Critical patent/JP2018055260A/ja
Application granted granted Critical
Publication of JP6869676B2 publication Critical patent/JP6869676B2/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/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/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/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

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

Description

本発明は、ニューラルネットワークを学習する技術に関する。
ニューラルネット、特に近年研究の進んでいる畳み込みニューラルネット(以下、CNN)は認識性能が高い一方で、パラメータ量が膨大になる傾向がある。非特許文献1には、認識装置に必要なメモリ量を削減する方法が開示されている。
Emily L. Denton,Wojciech Zaremba,Joan Bruna,Yann LeCun,Rob Fergus,Exploiting Linear Structure Within Convolutional Networks for Efficient Evaluation,Advances in Neural Information Processing Systems 27 (NIPS 2014) J.Yang,K.Yu,Y.Gong,and T.Huang,Linear Spatial Pyramid Matching Using Sparse Coding for Image Classification,IEEE Conference on Computer Vision and Pattern Recognition,2009. Matthieu Courbariaux,Yoshua Bengio,Jean−Pierre David,BinaryConnect:Training Deep Neural Networks with binary weights during propagations,NIPS 2015
非特許文献1の方法では、CNNの畳み込み演算の重みパラメータを3軸のベクトルの直積で表現し、上記の直積を複数個加算することで近似圧縮を行う(低ランク近似)。しかし、CNNの、特に高層の重みパラメータは疎で不連続であるという傾向があるため、直積を用いた近似では精度を上げにくいという課題があった。そこで、本発明は、CNNの高層の重みパラメータのようにスパースな重みに対しても既存手法より精度の高い近似を可能にすることを目的とする。
上記課題を解決するために、本発明は、畳み込みニューラルネットの重みパラメータを複数のグループに分割する分割手段と、前記分割されたグループごとに、前記重みパラメータを複数のコードブックにより近似して符化する符化手段と、を有し、前記符号化手段は、前記畳み込みニューラルネットワークの第1階層の前記重みパラメータを符号化する場合と、前記第1階層より高層の第2層の前記重みパラメータを符号化する場合とで異なるコードブックを用いて符号化を行うことを特徴とする。
本発明によれば、CNNの高層の重みパラメータのようにスパースな重みに対しても既存手法より精度の高い近似が可能になる。
第1の実施形態に係る情報処理装置の機能構成を示すブロック図。 第1の実施形態において近似圧縮を説明する模式図。 第1の実施形態に係る学習動作のフローチャート。 第1の実施形態におけるコードブック近似の模式図。 第1の実施形態とは異なる手法によるCNNの圧縮率を説明する図。 第1の実施形態の学習動作の変形例を説明する図。 第1の実施形態に係る認識動作のフローチャート。 第2の実施形態において近似圧縮を説明する模式図。 第2の実施形態に係る学習動作のフローチャート。 第3の実施形態において近似圧縮を説明する模式図。 第4の実施形態において重みの再構成を用いる畳み込み演算を説明する図。 第4の実施形態において重みの再構成を用いない畳み込み演算を説明する図。
[第1の実施形態]
以下、本発明の第1の実施形態について、図面を参照しながら説明する。本実施形態は、ニューラルネットの重みパラメータの圧縮の方法、および圧縮したパラメータを用いた認識動作の基本的な形態について示す。
図1は、本実施形態に係る情報処理装置の機能構成の図である。情報処理装置は、ニューラルネットの重みパラメータを所定のサイズのパラメータへ分割するパラメータ分割部101、前記分割したパラメータごとにコードブック符号化とコードブック係数を生成するパラメータ符号化部102を備える。また、パラメータ符号化部102によって生成されたコードブックおよびパラメータの再構成に用いるコードブック係数を記憶するコードブック記憶部103を備える。また、前記コードブックおよびコードブック係数を受け取り、ニューラルネットの重みパラメータを近似再構成するパラメータ再構成部104、前記重みパラメータを受け取りニューラルネットの計算処理を行うニューラルネット演算部105を備える。
さらに、周辺的な機能として、処理対象のデータをニューラルネットに供給するデータ入力部106、ニューラルネットで処理された結果を出力する結果出力部107を備えている。また、圧縮前のニューラルネットのパラメータを記憶し、パラメータ分割部101にパラメータを供給するニューラルネット・パラメータ記憶部108、パラメータの分割および符号化の際にユーザが諸条件を入力するためのユーザ指示部109も備える。
情報処理装置は、CPU、ROM、RAM、HDD等のハードウェア構成を備え、CPUがROMやHD等に格納されたプログラムを実行することにより、例えば、後述する各機能構成やフローチャートの処理が実現される。RAMは、CPUがプログラムを展開して実行するワークエリアとして機能する記憶領域を有する。ROMは、CPUが実行するプログラム等を格納する記憶領域を有する。HDは、CPUが処理を実行する際に要する各種のプログラム、パラメータに関するデータ等を含む各種のデータを格納する記憶領域を有する。
なお、本発明の情報処理装置が処理することのできるデータは音声、画像、文章など多岐に渡り得るが、図2(A)の模式図を示すように、本実施形態における入力データは3チャンネルのカラーの静止画像であるとする(以下、チャンネルをchと略す)。また、本実施形態のニューラルネットは多層のCNNであり、重みパラメータはすでに学習済みであるとする。
図2は、本実施形態において、近似圧縮を説明する模式図であり、CNNが動作を開始すると、各層の畳み込み演算により中間層でそれぞれ64ch、96ch、128chの特徴マップが順次得られ、最後に全結合層の処理を行って結果を出力する。ここでは、最終層は1chの出力をするものとする。なお、CNNには畳み込み演算と全結合層の演算の他に活性化関数や最大値プールと呼ばれる演算処理が存在するが、本実施形態の本質に無関係なので図2では略している。CNNの構成は非特許文献1のように各種文献において広く公知のため詳細の説明は割愛する。なお、CNNの各層は更にバイアス項と呼ばれる重みパラメータを備えることがあるが、説明の簡単のためここではバイアス項および全結合層のパラメータは圧縮の対象とせずに、そのまま元の値を保持するだけに留めるものとする。ただし、後述する方法でこれらをまとめて圧縮することも可能である。
<近似圧縮の学習時の動作>
次に、図3(A)および(B)のフローチャートを用いて、情報処理装置がニューラルネットのパラメータを近似的に圧縮する動作を詳細に述べる。動作を開始すると、まずパラメータ分割部101はステップS101からステップS106のループ処理を行う。ステップS101でループが開始されると、まず圧縮の準備段階として各層の重みパラメータを全て読み出し、これらを同一サイズの部分に分割する処理を施す。ステップS102で、パラメータ分割部101はニューラルネット・パラメータ記憶部108から各層の畳み込み演算のパラメータを順次読みだす。次いで、ステップS103では、パラメータ分割部101が重みパラメータを同一サイズに分割するためにパラメータを整列させる。
以下、この整列の処理について具体的に説明する。一般にCNNの畳み込み演算のパラメータは、4次のテンソルで表すことができる。テンソルのサイズをW×H×DIN×DOUTと表記するとする。ここで、WとHは畳み込みを行う縦と横の画素サイズであり、DINとDOUTは、それぞれ入力データの特徴ch数、畳み込みの結果出力される出力データの特徴ch数である。
図2(A)のニューラルネットの第一層を例にとると、畳み込みのパラメータの空間方向のサイズは3×3で入力チャンネル数は3chのRGB画像、出力サイズは64chである。本実施形態では、このパラメータを3次元へと変形する下記の数式1で表わされる演算操作fを用いる。
f:RW×H×DIN×DOUT→RW×H×D’ (数式1)
ただし、ここでD’=DIN×DOUTである。演算操作fの具体例の一つとして、数式2で表わされる演算操作を挙げる。
c’[i,j,p+(q−1)×DIN]:=c[i,j,p,q] (数式2)
ただし、
p=1,…,DIN
q=1,…,DOUT
c’∈RW×H×D’,c∈RW×H×DIN×DOUT
上記の演算操作は、ラスター順にパラメータを整列する操作である。本演算操作により、例えば第1層の3×3×3×64のサイズのテンソルの場合、3×3×192のサイズの3次のテンソルに変換される。
次に、テップS104でパラメータ分割部101が前段で整列済みのパラメータを複数の部分的なパラメータへと分割する。ここでは3×3×192のサイズのパラメータを図2(B)に示すような3×3×Nの部分パラメータに分割することとする。図の例では、N=8である。Nは入力chと出力chの積であるDIN×DOUTの約数であることが望ましい。ただし、後述する方法を用いればNは任意の整数であってもよい。
分割の結果、図2(C)に示すように各層の重みパラメータはすべて同一サイズの部分パラメータc(i,j)に分割された。ここでc(i,j)とは第i層の重みパラメータを分割して得られるj番目の部分のパラメータを意味する。なお第一の層の重みパラメータは入力チャンネルが3であり、分割の単位要素のN=8よりも小さいが、上述のように一端整列の操作を行うことで他の層と同様に容易に分割できることが、本実施形態において特徴的構成の1つとなっている。
次に、要素単位に分割されたパラメータを別途用意したコードブックで近似圧縮する。この処理の詳細を、図3(B)のフローチャートと、図4の本実施形態のコードブック近似の模式図を用いて説明する。まず、コードブックは図4(C)に示すように分割した要素単位と同一サイズのM個のコードブックベクトルから構成される。本実施形態では、分割された重みパラメータの近似にスパースコーディングと呼ばれる手法を用いる。スパースコーディングは、図4(A)に示すようにコードブックベクトルの基底の線形和でデータを近似する手法の一種である。図4(A)および(B)のように、データcはコードブックベクトルaのK個の線形和Σ(i,j,m)×aで近似される。ここで、図4(B)中のm∈{top(K)}は、コードブック係数x(i,j,1)〜x(i,j,M)のうちの絶対値の大きい上位K個の係数の番号を意味するとする。このとき、データcに特定パターンの繰り返しが多く含まれていたり、スパースであるような場合に、スパースコーディング手法は、他の手法よりも比較的少数のコードブックベクトルで高精度な近似が可能である。
コードブックベクトルおよびコードブック係数は、下記数式3のような損失関数を最小化することで学習を行う。
minX,AΣ||c−Ax||+λ|x|,
Subject to||a||≦1,∀n=1,2,…,M (数式3)
ここで、cは先に分割した重みパラメータのうちのn番目のもので、3次元のデータであるc(i,j)∈RW×H×DをL=W×H×Dの長さの列ベクトルに整列してc∈RL×1としたものである。AはM個のコードブックベクトルaからなるセットでA=[a,a,…,a]である。各コードブックベクトルaはa∈RL×1である。xはn番目の重みパラメータを再構成するためのコードブックの係数でx∈RM×1である。
数式3の1行目の式の第1項は近似誤差の損失項であり、第2項はスパース項と呼ばれる損失項である。λは2つの項を調整するためのハイパーパラメータである。2行目の式は自明な解を排除するための制約条件である。学習計算の際は、数式3をxについての最小化とAについての最小化を、収束するか所定回数に達するまで交互に行う(ステップS108〜S113)。1行目の第2項は、L1ノルムのコスト項であるためコードブック係数xの値の多数は0に収束する、すなわち、コードブック係数xはスパースになる。このためxのうち、絶対値の大きな少数のk個のコードブック係数のみから重みパラメータcの近似的再構成が可能となる。スパースコーディングは非特許文献2等により公知の技術内容のため、これ以上の詳細については省略する。
このようにして、各層の畳み込みの重みパラメータはM個のコードブックベクトルからなるコードブックAと、再構成用のコードブック係数Xによって近似される。コードブック記憶部103は、ステップS114〜S117で得られたコードブックAとコードブック係数Xを保存し、近似圧縮動作が終了する。
なお、ハイパーパラメータであるコードブック数Mや再構成に用いるコードブック係数の数Kによって圧縮率は変化する。例えば、図5にAlexNetと呼ばれる一般的なCNNを圧縮したときの圧縮率を例示する。コードブックの数Mを256とし、コードブック係数や各パラメータは一要素当たり8bitのサイズとする。ここで例えば、K=2,N=4の時には元のサイズの7倍弱の圧縮が行われる(図中の丸で示す位置)。
<認識時の動作>
図7は、本実施形態に係る認識時の処理のフローチャートである。ニューラルネットの動作が開始すると、ステップS201で、パラメータ再構成部104はコードブック記憶部103からコードブックAとコードブック係数Xを読み出す。次に、i層の処理を行う際には、再構成部104が下記の数式4に示すように、該当するコードブックベクトルとコードブック係数を用いて線形和でパラメータc(i,j)を再構成してから連結する。これにより、畳み込みのパラメータを復元する(ステップS203〜ステップS205)。
(i,j)=Σm∈{Top(K)}(i,j,m)(数式4)
その後の処理は、通常のCNNと同様に畳み込み処理によるニューラルネットの処理動作を行う(ステップS206)。以上が、本実施形態の認識時の動作となる。
本実施形態によれば、ニューラルネットの重みパラメータを所定の大きさの複数の部分(グループ)に分割して個別にコードブックベクトルの重み付和による近似を行う。これにより、CNNの高層の重みパラメータのようにスパースな重みに対しても、精度の高い近似が可能になる。
<変形例>
上述の説明で示した以外にも、パラメータの整列と分割の他の形態としては種々の形態が考えられる。例えば、9×3×64のサイズに整列してから9×3×4のサイズに分割する、27×64のサイズの2次元のパラメータに整列してから3×64のサイズに分割する等、である。本実施形態は特定の形態に限定されるものではない。ただし、CNNの認識動作はチャンネルごとに畳み込みを行うことから、分割の対象とする次元は畳み込みの空間方向ではなく、上述の説明のように入出力のチャンネルの次元に沿って行う方が、実装時の速度面では都合がよい。
さらに、上述の説明では、全結合層やバイアス項は圧縮の対象外としたが、これを圧縮の対象に含める形態も考えられる。例えば、全結合層の重みのパラメータはD×Di+1のサイズの配列であるが、これを整列してサイズ3×3×[D×Di+1÷9]の3次元のパラメータへ整形することができる。整列の方法はラスター順などでよいし、再現性のある一定の方法であればどのような順序であってもよい。この整形操作を施した後の重みパラメータであれば、3×3×Nの要素単位に容易に分割することが可能である。ただし、D×Di+1÷9の値が割り切れない場合や、Nチャンネルごとの分割で余りが出るような場合は、余りの部分は圧縮せずに元のパラメータの値を記憶しておく。もしくは、0などのダミー値でパラメータを充填して割り切れるサイズにしておいてもよい。なお、ダミー値は、認識動作時にはパラメータ再構成の後に取り除く。また、認識の際には、この全結合の層のみ、通常の重みパラメータの再構成を行った後に、D×Di+1のサイズの配列に再度整列し戻してからニューロンの演算処理をする必要がある。バイアス値についても、同様の方法で圧縮を行うことが可能である。
また別の変形例として、CNN以外のニューラルネットのコードブック近似圧縮を考えることもできる。この場合、全層の重みパラメータはD×Di+1の二次元となる。この場合は、D×Di+1を所定のサイズWに揃うよう[W]×[D×Di+1÷W]に整列し直すことが考えられる。ただし、ここで各大括弧はパラメータの1次元分に相当する。整列順はラスター順等とする。次に、これをW×Nチャンネルの要素単位に分割し、各パラメータをコードブックで近似する。なお、先の場合と同様、割り切れない場合はダミー値を用いた充填等を行うものとする。
さらに別の変形例として、畳み込み演算の画素サイズが3×3以外に、5×5や7×7など異なるサイズの畳み込みの層が混在する形態を考える。このような場合、サイズごとにコードブックを用意して個別に符号化の学習を行うことなどが考えられる。
なお、コードブックの学習方法として、学習済みのニューラルネットの重みパラメータをコードブックで近似する方法について上述した。しかし、以下に示すように近似の方法については、様々な変形例が考えられ、それぞれ最終性能に影響する。以下に、学習動作の変形例について説明を加える。
<学習動作の変形例1>
変形例1として、全層を一度に近似圧縮するのではなく、低層から1層ずつ徐々に近似する方法について述べる。具体的な手順は、以下の通りである。まず、ニューラルネットの全層の重みパラメータを近似するために、コードブックとコードブック係数を学習する。次に、ニューラルネットの第1層のパラメータのみコードブックで近似再構成した値で置換する。
次に、学習データをニューラルネットに与え、第2層以降の重みを誤差逆伝搬法で学習し直す。これを低層から高層まで順に一層ずつ行う。先に述べた方法のように、全層をそれぞれ近似圧縮すると近似の誤差が上層に至るほど積み上がっていく危険性が高いが、変形例1のように、近似を1層ずつ行えば同誤差を低減することができる。
<学習動作の変形例2>
変形例2として、ニューラルネットの学習の際にコードブックの学習を同時に行う形態について述べる。この変形例2では、まずコードブックAおよびコードブック係数Xを乱数で初期化し、ニューラルネットの重みwを最初から近似式w:=ΣAxとして置換しておく。そして、コードブック係数Xを確率的誤差逆伝搬を用いて更新する。更新に用いる式は以下の数式5である。
E=ENN+λ|x|
Δx=−η ∂E/∂x
=−η(∂E/∂w)×(∂w/∂x
=−η{(∂ENN/∂w)×A+λ×Sign(x)} (数式5)
ただし、ここでENNはニューラルネットの学習時の目標値からの誤差量である。ηは学習係数である。Eはニューラルネットの誤差とスパース項の損失を合わせた誤差量である。Sign(x)はxの符号を返す演算子である。∂E/∂wは誤差の勾配であり、公知の手法である誤差逆伝搬法によって求めることが可能である。
さらに、コードブックの変数Aは、下記数式6に従って確率的誤差逆伝搬で更新を行う。
Δa=−ε ∂ENN/∂a
=−ε(∂ENN/∂w)×(∂w/∂a
=−ε(∂ENN/∂w)×x (数式6)
ただし、εは学習係数である。以上の方法で更新を交互に行うことで、ニューラルネット、コードブックおよびコードブック係数の学習が同時に行われる。
<学習動作の変形例3>
変形例3として、ニューラルネットの重みが既存の学習済みのコードブックに適合するようにチャンネルの順序の変更や学習を行うような形態が考えられる。CNNの重みパラメータは、これまでラスター等の整列をすることはあったが、各チャンネルの順序を入れ替えるような処理については行わなかった。CNNにおいて、各層のチャンネルの順序には意味はないので、層間でパラメータの整合性が取れるのであれば、任意のチャンネルを入れ替えることは学習において特に支障はない。そこで、変形例3では、学習済みのコードブックに適応するようにCNNの重みパラメータの側をソートする形態について述べる。
具体的には、図6(A)に示すように、近似圧縮の対象である畳み込みパラメータ601aと近似に用いるコードブックベクトル602aがあったとする。このとき、図6(B)のように、チャンネルを入れ替えた時に近似誤差が減る場合が有り得る。ただし、この場合、第一層の畳み込みパラメータ603aの順番も併せてパラメータ603bのように入れ替える必要がある。
以上の性質を利用して、学習時に、例えば下記のような方法によるソーティングを行うことができる。まず、暫定のコードブックによる近似のうち、近似精度の最も低い畳み込みパラメータとコードブックベクトルのペアを同定する。次に同パラメータのうち、最も近似精度の低い特徴チャンネル層を同定する。次にこのチャンネル層を層内の他のチャンネルとランダムに入れ替えを行い、その結果全体の近似精度が向上したら入れ替えを採用する。
このように、コードブック係数に対してCNNの重みをソーティングする学習の方法の一形態について述べた。しかし、既存のコードブックに合わせてCNNの学習を行うという観点からは、同種の方法が様々考えられ、本実施形態はここで示す方法に限られるものではない。
<学習動作の変形例4>
変形例4は、ユーザがユーザ指示部109を使ってパラメータの制約条件を設定し、その制約条件内で学習を最適化するものである。例えば、メモリサイズの最大値等を入力し、パラメータ符号化部102が圧縮後のサイズが条件値を超えないように、ハイパーパラメータであるKやNを探索する方法である。これは、学習時に所定の間隔で上記パラメータの値を変更してみて、数式7のような評価式の値が最も高く、且つ制約条件を満たすようなパラメータの変更を採用する等の方法が考えられる。
評価値=圧縮後のサイズ増分率×近似誤差の低減率 (数式7)
[第2の実施形態]
次に、本発明の第2の実施形態について説明する。第1の実施形態では全ての層に共通のコードブックを用いて重みパラメータの圧縮を行った。これに対し、本実施形態では、情報処理装置のメモリ量を圧縮するために、階層のそれぞれでタイミングを変えて異なるコードブックのセットを読み出して利用する方法について述べる。なお、第1の実施形態において既に説明を行った構成については、その説明は省略する。
図8は、本実施形態における近似圧縮を説明する模式図である。本実施形態では、図8のように、全層に共通のコードブック0の他に、第1層と第2層でコードブックセット1が、第2層と第3層でコードブックセット2が、第3層と第4層でコードブックセット3がそれぞれ読み出されて利用される。また、不要となったコードブックセットは、都度メモリから消去することで使用メモリ量を一定値に抑えるようにする。
CNNは、低層ではガボールフィルタのような重みが高層ではゼロ値の多いスパースな重みのパラメータとなることが多いため、このように緩やかに低層、中層、高層とコードブックを分けることで、使用メモリ量を増やさずに近似精度を向上することができる。なお、各層間で異なるコードブックを用いる場合は、コードブックの学習時にそれぞれの層で個別にコードブックとコードブック係数を学習すればよい。
一方で、図8のように、複数のコードブックセットを互いに重なったタイミングで利用したい場合には、例えば次のような学習処理を行えばよい。図9は第2の実施形態に係る学習動作のフローチャートであり、本実施形態は、このフローチャートに従った学習を行う。この学習処理は、第1の実施形態の図3のステップS107からステップS113までの処理の内容を修正したものである。
本実施形態の処理フローでは、まずステップS301で、どの層でどの程度の大きさのコードブックセットを用いるかを設定する。これは、予め所定の値を与えておくか、ユーザ指示部109などでユーザに入力させて設定する。次に、ステップS302では、パラメータ符号化部102が、全てのコードブックセットとコードブック係数の値を乱数で初期化する。次に、ステップS304からステップS309に示すように、各層ごとに順次コードブック係数の学習更新を行う。具体的には、まず、パラメータ符号化部102が、処理対象の層の重みパラメータと、使用するべきコードブックセットを全て読み出す(ステップS305)。ここで、重みパラメータは分割済みとする。
次に、パラメータ符号化部102は、当該層の重みパラメータが近似できるように数式3を用いて各コードブック係数の更新を行う(ステップS307)。このとき、近似に用いるコードブックベクトルは当該層に用いるとしたコードブックセットの中だけに限定する。このようにして、各層ごとに学習更新を行い、全層の更新が1イタレーション終了したら、全コードブックセットのコードブックベクトルの値を数式3に従って更新する(ステップS310)。以上の処理を所定回数繰り返すことにより、互いに重なったタイミングで用いる複数のコードブックセットが適切に学習される。以上の構成により、各層でタイミングを変えて異なるコードブックのセットを読み出して利用することができる。
上述の説明では、複数の層に跨るコードブックのセットについて述べたが、別の形態としては各層がそれぞれ独立して異なるコードブックセットを持ち、各層の演算を始める前に都度コードブックセットを読み込むような形態なども考えられる。このように、本実施形態は、コードブックのセットの保持および読み込みのタイミングに関し、特定の形態に限定されるものではない。
[第3の実施形態]
次に、本発明の第3の実施形態について説明する。第1、第2の実施形態は、画像データについてCNNの重みパラメータを近似圧縮したが、本実施形態では、さらにこれを一般化してより高次元のデータを処理するCNNにも適応できることを示す。なお、高次元のデータとしては、例えば奥行き情報のデータや医用の画像診断で使われるようなボクセル画像、また動画などが挙げられる。以下の説明では、動画を例にして、これを処理するCNNのパラメータの近似圧縮の形態について述べる。なお、第1、第2の実施形態において既に説明を行った構成については、その説明は省略する。
図10は、第3の実施形態において近似圧縮を説明する模式図である。図10(A)に示すように、時系列情報に対して畳み込みを行うためのパラメータ1001は5次のテンソルであり、サイズはw×h×tc1×d×dと記述できる。このように高次のデータではあるものの、第1の実施形態と同様にこれを所定のラスター順に整列し、サイズw×h×Nの重みパラメータへ分解し、各々の部分をコードブック近似することで近似圧縮が可能である。例えば、第1層の場合、畳み込みパラメータのサイズを3×3×3×3×24とすると、3×3×8のサイズの単位要素に分解すれば、27個の単位要素へと分解されることになる。参考として、ある設定条件におけるCNNのパラメータの圧縮を図10(B)に示す。この設定値では、11%程度に圧縮されることが示されている。
以上のように、本実施形態によれば、奥行き情報のデータやボクセル画像、また動画などに対して、精度よく近似圧縮を行うことができる。
[第4の実施形態]
次に、本発明の第4の実施形態について説明する。上述の各実施形態では、パラメータのコードブックベクトルは実数の値を用いていたが、本実施形態では、これを2値とする例について説明する。本実施形態では、コードブックベクトルを2値化することにより、近似精度が下がる可能性もある一方、メモリサイズの低減や計算負荷量の削減といった効果が期待できる。なお、第1〜第3の実施形態において既に説明を行った構成については、その説明は省略する。
図11は重みの再構成を用いる畳み込み演算を説明する図であり、図12は重みの再構成を用いない畳み込み演算を説明する図である。この図11および図12を用いて、コードブックベクトルが実数値の場合と2値の場合について説明する。上述の各実施形態では、図11のように実数値からなるK個のコードブックから畳み込みのパラメータを再構成し、畳み込み演算を行った。このとき、同図で示した1箇所の畳み込み動作には3×3×N回の積算と3×3×N回の加算の演算が必要である。
これに対して、図12は2値のコードブックベクトルを用いた形態である。なお、この学習の方法については後述する。この図12に示す形態では、畳み込みカーネルを再構成せずに、各K個のコードブックベクトルごとに特徴マップの畳み込みを行う。具体的には、次のように行う。
(1)コードブックベクトルの3×3×N個の要素を参照し、値が1であれば対応する特徴マップの値を読み込み、特徴マップ加算結果1201に加算していく。一方、0であれば加算しない。
(2)上記処理が各K個のコードブックについて終了したら、K個の加算結果1201にそれぞれコードブック係数を掛けてから総和を求め、畳み込みの結果とする。
以上により、1箇所の畳み込みの演算が完了する。畳み込みに必要な演算の回数は乗算がK回、加算が最大で3×3×N×K+K回である。特に、畳み込みの空間サイズが5×5や7×7と大きなCNNの場合、乗算数の少ない本実施形態は回路の規模等で有利な構成とになる。
次に、2値のコードブックベクトルを学習して得るための方法について説明する。これは、下記の数式8を用いてコードブックを学習すればよい。
minX,AΣ||c−Ax||+λ|x|+λQ(A),
Q(A)=Σij|aij−qnearest| (数式8)
数式8は、第3の実施形態で示した数式3を一般化した形態になっており、コードブックの2値化制約項Q(A)を備えている。Q(A)中のqnearestの項は、2値{0,1}のうち、aijの値が近い方の値を取る変数である。この数式8を用いて2値のコードブックベクトルを学習で得るために、以下のような処理を行う。
まず、全コードブックベクトルを乱数で初期化して学習を開始する。学習の経過とともに、徐々にλの値を大きくしていき、値が2値に近づくようにする。学習が収束したら、最後に閾値0で2値化して各コードブックベクトルの全ての要素の値を2値{0,1}に丸める。これにより、2値の値を要素とするコードブックが得られる。
なお、本実施形態の変形例として、コードブックの要素をa∈{−1,1}の2値やa∈{−1,0,1}の3値としてもよい。また、離散値の精度は2値〜nビットまで任意の精度が考えられる。また、コードブックベクトルごとに離散値の精度を変えるような形態も考えられる。また、複数の定数値をコードブックベクトルの要素とすることも考えられる。この形態では、参照テーブルを併せて使用することで少ないビット数でコードブックベクトルを表現することができる。
また、コードブックベクトルのみならずコードブックの係数についても上記のように様々な離散化を行うこともできる。
さらに別の変形例として、非特許文献3に開示されるようにニューラルネットの重みの値自体が2値{−1,1}や3値{−1,0,1}で構成される特殊なニューラルネットを近似する形態も考えられる。この場合、コードブックベクトルやコードブックの係数は2値でもよいし実数値でもよい。ニューラルネットの重みの値が2値{−1,1}の場合、重みパラメータの再構成の際には以下の数式8のように閾値処理を行えばよい。
(i,j)=sign(Σm∈{Top(K)}(i,j,m)) (数式9)
以上、本実施形態によれば、2値のコードブックを用いることにより、更なるメモリサイズの低減、計算負荷量の削減が可能となる。なお、上述したとおり、コードブックベクトル、コードブックの係数、および再構成の対象である重みパラメータの形態には様々な変形例が考えられる。しかし、本実施形態は特定の形態に限定されるものではなく、要求される圧縮率と近似精度等に基づいて、最適な構成を採用すればよい。
[その他の実施形態]
また、本発明は、上記実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPU等)がプログラムを読出し実行する処理である。また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施例の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
101 パラメータ分割部
102 パラメータ符合化部
103 コードブック記憶部
104 パラメータ再構成部
105 ニューラルネット演算部
106 データ入力部
107 結果出力部
108 ニューラルネット・パラメータ記憶部
109 ユーザ指示部

Claims (14)

  1. 畳み込みニューラルネットの重みパラメータを複数のグループに分割する分割手段と、
    前記分割されたグループごとに、前記重みパラメータを複数のコードブックにより近似して符号化する符号化手段と、を有し、
    前記符号化手段は、前記畳み込みニューラルネットワークの第1階層の前記重みパラメータを符号化する場合と、前記第1階層より高層の第2層の前記重みパラメータを符号化する場合とで異なるコードブックを用いて符号化を行うことを特徴とする情報処理装置。
  2. 前記分割手段は、前記重みパラメータを所定の方法で整列した後に前記複数のグループに分割することを特徴とする請求項1に記載の情報処理装置。
  3. 前記重みパラメータは、2値あるいは3値の値を要素とすることを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記複数のコードブックそれぞれは、複数のコードブックベクトルにより構成され、
    前記符号化手段により決定されたコードブック係数と、当該コードブック係数に対応するコードブックベクトルとの線形和により前記重みパラメータを再構成する再構成手段をさらに有することを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
  5. 前記符号化手段は、前記重み係数を、前記複数のコードブックによる前記重みパラメータの近似精度の損失項と前記重み係数のスパース項としての損失項を含む損失関数を最適化することによって決定することを特徴とする請求項4に記載の情報処理装置。
  6. 前記再構成手段は前記重みパラメータの再構成の対象となるニューラルネットの階層に応じて異なるコードブックのセットを読み込んで用いることを特徴とする請求項4または5に記載の情報処理装置。
  7. 前記重み係数と前記コードブックベクトルの少なくとも一方は、2値あるいは3値の値を要素とすることを特徴とする請求項4から6のいずれか1項に記載の情報処理装置。
  8. ユーザが学習のパラメータに対する制約条件を指示するための指示手段をさらに有ることを特徴とする請求項4から7のいずれか1項に記載の情報処理装置。
  9. 前記符号化手段は、前記指示手段により指示された前記制約条件を満たすように学習を行い、当該学習の結果に基づいて前記重みパラメータを符号化することを特徴とする請求項8に記載の情報処理装置。
  10. 前記指示手段は、メモリに関する前記制約条件の指示を前記ユーザから受付け、
    前記符号化手段は、符号化圧縮した際の前記重みパラメータが前記メモリに記憶可能となるように前記重みパラメータを符号化することを特徴とする請求項9に記載の情報処理装置。
  11. 前記符号化手段は、前記畳み込みニューラルネットの畳み込み層における畳み込み演算の画素サイズに応じて異なるコードブックを用いて前記重みパラメータを符号化することを特徴とする請求項1から10のいずれか1項に記載の情報処理装置。
  12. 前記分割手段は、分割された前記重みパラメータが同一サイズとなるように前記重みパラメータを複数のグループに分割することを特徴とする請求項1から11のいずれか1項に記載の情報処理装置。
  13. 情報処理装置が実施する情報処理方法であって、
    畳み込みニューラルネットの重みパラメータを複数のグループに分割するステップと、
    前記分割されたグループごとに、前記重みパラメータを複数のコードブックにより近似して符号化するステップと、を有し、
    前記符号化するステップにおいて、前記情報処理装置は、前記畳み込みニューラルネットワークの第1階層の前記重みパラメータを符号化する場合と、前記第1階層より高層の第2層の前記重みパラメータを符号化する場合とで異なるコードブックを用いて符号化を行うことを特徴とする情報処理方法。
  14. コンピュータを請求項1から12のいずれか1項に記載の情報処理装置として機能させるためのプログラム。
JP2016188412A 2016-09-27 2016-09-27 情報処理装置、情報処理方法及びプログラム Active JP6869676B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016188412A JP6869676B2 (ja) 2016-09-27 2016-09-27 情報処理装置、情報処理方法及びプログラム
US15/713,470 US11720786B2 (en) 2016-09-27 2017-09-22 Information processing apparatus, information processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016188412A JP6869676B2 (ja) 2016-09-27 2016-09-27 情報処理装置、情報処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2018055260A JP2018055260A (ja) 2018-04-05
JP6869676B2 true JP6869676B2 (ja) 2021-05-12

Family

ID=61685574

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016188412A Active JP6869676B2 (ja) 2016-09-27 2016-09-27 情報処理装置、情報処理方法及びプログラム

Country Status (2)

Country Link
US (1) US11720786B2 (ja)
JP (1) JP6869676B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11640526B2 (en) * 2017-05-23 2023-05-02 Intel Corporation Methods and apparatus for enhancing a neural network using binary tensor and scale factor pairs
JP6714297B2 (ja) * 2017-09-12 2020-06-24 株式会社アクセル 処理装置及び推論処理方法
WO2019220008A1 (en) * 2018-05-15 2019-11-21 Nokia Technologies Oy A method for neural networks
JP7240657B2 (ja) 2018-05-15 2023-03-16 Tokyo Artisan Intelligence株式会社 ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム
US11189367B2 (en) * 2018-05-31 2021-11-30 Canon Medical Systems Corporation Similarity determining apparatus and method
CN110739974B (zh) * 2018-07-19 2023-11-10 嘉楠明芯(北京)科技有限公司 数据压缩方法及装置和计算机可读存储介质
US11461653B2 (en) * 2019-01-23 2022-10-04 StradVision, Inc. Learning method and learning device for CNN using 1xK or Kx1 convolution to be used for hardware optimization, and testing method and testing device using the same
JP7028819B2 (ja) * 2019-03-13 2022-03-02 Kddi株式会社 付加情報埋込装置、付加情報検出装置、付加情報埋込方法、及びプログラム
US11966837B2 (en) * 2019-03-13 2024-04-23 International Business Machines Corporation Compression of deep neural networks
KR20200122707A (ko) 2019-04-18 2020-10-28 에스케이하이닉스 주식회사 프로세싱 엘리먼트 및 프로세싱 시스템
CN110097008B (zh) * 2019-04-30 2021-02-19 苏州大学 一种人体动作识别方法
CN110796238B (zh) * 2019-10-29 2020-12-08 上海安路信息科技有限公司 基于arm架构fpga硬件系统的卷积神经网络权重压缩方法及其装置
JP2020123384A (ja) * 2020-04-17 2020-08-13 株式会社アクセル 処理装置及び推論処理方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3029606A3 (en) * 2014-11-14 2016-09-14 Thomson Licensing Method and apparatus for image classification with joint feature adaptation and classifier learning
CN105184362B (zh) * 2015-08-21 2018-02-02 中国科学院自动化研究所 基于参数量化的深度卷积神经网络的加速与压缩方法

Also Published As

Publication number Publication date
US11720786B2 (en) 2023-08-08
US20180089564A1 (en) 2018-03-29
JP2018055260A (ja) 2018-04-05

Similar Documents

Publication Publication Date Title
JP6869676B2 (ja) 情報処理装置、情報処理方法及びプログラム
US11715287B2 (en) Systems and methods for exchange of data in distributed training of machine learning algorithms
US11593586B2 (en) Object recognition with reduced neural network weight precision
Choukroun et al. Low-bit quantization of neural networks for efficient inference
Sulam et al. Multilayer convolutional sparse modeling: Pursuit and dictionary learning
US11227364B2 (en) Computer-implemented method using convolutional neural network, apparatus for generating composite image, and computer-program product
US20210125070A1 (en) Generating a compressed representation of a neural network with proficient inference speed and power consumption
Wang et al. Factorized convolutional neural networks
JP6574503B2 (ja) 機械学習方法および装置
Young et al. Transform quantization for CNN compression
US11481613B2 (en) Execution method, execution device, learning method, learning device, and recording medium for deep neural network
CN112801279A (zh) 用于卷积神经网络的超像素方法
Wang et al. Design of efficient convolutional layers using single intra-channel convolution, topological subdivisioning and spatial" bottleneck" structure
CN111932445A (zh) 对风格迁移网络的压缩方法及风格迁移方法、装置和系统
US11657285B2 (en) Methods, systems, and media for random semi-structured row-wise pruning in neural networks
CN109543029B (zh) 基于卷积神经网络的文本分类方法、装置、介质和设备
CN110298446A (zh) 面向嵌入式系统的深度神经网络压缩和加速方法及系统
KR20220058628A (ko) 신경망 모델 압축
CN113642726A (zh) 用于压缩激活数据的系统和方法
WO2021038793A1 (ja) 学習システム、学習方法、及びプログラム
US11907834B2 (en) Method for establishing data-recognition model
Qi et al. Learning low resource consumption cnn through pruning and quantization
CN114781639A (zh) 面向边缘设备多层共享码本向量量化的深度模型压缩方法
Shen et al. Golomb-Rice coding parameter learning using deep belief network for hyperspectral image compression
WO2021179117A1 (zh) 神经网络通道数搜索方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190924

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200715

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210115

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210414

R151 Written notification of patent or utility model registration

Ref document number: 6869676

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151