全結合層の中身は、実は「掛けて、足す」だけの線形関数です。ではなぜ、それだけのはずのニューラルネットワークが複雑な画像や言語を扱えるのでしょうか。鍵は「線形関数だけでは絶対に足りない」という事実にあります。G検定で問われる急所も、まさにそこです。

📖 ひと言でいうと

線形関数とは、入力に重みを掛けて足し合わせる(入力ベクトルと重み行列の積にバイアスを加える)形の関数で、全結合層が入力から出力を作るときの基本計算です。グラフでいえば直線(平面)的な、まっすぐな変換にあたります。

例えるなら、成績の総合点の計算式です。「総合点 = 英語×0.5 + 数学×0.3 + 国語×0.2 + 調整点」のように、各科目を決まった比率で混ぜて足すだけの計算——これが線形関数のイメージです。どんなに科目を増やしても「比率を掛けて足す」以上のことはできない、という単純さが特徴であり、同時に限界にもなります。

🖼 1枚でわかる線形関数

線形関数 — 全結合層の基本計算とその限界
  • 定義 — 入力ベクトルと重み行列の積にバイアス項を加えた変換
  • 別名 — この計算はアフィン変換とも呼ばれる
  • 使われる場所 — 全結合層が次の層へ情報を伝達する計算
  • 限界 — 線形関数だけでは何層重ねても全体が線形のまま
  • 解決 — ReLUやシグモイドなどの非線形活性化関数を各層に追加
つくもち屋「G検定対策」SUMMARY

📘 公式テキストの説明

ディープラーニングにおける全結合層(fully-connected layer)は、各ニューロンが前層のすべての出力に対して重みを持ち、線形関数を使って入力から出力を生成する層である。この線形関数は、入力ベクトルと重み行列の積にバイアス項を加えたもので表現される。この計算はアフィン変換とも呼ばれ、全結合層はこの線形変換によって次の層に情報を伝達する。この線形関数を用いるだけではモデルが単なる線形回帰と同等になり、表現力が限られてしまうため、通常はReLUやシグモイド関数などの非線形活性化関数を各層に追加する。この活性化関数がないと、複数の層を重ねても結局全体として線形のままとなり、複雑な関数を学習することができない。したがって、全結合層は線形変換を行い、そこに非線形性を導入することでディープラーニングモデルの表現力が高まる。全結合層はまた、画像認識モデルの終盤で特徴を抽出して分類する役割を担うことが多いが、最近ではより効率的な計算が可能な層と組み合わせて使用されることも一般的である。

この説明は「定義→限界→解決」という3段構成です。定義は「入力ベクトルと重み行列の積にバイアス項を加えたもの」で、この計算はアフィン変換とも呼ばれます。限界は、線形関数だけだとモデルが線形回帰と同等になり、しかも層を何枚重ねても全体として線形のままになること。解決策が、ReLUやシグモイド関数などの非線形活性化関数を各層に挟むことです。「線形変換+非線形性の導入」のセットでディープラーニングの表現力が生まれる、という筋書きを押さえましょう。

🔍 しっかり理解する

全結合層の計算 — 積和とバイアス

全結合層では、各ニューロンが前層のすべての出力とつながっており、それぞれのつながりに重みが割り当てられています。1ニューロンの出力は「y = w1×x1 + w2×x2 + … + wn×xn + b」という積和計算で求められ、層全体ではこれを行列のかけ算としてまとめて「y = Wx + b」と書けます。Wが重み行列、bがバイアス項です。この形の変換がアフィン変換であり、公式テキストのいう線形関数の正体です。

線形関数は「まっすぐな」変換なので、できることに明確な限界があります。入力空間を伸縮・回転・平行移動することはできても、曲げたり折ったりはできません。直線1本で赤と青の点を分けられるような単純な問題(線形分離可能な問題)しか、原理的に扱えないのです。

核心: なぜ層を重ねても線形のままなのか

「線形関数でも、層をたくさん重ねれば複雑になるのでは?」と考えたくなりますが、これは成り立ちません。線形変換を2回続けて適用した結果は、必ず別の1回の線形変換として書き直せるからです。たとえば1層目で「y = Ax + a」、2層目で「z = By + b」と計算しても、代入すれば「z = BAx + (Ba + b)」となり、これは重み行列BA・バイアスBa+bを持つただ1枚の線形層と完全に同じです。100層重ねても同じことが起き、全体は1枚の線形層に「つぶれて」しまいます。

