JP6902318B2 - ニューラルネットワークの全結合層を畳み込み層に置き換えるプログラム - Google Patents

ニューラルネットワークの全結合層を畳み込み層に置き換えるプログラム Download PDF

Info

Publication number
JP6902318B2
JP6902318B2 JP2018148013A JP2018148013A JP6902318B2 JP 6902318 B2 JP6902318 B2 JP 6902318B2 JP 2018148013 A JP2018148013 A JP 2018148013A JP 2018148013 A JP2018148013 A JP 2018148013A JP 6902318 B2 JP6902318 B2 JP 6902318B2
Authority
JP
Japan
Prior art keywords
order tensor
dimensional
dimension
convolution
tensor
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
JP2018148013A
Other languages
English (en)
Other versions
JP2020024524A (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.)
KDDI Corp
Original Assignee
KDDI Corp
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 KDDI Corp filed Critical KDDI Corp
Priority to JP2018148013A priority Critical patent/JP6902318B2/ja
Publication of JP2020024524A publication Critical patent/JP2020024524A/ja
Application granted granted Critical
Publication of JP6902318B2 publication Critical patent/JP6902318B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Description

本発明は、ニューラルネットワーク(Neural Network)の技術に関する。特に、モバイルや組み込み機器等の小型デバイスに適する。
ニューラルネットワークとは、生体の脳における特性を計算機上のシミュレーションによって表現することを目指した数学モデルをいう。このモデルは、シナプスの結合によってネットワークを形成した人工ニューロン(ユニット)が、学習によってシナプスの結合強度を変化させ、問題解決能力を持つようになる。
画像におけるニューラルネットワークによれば、機械学習の工程の中で、全結合層(Fully Connected Layer)と、畳み込み層(Convolutional Layer)とを組み合わせる。全結合層は、全ての入力ノードを、出力ノード毎に線形結合させる。畳み込み層は、画素毎に隣接画素と合わせて、画素間で共通のフィルタを適用して特徴量を出力する。
近年、ニューラルネットワークの中では、GAN(Generative Adversarial Network、敵対的生成ネットワーク)が注目されている。GANは、教師なし機械学習として、ゼロサムゲームフレームワークで互いに競合する2つのニューラルネットワークによって実装される。
図1は、GANの基本構成図である。
GANは、以下の2つのネットワークによって構成される。
「生成器G(Generator)」:
識別器Dが本物と識別する(欺く)ように敵対的に学習する。
「識別器D(Discriminator)」:
生成器Gから出力された生成画像(Fake)と、本物画像(学習サンプル)とを見分けるように学習する。
生成器G及び識別器Dの学習を交互に繰り返すことによって、結果的に、生成器Gは、本物画像(Real)と見分けがつかない画像(Fake)を生成できるようになる。
GANの代表例として、DCGAN(Deep Convolutional GAN)がある。DCGANは、生成器G及び識別器Dを、全結合層(Dense)と2次元畳み込み層(Conv2D)との組み合わせによって構成する。
識別器Dは、ニューラルネットワークによる一般的な画像分類器と同様に、段階的に解像度を下げながら、2次元畳み込み層(Conv2D)を適用することによって、画素単位のエッジなどの特徴を抽出した特徴量マップを生成する。その特徴マップを、全結合層(Dense)へ入力し、最終的な画像分類の結果を出力する。
GANの識別器Dは、本物に近い画像ほど1に近い値を出力し、偽物に近い画像ほど0に近い値を出力する。
識別器Dの学習時は、本物画像(学習サンプル)の分類結果を1とし、生成器Gから出力された生成画像の分類結果を0とするように学習する。
また、生成器Gの学習時には、生成器Gから出力された生成画像を識別器Dで分類し、その結果が1となるように、識別器Dの重みパラメータを固定して生成器Gのみ学習する。
図2は、生成器Gの構成図である。
生成器Gは、例えば以下のステップを実行する。即ち、識別器Dとは逆向きとなる。
生成器Gの全結合層(Dense)は、例えば128次元の1階テンソル(ベクトル、潜在変数)を入力する。
最初の全結合層(Dense)で例えば2048次元に変換し、次の全結合層(Dense)で例えば256×7×7次元に変換する。
次に、画像の特徴量マップの形である次元数(7,7,256)の3階テンソルに整列する。
段階的に解像度を上げながら、2次元畳み込み層(Conv2D)によって画像を精細化する。そして、例えば次元数(56,56,3)の3階テンソルで表された画像を生成する。
図3は、従来技術における乗算回数及び重みパラメータ数を表す説明図である。
図3によれば、全結合層(Dense)によって、2048(=M)次元の1階テンソルから、256×7×7(=N)次元に変換されている。
この場合、乗算回数は、M×N=2,048×256×7×7=25,690,112回となる。
同様に、重みパラメータ数も、M×N=2,048×256×7×7=25,690,112回となる。
データ量としては、単精度浮動小数(32ビット)の場合、約103MBとなる。
ここで、DCGANを例えば小型デバイスで実行させる場合、生成器Gにおける乗算回数や重みパラメータ数が多くなるほど、メモリ消費量や、重みパラメータのダウンロードの通信量の観点から、好ましくない。
また、小型デバイスの場合、ニューラルネットワークを動作させるためのフレームワークが多様化している。例えばCore ML(iOS), TensorFlow Lite(Android), TensorFlow.js (JavaScript(登録商標))等がある。そのために、フレームワークに依存するレイヤ実装は、極力避けることが好ましい。
従来、全結合層(Dense)と同等の機能を提供するために、全結合層(Dense)の重みパラメータ行列を近似することによって、重みパラメータ数を削減する技術がある。例えば特異値分解(Singular Value Decomposition; SVD)(例えば非特許文献1)や、クロネッカー積(Kronecker Product)(例えばは非特許文献2)がある。
また、コードブックを用いて、全結合層(Dense)の重みパラメータ行列を近似して精度を高める技術もある(例えば特許文献1参照)。
特開2018−055260号公報
E. Denton et al, "Exploiting linear structure within convolutional networks for efficient evaluation," Proceedings of the 27th International Conference on Neural Information Processing Systems (NIPS ’14), Vol. 1, Dec. 2014. S. Zhou et al, "Compression of fully-connected layer in neural network by Kronecker product," Eighth International Conference on Advanced Computational Intelligence (ICACI 2016), Feb. 2016. A. Radford et al, "Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks," Fourth International Conference on Learning Representations (ICLR 2016), May 2016. V. Lebedev, et.al., "Speeding-up Convolutional Neural Networks Using Fine-tuned CP-Decomposition," Third International Conference on Learning Representations (ICLR 2015), May 2015.
前述した特許文献1によれば、全結合層(Dense)を精度高く近似しつつ、保存すべき重みパラメータのバイト数を大幅に削減できる。しかしながら、実際の処理時には、コードブックに応じた再構成処理が必要となり、そのための独自拡張レイヤの実装が必要となる。
また、前述した非特許文献1及び2によれば、モデル内での重みパラメータ数を削減することができる。しかしながら、特異値分解やクロネッカー積のような、一般的なニューラルネットワークのフレームワークには通常含まれない特別な行列演算を必要とする。このため、一部のフレームワークを除き、独自拡張レイヤとしてこれらの演算を実装する必要がある。また、重みパラメータのモバイル向けフォーマット変換も困難となる。
そこで、本発明によれば、再構成や特別な行列演算のためのカスタムレイヤの実装を必要とすることなく、ニューラルネットワークの全結合層を畳み込み層に置き換えることによって、乗算回数及び重みパラメータ数を大幅に削減することができるプログラムを提供することを目的とする。
本発明によれば、M次元の1階テンソルからN次元の1階テンソルへ変換する全結合層を、畳み込み層に置き換えるようにコンピュータを機能させるプログラムであって、
M及びNの公約数となる次元数d(<M,<N)を設定し、
M次元の1階テンソルを、(d,M/d)次元の2階テンソルに並び替える入力並び替え手段と、
(d,M/d)次元の2階テンソルに対して、フィルタカーネルのサイズを1とする1次元畳み込みによって、(d,N/d)次元の第1の2階テンソルに変換する第1方向畳み込み手段と、
(d,N/d)次元の第1の2階テンソルを、(N/d,d)次元の第1の2階テンソルを転置する転置手段と、
転置された(N/d,d)次元の第1の2階テンソルに対して、フィルタカーネルのサイズを1とする1次元畳み込みによって、(N/d,d)次元の第2の2階テンソルに変換する第2方向畳み込み手段と、
(N/d,d)次元の第2の2階テンソルを、N次元の1階テンソルに並び替える出力並び替え手段と
してコンピュータを機能させることを特徴とする。
本発明によれば、M次元の1階テンソルからN次元の1階テンソルへ変換する全結合層を、畳み込み層に置き換えるようにコンピュータを機能させるプログラムであって、
M及びNの公約数となる次元数d(<M,<N)を設定し、
M次元の1階テンソルを、(M/d,d)次元の2階テンソルに並び替える入力並び替え手段と、
(M/d,d)次元の2階テンソルに対して、フィルタカーネルのサイズを1とする1次元畳み込みによって、(M/d,d)次元の第1の2階テンソルに変換する第1方向畳み込み手段と、
(M/d,d)次元の第1の2階テンソルを、(d,M/d)次元の第1の2階テンソルに転置する転置手段と、
転置された(d,M/d)次元の第1の2階テンソルに対して、フィルタカーネルのサイズを1とする1次元畳み込みによって、(d,N/d)次元の第2の2階テンソルに変換する第2方向畳み込み手段と、
(d,N/d)次元の第2の2階テンソルを、N次元の1階テンソルに並び替える出力並び替え手段と
してコンピュータを機能させることを特徴とする。
本発明にプログラムにおける他の実施形態によれば、
N/M=r1×r2のr1,r2が自然数として成立し、且つ、d×r1及びr2×M/dの両方が自然数として成立する場合、
第1方向畳み込み手段は、(M/d,d×r1)次元の第1の2階テンソルに変換し、
前記転置手段は、(d×r1,M/d)次元の第1の2階テンソルに転置し、
第2方向畳み込み手段は、(d×r1,r2×M/d)次元の第2の2階テンソルに変換し、
前記出力並び替え手段は、(d×r1,r2×M/d)次元の第2の2階テンソルを、N次元の1階テンソルに並び替える
ようにコンピュータを機能させることも好ましい。
本発明のプログラムによれば、M次元の1階テンソルからN次元の1階テンソルへ変換する全結合層を、畳み込み層に置き換えるようにコンピュータを機能させるプログラムであって、
M及びNの公約数となる次元数d1及びd2(<M,<N)を設定し、
M次元の1階テンソルを、(d1,d2,M/(d1×d2))次元の3階テンソルに並び替える入力並び替え手段と、
並び替えられた(d1,d2,M/(d1×d2))次元の3階テンソルに対して、フィルタカーネルのサイズを(1,1)とする2次元畳み込みによって、(d1,d2,N/(d1×d2))次元の第1の3階テンソルに変換する第1方向畳み込み手段と、
(d1,d2,N/(d1×d2))次元の第1の3階テンソルを、(d2,N/(d1×d2),d1)次元の第1の3階テンソルに転置する第1の転置手段と、
転置された(d2,N/(d1×d2),d1)次元の第1の3階テンソルに対して、フィルタカーネルのサイズを(1,1)とする2次元畳み込みによって、(d2,N/(d1×d2),d1)次元の第2の3階テンソルに変換する第2方向畳み込み手段と、
(d2,N/(d1×d2),d1)次元の第2の3階テンソルを、(N/(d1×d2),d1,d2)次元の第2の3階テンソルに転置する第2の転置手段と、
転置された(N/(d1×d2),d1,d2)次元の第2の3階テンソルに対して、フィルタカーネルのサイズを(1,1)とする2次元畳み込みによって、(N/(d1×d2),d1,d2)次元の第3の3階テンソルに変換する第3方向畳み込み手段と、
(N/(d1×d2),d1,d2)次元の第3の3階テンソルを、N次元の1階テンソルに並び替える出力並び替え手段と
してコンピュータを機能させることを特徴とする。
本発明のプログラムにおける他の実施形態によれば、
畳み込み層に置き換えるべき全結合層は、GAN(Generative Adversarial Networks)のGeneratorに基づくものである
ようにコンピュータを機能させることも好ましい。
本発明のプログラムによれば、再構成や特別な行列演算のためのカスタムレイヤの実装を必要とすることなく、ニューラルネットワークの全結合層を畳み込み層に置き換えることによって、乗算回数及び重みパラメータ数を大幅に削減することができる。
GANの基本構成図である。 生成器Gの構成図である。 従来技術における乗算回数及び重みパラメータ数を表す説明図である。 本発明における2段階の1次元畳み込みに分解した機能構成図である。 本発明におけるテンソルの並びを表す第1の説明図である。 本発明におけるテンソルの並びを表す第2の説明図である。 本発明における乗算回数及び重みパラメータ数を表す説明図である。 本発明における3段階の2次元畳み込みに分解した機能構成図である。
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
前提として、本発明は、重みパラメータを削減したモデルに対して直接的に学習するものであって、学習済みモデルの重みパラメータを削減するものではない。
畳み込み層の場合、フィルタのカーネルを分解することによって、重みパラメータを削減する技術がある。例えばCanonical Polyadic (CP)分解の技術がある(例えば非特許文献4参照)。この技術は、4階テンソルとして表されるカーネルを、4段階の2階テンソルに分解して、それぞれによる畳み込み層を重ね合わせるものである。
畳み込み層のカーネル分解は、サイズを縮小した複数のカーネルへ分解するために、複数の畳み込み層への変換となり、独自レイヤの追加などはほとんど発生しない。
これに対し、全結合層の場合、同様の分解はできない。そのために、全結合層を、何らかの畳み込み層に置き換えることによって分解して、重みパラメータを削減する必要がある。
まず、全結合層は、1次元畳み込み層(Conv1D)で、同等の変換として置き換えることができる。具体的には、全結合層は、次元数Mの1階テンソルを入力し、次元数(1,M)の2階テンソルへの並び替えと、1次元畳み込みConv1D(N,1)と、次元数Nの1階テンソルへの並び替えとに置き換えられる。尚、Conv1D(D,K)について、Dは変換後の次元数、Kはフィルタのカーネルサイズとする。
ニューラルネットワークによれば、次元数(A,B)の2階テンソルは、「各々がB個の特徴量を持ったA個の1次元の要素」として扱い、1次元畳み込みを適用する。1次元畳み込み層(Conv1D)では、隣接する要素間でフィルタを適用したり、特徴量の次元数をBからCに変換したりするなどの演算を、一度の行列乗算によって実行する。
この置き換えでは、前述した図3と同様に、乗算回数も重みパラメータ数も同じである。即ち、乗算回数及び重みパラメータ数はいずれも、M×Nとなり、2,048次元から256×7×7次元への変換であれば、前述のとおり25,690,112となる。
本発明によれば、多数の重みパラメータを持つ全結合層の機能を、複数チャネルの1次元畳み込み層と行列の転置と並び替えとに置き換えることによって、既存のニューラルネットワークで特殊な拡張レイヤを加えることなく、少ない重みパラメータ数で実現することができる。
本発明によれば、以下の2つの実施形態がある。
<第1の実施形態> 全結合層を2段階の1次元畳み込みに分解したもの
<第2の実施形態> 全結合層を3段階の2次元畳み込みに分解したもの
<第1の実施形態>
図4は、本発明における2段階の1次元畳み込みに分解した機能構成図である。
第1の実施形態によれば、全結合層を、2段階の1次元畳み込みに分解したものである。図4のプログラムの構成によれば、M次元の1階テンソルからN次元の1階テンソルへ変換する全結合層を、畳み込み層に置き換えるようにコンピュータを機能させる。
図4によれば、全結合層は、入力並び替え部11と、第1方向畳み込み部12と、転置部13と、第2方向畳み込み部14と、出力並び替え部15とに置き換えられる。これら機能構成部は、装置に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。
入力並び替え部11は、M次元の1階テンソルを、2階テンソルに並び替える。
第1方向畳み込み部12は、並び替えられた2階テンソルに対して、畳み込みによって、第1の2階テンソルに変換する。
転置部13は、第1の2階テンソルを転置する。
第2方向畳み込み部14は、転置された第1の2階テンソルに対して、畳み込みによって、第2の2階テンソルに変換する。
出力並び替え部15は、第2の2階テンソルを、N次元の1階テンソルに並び替える。
第1の実施形態として、以下の2つのパターンがある。
<第1−1の実施形態:第1方向畳み込み部12が次元数の増減を実行>
<第1−2の実施形態:第2方向畳み込み部14が次元数の増減を実行>
<第1−1の実施形態:第1方向畳み込み部12が次元数の増減を実行>
M次元の1階テンソルからN次元の1階テンソルへ変換する全結合層は、以下のように表される。
入力されるM次元の1階テンソル[m0,m1,・・・,mM
出力されるN次元の1階テンソル[n0,n1,・・・,nN
全結合層の1次元畳み込み層(Conv1D)の重みパラメータw(i,j,1) Conv1D
(フィルタのカーネルサイズ=1)
j=Σi(i,j,1) Conv1Di
図5は、本発明におけるテンソルの並びを表す第1の説明図である。
[入力並び替え部11]
入力並び替え部11は、M次元の1階テンソルを、(d,M/d)次元の2階テンソルに並び替える(図5(a)参照))。ここで、次元数d(<M,<N)は、M及びNの公約数となるように設定する。
並び替え後の次元数(d,M/d)の2階テンソルの各要素は、以下のように表される。
m'p,q (p=0,1,・・・,d-1、q=0,1,・・・.M/d-1)
m'p,q=mpM/d+q
[第1方向畳み込み部12]
第1方向畳み込み部12は、(d,M/d)次元の2階テンソルに対して、フィルタカーネルのサイズを1とする1次元畳み込みConv1D_1(d,1)によって、(d,N/d)次元の第1の2階テンソルに変換する(図5(b)参照))。
第1の2階テンソルの各要素は、以下のように表される。
p,q (p=0,1,・・・,d-1、q=0,1,・・・,N/d-1)
1次元畳み込み(Conv1D_1)の重みパラメータを、w(i,j,k) Verとすると、以下のように表される。
p,q=Σy=0 M/d-1(y,q,1) Verm'p,y
1次元畳み込み(Conv1D_1)における乗算回数及び重みパラメータ数は、以下のようになる。
乗算回数 :M/d×N/d×d=MN/d
重みパラメータ数:M/d×N/d=MN/d2
第1方向畳み込み部12におけるd×1次元の1次元畳み込みは、フィルタのカーネルサイズを1とし、隣接要素を交えたフィルタ演算は適用しない。
[転置部13]
転置部13は、(d,N/d)次元の第1の2階テンソルを、(N/d,d)次元の2階テンソルに転置する(図5(c)参照))。
p,q =lq,p
1回目の1次元畳み込み(Conv1D_1)によってqの階の次元に対して変換したために、次に、2回目の1次元畳み込みによってpの階の次元に対して変換することができるように転置する。
図6は、本発明におけるテンソルの並びを表す第2の説明図である。
[第2方向畳み込み部14]
第2方向畳み込み部14は、転置された(N/d,d)次元の2階テンソルに対して、フィルタカーネルのサイズを1とする1次元畳み込み(Conv1D_2)によって、(N/d,d)次元の第2の2階テンソルに変換する(図6(a)参照))。
出力される2階テンソルの各要素は、以下のように表される。
n'p,q (p=0,1,・・・,N/d-1、q=0,1,・・・,d-1)
n'p,q=Σx=0 d-1(x,q,1) Horp,x
=Σx=0 d-1(x,q,1) Horx,p
=Σx=0 d-1Σy=0 M/d-1(x,q,1) Hor(y,p,1) Verm'x,y
これにより、各n'p,qは、d×M/d=M個の変数mx,yによる線形結合によって表される。
1次元畳み込み(Conv1D_2)における乗算回数及び重みパラメータ数は、以下のようになる。
乗算回数 :d×d×N/d=dN
重みパラメータ数:d2
第2方向畳み込み部14における1×d次元の1次元畳み込みは、フィルタのカーネルサイズを1とし、隣接要素を交えたフィルタ演算は適用しない。
第2方向畳み込み部14の畳み込み方向と、第1方向畳み込み部12の畳み込み方向とは互い直交し、入力されたM次元の1階テンソルの全要素と、出力されるN次元の1階テンソルの全要素とが結合する。
第1方向畳み込み部12(Conv1D_1)ではqの階の次元に対して変換し、第2方向畳み込み部14(Conv1D_2)ではpの階の次元で変換する。結果として、njを全てのmiの線形結合の形となるようにし、元の全結合層を近似できるようにする。
[出力並び替え部15]
出力並び替え部15は、(N/d,d)次元の第2の2階テンソルを、N次元の1階テンソルに並び替える(図6(b)参照))。
最終的に、n'p,qを並べ替えて、以下のN次元の1階テンソルを出力する。
n'0,0,n'0,1,・・・,n'0,d-1,・・・n'N/d-1,d-1
図7は、本発明における全結合層機能の乗算回数及び重みパラメータ数を表す説明図である。
第1方向畳み込み部12については、以下のようになる。
乗算回数 :M/d×N/d×d=MN/d
重みパラメータ数:M/d×N/d=MN/d2
第2方向畳み込み部14については、以下のようになる。
乗算回数 :d×d×N/d=dN
重みパラメータ数:d2
両方の畳み込み部について、加算する。
乗算回数 :MN/d+dN
重みパラメータ数:MN/d2+d2
図7によれば、従来技術としての図3と同様に、全結合層(Dense)によって、2,048(=M)次元の1階テンソルから、256×7×7(=N)次元に変換されている。次元数d=32とした場合、以下のように算出される。
乗算回数 :MN/d+dN=2,048×(256×7×7)/32+32×(256×7×7)
=1,204,224(従来技術に対する4.69%)
重みパラメータ数:MN/d2+d2=2,048×(256×7×7)/(32×32)+32×32
=26,112(従来技術に対する0.10%)
このように、本発明の図7によれば、従来技術の図3と比較して、乗算回数及び重みパラメータ数が大幅に削減されることが理解できる。
尚、次元数dは、MとNの公約数であればよく、M<Nの場合に限らず、M=N, M>Nの場合でも、本発明を適用することができる。
本発明によれば、畳み込み層に置き換えるべき全結合層は、GAN(Generative Adversarial Networks)の生成器(Generator)に基づくものに適する。即ち、小型デバイスにおける生成器の軽量化に適したものであり、本発明の全結合層の構成を必ずしも、識別器(Discriminator)にも適用する必要はない。識別器の全結合層に適用する場合、他の識別器の各層と同様に、例えばバッチ正規化は適用しない、等の注意事項が必要となる。また、識別器に適用した場合、生成器や識別器のオプティマイザに対して学習率等のパラメータを調整する必要がある。
勿論、本発明は、全結合層自体の乗算回数及び重みパラメータを削減するものであり、GAN以外のニューラルネットワークによる機械学習全般に適用可能である。
<第1−2の実施形態:第方向畳み込み部14が次元数の増減を実行>
この場合も、M及びNの公約数となる次元数d(<M,<N)を設定する。
入力並び替え部11は、M次元の1階テンソルを、(M/d,d)次元の2階テンソルに並び替える。
第1方向畳み込み部12は、(M/d,d)次元の2階テンソルに対して、フィルタカーネルのサイズを1とする1次元畳み込みによって、(M/d,d)次元の第1の2階テンソルに変換する。
転置部13は、(M/d,d)次元の第1の2階テンソルを、(d,M/d)次元の第1の2階テンソルに転置する。
第2方向畳み込み部14は、転置された(d,M/d)次元の第1の2階テンソルに対して、フィルタカーネルのサイズを1とする1次元畳み込みによって、(d,N/d)次元の第2の2階テンソルに変換する。
出力並び替え部15は、(d,N/d)次元の第2の2階テンソルを、N次元の1階テンソルに並び替える。
また、第1方向畳み込み部12と第2方向畳み込み部14とで、次元数の増減を分けるために、以下のようにすることもできる。
N/M=r1×r2のr1,r2が自然数として成立し、且つ、d×r1及びr2×M/dの両方が自然数として成立するように、r1,r2を決定する。
入力並び替え部11は、M次元の1階テンソルを、(M/d,d)次元の第1の2階テンソルに並び替える。
第1方向畳み込み部12は、(M/d,d×r1)次元の第1の2階テンソルに変換する。
転置部13は、(d×r1,M/d)次元の第1の2階テンソルに転置する。
第2方向畳み込み部14は、(d×r1,r2×M/d)次元の第2の2階テンソルに変換する。
出力並び替え部15は、(d×r1,r2×M/d)次元の第2の2階テンソルを、N次元の1階テンソルに並び替える。
<第2の実施形態>
図8は、本発明における3段階の2次元畳み込みに分解した機能構成図である。
第2の実施形態によれば、全結合層を、3段階の2次元畳み込みに分解したものである。そのために、第1の実施形態と比較して、2階テンソルの代わりに3階テンソルに並べ替え、1次元畳み込みConv1Dの代わりに2次元畳み込みConv2Dを用いる。また、フィルタのカーネルサイズは全て、2次元畳み込みConv2Dで(1,1)とする。
図8によれば、本発明のプログラムにおける全結合層は、入力並び替え部11と、第1方向畳み込み部12と、第1の転置部131と、第2方向畳み込み部14と、第2の転置部132と、第3方向畳み込み部16と、出力並び替え部15とに置き換えられる。これら機能構成部は、装置に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。
M及びNの公約数となる次元数d1及びd2(<M,<N)を設定する。
入力並び替え部11は、M次元の1階テンソルを、3階テンソルに並び替える。具体的には、M次元の1階テンソルを、(d1,d2,M/(d1×d2))次元の3階テンソルに並び替える。
第1方向畳み込み部12は、並び替えられた3階テンソルに対して、畳み込みによって、第1の3階テンソルに変換する。具体的には、(d1,d2,M/(d1×d2))次元の3階テンソルに対して、フィルタカーネルのサイズを(1,1)とする2次元畳み込みによって、(d1,d2,N/(d1×d2))次元の3階テンソルに変換する。
第1の転置部131は、第1の3階テンソルを転置する。具体的には、 (d1,d2,N/(d1×d2))次元の3階テンソルについて、(d2,N/(d1×d2),d1)次元の3階テンソルに転置する。
第2方向畳み込み部14は、転置された第1の3階テンソルに対して、畳み込みによって、第2の3階テンソルに変換する。具体的には、(d2,N/(d1×d2),d1)次元の3階テンソルに対して、フィルタカーネルのサイズを(1,1)とする2次元畳み込みによって、(d2,N/(d1×d2),d1)次元の3階テンソルに変換する。
第2の転置部132は、第2の3階テンソルを転置する。具体的には、 (d2,N/(d1×d2),d1)次元の3階テンソルについて、(N/(d1×d2),d1,d2)次元の3階テンソルに転置する。
第3方向畳み込み部16は、転置された第2の3階テンソルに対して、畳み込みによって、第3の3階テンソルに変換する。具体的には、(N/(d1×d2),d1,d2)次元の3階テンソルに対して、フィルタカーネルのサイズを(1,1)とする2次元畳み込みによって、(N/(d1×d2),d1,d2)次元の3階テンソルに変換する。
出力並び替え部15は、第3の3階テンソルを、N次元の1階テンソルに並び替える。具体的には、(N/(d1×d2),d1,d2)次元の3階テンソルを、N次元の1階テンソルに並び替える。
本実施形態では、第1方向畳み込み部12について次元数の増減を実行したが、第1方向畳み込み部12の代わりに、第2方向畳み込み部14又は第3方向畳み込み部16について、次元数の増減を実行してもよい。また、第1の実施形態と同様に、第1方向畳み込み部12、第2方向畳み込み部14、第3方向畳み込み部16それぞれに、次元数の増減の実行を分散してもよい。
尚、第2の実施形態と同様の方法で、4階テンソルに並べ替えて、4段階の3次元畳み込み層(Conv3D)に分解することも可能である。カーネルサイズも同様に(1,1,1)とする。
通常のニューラルネットワークのフレームワークでは、畳み込み層は3次元まで用意されていることが多いため、本発明における全結合層の分解も4層までとなる。但し、4次元以上の畳み込み層があれば、同様の方法で更なる分解が可能である。
以上、詳細に説明したように、本発明のプログラムによれば、再構成や特別な行列演算のためのカスタムレイヤの実装を必要とすることなく、ニューラルネットワークの全結合層を畳み込み層に置き換えることによって、乗算回数及び重みパラメータ数を大幅に削減することができる。そのために、モバイルや組み込み機器等の小型デバイスに適すると共に、ニューラルネットワークのフレームワークで汎用的に用いられるレイヤしか利用しない。
前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
1 装置
11 入力並び替え部
12 第1方向畳み込み部
13 転置部
131 第1の転置部
132 第2の転置部
14 第2方向畳み込み部
15 出力並び替え部
16 第3方向畳み込み部

