畳み込みニューラルネットワーク

畳み込みニューラルネットワーク(たたみこみニューラルネットワーク、: Convolutional neural network、略称: CNNまたはConvNet)は層間を共通重みの局所結合で繋いだニューラルネットワークの総称・クラスである。機械学習、特に音声言語翻訳[1]や画像や動画認識に広く使われる。

CNNは、その重み(行列の)共有構造と並進不変特性に基づいて、シフト不変(shift invariant)あるいは位置不変(space invariant)人工ニューラルネットワークSIANN)とも呼ばれている[2][3]

一般的な畳み込み処理は以下のように定式化される[4]はj番目の出力チャネルを、相互相関関数を意味する。

すなわち各出力チャネル ごとに入力チャネル 枚分の畳み込みカーネル が用意され、カーネルを用いた各入力チャネルの畳み込みの総和へバイアス が付与され各チャネル出力となっている。式からわかるように、入力チャネル間は畳み込み処理ではなく和で計算され、また入力チャネル と畳みこまれるカーネルは出力チャネルごとに異なる。

カーネルはしばしばフィルタと呼ばれる[5]。これは位置関係をもつ重みづけ和のスライド演算(畳み込み)がフィルタ適用と等価なことに由来する。

畳み込み処理自体は単純な線形変換である。出力のある1点を見ると局所以外の重みが全て0の全結合と等価であることからこれはわかる。多くのCNNでは畳み込み処理に引き続いてシグモイド関数やReLUなどの活性化関数による非線形変換をおこなう。[要出典]

単純なCNNは順伝播型 (FFN)、すなわち浅い層から深い層へのみ結合をもつ。ただしCNNは2層間の結合様式を規定するクラスでありFFNと限らない[要出典]。非FFN型CNNの一例として大局的に回帰結合をもち層間では畳み込みをおこなうRecurrent CNNが提唱されている[6]

CNNは画像・動画認識レコメンダシステム[7]自然言語処理[8]に応用されている。

convolution変種 編集

CNNの核となるアイデアは畳み込み処理(convolution)であり、それには様々な変種がある。以下はその一例である。

pointwise convolution 編集

  がスカラーの畳み込みは pointwise convolution と呼称される[9]。例えば2DConvにおける1x1カーネルがある。出力チャネル   に着目するとこの畳み込みは入力チャネルの加重平均とみなせる。あるいは各点(pointwise)での入力チャネルを跨いだ全結合とみなせる。処理全体では出力チャネルごとに異なる加重を用いて入力チャネル平均を取ることと同義である。利用目的には位置情報を保った(pointwiseな)変換、出力次元数   調整などが挙げられる。実装上は最小カーネルによる畳み込みで表現される(例: 2DConvにおける   weightテンソル)。全結合層(Linear)を用いても容易に表現できる。

grouped convolution 編集

畳み込みの変種として grouped convolution がある。通常の畳み込みでは全入力チャネルの畳み込み和を計算するが、grouped convolutionでは入出力チャネルをいくつかのグループに分割しグループ内で通常の畳み込みと和をおこなう[10][11]。これによりカーネル枚数・計算量の削減、複数GPUを用いた学習、別技術と組み合わせた性能の向上などが可能になる(c.f. AlexNet, ResNeXt)。グループ数をチャネル数と一致させる、すなわちチャネル間の和をなくしたものは特にdepthwise convolutionと呼称される[12]

ネットワーク変種 編集

CNNは畳み込み処理を用いたニューラルネットワークの総称である。convolutionの種類、Conv kernelのサイズと層の関係、特殊なモジュールの有無などにより様々なサブタイプ(変種)が存在する。

depthwise separable convolution 編集

depthwise separable convolutionは空間方向の畳み込みとチャネル方向の全結合を分離した畳み込みモジュールである。すなわち通常の畳み込みを depthwiseConv + pointwiseConv で置き換えるモジュールである[13]。計算量・パラメータ量を1/10スケールで削減できる利点がある。

Recurrent CNN 編集

