第1章 AI/LLMの基礎アーキテクチャ|1-3 ニューラルネットワーク
学習目標
この節では、機械学習の中でも現在のLLMを支えているニューラルネットワーク(Neural Network)の基本構造を学びます。
学習後には、次のことを説明できるようになることを目標とします。
- ニューラルネットワークとは何か
- ニューロンがどのような計算を行っているか
- 重みとバイアスの役割
- 入力層・隠れ層・出力層の違い
- 活性化関数がなぜ必要なのか
- 順伝播とは何か
- 予測と正解をどのように比較するのか
- 損失(Loss)とは何か
- 勾配降下法が何をしているのか
- 誤差逆伝播法によって、どのパラメータを修正するか判断できる理由
- ニューラルネットワークとLLMのつながり
1. なぜニューラルネットワークを学ぶのか
前節では、機械学習における「学習」を次のように説明しました。
モデルの予測と正解のズレが小さくなるように、モデル内部のパラメータを調整すること
例えば、猫の写真を入力したとき、モデルが次のように予測したとします。
犬:80%
猫:20%
しかし、本当の正解は「猫」です。
正解を確率の形で表すと、
犬:0%
猫:100%
となります。
したがって、
モデルの予測 正解
犬:80% ←→ 犬:0%
猫:20% ←→ 猫:100%
を比較すると、予測と正解の間には大きなズレがあります。
機械学習では、このズレを損失(Loss)という数値で表し、そのLossが小さくなるようにパラメータを調整します。
しかし、ここで新しい疑問が生まれます。
そもそも「モデル内部のパラメータ」とは何なのか。
さらに、
数百万、数十億、あるいはそれ以上のパラメータがあるとき、どの値をどちら向きに修正すればよいと分かるのか。
この仕組みを理解するために必要なのが、ニューラルネットワークです。
2. ニューラルネットワークとは何か
ニューラルネットワーク(Neural Network)とは、多数の単純な計算単位を組み合わせて、入力から出力への複雑な関係を学習するモデルです。
名称は、人間の脳を構成する神経細胞であるニューロン(neuron)から着想を得ています。
ただし、「人間の脳をそのままコンピュータ上に再現したもの」と考えるのは不正確です。
実際には、
多数の数値を入力し、それらに重みをつけて計算し、結果を次の計算へ渡していく数学的なモデル
と考えた方が適切です。
基本的な構造は次のようになります。
入力
↓
ニューロン
↓
ニューロン
↓
ニューロン
↓
出力
一つひとつのニューロンが複雑なのではありません。
非常に単純な計算を行うニューロンを大量につなぐことで、複雑な規則性を表現できることが重要です。
3. 人工ニューロンの基本構造
一つの人工ニューロンを考えてみましょう。
入力として3つの値が入ってくるとします。
x₁
x₂
x₃
しかし、すべての入力が同じ重要度とは限りません。
そこで、それぞれの入力に重み(Weight)を掛けます。
x₁ × w₁
x₂ × w₂
x₃ × w₃
そして、それらを足し合わせます。
x₁w₁ + x₂w₂ + x₃w₃
さらにバイアス(Bias)と呼ばれる値を加えます。
x₁w₁ + x₂w₂ + x₃w₃ + b
この結果を活性化関数(Activation Function)に通し、ニューロンの出力を決めます。
全体を図にすると次のようになります。
入力 x₁ ──× w₁──┐
│
入力 x₂ ──× w₂──┼─→ 足し合わせる → + b → 活性化関数 → 出力
│
入力 x₃ ──× w₃──┘
ニューラルネットワークを理解するうえで重要なのは、まずこの単純な計算です。
4. 重みとは何か
重み(Weight)は、その入力をどの程度強く利用するかを決める数値です。
例えば、あるAIが住宅価格を予測するとしましょう。
入力として、
- 広さ
- 駅からの距離
- 築年数
を使うとします。
広さ × 重み
駅からの距離 × 重み
築年数 × 重み
仮に次のような重みだったとします。
広さ × 0.8
駅からの距離 × -0.6
築年数 × -0.3
これは単純化した例ですが、
- 広いほど価格を高くする方向
- 駅から遠いほど価格を低くする方向
- 築年数が長いほど価格を低くする方向
へ入力を働かせることになります。
重要なのは、人間が最初から適切な重みをすべて決めるわけではないことです。
学習によって、
w₁
w₂
w₃
...
という重みを調整していきます。
前節で「パラメータを学習する」と説明したとき、その代表例がこの重みです。
5. バイアスとは何か
ニューラルネットワークでは、重みに加えてバイアス(Bias)も利用します。
例えば、非常に単純な計算を考えます。
出力 = 入力 × 重み
入力が0なら、必ず出力も0になります。
0 × 重み = 0
しかし、
出力 = 入力 × 重み + バイアス
なら、
0 × 重み + 3 = 3
のように、入力が0でも出力をずらすことができます。
直感的には、
- 重み:入力の影響の強さを調整する
- バイアス:判断の基準位置をずらす
と理解するとよいでしょう。
重みとバイアスは、どちらも学習によって調整されるパラメータです。
6. ニューロンを複数つなぐ
一つのニューロンだけでは、表現できる関係には限界があります。
そこで、複数のニューロンを並べます。
入力1 ─┐
入力2 ─┼→ ○
入力3 ─┘
入力1 ─┐
入力2 ─┼→ ○
入力3 ─┘
入力1 ─┐
入力2 ─┼→ ○
入力3 ─┘
さらに、それぞれのニューロンの出力を次のニューロンへ渡します。
入力 第1段階 第2段階 出力
x₁ ─────→ ○ ─────┐
├────→ ○ ─────→ y
x₂ ─────→ ○ ─────┤
│
x₃ ─────→ ○ ─────┘
こうして、ニューラルネットワークは多数の計算を段階的に積み重ねます。
7. 層(Layer)
ニューラルネットワークでは、ニューロンをまとめたまとまりを層(Layer)と呼びます。
基本的には次の3種類があります。
入力層
↓
隠れ層
↓
出力層
入力層
外部からデータを受け取る部分です。
例えば画像なら、画像を表す数値が入力されます。
文章を扱うLLMの場合には、後で学ぶEmbeddingによって変換された数値ベクトルが入力されます。
隠れ層
入力を加工し、特徴や規則性を表現する部分です。
「隠れ」と呼ばれるのは、教師あり学習で与えられる正解のように、その層の値を人間が直接指定するわけではないからです。
隠れ層は1層とは限りません。
入力層
↓
隠れ層1
↓
隠れ層2
↓
隠れ層3
↓
出力層
のように複数存在することがあります。
多数の層を持つニューラルネットワークを利用する機械学習が、次節で扱う深層学習(Deep Learning)です。
出力層
最終的な予測を出す部分です。
犬と猫の分類なら、
犬:80%
猫:20%
のような出力を生成します。
8. 層を重ねる意味
なぜ、わざわざ何層も計算するのでしょうか。
理由の一つは、単純な特徴を組み合わせて、より複雑な特徴を表現できるからです。
画像認識を非常に単純化して考えると、
画像
↓
線や境界
↓
簡単な形
↓
目・耳などの部分
↓
顔などのまとまり
↓
猫
のように、複数段階の変換として捉えることができます。
重要なのは、実際のニューラルネットワークに人間が、
第1層では線を探せ
第2層では耳を探せ
第3層では猫を探せ
と一つずつルールを書いているわけではないという点です。
学習を通じて、目的に役立つ内部表現が形成されていきます。
9. 活性化関数はなぜ必要なのか
ここまでのニューロンでは、
入力 × 重み
↓
足し合わせる
↓
バイアスを加える
という計算をしました。
しかし、この計算だけを何層重ねても、表現できる関係には大きな制約があります。
そこで利用されるのが活性化関数(Activation Function)です。
活性化関数は、ニューロンの途中に非線形な変換を加えます。
入力
↓
重み付き和
↓
活性化関数
↓
出力
この非線形性があることで、ニューラルネットワークは単純な直線関係だけでなく、より複雑な関係を表現できるようになります。
10. ReLU
代表的な活性化関数の一つがReLU(Rectified Linear Unit)です。
考え方は非常に単純です。
入力が正なら
その値をそのまま出す
入力が負なら
0を出す
例えば、
入力 5 → 5
入力 2 → 2
入力 0 → 0
入力 -3 → 0
となります。
このような単純な関数でも、ニューラルネットワークに非線形性を与える重要な役割を果たします。
なお、現代のTransformer系モデルではReLUだけでなく、GELUやSwiGLUなど別の活性化の仕組みも使われます。ここではまず、「活性化関数によって非線形性を入れる」という原理を押さえれば十分です。
11. ニューラルネットワーク全体の処理
ここまでを一度まとめます。
ニューラルネットワークは、
入力
↓
重みを掛ける
↓
足し合わせる
↓
バイアスを加える
↓
活性化関数
↓
次の層へ渡す
↓
……
↓
最終出力
という処理を行います。
入力から出力へ向かって順番に計算することを順伝播(Forward Propagation)と呼びます。
12. 順伝播
犬と猫を分類するニューラルネットワークを考えてみましょう。
猫の写真
↓
入力層
↓
隠れ層1
↓
隠れ層2
↓
出力層
↓
犬:80%
猫:20%
このように、入力から出力まで計算を前方向に進める処理が順伝播です。
しかし、上記の例ではモデルが出した予測は間違っています。
本当の正解は「猫」です。
ここから、前節で説明した予測と正解の比較が始まります。
13. 予測と正解を比較する
ここは機械学習の「学習」を理解するうえで非常に重要です。
猫の写真を入力した結果、モデルが次のように予測したとします。
【モデルの予測】
犬:80%
猫:20%
一方、本当の正解は猫です。
これを比較しやすい形にすると、
【正解】
犬:0%
猫:100%
となります。
そこで、
| 種類 | モデルの予測 | 正解 |
|---|---|---|
| 犬 | 80% | 0% |
| 猫 | 20% | 100% |
を比較します。
つまり、「比較」とは、
モデルが出した予測と、本当の正解との違いを調べること
です。
今回の場合、
猫の写真
↓
モデル
↓
予測
犬:80%
猫:20%
↓
正解と比較
予測 正解
犬:80% ←→ 犬:0%
猫:20% ←→ 猫:100%
↓
予測と正解のズレが大きい
という状態です。
この「ズレ」をコンピュータが扱える数値にしたものが、損失(Loss)です。
14. 損失(Loss)
損失とは、
モデルの予測が正解からどの程度ずれているかを表す数値
です。
基本的には、
正解に近い予測
↓
Lossが小さい
正解から遠い予測
↓
Lossが大きい
と考えます。
先ほどの例なら、
猫の写真
モデルの予測
犬:80%
猫:20%
正解
犬:0%
猫:100%
↓
大きく間違えている
↓
Lossが大きい
となります。
では学習の目的は何でしょうか。
それは、
Lossが小さくなるように、重みやバイアスを修正すること
です。
15. しかし、どの重みを変えればよいのか
ここでニューラルネットワーク特有の問題が出てきます。
非常に小さなネットワークでも、たくさんの重みがあります。
w₁
入力 ─────────→ ○
w₂ │
入力 ─────────→ ○
w₃ │
入力 ─────────→ ○
│
出力
さらにネットワークが大きくなると、
w₁
w₂
w₃
w₄
w₅
...
と大量のパラメータが存在します。
Lossが大きいと分かっても、それだけでは、
w₁を増やせばよいのか
w₂を減らせばよいのか
w₃はそのままでよいのか
が分かりません。
そこで必要になるのが勾配(Gradient)です。
16. 勾配とは何か
勾配という言葉は難しそうですが、ここでは、
あるパラメータを少し動かしたとき、Lossがどちら向きに、どれくらい変化するかを示す情報
と理解すれば十分です。
山の斜面を想像してください。
Loss
高い
● 現在地
/
/
/
___/____________
低い
現在地からLossを小さくしたいなら、坂を下る方向へ進めばよいことが分かります。
ニューラルネットワークでも同じ発想を使います。
現在の重み
↓
少し増やしたら
Lossは増える?減る?
少し減らしたら
Lossは増える?減る?
この「どちらへ動けばLossが減るか」を示すのが勾配です。
17. 勾配降下法
勾配を利用してLossを小さくする方法を勾配降下法(Gradient Descent)と呼びます。
考え方は、
現在のパラメータ
↓
勾配を調べる
↓
Lossが下がる方向を知る
↓
パラメータを少し動かす
↓
もう一度計算
です。
山を少しずつ下るイメージです。
Loss
高い ●
/
●
/
●
/
●
____●____________
低い
一気に最低地点へ飛ぶのではなく、少しずつ修正していきます。
18. 学習率
では、一度にどれくらいパラメータを動かせばよいのでしょうか。
この移動量を調整する重要な値が学習率(Learning Rate)です。
学習率が小さすぎると、
●
↓
●
↓
●
↓
●
非常に少しずつしか進まないため、学習に時間がかかります。
一方、大きすぎると、
最小地点
↓
__________●__________
● → ●
最低地点を飛び越えてしまい、学習が不安定になることがあります。
したがって、適切な学習率を設定することはニューラルネットワークの訓練で重要です。
19. 誤差逆伝播法
ここまでで、
予測
↓
正解と比較
↓
Loss
↓
勾配を使って
パラメータを修正
というところまで来ました。
しかし、深いニューラルネットワークでは、多くの層があります。
入力
↓
層1
↓
層2
↓
層3
↓
出力
↓
Loss
出力に近い重みだけでなく、入力に近い層の重みも最終的なLossに影響します。
では、
最終的な間違いに、それぞれの重みがどの程度関与したのか
をどう計算するのでしょうか。
そのために利用されるのが誤差逆伝播法(Backpropagation)です。
20. なぜ「逆伝播」なのか
まず予測するときは、入力から出力へ向かって計算しました。
入力
↓
層1
↓
層2
↓
層3
↓
予測
これが順伝播です。
次にLossを計算します。
予測
↓
正解と比較
↓
Loss
そして、Lossへの影響を今度は出力側から入力側へたどっていきます。
Loss
↑
層3の重みへの影響
↑
層2の重みへの影響
↑
層1の重みへの影響
つまり、
順伝播
入力
↓
↓
↓
予測
↓
Loss
逆伝播
入力
↑
↑
↑
勾配
↑
Loss
となります。
出力から前の層へ向かって影響を計算していくため、Backpropagation(逆伝播)と呼ばれます。
Rumelhart、Hinton、Williamsによる1986年の論文では、誤差をネットワークの後方へ伝えることで、多層ネットワーク内部の表現を学習する方法が示され、その後のニューラルネットワーク研究に大きな影響を与えました。
21. 誤差逆伝播を具体的に考える
非常に単純なネットワークを考えます。
入力
↓
重みA
↓
中間層
↓
重みB
↓
予測
↓
Loss
例えばLossが大きかったとします。
まず、
重みBを少し変えたらLossはどの程度変わるか
を計算します。
次に、
重みAを少し変えたら、その後の計算を通じてLossはどの程度変わるか
を計算します。
このようにして、
重みA → Lossへの影響
重みB → Lossへの影響
を求めます。
その結果、
重みA:少し減らす
重みB:少し増やす
というように、それぞれのパラメータについて修正方向を決めることができます。
22. ここで使われている数学
誤差逆伝播の中心には、微分の連鎖律(Chain Rule)があります。
例えば、
AがBに影響する
BがCに影響する
CがLossに影響する
なら、
A
↓
B
↓
C
↓
Loss
という影響のつながりを逆向きにたどることで、
Aを少し変えたとき、最終的なLossがどの程度変わるか
を求められます。
高校数学の範囲を超える部分もあるため、本教材では詳しい微分計算までは扱いません。
ここで重要なのは、
ニューラルネットワークは、「何となく間違いを反省している」のではなく、数学的に各パラメータがLossへ与える影響を計算している
という点です。
なお、誤差逆伝播と多層ニューラルネットワークの学習を広く知らしめた代表的な研究として、Rumelhart、Hinton、Williamsの1986年の研究があります。
23. 学習全体を一本につなぐ
ここまでを全部つなげてみましょう。
① データを入力
↓
② 順伝播
↓
③ モデルが予測
↓
④ 正解と比較
↓
⑤ Lossを計算
↓
⑥ 誤差逆伝播
↓
⑦ 各パラメータの勾配を計算
↓
⑧ 勾配降下法で
パラメータを修正
↓
⑨ 次のデータで再び予測
↓
繰り返す
猫の例なら、
猫の写真
↓
ニューラルネットワーク
↓
予測
犬:80%
猫:20%
↓
正解と比較
予測 正解
犬:80% ←→ 犬:0%
猫:20% ←→ 猫:100%
↓
Lossを計算
「かなり間違っている」
↓
誤差逆伝播
「どの重みがLossに
どの程度影響したか計算」
↓
勾配降下法
「Lossが小さくなる方向へ
重みを少し修正」
↓
次の学習
これが、ニューラルネットワークの学習の基本形です。
24. 学習を繰り返すとどうなるのか
例えば最初は、
犬:80%
猫:20%
だったとします。
学習を続けると、
学習初期
犬:80%
猫:20%
↓
重みを修正
↓
犬:65%
猫:35%
↓
さらに修正
↓
犬:35%
猫:65%
↓
さらに修正
↓
犬:8%
猫:92%
のように、正しい方向へ予測が改善する可能性があります。
もちろん、実際の学習では一枚の写真だけを何度も覚えさせればよいわけではありません。
大量のデータについてLossを小さくすることで、個別の例を丸暗記するのではなく、未知のデータにも適用できる規則性を獲得することが重要です。
ここで前節の汎化や過学習という概念につながります。
25. 特徴量を人間が設計する世界から、学習する世界へ
ニューラルネットワークが重要な理由の一つに、特徴表現そのものを学習できることがあります。
従来の機械学習では、人間が、
猫を判定したい
↓
耳の形
目の位置
毛の色
輪郭
など、何を入力として使うかを考える場面が多くありました。
このような入力の特徴を特徴量(Feature)と呼びます。
一方、ニューラルネットワーク、特に深層学習では、
生のデータ
↓
ニューラルネットワーク
↓
役立つ表現を内部で学習
↓
予測
という形で、予測に有用な内部表現まで学習できるようになります。
深いネットワークが低レベルの特徴からより抽象的な表現を段階的に形成できるという考え方は、深層学習の重要な特徴の一つです。深いネットワークを効果的に訓練する方法は長く大きな課題であり、2000年代には層ごとの事前学習など、学習を安定させる研究も進みました。
26. ニューラルネットワークとLLM
ここまでの話は画像認識を中心に説明しましたが、原理はLLMにもつながっています。
LLMも巨大なニューラルネットワークです。
非常に大まかにすると、
文章
↓
Tokenization
↓
トークン
↓
Embedding
↓
数値ベクトル
↓
巨大なニューラルネットワーク
↓
次のトークンの確率
という処理を行います。
例えば、
日本の首都は
という入力に対して、
東京:82%
大阪:5%
京都:3%
...
のような次トークンの確率分布を出すと考えます。
事前学習では、実際の次トークンと比較します。
モデルの予測
東京:82%
大阪:5%
京都:3%
...
↓
実際の正解
東京
↓
Lossを計算
↓
誤差逆伝播
↓
パラメータを更新
つまり、猫と犬の例で学んだ基本原理は、そのままLLMの学習にもつながっています。
27. ただしLLMははるかに複雑である
ここまで扱ったニューラルネットワークは非常に単純化したものです。
現代のLLMでは、
- 巨大なベクトル
- 行列演算
- Attention
- Feed Forward Network
- 残差接続
- 正規化
- 非常に多数の層
などが組み合わされています。
しかし、その内部でも基本原理として、
数値を入力
↓
パラメータを使って計算
↓
出力を生成
↓
Lossを求める
↓
勾配を計算
↓
パラメータを更新
という考え方が存在します。
そのため、ニューラルネットワークの基本を理解しておくと、後ほどTransformerを学んだときに、
Transformerだけが突然まったく別の仕組みで動いているわけではない
ことが分かります。
Transformerもニューラルネットワークの一種です。
28. なぜこの知識がAI活用力を高めるのか
ニューラルネットワークを理解すると、LLMに対する見方がかなり変わります。
特に重要なのは、LLMの知識を、
「文章が保存されている巨大な辞書」
としてではなく、
大量のパラメータによって入力から出力への複雑な関係を表現しているモデル
として捉えられるようになることです。
これによって、例えば次の現象も理解しやすくなります。
同じ質問でも回答が完全には固定されない
LLMはデータベースから答えをそのまま取り出しているのではなく、入力と内部パラメータから出力を生成しているためです。
モデルの知識を直接読むのが難しい
知識は「このパラメータが東京を記憶している」というように、一つの場所へ単純に格納されているわけではありません。
学習には大量の計算が必要になる
非常に多くのパラメータについて順伝播・Loss計算・逆伝播・更新を繰り返す必要があるためです。
プロンプトを変えてもモデル本体が学習したとは限らない
入力を変更することと、重みやバイアスなどのパラメータを更新するTrainingは別だからです。
この違いは、AIシステムを設計するときに非常に重要になります。
29. 関連する重要研究
Learning representations by back-propagating errors
- 著者:David E. Rumelhart, Geoffrey E. Hinton, Ronald J. Williams
- 公開年:1986
解決しようとした課題
多層ニューラルネットワークの内部層を、どのように学習させるか。
要点
出力側の誤差をネットワークの後方へ伝播させ、それぞれの重みを調整する方法を示しました。これにより、中間層が入力データの有用な内部表現を学習できることを示しました。
現代への影響
誤差逆伝播は、現在の深層学習でもニューラルネットワークを訓練するための基本的な計算原理です。
Greedy Layer-Wise Training of Deep Networks
- 著者:Yoshua Bengio, Pascal Lamblin, Dan Popovici, Hugo Larochelle
- 公開年:2006
解決しようとした課題
層を深くしたニューラルネットワークは高い表現力を持つ一方、当時は勾配を使って効率よく訓練することが困難でした。
要点
層を一つずつ事前学習してからネットワーク全体を調整する方法を検証し、深いネットワークの最適化と汎化に有効であることを示しました。
現代への影響
現在のTransformerでは訓練方法が大きく進歩していますが、この研究は「深いネットワークをどう学習可能にするか」という深層学習発展期の重要な研究です。
30. よくある誤解
誤解1「ニューラルネットワークは脳を再現している」
ニューラルネットワークは生物のニューロンから着想を得ていますが、人間の脳を忠実に再現したものではありません。
基本的には数値計算を多数組み合わせた数学モデルです。
誤解2「ニューロン一つひとつが知識を持っている」
通常、特定の知識が一つのニューロンや一つの重みにそのまま格納されていると考えるのは適切ではありません。
多くの情報は、ネットワーク内部の多数のパラメータや活性化のパターンにまたがって表現されます。
誤解3「Lossが分かれば、すぐ正しい答えが分かる」
Lossが教えてくれるのは、基本的には現在の予測がどれくらい悪いかです。
どのパラメータをどちら向きに変えればLossが減るかを判断するには、勾配を計算する必要があります。
誤解4「誤差逆伝播が答えを教えている」
誤差逆伝播は正しい答えそのものをネットワークへ書き込んでいるわけではありません。
Lossに対して各パラメータがどの程度影響したかを計算する仕組みです。
誤解5「層を増やせば増やすほど必ず性能が上がる」
層を深くすると表現力を高められる可能性がありますが、訓練が難しくなる問題もあります。
深いネットワークの訓練方法そのものが長年研究対象になってきました。
31. 用語集
| 用語 | 意味 |
|---|---|
| ニューラルネットワーク | 多数の計算単位を接続し、入力と出力の複雑な関係を学習するモデル |
| ニューロン | 入力に重みを掛け、足し合わせ、変換して出力する基本的な計算単位 |
| 重み(Weight) | 入力の影響の強さを調節する、学習可能なパラメータ |
| バイアス(Bias) | ニューロンの出力の基準位置を調節するパラメータ |
| 層(Layer) | 複数のニューロンや計算をまとめたネットワーク内の処理段階 |
| 入力層 | 外部からデータを受け取る部分 |
| 隠れ層 | 入力を段階的に変換し、内部表現を形成する部分 |
| 出力層 | 最終的な予測を生成する部分 |
| 活性化関数 | ニューラルネットワークに非線形性を加える関数 |
| ReLU | 負の入力を0、正の入力をそのまま出す代表的な活性化関数 |
| 順伝播 | 入力から出力へ向かって計算を進める処理 |
| Loss | モデルの予測と正解のズレを表す数値 |
| 勾配 | パラメータを少し変えたときにLossがどの方向へどれだけ変化するかを示す情報 |
| 勾配降下法 | 勾配を利用してLossが小さくなる方向へパラメータを更新する方法 |
| 学習率 | 一度の更新でパラメータをどの程度動かすかを決める値 |
| 誤差逆伝播法 | Lossからネットワークを逆方向にたどり、各パラメータの勾配を効率よく計算する方法 |
| 特徴量 | モデルが予測に利用する入力の特徴 |
| 内部表現 | ニューラルネットワーク内部でデータを変換して得られる数値的な表現 |
32. 理解度チェック
問1
ニューラルネットワークにおける「重み」は何を調整する役割を持っていますか。
問2
重みとバイアスの役割の違いを説明してください。
問3
なぜニューラルネットワークには活性化関数が必要なのでしょうか。
問4
「順伝播」と「誤差逆伝播」の違いを、計算の方向に注目して説明してください。
問5
猫の写真に対して、
予測
犬:80%
猫:20%
正解
犬:0%
猫:100%
だった場合、「比較」とは具体的に何を意味しますか。
問6
Lossが大きいことが分かっただけでは、ニューラルネットワークを学習させるには不十分なのはなぜでしょうか。
問7
勾配とは何かを、「パラメータ」と「Loss」という二つの言葉を使って説明してください。
問8
誤差逆伝播法は何を計算するための仕組みでしょうか。
問9
「LLMに情報を入力すること」と「LLMのパラメータを学習させること」が異なる理由を、ニューラルネットワークの仕組みから説明してください。
33. この節のまとめ
ニューラルネットワークの基本構造は、一見すると驚くほど単純です。
一つのニューロンでは、
入力
↓
重みを掛ける
↓
足し合わせる
↓
バイアスを加える
↓
活性化関数
↓
出力
という計算を行います。
これを大量に組み合わせることで、複雑な入力と出力の関係を表現します。
そして学習では、
入力
↓
順伝播
↓
予測
↓
正解と比較
↓
Loss
↓
誤差逆伝播
↓
勾配
↓
パラメータ更新
という処理を繰り返します。
したがって、前節で学んだ、
「学習とはパラメータを調整すること」
を、もう少し具体的に表現すると、
「予測と正解のズレからLossを計算し、各パラメータがLossに与える影響を求め、Lossが小さくなる方向へ重みやバイアスを少しずつ更新すること」
となります。
これが、ニューラルネットワークがデータから学習する基本原理です。
次節へのつながり
ここまでで、
機械学習
↓
ニューラルネットワーク
↓
重み・バイアス
↓
順伝播
↓
Loss
↓
誤差逆伝播
↓
学習
という流れが見えるようになりました。
しかし、現在のAIでは、ニューラルネットワークをさらに大規模化し、多くの層を重ねています。
では、
なぜネットワークを「深く」する必要があるのでしょうか。
そして、
深くすると、何ができるようになり、逆にどんな問題が起きるのでしょうか。
次の 1-4「深層学習(Deep Learning)」では、
- なぜ「Deep」なのか
- 表現学習
- 多層化のメリット
- 勾配消失
- GPUと大量データ
- 深層学習のブレイクスルー
- 深層学習からTransformerへの道筋
を整理します。
ここまで理解すると、Transformerを「突然現れた特殊なAI技術」としてではなく、ニューラルネットワークと深層学習の発展の先に生まれたアーキテクチャとして理解できるようになります。