ニューラルネットワーク
Neural Network ・ にゅーらるねっとわーく
脳の神経回路を模した層状の計算モデル。深層学習の基盤で、画像・音声・言語処理を支える。
✦ 30秒で試す — 航海猫を見分けるAIも、中身は「直線を引く係」の寄せ集めニューロンを100個重ねると、学べる境界線の形は?予想してみる概要
ニューラルネットワークは、脳の神経細胞(ニューロン)のつながりを大まかに模した計算モデルで、機械学習の一手法です。単純な計算しかしない「ノード」を層状に大量に並べてつなぎ、つながりの強さ(重み)をデータから調整することで、画像の中の猫を見つける、音声を文字に起こす、文章の続きを予測するといった複雑なパターン認識を実現します。
層を深く(ディープに)重ねたニューラルネットワークを使う機械学習は「深層学習(ディープラーニング)」と呼ばれ、2010年代以降のAIブームの中心にあります。画像認識、音声認識、機械翻訳、そしてLLMまで、現在「AI」と呼ばれているものの中身は、ほぼ例外なくこのニューラルネットワークです。
なぜ生まれたか
出発点は、1958年に Frank Rosenblatt が発表した「パーセプトロン」です。複数の入力に重みを掛けて足し合わせ、しきい値を超えたら発火するという神経細胞1個の単純なモデルで、重みを例から自動で調整する学習規則を持っていました。ところが1969年、Minsky と Papert が著書で、1層のパーセプトロンは「直線(平面)で分けられる問題」しか解けず、XOR(2つの入力が異なるときだけ1)のような単純な問題すら表せないことを示します。層を重ねれば表現力が上がることは分かっていましたが、多層のネットワークの重みをどう学習させるかが分からず、研究は冬の時代に入りました。
1986年、Rumelhart・Hinton・Williams が誤差逆伝播法(バックプロパゲーション)を広め、多層のネットワークを学習させる道が開けます。しかし層を深くすると、今度は別の壁にぶつかりました。当時よく使われたシグモイド関数は傾きが最大でも 0.25 しかなく、出力側から入力側へ誤差をさかのぼるたびに、この小さな傾きが何度も掛け合わされます。そのため入力に近い層ほど勾配(重みを動かす手がかり)が指数的に小さくなり、ほとんど学習が進まない。1991年に Hochreiter が分析したこの勾配消失問題のせいで、実用になるのは数層までで、1990年代から2000年代にかけてはサポートベクターマシンなど別の手法が主流になりました。
壁は、いくつもの工夫の積み重ねで崩れていきます。2006年、Hinton らは層を1つずつ教師なしで事前学習してから全体を調整する方法で、深いネットワークを学習できることを示しました。2010年ごろには、層の大きさに合わせて重みの初期値の散らばりを決める初期化(Glorot と Bengio)や、正の入力で傾きが常に1の活性化関数 ReLU が広まり、勾配が消えにくくなります。そこに大量の学習データ(インターネット)と大量の計算力(GPUの転用)がそろい、2012年の画像認識コンテスト ILSVRC で、ReLU と GPU で学習した AlexNet が従来手法に大差をつけて優勝しました。2015年には、層を飛び越えて入力を足し込む残差接続(ResNet)で152層の学習にも成功しています。「特徴の捉え方を人間が設計する」時代から「特徴の捉え方ごと機械に学ばせる」時代への転換は、この「深く積めなかった理由」を一つずつ取り除いた結果でした。
詳細
構造 — 層・重み・活性化関数
ニューラルネットワークの基本構造は、入力層・隠れ層・出力層の三種類の層です。入力層はデータ(画像ならピクセル値の並び)を受け取り、隠れ層が変換を重ね、出力層が答え(「猫である確率」など)を出します。各ノードは前の層の全ノードから値を受け取り、それぞれの重みを掛けて足し合わせ、活性化関数という非線形な変換を通して次の層へ渡します。この非線形変換が重要で、これがなければ何層重ねてもただの一次式にしかならず、複雑な形の境界を学べません。
深層学習が強力なのは、層が階層的な抽象化を担うからです。画像認識のネットワークでは、浅い層が輪郭や色の傾きのような単純な特徴に反応し、中間の層がそれを組み合わせた目や耳のようなパーツに、深い層が「猫の顔」のような概念に反応するようになります。かつて専門家が手作業で設計していた「特徴量」を、ネットワークがデータから自動で獲得するのです。
学習の直観 — 損失・誤差逆伝播・勾配降下
学習とは、損失関数(予測がどれだけ外れているかを1つの数で表したもの)が小さくなるように重みを調整することです。数値を当てる回帰では予測と正解の差の2乗の平均(二乗誤差)、種類を当てる分類では「正解のクラスに付けた確率の対数にマイナスを付けたもの」(交差エントロピー)がよく使われます。正解に高い確率を付けるほど、交差エントロピーは0に近づきます。
学習の手順は、原理だけ見れば素朴です。まず入力を流して予測を出し(順伝播)、損失を測ります。次に「どの重みをどちらに動かせば誤差が減るか」を、出力側から入力側へ向かって層をさかのぼりながら計算します。これが誤差逆伝播法で、数学的には微分の連鎖律の系統的な適用です。各重みを誤差が減る方向へほんの少しずつ動かす(勾配降下法)ことを、大量のデータで何百万回も繰り返すと、ネットワーク全体が徐々に正解に近づいていきます。山の斜面で霧の中に立ち、足元の傾きだけを頼りに一歩ずつ谷底へ降りていく様子に例えられます。
下の部品で、XOR や同心円に並んだ点を、小さなネットワークに学習させてみてください。隠れ層がないとき、あるいは活性化関数を「なし」にしたときは、何度学習しても境界は直線1本のままです。非線形の活性化を入れてニューロンを足すと、各ニューロンが引く直線(薄い金の線)が組み合わさって、境界が曲がり始めます。右下では、損失の曲線の上を点が谷へ降りていきます。
いまは隠れ層のニューロンが0個(入力から出力へ直結)です。まず「学習」を押してみてください。そのあと図の + でニューロンを足して、もう一度学習します。
重要なのは、この繰り返しの中身がほぼすべて行列の掛け算だという点です。同じ形の単純な計算を膨大な回数実行する処理は、GPUの大量並列計算と相性が抜群で、深層学習の実用化はGPUの転用と表裏一体でした。逆に言えば、学習には潤沢な計算資源が必須で、それがクラウドのGPUインスタンス需要を生み出しています。
発展形と実務での位置づけ
基本形の全結合ネットワークから、用途に応じた発展形が生まれています。画像に強い畳み込みニューラルネットワーク(CNN)、時系列を扱う再帰型ネットワーク(RNN)、そして文中の離れた単語同士の関係を一度に捉えるTransformerです。Transformerを桁外れの規模で学習させたものがLLMであり、単語や文を意味の座標に変換する埋め込みもニューラルネットワークの中間表現から生まれた技術です。
実務での注意点は、まず「常に最適な手法ではない」ことです。データが少ない場合や表形式データでは、より単純な手法のほうが精度も解釈性も高いことが珍しくありません。また、数億〜数兆個の重みが絡み合った判断根拠は人間には読み解きにくく(ブラックボックス問題)、説明責任が求められる領域では採用のハードルになります。ゼロから学習する代わりに、公開されている学習済みモデルを土台にファインチューニングする転移学習が現在の主流であり、「巨大モデルは借りて、自分のデータで仕上げる」という分業が実務の標準形になりつつあります。
試問
平面に、内側の点の集まりと、それをぐるりと囲む外側の輪の2色の点が並んでいます。小さなニューラルネットワークの図の + で隠れ層のニューロンを足し(押すと外せる)、活性化関数を選んで「学習」を押すと、境界線(金の線)が学ばれます。薄い金の破線は、ニューロン1個が引く直線です。
いまは隠れ層のニューロンが0個(入力から出力へ直結)です。まず「学習」を押してみてください。そのあと図の + でニューロンを足して、もう一度学習します。
