5-1-3 全結合層の役割とパラメータ数

前の節では、全結合層の中で行われている計算を、コーヒーのブレンドにたとえて見てきました。
いろいろな豆の特徴を集めて、それぞれに配合の比率――つまり重みをつけて、最後に一杯の味へとまとめていく。
では、全結合層は、ディープラーニングの中でどんな役割を持っているのでしょうか。

喫茶店で新しいブレンドを作るとき、マスターはただ豆を眺めているだけではありません。
・苦み
・酸味
・香り
・コク
・後味
いろいろな要素を見ながら、「今回は、どんな一杯にしたいか」を考えます。
つまり、バラバラの特徴を、一つの方向にまとめるのです。
全結合層も、それとよく似ています。
前の層からは、さまざまな特徴が届いてきます。

たとえば画像認識なら、
・線の情報
・形の情報
・模様の情報
・色の情報
などが集まってくるかもしれません。

全結合層は、それらをまとめて、
・「これは猫らしい」
・「これは犬らしい」
といった最終的な判断に近づける役割を持っています。

つまり全結合層は、いろいろな情報を総合して、結論へ向かわせる場所なのです。

ここで、喫茶店の棚に、たくさんの豆が並んでいる場面を想像してみてください。
もしマスターが、「この豆はこの豆としか混ぜられない」「この香りはあの酸味とは組み合わせられない」という制限をかけてしまったら、作れるブレンドはかなり限られてしまいます。
でも、全結合層では、どの情報も、次の層のどのニューロンにも届くようになっています。

つまり、
・この特徴とあの特徴を一緒に使う
・あの特徴をこちらの判断にも生かす
・いろいろな組み合わせを試す
ということができる。
これが全結合層の強みです。

全結合層は、情報を広く集めて、柔軟に組み合わせられるという意味で、とても便利な層なのです。

ただし、便利なものにはたいてい代償があります。
喫茶店でも、もし「棚にあるすべての豆を、すべてのレシピ候補で組み合わせて試す」となったら、どうなるでしょう。
ものすごく手間がかかりますよね。
全結合層も同じです。前の層のニューロンがすべて、次の層のニューロンすべてにつながるということは、つながりの数がとても多くなるということでもあります。
そして、それぞれのつながりには、重みが必要です。
この重みの一つひとつが、学習によって調整されるパラメータです。

ここでいうパラメータ数とは、学習によって調整される重みの数のことです。
全結合層では、前の層のニューロン数 × 次の層のニューロン数だけ、重みが必要になります。

たとえば、
・前の層に 100 個のニューロン
・次の層に 50 個のニューロン
があるとすると、

100 × 50 = 5000
個の重みが必要になります。

つまり、パラメータ数は 5000個 です。

喫茶店で言えば、「100種類の豆」と「50種類のレシピ候補」があって、そのすべての組み合わせについて、配合の比率を決めるようなもの。
それだけたくさんの「調整ポイント」がある、ということです。

パラメータ数が多いと、表現力は高くなります。
つまり、いろいろな組み合わせを細かく学べるようになります。
でもその一方で、
計算量が増える
学習に時間がかかる
過学習しやすくなる
という問題も出てきます。

喫茶店のブレンドで言えば、配合の自由度が高すぎると、「どんな注文にも合わせられる」反面、「細かく作りすぎて、かえって安定しない」こともあるようなものです。
つまり全結合層は、柔軟で便利だけれど、そのぶん重いという特徴を持っています。

全結合層は、情報をまとめて最終判断に近づけるにはとても有効です。
けれど、画像のように情報量が多いデータを、最初から全部全結合で扱おうとすると、パラメータ数が膨大になってしまいます。
だから実際のディープラーニングでは、画像の特徴を効率よく取り出すために、畳み込み層などの別の仕組みが使われます。
つまり全結合層は、万能ではないけれど、「最後に情報をまとめる役」としてとても大事な層なのです。

next ▶ 畳み込み層とは何か