Re Reference AI

アーキテクチャ

全結合層(全結合ネットワーク)とは

Fully Connected Layer / Dense Layer / 全結合ネットワーク

前の層の全ユニットと後の層の全ユニットを結合するニューラルネットワークの層

ニューラルネットワーク深層学習

ひとことで言うと

前の層の全部の出力を、次の層の全部のユニットにつなげる基本的な層。

概要

全結合層は、ある層の各ユニットが次の層の全ユニットと結合するニューラルネットワークの基本構成要素。各出力は入力ベクトル全体の重み付き和にバイアスを加え、活性化関数を適用して計算される。畳み込み層やプーリング層が局所的な特徴抽出を担う一方、全結合層は抽出された特徴を統合し、分類や回帰といった最終的な出力に変換する役割を担う。CNNや多くのニューラルネットワークでは、出力側の層に配置されることが多い。入力と出力のユニット数の積に比例してパラメータ数が増えるため、高次元の入力を直接扱うと計算コストとメモリ使用量が大きくなる。

アーキテクチャ

全結合層は重み行列とバイアスベクトルを持ち、入力ベクトルとの行列積にバイアスを加えた後、ReLUやシグモイドなどの活性化関数を適用して出力を得る。入力ユニット数と出力ユニット数の積が、重み行列のパラメータ数になる。

利点

  • 任意の入力と出力の対応関係を表現でき、汎用的な変換層として利用できる
  • 実装がシンプルで、多くのフレームワークで標準的にサポートされている

欠点

  • 入力・出力のユニット数が増えるとパラメータ数が急激に増加し、計算コストとメモリ使用量が大きくなる
  • 画像のような高次元データでは空間的な位置関係を考慮できず、CNNの畳み込み層に比べて非効率になりやすい

比較

  • CNNCNNは局所受容野と重み共有によって全結合層よりパラメータ数を抑えつつ画像の局所特徴を学習し、全結合層は主に抽出済みの特徴を統合する最終段の層として使われる
  • 活性化関数全結合層は線形変換する層であり、非線形な表現力を持たせるために活性化関数と組み合わせて使われる

関連用語

ニューラルネットワークCNN活性化関数深層学習

よくある質問

全結合層とDense層は同じ意味か?

同じ概念を指します。TensorFlow/KerasではDense層、PyTorchではLinear層と呼ばれますが、いずれも前の層の全ユニットと次の層の全ユニットを結合する層です。