Claims (5)

  1. M次元の1階テンソルからN次元の1階テンソルへ変換する全結合層を、畳み込み層に置き換えるようにコンピュータを機能させるプログラムであって、
    M及びNの公約数となる次元数d(<M,<N)を設定し、
    M次元の1階テンソルを、(d,M/d)次元の2階テンソルに並び替える入力並び替え手段と、
    (d,M/d)次元の2階テンソルに対して、フィルタカーネルのサイズを1とする1次元畳み込みによって、(d,N/d)次元の第1の2階テンソルに変換する第1方向畳み込み手段と、
    (d,N/d)次元の第1の2階テンソルを、(N/d,d)次元の第1の2階テンソルを転置する転置手段と、
    転置された(N/d,d)次元の第1の2階テンソルに対して、フィルタカーネルのサイズを1とする1次元畳み込みによって、(N/d,d)次元の第2の2階テンソルに変換する第2方向畳み込み手段と、
    (N/d,d)次元の第2の2階テンソルを、N次元の1階テンソルに並び替える出力並び替え手段と
    してコンピュータを機能させることを特徴とするプログラム。
  2. M次元の1階テンソルからN次元の1階テンソルへ変換する全結合層を、畳み込み層に置き換えるようにコンピュータを機能させるプログラムであって、
    M及びNの公約数となる次元数d(<M,<N)を設定し、
    M次元の1階テンソルを、(M/d,d)次元の2階テンソルに並び替える入力並び替え手段と、
    (M/d,d)次元の2階テンソルに対して、フィルタカーネルのサイズを1とする1次元畳み込みによって、(M/d,d)次元の第1の2階テンソルに変換する第1方向畳み込み手段と、
    (M/d,d)次元の第1の2階テンソルを、(d,M/d)次元のの2階テンソルに転置する転置手段と、
    転置された(d,M/d)次元の第1の2階テンソルに対して、フィルタカーネルのサイズを1とする1次元畳み込みによって、(d,N/d)次元の第2の2階テンソルに変換する第2方向畳み込み手段と、
    (d,N/d)次元の第2の2階テンソルを、N次元の1階テンソルに並び替える出力並び替え手段と
    してコンピュータを機能させることを特徴とするプログラム。
  3. N/M=r1×r2のr1,r2が自然数として成立し、且つ、d×r1及びr2×M/dの両方が自然数として成立する場合、
    第1方向畳み込み手段は、(M/d,d×r1)次元の第1の2階テンソルに変換し、
    前記転置手段は、(d×r1,M/d)次元の第1の2階テンソルに転置し、
    第2方向畳み込み手段は、(d×r1,r2×M/d)次元の第2の2階テンソルに変換し、
    前記出力並び替え手段は、(d×r1,r2×M/d)次元の第2の2階テンソルを、N次元の1階テンソルに並び替える
    ようにコンピュータを機能させることを特徴とする請求項に記載のプログラム。
  4. M次元の1階テンソルからN次元の1階テンソルへ変換する全結合層を、畳み込み層に置き換えるようにコンピュータを機能させるプログラムであって、
    M及びNの公約数となる次元数d1及びd2(<M,<N)を設定し、
    M次元の1階テンソルを、(d1,d2,M/(d1×d2))次元の3階テンソルに並び替える入力並び替え手段と、
    並び替えられた(d1,d2,M/(d1×d2))次元の3階テンソルに対して、フィルタカーネルのサイズを(1,1)とする2次元畳み込みによって、(d1,d2,N/(d1×d2))次元の第1の3階テンソルに変換する第1方向畳み込み手段と、
    (d1,d2,N/(d1×d2))次元の第1の3階テンソルを、(d2,N/(d1×d2),d1)次元の第1の3階テンソルに転置する第1の転置手段と、
    転置された(d2,N/(d1×d2),d1)次元の第1の3階テンソルに対して、フィルタカーネルのサイズを(1,1)とする2次元畳み込みによって、(d2,N/(d1×d2),d1)次元の第2の3階テンソルに変換する第2方向畳み込み手段と、
    (d2,N/(d1×d2),d1)次元の第2の3階テンソルを、(N/(d1×d2),d1,d2)次元の第2の3階テンソルに転置する第2の転置手段と、
    転置された(N/(d1×d2),d1,d2)次元の第2の3階テンソルに対して、フィルタカーネルのサイズを(1,1)とする2次元畳み込みによって、(N/(d1×d2),d1,d2)次元の第3の3階テンソルに変換する第3方向畳み込み手段と、
    (N/(d1×d2),d1,d2)次元の第3の3階テンソルを、N次元の1階テンソルに並び替える出力並び替え手段と
    してコンピュータを機能させることを特徴とするプログラム。
  5. 畳み込み層に置き換えるべき全結合層は、GAN(Generative Adversarial Networks)のGeneratorに基づくものである
    ようにコンピュータを機能させることを特徴とする請求項1からのいずれか1項に記載のプログラム。
