1. 定義と概要
重みとは、ニューラルネットワークにおいて各入力信号、または前の層の各ニューロンの出力に掛け合わされる係数で、その入力が後段の処理にどれだけ強く影響するかを決める数値パラメータです。計算式で表すと、あるニューロンの出力の元になる値zは、z = w1x1 + w2x2 + … + wnxn + b という形になり、このwの部分が重みにあたります(wが重み、xが入力、bがバイアス)。
重みは、ニューロン(入力を受け取り計算した値を次に渡す、脳の神経細胞を模した処理単位)どうしの「結合荷重」とも呼ばれます。学習開始時は乱数などで初期化された後、学習の過程で誤差を小さくする方向に繰り返し更新されていきます。
重みを人が一つひとつ手作業で調整することは現実的ではありません。そこでニューラルネットワークには、損失関数(モデルの予測と正解とのズレの大きさを数値化する関数)の値をもとに重みを自動で更新する仕組みが欠かせません。
誤差逆伝播法(バックプロパゲーション。出力側で生じた誤差を逆向きに伝えながら各層の重みを更新する仕組み)は、各重みが誤差にどれだけ影響したかを計算します。その結果をもとに、勾配降下法(損失関数の値が小さくなる方向へパラメータを少しずつ動かしていく最適化の方法)で重みを調整することで、ネットワークは学習データから望ましい出力を返すように変化していきます。重みの集合が、そのネットワークの学習した内容そのものを表しているという位置づけになります。
2. 試験対策ポイント
まず整理したいのは、重みが学習によって自動的に更新されるパラメータである点と、学習前に人が値を設定するハイパーパラメータ(学習率やエポック数、バッチサイズのように、学習を始める前に人が決めておく値)との違いです。両者の対比は、次のように整理できます。
| 観点 | 重み | ハイパーパラメータ |
|---|---|---|
| 値を決めるもの | 学習の仕組みが自動で更新する | 学習を始める前に人が設定する |
| 学習中の変化 | 誤差逆伝播法と勾配降下法で書き換えられ続ける | 学習の途中で自動的には変わらない |
| 具体例 | 各ニューロン間の結合の重み | 学習率、エポック数、バッチサイズ |
両者を同一のものとして扱うと、区別を取り違えることになります。どちらも学習に関わる数値でありながら、更新の主体が機械か人かという点で立場が分かれるというわけです。
重みの更新は、勾配降下法に基づいて行われます。誤差逆伝播法で計算した損失関数の勾配を使い、w ← w − η∂L/∂w(ηは学習率)という形で、誤差が小さくなる方向にパラメータを少しずつ動かしていく仕組みです。更新の幅は学習率(1回の更新でパラメータをどれだけ動かすかを決める大きさ)によって変わり、値が大きすぎれば学習が不安定になり、小さすぎれば収束に時間がかかります。
重みの初期値の与え方も、試験対策として重要な範囲です。活性化関数に応じてXavierの初期値やHeの初期値が使われ、初期化の仕方によって学習の収束のしやすさや、層を伝わるうちに勾配が極端に小さくなる勾配消失、逆に極端に大きくなる勾配爆発の起こりやすさが変わります。
また、重みが大きくなりすぎることへの対処として、重みの大きさに応じてペナルティを課す正則化(重みが大きくなりすぎるのを抑えて過学習を防ぐ手法)という考え方があります。その具体的な手法であるL1正則化・L2正則化(weight decay)は、過学習(訓練データに適応しすぎて、未知のデータへの精度が落ちてしまう現象)対策としてバイアスとは区別して語られます。
加えて、重みはニューロン間の結合ごとに個別の値を持ちます。前後の層のすべてのニューロンどうしが結びつく全結合層(前の層のすべてのニューロンと次の層のすべてのニューロンが、それぞれ重みで結ばれている層)では、その組み合わせの数だけ重みが存在します。
3. 関連概念との比較・相違点
重みと最も混同されやすいのはバイアス(計算の最後に加算される定数で、出力の基準点をずらす値)です。両者の働き方の違いは、次のように対比できます。
| 観点 | 重み | バイアス |
|---|---|---|
| 計算での働き | 各入力に掛け算される係数 | 計算の最後に加算される定数 |
| 担う役割 | 入力の重要度を調整する | 出力の基準点、いわばしきい値をずらす |
| 入力との関係 | 入力の値に応じて効き方が変わる | 入力の値に関わらず一定に働く |
重みだけでは入力がすべて0のとき出力も0に固定されてしまうため、バイアスがその表現力を補っているという関係にあります。掛け算で働くか加算で働くか、入力の値に応じて変化するか変化しないかが、両者を見分ける軸になります。
もう一つの対比軸が、ハイパーパラメータとの違いです。重みは学習の過程で誤差逆伝播法と勾配降下法によって自動的に更新される値です。これに対し、学習率やエポック数、バッチサイズなどのハイパーパラメータ(学習率やエポック数のように、学習を始める前に人が設定する値)は学習前に人が設定する値で、学習中に自動では更新されません。
どちらも「パラメータ」という言葉でひとまとめに語られることがありますが、値が学習によって変わるかどうかという点で、両者は明確に区別されます。用語の見分けに迷ったときは、この一点に立ち返ると判断しやすくなります。
4. ビジネス・実務での活用シナリオ
画像認識を担うCNN(画像処理を得意とする畳み込みニューラルネットワーク)の分野では、畳み込み層のフィルタ、カーネルとも呼ばれる小さな数値の行列が持つ重みが、学習によってエッジや模様といった特徴を検出するパターンを獲得します。この重みがどのようなパターンに反応するように育つかによって画像分類や物体検出の精度が左右されるため、CNNの性能は重みの学習結果そのものに支えられているという言い方ができます。
自然言語処理(人間の言葉をコンピュータに処理させる技術分野)のTransformer(文章などの系列データを注意機構で処理するニューラルネットワーク)では、注意機構(Attention。入力のどの部分に注目するかを重みとして計算する仕組み)が、入力中のどの単語にどれだけ注目するかを重み、いわば注意の重みとして動的に計算します。文脈に応じて重視する単語を切り替えられるこの仕組みが、翻訳や文章生成の精度向上に寄与しています。
推薦システムでは、ユーザーの行動履歴から得られる特徴量(商品の価格帯や閲覧回数など、予測に使う個々の要素)それぞれに重みを学習させることで、購買や視聴につながりやすい要素を重視したスコアリングを行います。どの特徴量にどれだけの重みを置くかが学習によって自動的に決まるため、人手でルールを組むよりも精度の高いレコメンドにつながります。
5. 要点まとめ
- 重みは各入力(前の層の出力)に掛け合わされる係数で、入力の重要度を表し学習によって更新されるパラメータです。バイアスは加算される定数で出力の基準点を調整する役割を持ち、両者は働き方が異なります。
- 重みは誤差逆伝播法で計算した勾配をもとに勾配降下法で更新され、学習率やエポック数のようなハイパーパラメータとは区別されます。
- 重みの初期化方法(Xavierの初期値・Heの初期値)や、正則化の具体的な手法であるL1正則化・L2正則化(weight decay)は、学習の安定性や過学習対策として重みの値そのものを調整する仕組みです。
6. 確認問題
問1ニューラルネットワークの重みは、各入力信号に掛け合わされる係数であり、入力の重要度を調整する役割を持つ。
解答・解説をみる
○ 正しい
重みの定義そのものです。計算の最後に加算されるバイアスとは異なり、入力に掛け算される点が重みの特徴です。
問2重みは学習率やエポック数と同様に、学習を開始する前に人が値を設定するハイパーパラメータである。
解答・解説をみる
× 誤り
正しくは、重みは学習の過程で誤差逆伝播法と勾配降下法によって自動的に更新されるパラメータです。学習前に人が設定するハイパーパラメータとは区別されます。
問3重みの更新は、誤差逆伝播法で計算した損失関数の勾配をもとに、勾配降下法によって誤差が小さくなる方向に行われる。
解答・解説をみる
○ 正しい
重みの更新の基本的な仕組みです。w ← w − η∂L/∂w(ηは学習率)という形で、勾配の逆方向にパラメータを動かして誤差を減らしていきます。

