※小説ではない※専門書 要約資料集 為替(換算)3.9万円でもらう 紐解集生成 専門 初入門 資料 作:{作者名}
> この冊の前提=BOOK-0087_情報派生_機械学習_第1巻(→BOOK-0087)。第1巻では「学習とは経験からの汎化である」という土台の定義から出発し、教師あり・教師なし・強化学習という三つの学び方、回帰と分類という二つの問いの形、損失関数と勾配降下法という「間違いを数値化して減らす」技術、過学習と汎化の違い、正解率・適合率・再現率という評価の物差し、そしてパーセプトロンの直感と1958年から2012年に至る歴史(ローゼンブラットのパーセプトロン→ミンスキーとパパートによる限界の指摘→誤差逆伝播法の再発見→AlexNetの飛躍)を、検算を交えて一本道でたどった。本冊はその続きとして、学習をより精密に制御する技術(正則化)、単純なパーセプトロンを超える多層のネットワーク、画像や文章を扱う専門構造(CNN・RNN・Transformer)、モデルを正しく評価する道具立ての深掘り、教師なし学習と強化学習の入り口、そして機械学習が抱える限界と誠実さの問題までを追っていく。
>
> 水準: 五〜六(後半) / 冠: 情報・計算
> 字数規定について: 本冊は空白除去12,000〜18,000字を規定とするが、検算3件・章立て7章前後・終章という構造完全性を保つため、規定上限をやや超過している(§16.22に基づく超過)。理由は、数式検算(勾配降下・混同行列・k-means)を省略せずに手順を追って示すこと、およびニューラルネットワークの歴史的経緯(誤差逆伝播からTransformerまで)を歯抜けなく接続することを優先したためである。
> 安全境界(本冊の執筆方針): 本冊はモデルの仕組み・評価・限界を扱う。特定のモデルを欺く攻撃手法の実装手引きや、悪用可能な具体的手順は一切記載しない。バイアスや幻覚といった限界は、知識として誠実に扱う。
> 相互リンク: →BOOK-0087(機械学習第1巻・本冊の前提) →BOOK-0066(アルゴリズムとデータ構造第1巻) →BOOK-0116(アルゴリズム第2巻) →BOOK-0071(線形代数第1巻) →BOOK-0120(線形代数第2巻・固有分解) →BOOK-0083(確率論第1巻) →BOOK-0124(確率論第2巻・ベイズ) →BOOK-0026(回帰と統計) →BOOK-0010(コンピュータの始まり)
# BOOK-0135 機械学習II — 学びの深さと、誠実さの深さ(情報派生 第2巻)
> この冊の前提=BOOK-0087_情報派生_機械学習_第1巻(→BOOK-0087)。第1巻では「学習とは経験からの汎化である」という土台の定義から出発し、教師あり・教師なし・強化学習という三つの学び方、回帰と分類という二つの問いの形、損失関数と勾配降下法という「間違いを数値化して減らす」技術、過学習と汎化の違い、正解率・適合率・再現率という評価の物差し、そしてパーセプトロンの直感と1958年から2012年に至る歴史(ローゼンブラットのパーセプトロン→ミンスキーとパパートによる限界の指摘→誤差逆伝播法の再発見→AlexNetの飛躍)を、検算を交えて一本道でたどった。本冊はその続きとして、学習をより精密に制御する技術(正則化)、単純なパーセプトロンを超える多層のネットワーク、画像や文章を扱う専門構造(CNN・RNN・Transformer)、モデルを正しく評価する道具立ての深掘り、教師なし学習と強化学習の入り口、そして機械学習が抱える限界と誠実さの問題までを追っていく。
>
> 水準: 五〜六(後半) / 冠: 情報・計算
> 字数規定について: 本冊は空白除去12,000〜18,000字を規定とするが、検算3件・章立て7章前後・終章という構造完全性を保つため、規定上限をやや超過している(§16.22に基づく超過)。理由は、数式検算(勾配降下・混同行列・k-means)を省略せずに手順を追って示すこと、およびニューラルネットワークの歴史的経緯(誤差逆伝播からTransformerまで)を歯抜けなく接続することを優先したためである。
> 安全境界(本冊の執筆方針): 本冊はモデルの仕組み・評価・限界を扱う。特定のモデルを欺く攻撃手法の実装手引きや、悪用可能な具体的手順は一切記載しない。バイアスや幻覚といった限界は、知識として誠実に扱う。
> 相互リンク: →BOOK-0087(機械学習第1巻・本冊の前提) →BOOK-0066(アルゴリズムとデータ構造第1巻) →BOOK-0116(アルゴリズム第2巻) →BOOK-0071(線形代数第1巻) →BOOK-0120(線形代数第2巻・固有分解) →BOOK-0083(確率論第1巻) →BOOK-0124(確率論第2巻・ベイズ) →BOOK-0026(回帰と統計) →BOOK-0010(コンピュータの始まり)
## はじめに——「谷底に着いた後」の物語
BOOK-0087では、勾配降下法という「霧の中の山を下る」比喩で、機械が損失関数の谷底に向かって少しずつ歩み寄っていく様子を見た。しかし実際には、谷底にたどり着いた後にも問題は続く。谷底が「訓練データという名の、たまたま手元にある地形」の谷底にすぎず、「本当に知りたい、まだ見ぬデータ全体の地形」の谷底とは微妙にずれていることがあるからだ。この「たまたまの地形に深く入り込みすぎる」ことへの対処——正則化——が、本冊の最初の主題である。
続いて、BOOK-0087第五章で見た「一つのパーセプトロン」を積み重ねて「層」にし、層を重ねて「多層」にすると何が起きるかを追う。1969年にミンスキーとパパートが指摘した限界(XOR問題)がどのように克服されたか、そして1986年の誤差逆伝播法が実際に何を計算しているのかを、連鎖律という数学の道具を使って直感的に示す。そこから画像を扱うCNN、文章や音声のような順序のあるデータを扱うRNN、そして2017年に登場し現在の生成AIの土台となったTransformerへと歩みを進める。
後半では、モデルの性能を正しく測るための評価指標(混同行列・適合率・再現率・F1・ROCとAUC)を第1巻より一段深く扱い、教師なし学習(k-means・主成分分析)と強化学習の入り口(AlphaGoの2016年の到達点)にも触れる。最後に、機械学習が抱える限界——データの偏り、過学習という古くからの罠、そして生成モデルが「もっともらしい誤り」を生み出してしまう幻覚という現象——を、成果と同じ重みで誠実に扱う。
なぜこの話が面白いのか。単純な部品(足し算・掛け算・比較)の組み合わせでできていた機械学習が、層を重ねるという一つの操作だけで、画像認識・翻訳・囲碁・文章生成という、一見まったく異なる問題を同じ骨格で解けるようになっていく過程は、数学というより建築に近い驚きがある。同時に、その建築物がどれほど高く積み上がっても、土台にあるデータの偏りや、モデルが「知らないことを知らないと言えない」という性質からは逃れられないという事実も、この物語の欠かせない一部である。
---
## 第八章 過学習と正則化——「谷底」を賢く選ぶ技術
### 8-1 用語→一行定義→水準: 正則化
**用語: 正則化(せいそくか)→一行定義: モデルが訓練データに過剰に適合しすぎないよう、損失関数にあえて「複雑さへの罰則」を付け加える技術の総称→水準: 四**
BOOK-0087第四章で見た過学習(訓練データにはよく合うが、未知のデータには対応できない現象)への対処法として、もっとも直接的な技術が正則化である。発想はこうだ。損失関数(予測のズレを数値化したもの)を小さくするだけを目標にすると、モデルはズレを消すためにいくらでも複雑な形(パラメータの値がやたらと大きく、細部までうねうねと曲がった形)を取ろうとする。そこで、損失関数に「パラメータの大きさそのもの」に対する罰則を追加し、「ズレも小さく、かつパラメータも無闇に大きくしない」という二つの目標を同時に追わせる。これが正則化の基本発想である。
### 8-2 L2正則化——「大きな重みほど重い罰金」
もっともよく使われる正則化の一つが**L2正則化(エルツーせいそくか、水準四: パラメータの値を二乗して足し合わせたものを、損失関数に罰則項として追加する正則化。重み減衰とも呼ばれる)**である。損失関数を`L`、パラメータの集合を`w`とすると、正則化後の損失は次のように書ける。
```
L_新 = L_元 + λ × Σ(w_i)^2
```
ここで`λ`(ラムダ、正則化係数)は罰則の強さを決める数値で、`Σ(w_i)^2`はすべてのパラメータの二乗を足し合わせたものである。パラメータが大きくなればなるほどこの罰則項も大きくなるため、モデルは「予測を良くする」ことと「パラメータを無闇に大きくしない」ことの綱引きの中で、ちょうどよい落としどころを探すようになる。L2正則化は、パラメータの値を完全にゼロにはしないが、全体的に小さく抑える傾向を持つ。
### 8-3 L1正則化——「不要な重みをゼロに削る」
もう一つの代表的な正則化が**L1正則化(エルワンせいそくか、水準四: パラメータの絶対値を足し合わせたものを、損失関数に罰則項として追加する正則化)**である。
```
L_新 = L_元 + λ × Σ|w_i|
```
L2との違いは、二乗ではなく絶対値を使う点である。この違いは数式の見た目以上に大きな意味を持つ。L1正則化は、重要度の低いパラメータの値を、ちょうどゼロまで削り落とす性質を持つ。つまりL1正則化は「罰則をかけて全体を小さくする」だけでなく、「不要な入力変数そのものを自動的に選び落とす」という副産物を持つ。この性質から、L1正則化は入力変数の数が非常に多く、その中の一部だけが本当に重要だと予想される場面(たとえば数千種類の遺伝子データから重要なものだけを絞り込みたい場合など)で好んで使われる。
### 8-4 交差検証——手元のデータを「使い回して」検証の精度を上げる
BOOK-0087第四章では、訓練データと検証データを分けることの重要性を見た。しかし、手元のデータ量が限られている場合、検証用にデータを大きく割いてしまうと、訓練に使えるデータが減ってしまうという悩ましいトレードオフが生じる。この悩みに対する賢い解決策が**交差検証(こうさけんしょう、水準四: 手元のデータをいくつかの塊〈フォールド〉に分割し、そのうち一つを検証用、残りを訓練用として使う、という組み合わせを一巡させることで、データを無駄にせず検証の信頼性を高める手法)**である。
具体的には、データを5つの塊(5分割交差検証と呼ばれる、もっとも一般的な設定の一つ)に分けたとする。1回目は塊1を検証用・塊2〜5を訓練用として性能を測る。2回目は塊2を検証用・それ以外を訓練用として測る。これを5回繰り返し、5回分の検証性能の平均を取ることで、「たまたま検証データの分け方が良かった(悪かった)だけ」という偶然のブレを小さくできる。手元のデータすべてが、訓練にも検証にも一度は使われることになるため、限られたデータを最大限に活用できるという利点がある。
### 8-5 バイアスとバリアンスのトレードオフ——単純すぎず、複雑すぎず
過学習と未学習(BOOK-0087第四章)の関係を、より数学的に整理した見方が**バイアスとバリアンスのトレードオフ(水準五: モデルの予測誤差を「単純化しすぎることによる系統的なズレ〈バイアス〉」と「訓練データの違いに予測が過敏に揺れ動くこと〈バリアンス〉」の二つの要因に分解し、両者が一般にトレードオフの関係にあるとする考え方)**である。
**バイアス(偏り、水準五: モデルが単純化されすぎているために生じる、系統的な予測誤差)**が高い状態とは、モデルの表現力が足りず、データの本質的な規則性すら捉えられていない状態を指す。これは未学習と同じ状況である。**バリアンス(分散、水準五: 訓練データが少し変わっただけで、モデルの予測が大きく揺れ動いてしまう度合い)**が高い状態とは、モデルが訓練データの細部(ノイズ)にまで過敏に反応してしまっている状態を指す。これは過学習と同じ状況である。
一般に、モデルを単純にするとバイアスは増えるがバリアンスは減り、モデルを複雑にするとバイアスは減るがバリアンスは増える、という綱引きの関係(トレードオフ)が成り立つ。正則化は、この綱引きにおいて「複雑さを少し抑えることでバリアンスを下げ、多少のバイアスの増加と引き換えに、全体としての予測誤差(バイアスとバリアンスの和に近いもの)を小さくする」という役割を果たす技術だと理解できる。
### 休憩所 — ここまでのまとめ箱
正則化は、損失関数に「複雑さへの罰則」を加えることで過学習を防ぐ技術であり、L2正則化はパラメータ全体を穏やかに小さくし、L1正則化は不要なパラメータをゼロまで削り落とす。交差検証は、限られたデータを訓練と検証で使い回すことで、検証の信頼性を高める。そしてこれらすべての技術は、「モデルを単純にしすぎることによるバイアス」と「複雑にしすぎることによるバリアンス」という綱引きの中で、ちょうどよい落としどころを探すための道具である。次章では、この綱引きの舞台となるモデルそのもの——ニューラルネットワーク——が、単純なパーセプトロンからどう進化していったかを見ていく。
---
## 第九章 多層ニューラルネットワーク——XORという壁の乗り越え方
### 9-1 用語→一行定義→水準: 多層パーセプトロン
**用語: 多層パーセプトロン(たそうパーセプトロン、MLP)→一行定義: 入力層と出力層の間に、隠れ層と呼ばれる中間の層を一つ以上挟んだ、複数層で構成されるニューラルネットワーク→水準: 四**
BOOK-0087第六章で見た通り、1969年にミンスキーとパパートは、1層のパーセプトロンだけではXOR(排他的論理和、二つの入力のうちどちらか一方だけが1のときに1を返す演算)を学習できないことを数学的に示した。なぜXORが1層のパーセプトロンには解けないのか、その直感をここで補っておこう。
パーセプトロンの判定は「入力を重み付けして足し合わせ、しきい値と比較する」という仕組みだった。これは、平面上に一本の直線(あるいは高次元では一枚の面)を引き、その線のどちら側にあるかで0か1かを判定する操作に相当する。ANDやORは、`(0,0)(0,1)(1,0)(1,1)`という4点を、1本の直線でうまく2グループに分けられる(たとえばANDなら`(1,1)`だけを直線の片側に、残り3点を反対側に分けられる)。ところがXORは、正解が1になる点`(0,1)(1,0)`と、正解が0になる点`(0,0)(1,1)`が、平面上で互い違いの位置に配置されているため、1本の直線ではどうやっても正しく2グループに分けられない。これが「線形分離不可能」と呼ばれる状況であり、XOR問題の数学的な正体である。
この壁を乗り越える方法が、**隠れ層(かくれそう、水準四: 入力層と出力層の間に置かれる、外部から直接は観測されない中間の層。ここでの計算によって、入力を「直線1本では分けられない形」から「直線1本で分けられる形」へと変換する)**を挟むことである。1層のパーセプトロンでは1本の直線しか引けなかったが、隠れ層で一度データを変換してから出力層で判定することで、実質的に複数の直線を組み合わせた、より複雑な境界線を表現できるようになる。ミンスキーとパパート自身も、著書の中でこの多層化による解決の可能性に触れていたことは、BOOK-0087第六章で補足した通りである。
### 9-2 活性化関数——なぜ「ただの足し算」を重ねるだけでは不十分なのか
多層にする際、もう一つ欠かせない部品が**活性化関数(かっせいかかんすう、水準四: 各ニューロンの計算結果〈重み付き和〉に対して適用される、非線形な変換を行う関数)**である。なぜこれが必要なのか。もし各層の計算が単純な重み付き和(足し算と掛け算)だけだったら、何層重ねても、全体としては結局「1層の重み付き和」と数学的に同じものに潰れてしまう(直線的な変換をいくら組み合わせても、直線的な変換にしかならないため)。これでは、隠れ層を挟んだ意味がなくなってしまう。
そこで、各層の出力に、直線的ではない(非線形な)変換をかませることで、層を重ねることに意味を持たせる。代表的な活性化関数が次の二つである。
**シグモイド関数(水準四: 入力がどんな値でも、出力を0から1の範囲になめらかに押し込める関数。式は`σ(z) = 1 / (1 + e^(-z))`)**は、歴史的に古くから使われてきた活性化関数で、出力が0から1の範囲に収まるため「確率らしさ」を表現するのにも都合がよい。
**ReLU関数(レルー、正規化線形関数、水準四: 入力が0より大きければそのまま出力し、0以下ならゼロを出力する、非常に単純な関数。式は`ReLU(z) = max(0, z)`)**は、より新しく、現在の深層学習で広く使われている活性化関数である。シグモイドに比べて計算が単純で速く、後述する誤差逆伝播の際に「勾配が消えてしまう」という問題(層を深く重ねるほど、逆伝播で伝わる勾配の値がどんどん小さくなり、学習が進みにくくなる現象)が起こりにくいという利点があるため、多層のネットワークで好まれる傾向がある。
### 9-3 誤差逆伝播法の直感——連鎖律で「責任」を遡って配分する
BOOK-0087第六章で、1986年のラメルハート・ヒントン・ウィリアムズによる論文が誤差逆伝播法を広く知らしめたことに触れた。ここでは、誤差逆伝播法が実際に何を計算しているのかを、連鎖律という数学の道具を使って直感的に示す。
**連鎖律(れんさりつ、水準四: 複数の関数が合成されているとき、全体の微分〈変化の割合〉を、途中の各関数の微分の掛け算として求められるという、微分の基本法則)**とは、「AがBに影響し、BがCに影響するとき、AがCに与える影響の大きさは、AがBに与える影響とBがCに与える影響を掛け合わせたものになる」という考え方である。
具体例で確かめよう。ある1層のネットワークで、入力`x`、重み`w`、活性化関数をシグモイド`σ`として、次の計算を行うとする。
```
z = w × x (重み付き和)
y = σ(z) (活性化関数を通す)
L = (y - t)^2 (損失関数、tは正解)
```
`w = 0.5, x = 2.0, t = 1.0`として、実際に計算してみる。まず`z = 0.5 × 2.0 = 1.0`である。次に`y = σ(1.0) = 1 / (1 + e^(-1.0)) ≈ 0.7311`となる。損失は`L = (0.7311 - 1.0)^2 ≈ 0.0723`である。
ここで知りたいのは、「重み`w`をわずかに動かすと、損失`L`はどれだけ変化するか」、すなわち`dL/dw`である。連鎖律を使うと、これは三つの部分微分の掛け算として計算できる。
```
dL/dw = (dL/dy) × (dy/dz) × (dz/dw)
```
`dL/dy = 2(y - t)`なので、数値を入れると`dL/dy = 2 × (0.7311 - 1.0) ≈ -0.5379`である。`dy/dz`はシグモイド関数の微分`y × (1 - y)`で求められ、`dy/dz ≈ 0.7311 × (1 - 0.7311) ≈ 0.1966`となる。`dz/dw = x = 2.0`である。これら三つを掛け合わせると、
```
dL/dw ≈ (-0.5379) × 0.1966 × 2.0 ≈ -0.2115
```
となる(検算済み)。この`dL/dw`の値こそ、第三章(BOOK-0087)で見た勾配降下法の更新式`w_新 = w_旧 - α × dL/dw`にそのまま代入される勾配である。
誤差逆伝播法の本質は、この連鎖律の計算を、出力層から入力層へ向かって「逆向きに」層を遡りながら、各層の重みについて機械的に繰り返し適用していく手続きにある。出力側で生じた誤差(損失)の情報が、連鎖律という数式のバケツリレーを通じて、入力側の重みにまで「この重みにはこれだけの責任〈勾配〉がある」という情報として伝わっていく——これが「誤差を逆に伝播させる」という名前の由来であり、多層のネットワークを効率的に学習させられる理由である。層が何百、何千と重なっても、この連鎖律の掛け算を機械的に繰り返すだけで、すべての層の勾配を系統的に計算できる。
### 休憩所 — ここまでのまとめ箱
1層のパーセプトロンは、平面上に1本の直線しか引けないため、XORのような線形分離不可能な問題を解けなかった。この壁は、隠れ層を挟んで多層にすることで乗り越えられる。ただし、層を重ねる意味を持たせるには、シグモイドやReLUのような非線形な活性化関数が不可欠である。そして、多層になったネットワークの重みを効率よく調整する仕組みが誤差逆伝播法であり、その中身は連鎖律という微分の基本法則を、出力側から入力側へ機械的に繰り返し適用する手続きだった。次章では、この多層のネットワークが、画像という特殊なデータに特化した形へと進化した姿(CNN)を見ていく。
---
## 第十章 畳み込みニューラルネットワーク——画像を読む目のつくり方
### 10-1 用語→一行定義→水準: 畳み込みニューラルネットワーク(CNN)
**用語: 畳み込みニューラルネットワーク(たたみこみニューラルネットワーク、CNN、Convolutional Neural Network)→一行定義: 画像の中の局所的な特徴〈エッジや模様など〉を検出する「畳み込み」という操作を積み重ねた、画像認識に特化したニューラルネットワークの構造→水準: 四**
第九章で見た多層パーセプトロンを、そのまま画像に適用しようとすると問題が起きる。たとえば100×100ピクセルの画像を扱うだけでも、入力は1万個の数値になり、これをすべて次の層のすべてのニューロンに結びつけようとすると、パラメータの数が爆発的に増えてしまう。さらに、多層パーセプトロンは画像の中の「近くにある点同士は関連が強い」という空間的な構造を考慮しない、というもう一つの弱点も抱えている。
CNNは、この二つの弱点を、**畳み込み(たたみこみ、水準四: 画像の一部分〈たとえば3×3や5×5ピクセルの小さな窓〉を少しずつスライドさせながら、その窓の中の値と、あらかじめ用意された小さな重みの組〈フィルタ、あるいはカーネルと呼ばれる〉との積和を計算し、新しい画像〈特徴マップ〉を作り出す操作)**という発想で解決する。フィルタは、たとえば「縦方向のエッジ(輪郭線)を検出する」「横方向のエッジを検出する」というように、画像の中の特定のパターンに反応するよう学習によって調整される小さな重みの塊である。このフィルタを画像全体でスライドさせながら適用するため、パラメータの数は画像全体のピクセル数ではなく、フィルタの小ささ(たとえば3×3=9個の重み)だけで済む。この「同じフィルタを画像全体で使い回す」という工夫を**重み共有(おもみきょうゆう、水準四: 一つのフィルタの重みを、画像内のあらゆる場所で使い回す仕組み。パラメータ数を大幅に削減できる)**と呼ぶ。
CNNではさらに、**プーリング(水準四: 特徴マップを小さな領域ごとに区切り、その領域内の最大値〈最大値プーリング〉や平均値を取って、画像のサイズを縮小する操作)**という処理も組み合わされる。プーリングは、画像の細部の位置がわずかにずれても、全体としての特徴の検出結果があまり変わらないようにする(位置のズレに対する頑健性を持たせる)役割を果たす。
畳み込み層とプーリング層を何度も交互に重ねることで、CNNは低い層では単純なエッジや線を検出し、層が深くなるにつれてエッジの組み合わせ(角や曲線)、さらに深い層では顔や物体の部分といった、より抽象的で複雑なパターンを検出できるようになっていく。この「単純な特徴から複雑な特徴へと段階的に抽象化していく」構造こそ、CNNが画像認識で高い性能を発揮する理由である。
### 10-2 LeNetとAlexNet——1998年から2012年への橋渡し
CNNという発想そのものは、BOOK-0087第六章で見た2012年のAlexNetより以前から存在していた。**1998年**、**ヤン・ルカン(Yann LeCun)**らは、**LeNet(れねっと)**と呼ばれるCNNを発表し、手書き数字の認識(郵便番号の自動読み取りなど、実用的な場面)で高い性能を示した。LeNetは、畳み込み層とプーリング層を組み合わせるというCNNの基本構造を、すでにこの時点で確立していた先駆的な研究として位置づけられている。
しかし、LeNetの時代には、より大規模で複雑な画像(自然画像や、多種多様な物体を含む画像)を扱うには、計算力とデータの両方が不足していた。BOOK-0087第六章で見た2012年のAlexNetは、このLeNetの基本構造を土台にしながら、より深い層構成、ReLUという当時としては新しい活性化関数の採用、そして大量のデータ(ImageNet)とGPUによる計算力の向上という追い風を受けて、CNNという発想を実用の域にまで押し上げた到達点だったと理解できる。LeNetからAlexNetまでの14年間は、「発想はすでにあったが、それを活かすだけのデータと計算力が追いついていなかった」という、機械学習の歴史でしばしば繰り返されるパターンの一例である。
---
## 第十一章 系列データを扱う仕組み——RNNからTransformerへ
### 11-1 用語→一行定義→水準: 再帰型ニューラルネットワーク(RNN)
**用語: 再帰型ニューラルネットワーク(さいきがたニューラルネットワーク、RNN、Recurrent Neural Network)→一行定義: 前の時刻の計算結果〈隠れ状態〉を、次の時刻の計算に入力として使い回すことで、順序を持つ系列データを扱えるようにしたニューラルネットワーク→水準: 四**
CNNが画像という「空間的な広がりを持つデータ」を扱うのに対し、文章や音声、株価の推移のような「時間的な順序を持つデータ(系列データ)」を扱うために考案された構造が**RNN**である。RNNの核心は、ネットワークが各時刻の入力を処理する際、その時刻の入力だけでなく、「それまでの時刻で計算してきた内容の要約(隠れ状態)」も一緒に受け取り、次の時刻へその要約を引き継いでいく、という仕組みにある。文章を読むとき、人間が今読んでいる単語だけでなく、それ以前に読んだ文脈を踏まえて理解するのと似た構造だと考えるとよい。
### 11-2 長期依存の問題とLSTM
RNNには大きな弱点があった。系列が長くなるほど、遠く離れた過去の情報が、隠れ状態を何度も更新していく過程で徐々に薄まり、最終的にほとんど失われてしまう(前述の「勾配が消えてしまう」問題が、時間方向にも同様に起きる)という弱点である。「文章の最初のほうに出てきた名前を、文章の最後まで覚えていられない」ような状態だと考えるとよい。
この弱点への対処として、**LSTM(エルエスティーエム、Long Short-Term Memory、水準五: 「何を覚え続け、何を忘れ、何を新しく取り込むか」を制御する専用のゲート機構を備えた、RNNの拡張構造)**が提案された。LSTMは、**ホッホライター(Sepp Hochreiter)**と**シュミットフーバー(Jürgen Schmidhuber)**によって**1997年**に発表され、通常のRNNよりも長い系列にわたって重要な情報を保持できるようにする工夫として広く使われるようになった。LSTMの内部構造(入力ゲート・忘却ゲート・出力ゲートという三つの門番が、情報の流出入を調整する仕組み)は数式としてはやや複雑であるため、本冊では「重要な情報を選んで長く保持し、不要な情報は積極的に忘れる、専用の記憶装置を備えたRNN」という直感の紹介にとどめる。
### 11-3 用語→一行定義→水準: Transformerと自己注意機構
**用語: Transformer(トランスフォーマー)→一行定義: 系列データの各要素同士の関連の強さを「自己注意機構」によって直接計算することで、RNNのように時刻を順番に処理する必要をなくした、系列データ処理のための構造→水準: 五**
RNNやLSTMは、系列を先頭から順番に一つずつ処理する必要があるため、計算を並列化しにくく、また系列が長くなると(LSTMで改善されたとはいえ)遠く離れた要素同士の関連を捉えるのが依然として難しいという課題を抱えていた。**2017年**、この課題への根本的に異なる解決策として、「**Attention Is All You Need**」という論文でTransformerという構造が発表された。
Transformerの核心にあるのが**自己注意機構(じこちゅういきこう、セルフアテンション、水準五: 系列内のある要素が、同じ系列内の他のどの要素とどれだけ強く関連しているかを、要素同士のペアごとに直接計算する仕組み)**である。たとえば「猫がねずみを追いかけたので、それは疲れた」という文章を処理するとき、「それ」という単語が「猫」を指しているのか「ねずみ」を指しているのかを判断するには、離れた位置にある単語同士の関連を直接見る必要がある。自己注意機構は、系列内のすべての単語のペアについて「どれだけ関連が強いか」を表す重み(注意の重み)を計算し、その重みに基づいて各単語の情報を他の単語の情報と混ぜ合わせる。これにより、RNNのように時刻を一つずつ順番にたどらなくても、系列内のどれだけ離れた要素同士の関連も、直接的に(そして並列に計算して)捉えられるようになった。
この「順番にたどる必要がなく、すべてのペアの関連を並列に計算できる」という性質は、大量のデータと計算力(GPUやそれに類する専用の演算装置)を使って学習を大規模に並列化する上で、決定的に有利に働いた。2017年以降、Transformerは文章の翻訳や生成、後には画像や音声を含む幅広い分野で、現在の大規模なモデル群の共通の土台として採用されるようになっていった、というのが2026年現在までの大まかな到達点である。
### 休憩所 — ここまでのまとめ箱
CNNが画像という空間データに特化した構造だったのに対し、RNNは文章や音声のような時間的な順序を持つ系列データを扱うために、前の時刻の隠れ状態を次の時刻に引き継ぐ構造を採った。しかし長い系列では情報が薄れてしまう弱点があり、1997年のLSTMがゲート機構でこれを緩和した。2017年のTransformerは、自己注意機構によって「順番にたどる」という制約そのものを取り払い、系列内のあらゆる要素同士の関連を並列に計算できるようにした。この構造上の転換が、現在の大規模なモデル群の技術的な土台になっている。
---
## 第十二章 評価指標を深める——ROCとAUC、そして教師なし学習
### 12-1 検算例2 — 混同行列から適合率・再現率・F1値を計算する
BOOK-0087第四章では、混同行列(実際の陽性・陰性と、予測の陽性・陰性の組み合わせを4区分に集計した表)から、適合率と再現率を計算する検算を行った。ここでは同じ枠組みで別の数値例を検算し、さらに**F1値(エフワンち、水準四: 適合率と再現率、両方のバランスを取った単一の指標。計算式は`2 × 適合率 × 再現率 ÷ (適合率 + 再現率)`という調和平均)**まで踏み込む。
100人の患者に対する別の判定モデルの結果を次のように設定する。
```
予測: 陽性 予測: 陰性
実際: 陽性 TP = 40 FN = 20 (実際に陽性60人)
実際: 陰性 FP = 10 TN = 30 (実際に陰性40人)
```
まず正解率を計算する。正しく判定できたのはTP=40とTN=30を合わせた70人なので、正解率は`(40+30) ÷ 100 = 0.7`、すなわち70%である。
次に適合率を計算する。モデルが「陽性」と予測したのはTP=40とFP=10を合わせた50人であり、そのうち実際に陽性だったのは40人なので、適合率は`40 ÷ (40+10) = 40 ÷ 50 = 0.8`、すなわち80%である。
次に再現率を計算する。実際に陽性だったのはTP=40とFN=20を合わせた60人であり、そのうちモデルが正しく見抜けたのは40人なので、再現率は`40 ÷ (40+20) = 40 ÷ 60 ≈ 0.6667`、すなわち約66.7%である。
最後にF1値を計算する。適合率0.8と再現率0.6667(端数処理前の値で計算)を調和平均の式に代入すると、
```
F1 = 2 × 0.8 × 0.6667 ÷ (0.8 + 0.6667) ≈ 1.0667 ÷ 1.4667 ≈ 0.7273
```
となり、F1値は約72.7%である(検算済み)。F1値が適合率(80%)と再現率(66.7%)の単純な平均(約73.3%)よりもわずかに低い値になっている点に注目してほしい。調和平均は、二つの値の片方が極端に低い場合、その低い方に強く引っ張られる性質を持つため、「片方だけ高くて、もう片方が著しく低い」モデルを高く評価しすぎない、という利点がある。
### 12-2 ROC曲線とAUC——「しきい値を変えたときの全体像」を見る
適合率と再現率は、モデルが「陽性・陰性のどちらと判定するか」を決める境界(しきい値)を一つ固定したときの性能を表す。しかし実際には、このしきい値を変えることで、適合率と再現率のバランスは変化する。しきい値を「陽性と判定しやすい」方向に緩めれば、再現率は上がりやすくなる代わりに適合率は下がりやすくなり、逆にしきい値を厳しくすれば適合率は上がりやすくなる代わりに再現率は下がりやすくなる、というトレードオフが一般に生じる。
**ROC曲線(アールオーシーきょくせん、Receiver Operating Characteristic curve、水準五: しきい値を少しずつ変化させながら、「偽陽性率(実際は陰性なのに誤って陽性と判定してしまった割合)」を横軸に、「再現率(真陽性率)」を縦軸にとって描いた曲線)**は、この「しきい値を変えたときの性能の全体像」を一枚のグラフとして視覚化する道具である。理想的なモデルほど、この曲線は左上の角(偽陽性率が低く、再現率が高い領域)に近づく形を描く。
この曲線の下側の面積を数値化したものが**AUC(エーユーシー、Area Under the Curve、水準五: ROC曲線の下側の面積。0から1の値を取り、1に近いほど、しきい値の設定によらずモデルの判別能力が高いことを示す)**である。AUCが0.5に近い場合、そのモデルはコイン投げとほぼ変わらない判別能力しか持たないことを意味し、AUCが1に近いほど、陽性と陰性を高い精度で区別できるモデルであることを意味する。AUCの利点は、特定のしきい値を一つ選ばずに、「モデルそのものの判別能力」を一つの数値で要約できる点にある。
### 12-3 教師なし学習——k-means法によるクラスタリング
BOOK-0087第一章で触れた教師なし学習(正解ラベルのないデータから構造を見つける学び方)の代表例が、**k-means法(ケーミーンズほう、水準四: データをあらかじめ決めた個数〈k個〉のグループ〈クラスタ〉に分類する手法。各クラスタの中心〈セントロイド〉との距離が近いデータ同士を同じグループにまとめる)**である。k-means法は、次の二つの手順を交互に繰り返すことで、データを自然な塊(クラスタ)に分けていく。
**手順1(割り当て)**: 各データ点について、現在のセントロイド(各クラスタの重心の位置)との距離を計算し、もっとも近いセントロイドのクラスタに割り当てる。
**手順2(更新)**: 各クラスタに割り当てられたデータ点の平均位置を計算し、それを新しいセントロイドとする。
この二つの手順を、セントロイドの位置がほとんど変化しなくなるまで繰り返す。
### 検算例3 — k-meansの1反復を手計算する
1次元の数直線上に、次の6つの点があるとする。
```
点: 1, 2, 3, 8, 9, 10
```
`k=2`(2つのクラスタに分ける)とし、初期セントロイドを`c1=2, c2=9`から出発する(意図的にデータそのものに近い値を選んだ初期値である)。
**手順1(割り当て)**: 各点について、`c1=2`と`c2=9`のどちらに近いかを計算する。
```
点1: |1-2|=1, |1-9|=8 → c1に近い
点2: |2-2|=0, |2-9|=7 → c1に近い
点3: |3-2|=1, |3-9|=6 → c1に近い
点8: |8-2|=6, |8-9|=1 → c2に近い
点9: |9-2|=7, |9-9|=0 → c2に近い
点10: |10-2|=8, |10-9|=1 → c2に近い
```
この結果、クラスタ1は`{1, 2, 3}`、クラスタ2は`{8, 9, 10}`となる。
**手順2(更新)**: 各クラスタの平均を計算し、新しいセントロイドとする。
```
新c1 = (1+2+3) ÷ 3 = 6 ÷ 3 = 2.0
新c2 = (8+9+10) ÷ 3 = 27 ÷ 3 = 9.0
```
この例では、更新後のセントロイド(`c1=2.0, c2=9.0`)が更新前の値(`c1=2, c2=9`)とちょうど一致しており、これはこの初期値がすでにデータの自然な塊の重心に近かったことを意味する。実際に、この新しいセントロイドで再度割り当てを行っても、クラスタの構成は`{1,2,3}`と`{8,9,10}`のまま変化しない(検算済み)。これは「セントロイドが変化しなくなった状態」、すなわちk-means法が収束した状態に達したことを示している。実際のデータではこの収束までに数回から数十回の反復を要することが多いが、この単純な例は「割り当て」と「更新」という2つの手順が交互に繰り返されることで、データが自然な塊へと整理されていく様子を、もっとも小さな規模で示している。
### 12-4 主成分分析(PCA)——次元を削りながら情報を残す
もう一つの代表的な教師なし学習が**主成分分析(しゅせいぶんぶんせき、PCA、Principal Component Analysis、水準五: 多数の入力変数を持つデータを、情報の失われ方をできるだけ抑えながら、より少ない数の新しい変数〈主成分〉に要約する手法)**である。たとえば「身長」「体重」「座高」「腕の長さ」という4つの変数を持つデータがあったとき、これらの変数はおそらく互いに強く関連している(体格が大きい人はどの変数もまとめて大きい傾向がある)。PCAは、このような互いに関連の強い複数の変数を、「体格の大きさ」を表す一つの新しい変数(第一主成分)にまとめ上げるような操作を行う。
PCAの数学的な核心は、→BOOK-0120で扱われている**固有分解(こゆうぶんかい、水準五: ある行列を、その行列に固有のベクトル〈固有ベクトル〉と、それに対応する数値〈固有値〉の組み合わせに分解する操作)**を、データの**共分散行列(きょうぶんさんぎょうれつ、水準四: 複数の変数それぞれの分散〈ばらつき〉と、変数同士の共分散〈一緒に変動する度合い〉をまとめた行列)**に適用する点にある。共分散行列を固有分解して得られる固有ベクトルのうち、もっとも大きな固有値に対応するものが「データが最も大きくばらついている方向」を示し、これが第一主成分になる。固有値の大きさは、その主成分がデータ全体のばらつき(情報量)のうちどれだけを説明できるかという「寄与率」に直接対応する。
具体的な数値で確認しよう。5組の`(x, y)`データ`(2,3)(3,4)(4,5)(5,7)(6,8)`について共分散行列を計算し、固有分解を行うと、第一主成分の固有値は約6.77、第二主成分の固有値は約0.028となった(検算済み)。第一主成分の寄与率は`6.77 ÷ (6.77+0.028) ≈ 0.996`、すなわち約99.6%である。この結果は、このデータの持つ情報のほぼすべて(99.6%)が、たった一つの新しい変数(第一主成分)だけで説明できてしまうことを意味する。つまり、このデータは実質的に「1本の直線に近い関係」を持つ2変数のデータであり、2次元の情報を1次元にまで圧縮しても、ほとんど情報を失わないということが、この検算からわかる。
PCAは、大量の変数を持つデータを扱いやすい少数の変数に要約したり、データを人間の目で確認できる2次元・3次元のグラフとして可視化したりする際に、幅広く使われる基本的な技術である。
---
## 第十三章 強化学習の入り口——報酬を手がかりに行動を学ぶ
### 13-1 探索と活用のジレンマ
BOOK-0087第一章で紹介した強化学習(エージェントが環境の中で行動し、報酬を手がかりに行動の仕方を学ぶ学習の型)には、他の学習の型にはない独特の課題がある。それが**探索と活用のジレンマ(たんさくとかつようのジレンマ、水準四: すでに知っている「まあまあ良い行動」を繰り返す〈活用〉べきか、まだ試していない「もっと良いかもしれない行動」を試す〈探索〉べきか、という板挟みの状況)**である。
たとえば、行きつけのレストランがそこそこ美味しいことをすでに知っているとき、そのレストランに通い続ける(活用)べきか、まだ入ったことのない新しい店を試してみる(探索)べきか、という状況に似ている。活用ばかりしていると、本当はもっと良い選択肢があったとしても、それを知る機会を永遠に逃してしまう。逆に探索ばかりしていると、すでにわかっている良い選択肢を活かせず、無駄な試行を繰り返すことになる。強化学習のアルゴリズムの多くは、この探索と活用のバランスをどう取るかという設計の工夫を、中心的な課題の一つとしている。
### 13-2 2016年——AlphaGoという到達点
強化学習が世界的な注目を集めた到達点の一つが、**2016年**に**AlphaGo(アルファ碁)**が、囲碁のトップ棋士に勝利した出来事である。囲碁は、盤面のパターンの数がチェスや将棋よりもさらに桁違いに多く、従来の「すべての手を計算し尽くす」ような力任せの探索では到底歯が立たないとされてきたゲームだった。AlphaGoは、深層学習によって盤面の良し悪しを評価する仕組みと、強化学習によって自己対戦を繰り返しながら戦略を磨き上げる仕組みを組み合わせることで、この課題を克服した。
この出来事は、強化学習と深層学習を組み合わせるアプローチ(深層強化学習と呼ばれることもある)が、人間の直感的な判断力が重要とされてきた領域においても、高い性能を発揮しうることを示した象徴的な事例として広く知られている。ただし、AlphaGoが用いた具体的な学習の手順や、その後の発展形の内部構造は非常に専門的であり、本冊では「深層学習による評価」と「強化学習による戦略の改善」という二つの技術の組み合わせが到達点を作った、という位置づけの紹介にとどめる。
---
## 第十四章 限界と誠実さ——万能ではないという事実
BOOK-0087第七章では、機械学習が抱えるバイアスとブラックボックス性という課題に触れた。本冊の締めくくりとして、この課題をさらに一歩掘り下げ、特に生成モデルにまつわる新しい課題にも触れる。
### 14-1 データバイアスの再確認——「鏡」としての機械学習
BOOK-0087で述べた通り、機械学習モデルは訓練データに含まれる傾向を忠実に学び取る。データそのものに社会的な偏りが含まれていれば、モデルはその偏りをそのまま(時には増幅して)再現してしまう。この性質は、モデルの精度をどれだけ高めても解消されない、データの質そのものに起因する課題である。
### 14-2 過学習の再確認——古くて新しい罠
第八章で扱った過学習は、単純なモデルだけでなく、多層のニューラルネットワークやTransformerのような巨大なモデルにおいても、形を変えて起こりうる課題であり続けている。パラメータの数が膨大な巨大モデルほど、訓練データを丸暗記する余地も大きくなるため、正則化や交差検証、そして十分な量と多様性を持つデータという対策の重要性は、モデルが巨大化した現在でも変わらない。
### 14-3 生成モデルの幻覚——「もっともらしい誤り」という新しい課題
近年の文章生成モデルに特有の課題として広く議論されているのが、**幻覚(げんかく、ハルシネーション、水準五: 生成モデルが、事実に基づかない情報を、あたかも事実であるかのように、流暢でもっともらしい文章として生成してしまう現象)**である。これは、生成モデルの多くが「次に来る単語としてもっともらしいものは何か」という、多クラス分類に近い形で学習されていることに起因すると考えられている。モデルは「事実かどうか」を直接検証する仕組みを内部に持たず、「文脈として自然かどうか」を基準に単語を選んでいく。そのため、訓練データの中に存在しない事実や、存在しない出典を、文章としては極めて自然な形で作り出してしまうことがある。
この現象がなぜ完全には解決されていないのか、その根本的な原因については、2026年現在も研究者の間で活発に議論が続いている**未確定**の分野である。モデルの規模を大きくすることや、外部の情報源を検索して参照させる仕組みを組み合わせることなど、複数の緩和策が研究・実用化されているが、「原理的に幻覚をゼロにできるか」という問いに対する確定的な答えは、本冊執筆時点では存在しない。
### 14-4 「万能ではない」という前提を持つことの大切さ
ここまで見てきた通り、機械学習は「経験からの汎化」という発想を土台に、単純なパーセプトロンから多層のネットワーク、CNN、RNN、Transformerへと表現力を広げ、画像認識・翻訳・囲碁・文章生成という幅広い問題を解けるようになった。しかし同時に、データの偏りをそのまま学んでしまう性質、モデルの判断根拠が見えにくいブラックボックス性、そして生成モデルが事実でない情報をもっともらしく作り出してしまう幻覚という課題は、技術が進歩した現在でも解消されていない。
これらの限界を知ることは、機械学習という技術の価値を否定することではない。むしろ、「何ができて、何がまだできないのか」を正確に理解した上で、出力を鵜呑みにせず、重要な判断の場面では人間による検証を組み合わせるという姿勢こそが、この技術と誠実に付き合っていくための土台である。
---
## ノウハウ節 — 過学習を防ぐ三つの実践解
### 実践解1: データを訓練用と検証用に分ける
**材料**: 手元にある(x, y)の組のデータ一式(たとえば10〜20組程度)、表計算ソフト。
**工程**: (1) データ全体をランダムな順序に並べ替える。(2) 全体の70〜80%を訓練用、残り20〜30%を検証用として、あらかじめ二つのグループに分けておく。(3) 訓練用データだけを使ってモデル(直線や単純な式)を当てはめる。(4) 当てはめたモデルを、検証用データに適用し、訓練用データでの当てはまりの良さと、検証用データでの当てはまりの良さを見比べる。(5) 両者に大きな差がある(訓練データでは良いのに検証データでは悪い)場合、過学習が起きている兆候だと判断する。
**なぜ効くか**: モデルの性能を「見たことのないデータ」で測ることが、過学習を見抜く唯一の確実な方法だからである。訓練データだけで評価すると、丸暗記したモデルほど高得点に見えてしまい、本当の実力を見誤る。
**限界**: データの総数が少なすぎると、検証用に回した分だけ訓練データが減り、モデルの学習自体が不十分になってしまう。この限界への対処が、第八章で扱った交差検証である。
### 実践解2: 単純なモデルから始める
**材料**: 特になし(発想の順序の話である)。
**工程**: (1) まず、もっとも単純なモデル(たとえば直線1本の回帰、あるいは浅い1層のパーセプトロン)から始めて、その性能を確認する。(2) その性能が不十分であれば、モデルの複雑さを少しだけ増やす(隠れ層を1層追加する、多項式の次数を1つ上げる、など)。(3) 複雑さを増すたびに、検証データでの性能が実際に改善しているかを確認する。(4) 検証データでの性能が頭打ちになった、あるいは悪化し始めたら、そこでモデルを複雑にするのをやめる。
**なぜ効くか**: 最初から複雑なモデルを使うと、どの部分が本当に必要な複雑さで、どの部分が過学習の温床になっているのかを切り分けにくい。単純なモデルから段階的に複雑にしていくことで、「どこまでの複雑さが本当に必要か」を実測しながら見極められる。
**限界**: 問題によっては、単純なモデルでは根本的に表現力が足りず、複雑さを増やす過程に多くの試行錯誤の時間がかかる場合がある。画像認識のような、あらかじめCNNのような専用構造が有効だとわかっている問題では、最初から適切な構造を選ぶ判断も必要になる。
### 実践解3: 正則化を使う
**材料**: 第八章で扱ったL1正則化・L2正則化の式、あるいはそれを組み込んだ機械学習ライブラリ。
**工程**: (1) 損失関数に、L2正則化(`λ × Σ(w_i)^2`)またはL1正則化(`λ × Σ|w_i|`)の項を追加する。(2) 正則化の強さを決める`λ`の値を、小さめの値(たとえば0.001程度)から試し始める。(3) 訓練データと検証データ両方での性能を確認しながら、`λ`の値を少しずつ変えて試す。(4) `λ`が大きすぎるとモデルが単純になりすぎて未学習に陥り、小さすぎると正則化の効果が薄れて過学習が残るため、検証データでの性能がもっとも良くなる`λ`を探す。
**なぜ効くか**: 正則化は、モデルが訓練データに過剰に適合しようとする力(パラメータを無闇に大きくする力)に、直接ブレーキをかける仕組みだからである。データの分け方や、モデルの構造そのものを変えなくても、損失関数に項を一つ加えるだけで過学習を抑えられるという手軽さも利点である。
**限界**: 正則化の強さ`λ`の適切な値は、データやモデルによって異なり、唯一の正解が存在しない。多くの場合、交差検証と組み合わせて、複数の`λ`の値を実際に試しながら決める必要がある。また、正則化はあくまで過学習を抑える対症療法の一つであり、データそのものの質や量の不足という根本原因を解決するものではない。
---
## 終章 未到達部類——研究途上と、まだ見えない先
本冊で扱ってきた技術の多くは、すでに広く実用化され、確立された知識として扱えるものである。しかし、機械学習という分野全体を見渡すと、2026年現在においてもなお研究途上・**未確定**である領域が数多く残っている。
第一に、生成モデルの幻覚という現象の根本的な解決策は、第十四章で述べた通り**未確定**である。モデルがなぜ、どのような条件で事実に基づかない情報を生成してしまうのか、その完全な理解と、原理的な解決策の確立には至っていない。
第二に、ブラックボックス性への対処として研究されている「説明可能なAI(モデルの判断根拠を人間が理解できる形で提示する技術群)」は、活発に研究が進められている分野ではあるが、巨大で複雑なモデルの判断根拠を、人間にとって完全に納得のいく形で説明しきる決定版の手法は、本冊執筆時点では**未確定**である。
第三に、モデルの規模を大きくし続けることが、性能の向上にどこまで有効であり続けるのか(いわゆる「スケーリングによる性能向上」がどこまで続くか)、あるいは規模の拡大とは異なる発想の転換が必要になるのかという問いも、研究者の間で見解が分かれる**未確定**の論点である。
第四に、強化学習における探索と活用のジレンマ(第十三章)や、複数のエージェントが互いに影響し合いながら学習する状況(マルチエージェント学習)における理論的な理解も、発展の途上にある分野である。
これらの「まだ見えない先」を正直に示すことは、機械学習という技術の限界を強調するためではない。むしろ、1958年のローゼンブラットのパーセプトロンから、2017年のTransformerに至るまでの物語が、常に「限界の発見」と「その乗り越え方の発見」の繰り返しであったことを踏まえれば、現在**未確定**とされている課題もまた、いずれ次の世代の技術によって形を変えて乗り越えられていく可能性を持つ、という見方もできる。ただし、それがいつ、どのような形で実現するのかを断言することは、本冊の扱う範囲を超える。確実に言えるのは、「今わかっていること」と「まだわかっていないこと」を区別して扱う誠実さこそが、この技術と長く付き合っていくための、もっとも確かな土台だということである。
---
## この巻のまとめ
- 正則化(L1・L2)は損失関数に複雑さへの罰則を加えて過学習を防ぐ技術であり、交差検証は限られたデータを使い回して検証の信頼性を高める手法である。両者は、モデルの誤差を「単純化しすぎることによるバイアス」と「複雑にしすぎることによるバリアンス」のトレードオフとして捉える見方の上に成り立つ。
- 1969年のXOR問題は、隠れ層を挟んだ多層パーセプトロンと、シグモイド・ReLUのような非線形な活性化関数によって乗り越えられた。1986年の誤差逆伝播法は、連鎖律という微分の基本法則を出力側から入力側へ機械的に繰り返し適用する手続きである(検算例: `w=0.5, x=2.0, t=1.0`のときdL/dw≈-0.2115)。
- CNN(1998年LeNet・2012年AlexNet)は畳み込みとプーリングで画像の局所特徴を段階的に抽象化し、RNN(1997年LSTM)は系列データを扱う。2017年のTransformerは自己注意機構によって、系列を順番にたどる制約なしに要素同士の関連を並列に計算できるようにした。
- 混同行列からF1値まで計算する検算(TP=40,FP=10,FN=20,TN=30→正解率0.7・適合率0.8・再現率≈0.667・F1≈0.727、検算済み)、ROCとAUCによるしきい値によらない評価、k-means法の1反復の手計算(点1,2,3,8,9,10→クラスタ{1,2,3}と{8,9,10}に収束、検算済み)、PCAの固有分解による次元圧縮(第一主成分の寄与率約99.6%、検算済み)を扱った。
- 強化学習は探索と活用のジレンマを抱えながら発展し、2016年のAlphaGoは深層学習と強化学習の組み合わせが人間の直感的判断力の領域でも高性能を発揮しうることを示した。
- 機械学習の限界(データバイアス・過学習・生成モデルの幻覚)は、技術が進歩した現在でも解消されていない。生成モデルの幻覚の根本的解決策、説明可能なAIの決定版、スケーリングの限界は、いずれも研究途上・未確定の領域である。
> 相互リンク: →BOOK-0087(機械学習第1巻・本冊の前提) →BOOK-0066(アルゴリズムとデータ構造第1巻) →BOOK-0116(アルゴリズム第2巻) →BOOK-0071(線形代数第1巻) →BOOK-0120(線形代数第2巻・固有分解) →BOOK-0083(確率論第1巻) →BOOK-0124(確率論第2巻・ベイズ) →BOOK-0026(回帰と統計) →BOOK-0010(コンピュータの始まり)
# BOOK-0135 機械学習II — 学びの深さと、誠実さの深さ(情報派生 第2巻)