全結合型ニューラルネットワークは前提を置かないから高くつく CNNとTransformerが構造に入れたもの
先入観を持たずに、白紙で考えてくれ。会議でこう言われて出てくる案が、たいてい時間ばかりかかって凡庸なのには理由があります。前提を一つも置かない考え方は、何でも検討できる代わりに、検討の範囲を絞る手がかりを自分で一から見つけなければならないからです。全結合型ニューラルネットワーク(Fully Connected Neural Network、FCNN)は、まさにこの白紙の仕組みです。この記事では、構造と学習の流れを押さえたうえで、前提を置かないことの代償と、CNNやTransformerが構造に埋め込んだ前提を整理します。
すべてのニューロンが、前後の層のすべてとつながります
FCNNは多層パーセプトロン(MLP)とも呼ばれ、入力層、隠れ層、出力層からなり、各層のすべてのニューロンが前後の層のすべてのニューロンと接続されています。入力層の各ニューロンは特徴量一つに対応し、隠れ層は抽象的な特徴を学び、出力層はタスクに応じた予測を出します。
各ニューロンは、前の層の出力に重みを掛けて足し合わせ、バイアスを加え、活性化関数 φ をかけます。式では y = φ(w₁x₁ + w₂x₂ + … + wₙxₙ + b) です。層全体では、出力ベクトルに重み行列を掛け、バイアスを足し、活性化関数を通す計算を行列でまとめて行います。シグモイド関数、tanh、ReLUなどの非線形の関数を挟むことで、層を重ねたネットワークが複雑な関係を表せます。
学習は、順伝播、損失、逆伝播、更新の繰り返しです
データを前処理して訓練用、検証用、テスト用に分け、入力を通して出力を計算し(順伝播)、正解との差を損失関数で測ります。回帰では平均二乗誤差、分類ではクロスエントロピー損失がよく使われます。連鎖律で損失を各パラメータで微分して勾配を求め(逆伝播)、確率的勾配降下法(SGD)、モーメンタム、Adamなどの最適化手法で重みを更新します。データ全体を一巡するのが1エポックで、これを繰り返しながら検証データの成績でハイパーパラメータを調整します。
深いネットワークでは勾配消失や勾配爆発が起こるため、Xavier初期化やHe初期化(ReLU向け)、バッチ正規化やレイヤー正規化が使われます。訓練データの損失は下がるのに検証データの損失が上がり始めたら過学習の兆候で、L1やL2の正則化、ドロップアウト、データ拡張、早期停止、モデルの縮小で対処します。
前提を置かない代償は、パラメータとデータで払います
FCNNは、入力のどの特徴とどの特徴が関係しうるかについて、何の前提も置きません。画像なら、隣り合う画素も、端と端の画素も、同じように一本ずつ結びます。十分な深さと幅があれば複雑な関数も近似できるのはこの汎用性のおかげですが、代償があります。結ぶ線の数だけ重みが要り、層が大きくなるとパラメータ数が急増します。どの結びつきが意味を持つかを、すべてデータから学ぶしかないので、多くのデータが要り、過学習もしやすくなります。
| 相手 | 構造に埋め込んだ前提 | FCNNとの違い |
| CNN | 意味のある特徴は近くの画素どうしにあり、どこに現れても同じ形をしている | 近くだけを結び、同じ重みを使い回す |
| RNN | データには順序があり、前の状態が次に効く | 固定長でなく、順に処理する |
| Transformer | どの要素どうしが関係するかは、入力ごとに計算して決めればよい | 結びつきの強さを自己注意で入力から決める |
前提が当たっていれば、学ぶべきことが減り、少ないパラメータとデータで済みます。外れていれば、その前提が足かせになります。画像に強いCNNを、画素の並びに意味のない表形式のデータに使っても、得るものは少ないでしょう。現在のFCNNは、CNNの後段の分類器や、Transformerの中のフィードフォワード層のように、前提を持つ仕組みの一部として使われる場面が多くなっています。
白紙で考える会議は、全結合の重みを人の時間で払っています
白紙で考えてくれ、という依頼も、前提を置かない代償を払わせます。検討の範囲を絞る手がかりがないので、関係のありそうな論点をすべて結び、どれが効くかを一から確かめることになるからです。AIに前提を渡さずに頼むのも同じで、AIは手持ちの一般的な知識で空白を埋め、もっともらしい一般論を返します。拙著『GoogleのAI NotebookLM 意思決定の強化書』では、前提を対象、目的、制約、評価基準の四つで言葉にしてから考え始めます。
一方で、前提がかえって発想を狭める場面もあります。これまでの前提そのものが外れている疑いがあるとき、あえて前提を外して考えることに意味はあります。どちらの場面かを見分ける規則はなく、前提を置くか外すかも、それ自体が一つの判断です。
あなたが最近白紙で、と頼んだ、あるいは頼まれた仕事には、本当は誰もが共有している前提がいくつあったでしょうか。そのうち、外して考える価値があったものはどれですか。
この記事の背景にある考え方は、拙著『GoogleのAI NotebookLM 意思決定の強化書』の1章1節「意思決定の構造と前提の要素」に書きました。前提に空白があると、人もAIも手持ちの知識でそれを補い、AIの場合は当たり障りのない一般論につながる、だから前提を対象、目的、制約、評価基準の四つで書き出す、という節です。そこには「本書全体を貫くのは「前提が結論を決める」という主張です。」とあります。この節を読むと、白紙で、と頼む前に、誰もが共有している前提を書き出し、そのうちどれを置き、どれをあえて外すかを、自分で選べるようになります。

