ニューラルネットワークの「学習」とは、突き詰めれば膨大な数の「重み」を調整する作業です。ディープラーニングのあらゆる話題——誤差逆伝播法も、勾配降下法も、初期化も——は、この重みをどう決めるかという一点に集約されます。全結合層の理解の土台となる最重要キーワードです。
📖 ひと言でいうと
重みとは、ニューラルネットワーク内の各ノード(ニューロン)が次の層のノードへ情報を伝えるときに、入力に掛け合わせる数値パラメータのことです。どの入力をどれだけ重視するかを表し、学習によって値が調整されます。
例えるなら、料理のレシピにおける各調味料の分量です。同じ材料(入力)でも、しょうゆを多めにするか塩を控えめにするか(重みの値)で仕上がり(出力)はまったく変わります。学習とは、味見(誤差の測定)を繰り返しながら分量を少しずつ調整し、理想の味に近づけていく作業にあたります。
🖼 1枚でわかる重み
📘 公式テキストの説明
ニューラルネットワーク内の各ノード(ニューロン)が次の層のノードに情報を伝達する際に用いる数値パラメータを指す。この重みは、モデルが学習データに基づいて予測を行う際の調整要素となり、モデルの出力精度に直接影響を与える。たとえば、入力データがネットワークを通過する際、各ノードでは「重み」を掛け合わせた値が合計され、さらに「バイアス」と呼ばれる補正値を加える。この合計値に活性化関数が適用されて次のノードへと伝わり、最終的な予測出力へと繋がる。重みの学習は誤差逆伝播法(バックプロパゲーション)と呼ばれるアルゴリズムを用いて行われる。このアルゴリズムでは、まず出力の誤差(損失関数で測定)を計算し、各重みがその誤差にどの程度寄与しているかを求めて、勾配降下法などで最適化を行う。勾配降下法では、誤差が減少するように重みが徐々に調整され、これを繰り返すことでモデルの精度が高まる。こうした重みの調整は、自然言語処理や画像認識といった実用的なディープラーニングモデルの性能を支えている。また、適切な重みの設定には初期化と学習率の調整も重要である。例えば、重みの初期化方法としてHe初期化やXavier初期化が用いられ、これにより初期段階で勾配消失や爆発といった問題が発生しにくくなる。重みの最適化にはAdamや確率的勾配降下法(SGD)などの手法も活用され、これらの調整によって効率的で安定した学習が可能になる。
情報量の多い説明ですが、①順伝播での役割(重み付き合計+バイアス→活性化関数)、②学習の仕組み(誤差逆伝播法+勾配降下法)、③実務上の工夫(He/Xavier初期化、SGD/Adamによる最適化)の3ブロックに分けて読むと整理できます。重みは「予測の調整要素」であり、その値が出力精度を直接左右する——だからこそ、これをうまく調整する技術群がディープラーニングの中心テーマになっているのです。
🔍 しっかり理解する
順伝播での役割 — 重み付き合計からの流れ
1つのノードが行う計算はシンプルです。前の層から届く複数の入力それぞれに重みを掛け、すべて合計し、バイアス(補正値)を加え、その結果に活性化関数を適用して次の層へ渡します。プレーンテキストで書けば「出力 = 活性化関数(w1×x1 + w2×x2 + … + b)」です。
重みが大きいほどその入力は出力に強く影響し、ゼロに近ければほぼ無視され、負の値なら逆方向に働きます。つまり重みの集合は「ネットワークが何に注目し、何を無視するか」を数値で表現したものです。全結合層では、各ノードが前層のすべての出力に対して重みを持つため、重みは行列としてまとめて扱われます。
学習の仕組み — 誤差逆伝播法と勾配降下法
重みの値は最初は適切には決まっていません。学習では、まずモデルの予測と正解のずれを損失関数で数値化し、次に誤差逆伝播法によって「各重みがその誤差にどの程度寄与しているか」(勾配)を出力側から入力側へさかのぼって計算します。そして勾配降下法により、誤差が減る方向へ各重みを少しずつ動かします。この「予測→誤差測定→寄与の計算→微調整」を膨大な回数繰り返すことで、精度の高い重みの集合が出来上がっていきます。
1回にどれだけ動かすかを決めるのが学習率で、これは人が事前に設定するハイパーパラメータです。重み(学習で決まる)と学習率(事前に決める)の区別は試験の定番論点です。
初期値と最適化の工夫
学習の出発点となる重みの初期値も、結果を大きく左右します。層が深いネットワークでは、初期値が不適切だと誤差の信号が層を伝わるうちに消えてしまう「勾配消失」や、逆に大きくなりすぎる「勾配爆発」が起こりやすくなります。これを防ぐために、各層の入出力の規模に合わせて初期値のばらつきを調整するXavier初期化やHe初期化が使われます。前者はシグモイド関数系、後者はReLU系の活性化関数と相性が良い初期化として知られています。
また、重みの更新には確率的勾配降下法(SGD)やAdamといった最適化手法が使われ、学習の効率と安定性を高めています。
💡 具体例で考える
手書き数字認識のネットワークを考えます。28×28ピクセルの画像を入力とする全結合層では、1つのノードが784個のピクセル値それぞれに重みを持ちます。学習が進むと、「数字の7」に反応するノードでは、7の斜め線が通る位置のピクセルに対応する重みが大きくなり、ほとんど筆跡が通らない四隅の重みはゼロに近づいていきます。重みの値の分布そのものが、「どこに線があれば7らしいか」という知識の実体なのです。
規模の感覚も持っておきましょう。この784入力×100ノードの層だけで重みは78,400個あり、実用的な画像認識や自然言語処理のモデルでは重みの総数が数百万〜数十億個に達します。「学習済みモデルを配布する」とは、実質的にこの重みの値一式を配布することを意味します。
⚠️ よくある誤解・紛らわしい用語
- バイアスとの混同 — バイアスは重み付き合計に加える補正値で、入力に掛ける重みとは役割が異なります。両方合わせてモデルの「パラメータ」と呼ばれます。
- ハイパーパラメータとの混同 — 重みは学習によってモデルが自動で獲得する値、学習率や層の数は人が事前に設定するハイパーパラメータです。「学習で更新されるのはどれか」という形で問われます。
- 「重みは正の値」という思い込み — 重みは負の値も取ります。負の重みは「その入力が強いほど出力を抑える」という抑制的な関係を表現します。
- 誤差逆伝播法と勾配降下法の役割の混同 — 誤差逆伝播法は「各重みの誤差への寄与(勾配)を計算する」アルゴリズム、勾配降下法は「その勾配を使って重みを更新する」手法です。計算と更新で役割が分かれています。
📝 試験でのポイント
- 「ノード間の情報伝達で入力に掛け合わせる数値パラメータ」という定義から重みを選ばせる問題が基本形です。
- 順伝播の流れ(重み×入力の合計→バイアス加算→活性化関数→次の層)の並べ替えや穴埋めが想定されます。
- 重みの学習が誤差逆伝播法で寄与を計算し勾配降下法で調整する、という組み合わせは頻出の対応関係です。
- He初期化・Xavier初期化が「勾配消失や爆発を防ぐための重みの初期化方法」である点、SGD・Adamが「重みの最適化手法」である点の対応づけも問われ得ます。
📚 まとめ
重みは、ニューラルネットワークのノード間で情報を伝達する際に入力へ掛け合わせる数値パラメータで、モデルの出力精度を直接左右する調整要素です。順伝播では重み付き合計にバイアスを加え活性化関数を通して次層へ伝え、学習では誤差逆伝播法で各重みの誤差への寄与を求め、勾配降下法で徐々に調整します。He/Xavier初期化やSGD/Adamといった工夫も、すべて「重みをうまく決める」ための技術です。ディープラーニングの学習の本体は重みの調整である、と押さえておきましょう。
