全結合層とは、人工ニューラルネットワークにおいて、前段の層のすべての出力と後段の層のすべての入力を人工ニューロンを使って、相互に接続する層のことです。
全結合層の目的は、前の層からの情報を統合し、より高度な表現や抽象化を行うことです。
全結合層は、隠れ層や出力層で利用されます。
例えば、以下は、前段の層の出力が5個、後段の層の入力が3個である場合に、人工ニューロンを使って、前後の層間を相互に接続したものです。このとき、活性化関数よりも左の部分を全結合層と呼びます。この場合、5入力3出力の全結合層と3個の活性化関数があると言えます。
上記から分かるように、5入力3出力の全結合層の人工ニューロンの重みの数は5×3=15個、人工ニューロンのバイアスの数は3個です。
なお、通常、全結合層は、上記のように、活性化関数とセットで利用されます。
全結合層は、通常、人工ニューラルネットワークの最後の方に配置されます。この場合、全結合層がそのまま出力層であったり、全結合層の出力を受けた活性化関数が出力層であったりします。
また、全結合層は、人工ニューラルネットワークの途中に配置されることもあります。全結合層を使わない人工ニューラルネットワークも存在します。
全結合層の有無や配置の仕方は、解くべき問題によって変わります。
冒頭で示した5入力3出力の全結合層と活性化関数の層の図は、コグニカルでは、以下のように単純化することとします。
この場合、全結合層と活性化関数の層は、3つの人工ニューロンで構成されています。
以下は、5入力3出力の全結合層と3入力3出力の全結合層の2層の全結合層です。ただし、全結合層の層間には、活性化関数の層があります。
全結合層を構成する人工ニューロンの数が多いほど、人工ニューラルネットワークの表現力や学習能力が向上する可能性があります。
ただし、人工ニューロンの数が多過ぎると計算コストが増えたり、過学習したりすることがあります。
最適な人工ニューロンの数は、解くべき問題の複雑さによって異なります。
全結合層の層数が多いほど、人工ニューラルネットワークの表現力や学習能力が向上する可能性があります。
ただし、全結合層の層数が多過ぎると計算コストが増えたり、過学習したりすることがあります。
また、過学習はしていないが、全結合層の層数を増やしても、人工ニューラルネットワークの表現力や学習能力が向上しない場合もあります。
全結合層の最適な層数は、解くべき問題の複雑さによって異なります。
全結合層の活性化関数には、非線形な活性化関数を利用します。
全結合層の活性化関数に非線形ではない活性化関数を使用してしまうと、どれだけ層を重ねても1層の全結合層と等価になります。