ニューラルネットワーク

脳の神経回路に着想を得た数理モデル。深層学習や AI の中核を担う仕組み

機械学習AI
ニューラルネットワーク」の技術書を見る →

ニューラルネットワークとは

ニューラルネットワークは、人間の脳の神経回路に着想を得た数理モデルだ。多数の単純な計算単位 (ニューロン) を層状につなぎ、入力されたデータを変換しながら出力を導く。各つながりの「重み」をデータから調整することで、複雑なパターンを学習できる。画像認識・音声認識・自然言語処理など、現代の AI の中核を担う仕組みになっている。

基本構造

役割
入力層データを受け取る
中間層 (隠れ層)特徴を段階的に変換
出力層結果を出す

各ニューロンは、入力に重みを掛けて足し合わせ (重み付き和)、その値を活性化関数に通して次の層へ伝える。この単純な処理の積み重ねが、全体として複雑な判断を可能にする。

活性化関数が非線形でなければならない理由

重み付き和は行列とベクトルの積であり、行列の積は 1 つの行列にまとめられる。つまり線形な変換だけを重ねても、層をいくら増やしても全体としては 1 枚の線形変換と同じ表現力にとどまり、直線 (超平面) で分けられない問題は解けない。各ニューロンの出力に非線形な活性化関数を挟むことで、はじめて層を重ねた分だけ表現できる形が増える。

代表的な活性化関数はシグモイド関数と ReLU (入力が負なら 0、正ならそのまま通す) だ。ReLU は計算が軽く、正の領域で勾配がそのまま伝わるため、深いモデルでは既定の選択になっていることが多い。活性化関数は「精度を上げる小細工」ではなく、層を重ねる意味そのものを支える部品だと押さえておきたい。

起源と系譜

神経細胞の働きを論理素子として形式化したモデルは、1943 年に Warren McCulloch と Walter Pitts が発表した (論文「A logical calculus of the ideas immanent in nervous activity」)。それを、与えたデータから重みを学ぶ装置へ進めたのが Frank Rosenblatt のパーセプトロンで、詳細は 1958 年の論文「The perceptron: A probabilistic model for information storage and organization in the brain」で示された。

ただし中間層を持たない単層のパーセプトロンは、超平面 1 枚で分離できる問題しか学習できない。排他的論理和 (XOR) のように 4 点を斜めに分ける必要がある例で早々に行き詰まり、この限界が中間層を重ねる発想と、その重みをどう調整するかという問題を残した。現在のニューラルネットワークはその延長線上にある。

学習の仕組み

ニューラルネットワークは、予測と正解の誤差を計算し、その誤差が小さくなるように各つながりの重みを少しずつ調整する。この調整を大量のデータで繰り返すことで、徐々に正しい出力を出せるようになる。中間層を多数重ねたものが「ディープラーニング (深層学習)」で、誤差を出力側から入力側へさかのぼらせて各層の重みへ割り振る具体的な手続き (誤差逆伝播) は ディープラーニング の項で扱う。

「どんな関数でも近似できる」の正確な意味

中間層が 1 層のネットワークでも、活性化関数が多項式でなくニューロンを十分な数だけ並べれば、連続関数を任意の精度で近似できる。これが普遍近似定理で、シグモイド型の関数について Cybenko が 1989 年に、多層フィードフォワード網について Hornik らが同年に示した結果が広く引かれる。

注意したいのは、これが存在定理でしかないことだ。条件を満たすネットワークが「在る」ことは言えても、必要なニューロン数がどれほどか、学習によってその重みへ実際に到達できるかは何も保証しない。「理論上は何でも表現できる」を性能の裏付けとして読み替えると、モデルが学習しない原因を探す視点を失う。実務で幅を広げるより層を深くする構成が選ばれるのは、同じ表現力に必要なパラメータ数が少なく済む場合が多いという経験に基づく判断で、定理から導かれる帰結ではない。

理解しておきたい点

ニューラルネットワークは強力だが万能ではない。高い性能を得るには大量のデータと計算資源が必要で、なぜその結論に至ったかを人間が説明しにくい「ブラックボックス性」という課題もある。データが少ない問題や、判断根拠の説明が求められる場面では、決定木や線形モデルなど説明のつく手法の方が適することも多い。

手を動かすなら、中間層 1〜2 層の小さなネットワークで手書き数字のような分類を一度通し切るのが早い。そのうえで層数・活性化関数・学習率を 1 つずつ変え、精度と学習の進み方がどう動くかを見る。ここで得た感覚が、PyTorch のようなフレームワークで並んでいる設定項目が何を指しているのかを読み解く土台になる。

この記事は役に立ちましたか?

関連用語

関連する記事