チャネルとは
チャネル(Channel)は、CNNにおけるデータの深さ方向の次元を指す概念です。入力画像の場合、RGBの3色がそれぞれ1つのチャネルに対応し、合計3チャネルの入力となります。畳み込み層を通過した後の特徴マップでは、各フィルタの出力が1つのチャネルに対応し、フィルタの数がチャネル数を決定します。
チャネル数の変化
一般的なCNNアーキテクチャでは、ネットワークが深くなるにつれてチャネル数が増加していきます。例えばResNet-50では、入力の3チャネルから始まり、64、128、256、512とチャネル数が段階的に増えていきます。空間解像度の低下をチャネル数の増加で補い、全体的な情報量を維持する設計思想です。
1×1畳み込みとチャネル操作
1×1畳み込み(Pointwise Convolution)は、空間的なサイズを変えずにチャネル数を変換するために使用される重要な操作です。チャネル数の削減(ボトルネック構造)や増加に利用され、ResNetのボトルネックブロックやInceptionモジュールの重要な構成要素です。計算コストの削減にも大きく貢献します。
チャネル注意機構
SENet(Squeeze-and-Excitation Network)は、チャネルごとの重要度を動的に学習するチャネル注意機構を導入しました。各チャネルの特徴マップをグローバル平均プーリングで集約し、小さなネットワークで各チャネルの重みを計算します。この手法はEfficientNetにも取り入れられ、少ない追加パラメータで精度を向上させることができます。