機械学習の基本概念
はじめに — 10万枚のX線画像がAIを「医師」に変える
機械学習の本質は「ルールをプログラムする」のではなく「データからルールを発見させる」ことです。10万枚のX線画像と放射線科医の診断を学習したAIは、新しいX線画像に対して「この影は肺炎を示す可能性が87%」と予測できるようになります。
しかし、この「87%」はどこから来るのでしょうか? なぜ時に大きく外れるのでしょうか? 機械学習の仕組みを理解することで、AIの出力を適切に評価できるようになります。
データ駆動型アプローチ — 「教わる」のではなく「学ぶ」
従来のプログラミング vs 機械学習
従来のプログラミング vs 機械学習
従来のプログラミング: ルール + データ → 答え → 「体温38度以上 AND CRP > 3.0 → 感染症の疑い」を人間が書く
機械学習: データ + 答え → ルール → 10万件の患者データ(体温、CRP、白血球数...)と最終診断を与え、AIが「どの組み合わせが感染症を示すか」のルールを自動発見
→ 決定的な違い: 従来のプログラミングは「人間の知識を変換」する。機械学習は「データに語らせる」。人間が気づかなかったパターン(例:特定の検査値の微妙な組み合わせ)も発見できるのが機械学習の力。
特徴量 — AIが見る「世界」
機械学習モデルに入力されるデータの各項目を**特徴量(feature)**と呼びます。AIの性能は、どの特徴量を選ぶかに大きく依存します。
| 医療タスク | 特徴量の例 | 特徴量の数 |
|---|---|---|
| 肺炎予測 | 体温、咳の有無、CRP、白血球数、SpO2、X線所見 | 数十〜数百 |
| 皮膚がん判定 | 画像のピクセル値(RGB) | 数百万 |
| 再入院リスク予測 | 年齢、診断名、入院日数、薬剤数、合併症数 | 数十〜数百 |
特徴量エンジニアリング — 深層学習が変えたゲーム
従来の機械学習: 「どの特徴量を使うか」を人間の専門家が設計する必要があった。例えば、X線画像から「肺野の透過性」「心胸比」「浸潤影の面積」などの数値を手動で抽出。
深層学習: 画像のピクセルをそのまま入力し、AIが有用な特徴を自動抽出。人間が定義できない微妙なパターン(テクスチャの変化、わずかな陰影の濃淡差)も捉える。
→ これが、2012年のImageNet以降に医療画像AIが飛躍的に発展した理由。「何を見るべきか」をAI自身が発見するようになった。
訓練と評価 — AIの「成績」はどう測るか
訓練データとテストデータの分割
なぜデータを分割するのか — カンニング防止の原理
問題: AIが訓練データを「丸暗記」してしまうと、見たことのある症例は完璧に当てるが、新しい症例には対応できない。これは、試験範囲の問題だけ暗記した学生が、応用問題を解けないのと同じ。
解決策: データを訓練データ(70-80%)とテストデータ(20-30%)に分割。AIは訓練データだけで学習し、テストデータで「初見の問題」への対応力を評価する。
医療AIでの実践: AI医療機器のPMDA承認申請では、訓練に使用していない独立したテストデータセットでの性能評価が必須。例えばEndoBRAINは、訓練に使った施設とは別の施設のデータで検証を行い、精度98%を達成した。
| データセット | 目的 | 比率の目安 |
|---|---|---|
| 訓練データ | モデルの学習 | 60-70% |
| 検証データ | ハイパーパラメータの調整 | 10-15% |
| テストデータ | 最終的な性能評価 | 20-30% |
性能指標 — 感度と特異度
医療AIの性能を評価する最も基本的な指標が**感度(Sensitivity)と特異度(Specificity)**です。
| 指標 | 定義 | 医療での意味 |
|---|---|---|
| 感度 | 病気の人を正しく「異常」と判定する割合 | 見逃しの少なさ(高いほど良い) |
| 特異度 | 健康な人を正しく「正常」と判定する割合 | 誤報の少なさ(高いほど良い) |
考えてみよう — スクリーニングと確定診断で求められるもの
がんスクリーニングAI: 感度を高く設定(見逃しを最小化)。感度98%なら、がん患者100人中98人を正しく検出。ただし特異度が低いと、健康な人を「要精査」と判定する偽陽性が増える。
手術適応判定AI: 特異度を高く設定(不要な手術を回避)。特異度99%なら、健康な人100人中99人を正しく除外。
→ 感度と特異度はトレードオフの関係。用途に応じて適切なバランスを設定することが重要。
過学習 — AIが「丸暗記」してしまう問題
過学習(Overfitting)とは
過学習の実例 — 救急搬送AIが「曜日」を学習してしまった
事例: ある病院の再入院予測AIが、「金曜日に退院した患者は再入院率が高い」というパターンを学習。一見有用に見えるが、実際には金曜日退院は「週末に経過観察できないため、やや早めに退院させた重症患者」が多いという交絡因子があった。
結果: このAIは、その病院のデータでは高精度だったが、退院方針の異なる別の病院では性能が大幅に低下。「曜日」という本質的でない特徴に過学習していた。
教訓: 機械学習モデルは、本質的なパターンだけでなく、データに含まれるあらゆる相関を学習する。医学的に意味のある特徴と、偶然の相関を区別することが重要。
過学習を防ぐ方法
| 手法 | 仕組み | 医療AIでの適用 |
|---|---|---|
| データ分割 | 訓練/検証/テストに分ける | PMDA審査の基本要件 |
| 交差検証 | データを複数グループに分け交互に検証 | 小規模データセットでの性能評価 |
| 正則化 | モデルの複雑さを制限 | 不要な特徴量への依存を抑制 |
| データ拡張 | 既存データを変形して増やす | 医療画像の回転・反転・拡大 |
| 外部検証 | 異なる施設のデータで検証 | 多施設共同研究での汎化性能確認 |
まとめ
機械学習は「データからルールを発見する」技術です。特徴量の選択、訓練/テストデータの分割、感度と特異度のバランス、過学習への対策が、AIの性能を左右する核心的な要素です。特に医療AIでは、ある病院で高精度でも別の病院で性能が低下する「汎化性能」の問題が重要であり、PMDA承認プロセスでも外部データでの検証が求められます。
次のレッスンでは、AIの能力と限界を具体的に学びます。
明日のアクション
次にAI医療機器の論文や承認情報を読む際、「訓練データと評価データは別の施設か?」「感度と特異度のバランスはどうか?」「外部検証は行われているか?」の3点を確認してみましょう。この視点を持つことで、AI医療機器の性能評価を適切に読み解けるようになります。