ディープラーニングには、いろいろな「層」があります。
その中でも、全結合層はとても基本的な層です。
名前のとおり、全結合層では、前の層のニューロンと、次の層のニューロンがすべてつながっています。
少しイメージしてみましょう。
前の教室に3人、次の教室に2人の生徒がいるとします。
全結合層では、前の教室の3人それぞれが、次の教室の2人全員に情報を送ります。
つまり、
1人目 → Aさん、Bさん
2人目 → Aさん、Bさん
3人目 → Aさん、Bさん
というふうに、全員が全員につながるのです。
これが「全結合」という名前の意味です。
全結合層の役割は、前の層から受け取った情報をまとめて、次の層へ渡すことです。
前の層には、
・形の情報
・色の情報
・特徴の情報
など、いろいろな情報が入っているかもしれません。
全結合層は、それらを受け取って、「この情報は少し大事そう」「この情報はあまり重要ではないかもしれない」と重みづけしながら計算し、次の判断へつなげていきます。
つまり全結合層は、集まった情報を総合して判断する場所とも言えます。
全結合層は、ニューラルネットワークのもっとも基本的なつなぎ方です。
以前見たパーセプトロンや多層パーセプトロンも、基本的にはこの全結合の考え方に基づいています。
つまり、
前の層の情報を受け取り
重みをかけて計算し
次の層へ渡す
という流れの土台にあるのが、全結合層です。
ディープラーニングには、畳み込み層やAttentionのような発展的な仕組みもありますが、その前にまず理解しておきたい基本の部品が、この全結合層なのです。
全結合層のよいところは、すべての情報をまとめて扱えることです。
どの入力も、次の層のどのニューロンにも届くので、情報を広く使うことができます。
その一方で、つながりが多いということは、計算するための重みもたくさん必要になる、ということでもあります。
たとえば、
前の層に100個のニューロン
次の層に50個のニューロン
があれば、
100 × 50 = 5000
ものつながりが生まれます。
つまり全結合層は、便利だけれど少し「重い」層でもあるのです。
next ▶ 重みと線形関数