Recurrent CNN(RCNN)は回帰結合を持つ畳み込みニューラルネットワークである[14]。すなわちフィードフォワード型 (FFN) ではなく回帰型 (RNN) のネットワーク構造を持ち、層間の結合に全結合 (MLP) ではなく畳み込みを採用したニューラルネットワークである。ゆえにCNNでありRNNでもある。

パラメータ 編集

受容野 編集

受容野: receptive field)は出力中の一点と結合している入力の広さ・幅である[15][16]。すなわち出力中の一点へと情報を伝達しうる入力域である。視覚等の感覚神経における「受容野」から転用して名付けられた。

例えば1次元の入出力をもつ1層のCNNがあったとする。CNNのカーネルサイズが   だった場合、出力   は入力  ,  ,   の重みづけ和で計算されるため受容野は   になる。このCNNを2層重ねた場合、  は中間層  ,  ,   の和でありさらに   ,  ,    ,  ,   の和となるため、CNNの受容野は   になる。

Convパラメータ・変種およびネットワーク変種によって受容野サイズへ異なる影響を与える。以下はその一例である。

  • Kernelパラメータ: 受容野の端をカーネルで置き換える形で広げる
  • Strided Convolution: 受容野の端以外の部分をstride倍率に合わせて倍増させる
  • Dilated Convolution: 歯抜けカーネルであるため、より大きいカーネルとして振る舞う(例: k3d2はk5と同じ受容野)

受容野のサイズは再帰的に求めることができる。

  層の畳み込みからのなるCNNを考える。ここでは第    を畳み込み   で変換して次の層   を得る(例: 入力層    を作用させて中間層   を得る)。ここで   はカーネルサイズ   、ストライド   をもつとする。出力層   から見た   における受容野を   としたとき、次の式が成立する(図参照)[17]

 
CNN受容野の再帰計算

 

よって   を初期条件としてこの式を入力層受容野   まで再帰することで受容野を計算できる。

歴史 編集

CNNは動物の視覚野から発想を得て[18]福島邦彦によって提唱されたネオコグニトロンに起源を持つ[19][20][21]

当時の画像処理は画像(ピクセルデータ)を注意深く設計されたデータ前処理により特徴量へ変換し、それを用いて学習がおこなわれていた。CNNはピクセルを直接入力に用いることができ、特徴量設計において専門家の知識に依存しない特徴をもつとされた[22]。現在ではCNN以外のニューラルネットワーク(例: Vision Transformer; ViTMLPベースの gMLP)でもピクセル入力の画像処理が実現されている[23][24]。ゆえに畳み込みそのものが特徴設計を不要にするキー技術であるとは言えないことがわかっている[要出典]

脚注 編集

注釈 編集

