logo

딥러닝에서 인공신경망(ANN), 심층신경망(DNN), 순방향신경망(FNN)의 뜻과 차이점 📂機械学習

딥러닝에서 인공신경망(ANN), 심층신경망(DNN), 순방향신경망(FNN)의 뜻과 차이점

概要

人工ニューラルネットワーク深層ニューラルネットワーク、順方向ニューロネットワークなど、ディープラーニングで使われる用語について整理する。これらの用語は明確な定義がない上に混用されることも多く、初心者が混乱しがちだが、実際にはすべて同じ言葉だと考えても良い。

以下で説明する単語の由来や歴史に関連する内容は、資料を徹底的に調査して書かれたものではなく、筆者の個人的な見解によって書かれている。

人工ニューラルネットワークANNと深層ニューラルネットワークDNN

レイヤー活性化関数合成人工ニューラルネットワークartificial neural network (ANN)と呼ぶ。

深層ニューラルネットワークdeep neural network (DNN)とは、レイヤーと活性化関数を「何度も」合成したものを指す。

最初に提案されたANNは線形関数階段関数合成関数で非常にシンプルなモデルだった。これを(単層)パーセプトロンと呼ぶ。後に提案されたより発展したモデルは、線形関数と階段関数をさらに多く合成した多層パーセプトロンmulti layer perceptron (MLP)である。この過程でlayerやdeepといった用語が使われ始めたようだ。これらの言葉に特別な意味はなく、多く合成したものを視覚化するとlayer層々とdeep積み重なっているように見えるため、直感的に名付けられたものだ。例えば、Li:RniRni+1L_{i} : \mathbb{R}^{n_{i}} \to \mathbb{R}^{n_{i+1}}というとき、LiL_{i}を何度も合成した関数を視覚化すると次のようになる。

[x1xn1][y1yn2][z1zn3][v1vnm1][w1wnm] \begin{bmatrix} x_{1} \\ \vdots \\ x_{n_{1}}\end{bmatrix} \mapsto \begin{bmatrix} y_{1} \\ \vdots \\ \vdots \\ y_{n_{2}}\end{bmatrix} \mapsto \begin{bmatrix} z_{1} \\ \vdots \\ \vdots \\ \vdots \\ z_{n_{3}}\end{bmatrix} \mapsto \cdots \mapsto \begin{bmatrix} v_{1} \\ \vdots \\ \vdots \\ v_{n_{m-1}}\end{bmatrix} \mapsto \begin{bmatrix} w_{1} \\ \vdots \\ w_{n_{m}}\end{bmatrix}

したがって最初は1層だけのANNと区別する意味でDNNという言葉が使われていたが、今ではその区別が意味をなさない。実質的に同じ言葉だと言える。また、ニューラルネットワーク理論初期にはDNNがMLPしかなかったため、この二つはおそらく同じ意味で使われていたようだ。過去の論文でそのような文脈で使われることがある。最近ではANNやDNNと言うと、MLPのみならず、CNN、GAN、RNN、GNNなどのニューラルネットワークをすべて含む概念として使われる。

過去: ANN=single layer perceptronDNN=multi layer perceptron \text{ANN}= \text{single layer perceptron} \qquad \text{DNN} = \text{multi layer perceptron}

最近: DNN=ANN={MLP, CNN, GAN, RNN, GNN, } \text{DNN} = \text{ANN} = \left\{ \text{MLP, CNN, GAN, RNN, GNN, }\dots \right\}

過去と最近というのは、それぞれ20世紀と21世紀くらいで考えておけば良い。

多層パーセプトロンMLPと完全連結ニューラルネットワークFCNN

単層パーセプトロンを何度も合成したものを多層パーセプトロンmulti-layer perceptron (MLP)と呼ぶ。完全連結ニューラルネットワークfully connected neural networkとは、完全連結層活性化関数を合成したニューラルネットワークを指す。この二つは同じニューラルネットワークを指す言葉だ。

順方向ニューロネットワークFNN

再帰ニューラルネットワーク (RNN)など、時系列データを扱うニューラルネットワークや、何らかの形で出力が再び入力として入るニューラルネットワークを除いた全てのニューラルネットワークを順方向ニューロネットワークfeedforward neural network (FNN)と呼ぶ。過去にはニューラルネットワークの種類が多くなかったため、FNNをMLPと同じ意味で使っていたようであり、今でも狭い意味で使われる場合があるようだ。