JP2018148013A 2018-08-06 2018-08-06 ニューラルネットワークの全結合層を畳み込み層に置き換えるプログラム Active JP6902318B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018148013A JP6902318B2 (ja) 2018-08-06 2018-08-06 ニューラルネットワークの全結合層を畳み込み層に置き換えるプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018148013A JP6902318B2 (ja) 2018-08-06 2018-08-06 ニューラルネットワークの全結合層を畳み込み層に置き換えるプログラム

Publications (2)

Publication Number Publication Date
JP2020024524A JP2020024524A (ja) 2020-02-13
JP6902318B2 true JP6902318B2 (ja) 2021-07-14

Family

ID=69618724

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018148013A Active JP6902318B2 (ja) 2018-08-06 2018-08-06 ニューラルネットワークの全結合層を畳み込み層に置き換えるプログラム

Country Status (1)

Country Link
JP (1) JP6902318B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111415000B (zh) * 2020-04-29 2024-03-22 Oppo广东移动通信有限公司 卷积神经网络、基于卷积神经网络的数据处理方法和装置
WO2021240608A1 (ja) * 2020-05-25 2021-12-02 日本電気株式会社 多次元データ生成装置、方法、および、コンピュータ読取可能な記録媒体
WO2022177034A1 (ja) * 2021-02-19 2022-08-25 国立大学法人東京大学 情報処理装置、情報処理方法、プログラム、及び情報処理システム
GB2620473B (en) * 2022-04-22 2024-10-16 Advanced Risc Mach Ltd A Method for permuting dimensions of a multi-dimensional tensor
WO2024134735A1 (ja) * 2022-12-19 2024-06-27 恒林日本株式会社 機械学習モデル生成装置、及び蓄電池の特性値算出装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10115032B2 (en) * 2015-11-04 2018-10-30 Nec Corporation Universal correspondence network
JP2018067154A (ja) * 2016-10-19 2018-04-26 ソニーセミコンダクタソリューションズ株式会社 演算処理回路および認識システム