出典 編集

  1. ^ K-Pop Hit Song Recorded in 6 Languages Using Deep Learning” (英語). K-Pop Hit Song Recorded in 6 Languages Using Deep Learning (2023年8月2日). 2024年2月20日閲覧。
  2. ^ Zhang, Wei (1988). “Shift-invariant pattern recognition neural network and its optical architecture”. Proceedings of annual conference of the Japan Society of Applied Physics. https://drive.google.com/file/d/0B65v6Wo67Tk5Zm03Tm1kaEdIYkE/view?usp=sharing. 
  3. ^ Zhang, Wei (1990). “Parallel distributed processing model with local space-invariant interconnections and its optical architecture”. Applied Optics 29 (32). https://drive.google.com/file/d/0B65v6Wo67Tk5ODRzZmhSR29VeDg/view?usp=sharing. 
  4. ^ Conv2d — PyTorch 1.6.0 documentation”. pytorch.org. 2020年10月3日閲覧。
  5. ^ "convolved with its own set of filters" PyTorch 1.10 Conv1D
  6. ^ "we propose a recurrent CNN (RCNN) for object recognition by incorporating recurrent connections into each convolutional layer" p.3367 and "This work shows that it is possible to boost the performance of CNN by incorporating more facts of the brain. " p.3374 of Liang, et al. (2015). Recurrent Convolutional Neural Network for Object Recognition.
  7. ^ van den Oord, Aaron; Dieleman, Sander; Schrauwen, Benjamin (2013-01-01). Burges, C. J. C.. ed. Deep content-based music recommendation. Curran Associates, Inc.. pp. 2643–2651. http://papers.nips.cc/paper/5004-deep-content-based-music-recommendation.pdf 
  8. ^ Collobert, Ronan; Weston, Jason (2008-01-01). “A Unified Architecture for Natural Language Processing: Deep Neural Networks with Multitask Learning”. Proceedings of the 25th International Conference on Machine Learning. ICML '08 (New York, NY, USA: ACM): 160–167. doi:10.1145/1390156.1390177. ISBN 978-1-60558-205-4. https://doiorg/10.1145/1390156.1390177. 
  9. ^ "a 1×1 convolution called a pointwise convolution." Andrew (2017) MobileNets Arxiv
  10. ^ "In a group conv layer ..., input and output channels are divided into C groups, and convolutions are separately performed within each group." Saining (2017). Aggregated Residual Transformations for Deep Neural Networks. Arxiv
  11. ^ "groups controls the connections between inputs and outputs. ... At groups=1, all inputs are convolved to all outputs ... At groups= in_channels, each input channel is convolved with its own set of filters" PyTorch nn.Conv2d
  12. ^ "Depthwise convolution with one filter per input channel (input depth)" Andrew G. Howard. (2017). MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications. Arxiv
  13. ^ "depthwise separable convolutions which is a form of factorized convolutions which factorize a standard convolution into a depthwise convolution and a 1×1 convolution called a pointwise convolution." Howard, et al. (2017). MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications.
  14. ^ "we propose a recurrent CNN (RCNN) for object recognition by incorporating recurrent connections into each convolutional layer" Liang, et al. (2015). Recurrent Convolutional Neural Network for Object Recognition.
  15. ^ "予測の際に使用する有限長の過去のデータ点数 R は受容野 (receptive field) の大きさを表す." 松本. (2019). WaveNetによる言語情報を含まない感情音声合成方式の検討. 情報処理学会研究報告.
  16. ^ "Effective Receptive Field (ERF): is the area of the original image that can possibly influence the activation of a neuron. ... ERF and RF are sometimes used interchangeably" Le. (2017). What are the Receptive, Effective Receptive, and Projective Fields of Neurons in Convolutional Neural Networks?. Arxiv.
  17. ^ "layer k ... Rk be the ERF ... fk represent the filter size ... the final top-down equation:  "
  18. ^ Matusugu, Masakazu; Katsuhiko Mori; Yusuke Mitari; Yuji Kaneda (2003). “Subject independent facial expression recognition with robust face detection using a convolutional neural network”. Neural Networks 16 (5): 555–559. doi:10.1016/S0893-6080(03)00115-1. http://www.iro.umontreal.ca/~pift6080/H09/documents/papers/sparse/matsugo_etal_face_expression_conv_nnet.pdf 2013年11月17日閲覧。. 
  19. ^ Fukushima, K. (2007). “Neocognitron”. Scholarpedia 2 (1): 1717. doi:10.4249/scholarpedia.1717. 
  20. ^ Fukushima, Kunihiko (1980). “Neocognitron: A Self-organizing Neural Network Model for a Mechanism of Pattern Recognition Unaffected by Shift in Position”. Biological Cybernetics 36 (4): 193–202. doi:10.1007/BF00344251. PMID 7370364. http://www.cs.princeton.edu/courses/archive/spr08/cos598B/Readings/Fukushima1980.pdf 2013年11月16日閲覧。. 
  21. ^ LeCun, Yann. “LeNet-5, convolutional neural networks”. 2013年11月16日閲覧。
  22. ^ 藤吉 2019, p. 293-294.
  23. ^ Dosovitskiy, et al. (2021). An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. ICLR 2021.
  24. ^ Liu, et al. (2021). Pay Attention to MLPs. NeurIPS 2021.

参考文献 編集

  • 藤吉, 弘亘 (2019-04). “リレー解説 機械学習の可能性 《第1回》機械学習の進展による画像認識技術の変遷”. 計測と制御 (計測自動制御学会) 58 (4): 291-297. doi:10.11499/sicejl.58.291. ISSN 1883-8170. 

関連項目 編集