つまり、活性化関数のないディープなネットワークは、見かけがどれだけ深くても実質は線形回帰と同等の表現力しか持ちません。ここに各層で非線形活性化関数を挟むと、層の合成がもはや1枚に還元できなくなり、層を重ねるほど複雑な関数を表現できるようになります。これが「ディープにする意味」を支える理屈です。

🅰 線形関数だけのネットワーク
  • 何層重ねても1枚の線形層に還元できる
  • 表現力は線形回帰と同等のまま
  • 直線で分けられる単純な問題しか解けない
🅱 非線形活性化関数を挟んだ場合
  • 層の合成が1枚に還元できなくなる
  • 層を重ねるほど表現力が向上
  • 複雑な曲がった境界・関数を学習できる

全結合層の使われどころ

公式テキストの最後の一文も試験的に重要です。全結合層は、画像認識モデルの終盤で、畳み込み層などが抽出した特徴を受け取って最終的な分類を行う役割を担うことが多くあります。一方、全結合層はすべての入出力がつながる分だけ重みの数が多くなりがちなため、最近では計算効率の良い層(畳み込み層など)と組み合わせて使うのが一般的です。「線形変換で情報を伝達する基本部品だが、単独ではなく組み合わせで使う」という位置づけを覚えておきましょう。

💡 具体例で考える

非線形性の必要性を示す古典的な例がXOR(排他的論理和)問題です。「2つの入力のどちらか一方だけが1のとき1を出力する」という単純なルールですが、平面上に4点を描くと、1本の直線では正解グループを分けられません。線形関数だけの単層パーセプトロンはこの問題を解けず、ニューラルネットワーク研究が停滞する一因になりました。隠れ層と非線形活性化関数を導入することで初めて解けるようになった、という歴史は「線形の限界」の象徴です。

もう1つ、画像分類モデルの構成で考えてみます。犬と猫の分類モデルでは、前半の畳み込み層が輪郭や毛並みといった特徴を抽出し、終盤の全結合層がそれらの特徴を重み付きで統合して「犬らしさ」「猫らしさ」のスコアを計算します。この統合計算こそ「重み行列との積+バイアス」という線形関数であり、各層の間にReLUが挟まることで、単なる足し算を超えた柔軟な判断が可能になっています。

⚠️ よくある誤解・紛らわしい用語

💡 ポイント
  • 「層を増やせば線形でも複雑になる」という誤解 — 線形変換の合成は必ず1つの線形変換に還元されます。深さが意味を持つのは非線形活性化関数があるからです。試験で最も狙われやすい論点です。
  • 線形関数と活性化関数の役割の混同 — 線形関数(アフィン変換)は情報を伝達する計算、活性化関数はそこに非線形性を加える変換です。全結合層は「線形変換→活性化関数」の順で処理します。
  • 「アフィン変換」という別名 — 「入力ベクトルと重み行列の積にバイアス項を加えた計算」をアフィン変換と呼びます。用語だけ見ると別物に見えますが、同じ計算を指します。
  • 線形回帰との関係 — 活性化関数なしのネットワークは「単なる線形回帰と同等」になります。線形回帰が誤りなのではなく、ディープラーニングとしては表現力が足りない、という文脈で理解しましょう。

📝 試験でのポイント

💡 ポイント
  • 「全結合層の線形関数は何と何の演算で表されるか」→ 入力ベクトルと重み行列の積+バイアス項、という定義の穴埋め・選択が基本形です。
  • 「活性化関数がないと、複数の層を重ねても全体として線形のままになる」は正しい記述としてそのまま出題され得ます。逆に「線形関数を多層にすれば複雑な関数を学習できる」は誤りの選択肢の典型です。
  • 非線形活性化関数の例としてReLU・シグモイド関数を挙げられるようにしておきましょう。
  • 全結合層が「画像認識モデルの終盤で特徴を統合して分類する役割を担うことが多い」という使われ方も、正誤判定の材料になります。

📚 まとめ

線形関数は、入力ベクトルと重み行列の積にバイアス項を加える変換(アフィン変換)で、全結合層が次の層へ情報を伝達する基本計算です。ただし線形関数だけでは、何層重ねても全体が線形のままで、表現力は線形回帰と同等にとどまります。そこでReLUやシグモイド関数などの非線形活性化関数を各層に加えることで、ディープラーニングの高い表現力が実現します。「線形変換+非線形性の導入」というセットで覚えるのが、この用語攻略の近道です。