Also Published As

Publication number Publication date
JP2020024524A (ja) 2020-02-13

Similar Documents

Publication Publication Date Title
JP6902318B2 (ja) ニューラルネットワークの全結合層を畳み込み層に置き換えるプログラム
CN107977704B (zh) 权重数据存储方法和基于该方法的神经网络处理器
US11593586B2 (en) Object recognition with reduced neural network weight precision
Chen et al. Graph unrolling networks: Interpretable neural networks for graph signal denoising
CN107622302B (zh) 用于卷积神经网络的超像素方法
Sandryhaila et al. Big data analysis with signal processing on graphs: Representation and processing of massive data sets with irregular structure
JP2019032808A (ja) 機械学習方法および装置
Zhang et al. Differentiable learning-to-group channels via groupable convolutional neural networks
CN110298446B (zh) 面向嵌入式系统的深度神经网络压缩和加速方法及系统
Wang et al. TRC‐YOLO: A real‐time detection method for lightweight targets based on mobile devices
DE102018005099A1 (de) Vorhersageeinrichtung für schwer vorherzusagende Verzweigungen
Ashir et al. Facial expression recognition based on image pyramid and single-branch decision tree
Veness et al. Online learning with gated linear networks
DE102022105748A1 (de) Effiziente optimierung für den einsatz und die ausführung neuronaler netze
Wang et al. Optimization-based post-training quantization with bit-split and stitching
CN107609637A (zh) 一种结合数据表示与伪逆学习自编码器的提高模式识别精度的方法
Tseng et al. Deterministic binary filters for convolutional neural networks
CN114037770B (zh) 一种基于离散傅里叶变换的注意力机制的图像生成方法
JP6528349B1 (ja) 情報処理装置及び情報処理方法
Convy et al. Interaction decompositions for tensor network regression
Ali et al. Image Denoising with Color Scheme by Using Autoencoders
Chen et al. Compressing fully connected layers using Kronecker tensor decomposition
Wolnik et al. Density-conserving affine continuous cellular automata solving the relaxed density classification problem
WO2023122896A1 (zh) 一种数据处理方法和装置
CN116095183A (zh) 一种数据压缩方法以及相关设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200616

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210609

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210618

R150 Certificate of patent or registration of utility model

Ref document number: 6902318

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150