第7章: 機械学習・AI応用
7. 機械学習・AI応用
この章を読む理由
機械学習は、前章までに整えた配列・発現・注釈データを 「予測」「分類」「優先順位付け」に接続する章です。 精度だけを追うのではなく、データリーク、解釈性、評価指標の選び方を ここで固定しないと、第12章や第14章の判断を誤ります。
本章で使う共通題材
- 題材B: TCGA-LUAD 研究用ミニケース
- プロジェクト ID:
TCGA-LUAD - 本章では、公開データから切り出した発現行列や変異要約を用い、 研究用途の分類・評価・解釈の流れを確認します。
- 研究用途であり、臨床診断そのものには用いません。
- プロジェクト ID:
学習目標
- 特徴量設計、データ分割、評価指標、リーク回避を含めた機械学習の基本手順を説明できる
- 高次元低サンプルの生物学データに対して、どの手法をどう選ぶかを理由付きで述べられる
- 精度だけでなく、解釈性・再学習性・用途制約を含めてモデルを評価できる
前提知識
- 第5章・第6章の count matrix、normalization、batch、covariate、feature annotation、missing value の扱い。入力行列の作り方がモデル性能を左右すること。
- 第8章・第9章の high-dimensional / low-sample、population structure、sample ancestry、cell type composition、spatial batch のような背景差。ランダム分割だけでは汎化性能を測れないこと。
- train / validation / test split、cross-validation、external validation、patient / donor / study split の違い。前処理、特徴量選択、標準化を全データで先に行うと data leakage になること。
- AUROC、AUPRC、F1、感度、特異度、calibration、confidence interval を用途に応じて選ぶこと。クラス不均衡では accuracy だけを採用判断にしないこと。
- model card、dataset card、data license / terms、random seed、package version、hyperparameter、学習済み重みの入手条件を記録すること。
- foundation model、構造AI、ゲノム言語モデル、single-cell foundation model は、入力範囲、学習データ、利用条件、外部検証、臨床利用可否を確認してから使うこと。
- 本章の例は研究・教育用途であり、疾患診断、治療選択、投薬判断、患者説明を自動化する根拠にはしないこと。
入力データと出力データ
本章の入力は、発現行列、variant / 変異要約、臨床・表現型メタデータ、サンプル分割、既存モデルや foundation model の入力制約である。出力は、分類・回帰・クラスタリング結果、評価指標、特徴量重要度、説明資料、model card / dataset card、再学習に必要な設定である。
| 区分 | 例 | 記録すること |
|---|---|---|
| 入力特徴量 | 発現行列、変異要約、pathway score、臨床特徴 | 由来、前処理、正規化、欠測処理、annotation version |
| ラベル・目的変数 | サブタイプ、応答有無、予後カテゴリ、実験条件 | 定義、付与方法、クラス比、リーク源にならないか |
| 分割 | train / validation / test、study split、patient split | 分割単位、乱数seed、同一患者・同一研究の混入有無 |
| モデル | ロジスティック回帰、Random Forest、深層学習、foundation model | version、重み、利用条件、学習データ、入力範囲 |
| 出力 | AUROC、AUPRC、F1、calibration、特徴量重要度、可視化 | confidence interval、外部検証、用途制約、再現ログ |
標準的なワークフロー
- 予測・分類・優先順位付けの目的を、研究・教育用途の範囲で定義する。
- 入力データ、ラベル、メタデータ、利用条件、確認日付き出典をそろえる。
- patient / donor / study 単位で分割し、前処理を分割後に適用して data leakage を避ける。
- ベースラインモデルを作り、AUROC だけでなく AUPRC、F1、感度、特異度、calibration を用途に応じて評価する。
- 特徴量重要度、係数、エラー例、外部検証の有無を確認し、model card / dataset card に記録する。
- AlphaFold、AlphaGenome、Evo 2、Nucleotide Transformer、scGPT などの外部モデルを使う場合は、入力制約、学習データ、利用条件、商用可否・非商用制約、臨床利用可否を先に確認する。
- 結果は研究仮説や候補優先順位として扱い、診断・治療・投薬判断へ直接接続しない。
実務上の落とし穴
- 全データで正規化、特徴量選択、欠測補完を済ませてから分割し、data leakage を起こす。
- 同一患者、同一donor、同一研究、同一施設のサンプルが train と test に混ざり、汎化性能を過大評価する。
- accuracy や AUROC だけで不均衡データの性能を判断し、AUPRC、感度、特異度、calibration を確認しない。
- foundation model の出力を、学習データ、入力範囲、利用条件、外部検証なしに信頼する。
- モデルの特徴量重要度や埋め込みを、生物学的因果関係や臨床的有用性として断定する。
- 研究用公開データでの性能を、施設の臨床実装や患者説明に使える性能と混同する。
7.0 統計学習理論の基礎
統計学習理論の枠組み: 🧪 概念例(実行不可: 統計学習理論の数式整理)
経験的リスク最小化 (ERM):
R_emp(h) = 1/m Σ L(h(xi), yi)
汎化誤差: R(h) = E[L(h(X), Y)]
汎化ギャップ: |R(h) - R_emp(h)|
PAC学習理論:
- PAC: Probably Approximately Correct
-
サンプル複雑性: m ≥ (1/ε)(ln H + ln(1/δ)) - VC次元: 仮説クラスの表現能力の指標
- Rademacher複雑性: データ依存の汎化誤差境界
生物学データの特徴と課題:
- 高次元低サンプル: p » n (遺伝子数 » サンプル数)
- ノイズと外れ値: 測定誤差、生物学的変動
- 不均衡データ: 疾患群と健常群の不等なサンプルサイズ
- バッチ効果: 実験条件・時期による系統的バイアス
正則化理論: 🧪 概念例(実行不可: 正則化項の数式整理)
Ridge回帰: ||Xβ - y||² + λ||β||²
Lasso回帰: ||Xβ - y||² + λ||β||₁
Elastic Net: ||Xβ - y||² + λ₁||β||₁ + λ₂||β||²
最適化アルゴリズム:
- 勾配降下法: θt+1 = θt - η∇L(θt)
- Adam: 適応的学習率調整
- BFGS: 準ニュートン法による高速収束
- 座標降下法: 高次元スパース問題に適用
7.1 教師あり学習
疾患感受性予測:
- 入力: SNP(一塩基多型)パターン
- 出力: 疾患リスクスコア
- 手法: ロジスティック回帰、Random Forest、SVM
薬剤応答予測: 🧪 概念例(実行不可: 特徴量設計の観点整理)
特徴量設計:
- ゲノム変異プロファイル
- 遺伝子発現レベル
- タンパク質構造特徴
- 薬物動態パラメータ
完全な疾患予測パイプライン:
この断片は、scikit-learn 風の処理構造を示す教育用の概念例です。入力データ、依存パッケージ version、患者単位/研究単位の分割、交差検証設計、外部検証、臨床妥当性、専門家レビューを省略しているため、診断・治療判断や投薬判断には使えません。
🧪 概念例(実行不可: 入力データ仕様・外部検証/臨床妥当性を省略した Python 断片)
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import roc_auc_score, classification_report
import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve, precision_recall_curve
class DiseasePredictor:
"""遺伝的変異データからの疾患リスク予測"""
def __init__(self, model_type='random_forest'):
self.model_type = model_type
self.model = None
self.scaler = StandardScaler()
self.feature_importance = None
def prepare_features(self, genotype_data, clinical_data=None):
"""
特徴量の準備
Args:
genotype_data: SNPデータ (n_samples, n_snps)
clinical_data: 臨床データ (n_samples, n_clinical_features)
Returns:
np.array: 統合特徴量行列
"""
features = []
# SNP特徴量(0,1,2エンコーディング)
features.append(genotype_data)
# 遺伝子間相互作用特徴量
n_snps = genotype_data.shape[1]
interactions = []
for i in range(min(n_snps, 100)): # 計算量を考慮して制限
for j in range(i+1, min(n_snps, 100)):
interactions.append(genotype_data[:, i] * genotype_data[:, j])
if interactions:
features.append(np.column_stack(interactions))
# 臨床データがある場合は追加
if clinical_data is not None:
features.append(clinical_data)
return np.hstack(features)
def train(self, X, y, validation_split=0.2):
"""
モデルの訓練
Args:
X: 特徴量行列
y: ラベル(0: 健常, 1: 疾患)
validation_split: 検証データの割合
Returns:
dict: 訓練結果の統計
"""
# データ分割
X_train, X_val, y_train, y_val = train_test_split(
X, y, test_size=validation_split, stratify=y, random_state=42
)
# 特徴量の標準化
X_train_scaled = self.scaler.fit_transform(X_train)
X_val_scaled = self.scaler.transform(X_val)
# モデルの訓練
if self.model_type == 'random_forest':
self.model = RandomForestClassifier(
n_estimators=500,
max_depth=10,
min_samples_split=5,
min_samples_leaf=2,
class_weight='balanced',
random_state=42,
n_jobs=-1
)
self.model.fit(X_train_scaled, y_train)
# 特徴量重要度の取得
if hasattr(self.model, 'feature_importances_'):
self.feature_importance = self.model.feature_importances_
# 性能評価
train_pred = self.model.predict_proba(X_train_scaled)[:, 1]
val_pred = self.model.predict_proba(X_val_scaled)[:, 1]
train_auc = roc_auc_score(y_train, train_pred)
val_auc = roc_auc_score(y_val, val_pred)
# 交差検証
cv_scores = cross_val_score(
self.model, X_train_scaled, y_train, cv=5, scoring='roc_auc'
)
return {
'train_auc': train_auc,
'val_auc': val_auc,
'cv_mean': cv_scores.mean(),
'cv_std': cv_scores.std(),
'n_features': X.shape[1]
}
def plot_performance(self, X_test, y_test):
"""性能評価の可視化"""
X_scaled = self.scaler.transform(X_test)
y_pred_proba = self.model.predict_proba(X_scaled)[:, 1]
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5))
# ROC曲線
fpr, tpr, _ = roc_curve(y_test, y_pred_proba)
auc = roc_auc_score(y_test, y_pred_proba)
ax1.plot(fpr, tpr, label=f'ROC curve (AUC = {auc:.3f})')
ax1.plot([0, 1], [0, 1], 'k--', label='Random')
ax1.set_xlabel('False Positive Rate')
ax1.set_ylabel('True Positive Rate')
ax1.set_title('ROC Curve')
ax1.legend()
ax1.grid(True)
# Precision-Recall曲線
precision, recall, _ = precision_recall_curve(y_test, y_pred_proba)
ax2.plot(recall, precision)
ax2.set_xlabel('Recall')
ax2.set_ylabel('Precision')
ax2.set_title('Precision-Recall Curve')
ax2.grid(True)
plt.tight_layout()
plt.show()
精密医療に向けた研究支援価値: 機械学習は、薬剤応答や患者層別化の候補を優先順位づける支援には使えるが、個別患者の治療選択や投薬判断を自動化するものではない。研究・教育用の例では、データ分割、評価指標、外部検証の有無、対象集団の偏り、専門家レビューへ渡す前提を記録する。薬剤応答予測は追加検証の入力であり、効果・安全性・費用対効果を単独で証明しない。
7.2 教師なし学習
遺伝子発現クラスタリング:
- k-means: 遺伝子機能グループの特定
- 階層クラスタリング: 発現パターンの系統解析
- DBSCAN: ノイズ耐性クラスタリング
次元削減:
- PCA: 主成分による低次元表現
- t-SNE: 非線形次元削減によるデータ可視化
- UMAP: 大規模データの高速次元削減
発見的研究への貢献: 教師なし学習は、事前の仮説なしにデータから新しいパターンを発見する手法である。遺伝子発現データでは、研究上のサブタイプ候補や外れ値を整理する助けになるが、診断名や治療分類をそのまま確定するものではない。高次元生物学データの可視化は、研究者の直感的理解と仮説生成を支援する一方、薬剤作用機序やバイオマーカーの妥当性は別データ、実験、専門家レビューで確認する必要がある。
7.3 深層学習応用
深層学習の理論的基盤:
- 普遍近似定理: 十分な幅の1隠れ層ニューラルネットは、任意の連続関数を近似可能(条件は教科書・論文を参照)
- 表現学習: 深層ネットワークは、階層的な特徴表現を自動学習できるという背景(経験的・理論的)
生物学的配列の言語モデル:
-
n-gram モデル: P(x₁…xₙ) = ∏ P(xᵢ xᵢ₋ₖ₊₁…xᵢ₋₁) - RNNによる配列モデリング: h_t = f(Wx_t + Uh_{t-1} + b)
- Attention機構: α_ij = exp(e_ij) / Σ exp(e_ik)
- Transformer: 並列化可能な自己注意機構
タンパク質・複合体の構造予測(AlphaFold 3 / Server / DB):
- AlphaFold 3は、タンパク質に加えて核酸・小分子・イオン・修飾残基を含む複合体の構造予測に対応する。
- 提供形態は大きく2系統: (1) 非商用のWeb提供(AlphaFold Server) (2) ローカル推論パイプライン(モデル重みは申請・利用条件あり)。
- AlphaFold DBは既存タンパク質の予測構造を参照するデータベースとして扱い、実験構造や臨床判断の代替にしない。2026-07-15 JSTに公式案内を再確認した時点では、旧prediction API fieldのsunset日(2026-06-25)が経過しており、同案内は
modelEntityId、sequenceStart、sequenceEnd、sequence、isUniProtReviewed、isUniProtReferenceProteomeを新fieldとして示している。paeImageUrlは公式案内上の削除対象で、sunset後はAPIから提供・参照されない。Web版・APIの現行仕様と旧版取得方法は公式案内を再確認する。 - 実務では「探索はServer、再現性や自動化はローカル」で役割分担すると運用しやすい。
- 予測結果はpLDDT / PAE などの信頼度指標を併用し、理論モデリング・研究仮説の補助として解釈する。
実運用の選択肢(概要):
- AlphaFold Server: 迅速な試行に向く。入力制約や対象リガンドの範囲に注意。
- ローカル推論パイプライン: バッチ処理・再現実験に向く。GPU/データベース準備と利用条件の確認が必要。
- AlphaFold DB / API: 既存予測構造の参照・一括取得に向く。URL形式、API field、版管理はリリースノートで確認する。
バイオ向けFoundation Modelの位置づけ:
- タンパク質配列: 大規模配列事前学習モデルで機能推定や特徴抽出を支援。
- ゲノム配列: Nucleotide Transformer等が塩基配列の表現学習に利用される。
- single-cell: scGPT等が注釈・バッチ補正・摂動予測の補助に使われる。
- variant effect prediction: AlphaMissense等がミスセンス変異の優先順位づけを支援するが、予測confidence、適用範囲、臨床未検証の境界を明示する。
- 空間解析/細胞間相互作用: Nicheformer等が空間コンテキストを踏まえた解析に使われる。
2026年時点で本文に反映するAIモデル・DB(確認日: 2026-05-12 / 2026-05-13 JST):
- AlphaGenome(確認日: 2026-05-12): 1 Mb までの DNA 配列を入力し、塩基単位の分解能で遺伝子発現・スプライシング・クロマチン状態などの分子特性と variant effect prediction を支援する。研究用途の仮説生成・優先順位づけとして扱い、個人ゲノム予測や直接の臨床目的には使わない。
- Evo 2(確認日: 2026-05-12): 長文脈 DNA 配列のモデリングと設計支援を目的としたゲノム foundation model。公開コード・モデル・データは研究再現性の確認材料になるが、生成配列の機能性・安全性・法規制適合性は実験検証と専門家レビューの対象として扱う。
- AlphaMissense(確認日: 2026-05-13 JST): ミスセンス変異の病原性予測と優先順位づけを支援する。公式実装は参照実装として扱い、学習済み重みが提供されない点、予測confidenceが一様ではない点、臨床利用に未検証・未承認である点を明記する。
- Nucleotide Transformer(確認日: 2026-05-13 JST): DNA配列で事前学習した foundation model群で、ゲノム配列の表現学習や下流タスクの特徴抽出を支援する。研究ワークフローでは、対象タスクごとの再学習・外部検証・データライセンス確認を前提にする。
- scGPT(確認日: 2026-05-13 JST): single-cell multi-omics向け foundation modelで、cell type annotation、batch integration、perturbation response predictionなどを補助する。注釈・統合・摂動予測の候補生成に留め、クラスタや細胞状態の生物学的結論は独立した検証で確認する。
Foundation model はどう評価するか(確認日: 2026-06-05 JST): Foundation model は、モデル名ではなく、予測対象、入力制約、出力、評価データ、利用条件で管理する。実務では、付録Fの一次情報と付録Hのツール表に確認日を残し、次の3カテゴリを最小単位として比較する。
| 区分 | 代表例 | 主な入力 | 主な出力 | 実務上の確認点 |
|---|---|---|---|---|
| 構造・複合体 | AlphaFold 3, Chai-1, Boltz, RoseTTAFold All-Atom | 配列、MSA/template、小分子、核酸、修飾、共有結合、restraint | 3D構造、pLDDT / PAE 等の信頼度、候補順位、場合により binding affinity | ligand protonation、stoichiometry、共有結合、対象外リガンド、モデル重み/API/ライセンス、wet-lab検証 |
| ゲノム配列 | AlphaGenome, Evo 2, Nucleotide Transformer | DNA sequence、species/context、reference build、variant allele、入力長 | functional track、variant score、embedding、生成/順位づけ配列 | 対象細胞種・組織、入力長、variant class、training data overlap、非商用/商用条件、既知DBとの比較 |
| single-cell | scGPT, Geneformer, Nicheformer | 発現行列、遺伝子順位、batch/donor/tissue、摂動ラベル、必要に応じて spatial coordinate | embedding、annotation、integration、perturbation response、spatial/context score | batch/donor/tissue/species split、単純 baseline、外部検証、model card、臨床利用可否、データ持ち出し |
評価記録には、少なくとも task、model_name、model_version、weights_or_api、license_checked_at、input_scope、reference_build_or_feature_space、training_overlap_check、baseline、split_unit、metrics、external_validation、clinical_use_allowed、data_export_allowed を残す。
- 単純 baseline と比較する: 既知DB検索、従来ツール、logistic / linear model、mean baseline、PCA / scVI など、説明可能で低コストな比較対象を先に固定する。
- training data overlap を確認する: PDB/複合体、公開ゲノム、cell atlas、perturbation dataset、donor、tissue、species が評価セットと重なっていないかを、分割単位と出典で確認する。
- 臨床判断に直接使わない: variant effect prediction、perturbation response prediction、binding affinity 予測、構造信頼度は仮説生成・優先順位づけであり、診断、治療選択、投薬判断へ直接接続しない。
- single-cell foundation model の perturbation response prediction は、タスクによって従来法や単純線形 baseline を明確に上回らない報告もあるため、zero-shot の印象ではなく外部データと事前登録した指標で評価する。
- モデル重み、API、ライセンス、利用条件、対象外用途は更新されるため、利用時点の確認日と URL を manifest に残す。
評価・運用上の注意点:
- ゼロショットの過信やデータリークを避け、評価セットと学習データの重なりを点検する。
- バッチ効果・ラベル循環の影響を、donor / tissue / species などの分割単位で検証する。
- 解析条件(バージョン、乱数種、前処理)を固定し再現性を確保する。
- 外部APIや公開Webサービスへ投入する配列・発現行列・臨床メタデータの持ち出し可否を、同意・契約・利用規約で確認する。
AI利用の実務フロー(例):
- 設計: 目的・評価指標・制約条件(データ機微性、許容偽陽性/偽陰性)を合意する。
- 実装: ベースライン→高度モデルの順で試す。前処理・分割手順は記録する。
- 検証: 患者単位/実験単位で分割し、リーク・バッチ影響をチェックする。
- レポート: 再現条件、失敗パターン、適用範囲を明文化する。
畳み込みニューラルネット(CNN):
- DNA配列のモチーフ検出
- タンパク質2次構造予測
- 医用画像解析(病理組織、画像診断)
リカレントニューラルネット(RNN/LSTM):
- 配列データの時系列解析
- 遺伝子発現の時間変化予測
- タンパク質折り畳み過程のモデル化
Transformer:
- 長距離依存関係のモデル化
- DNA言語モデル(DNABERT、Nucleotide Transformer等)
- タンパク質配列から構造予測
生成モデルの応用: 🧪 概念例(実行不可: 生成モデルの数式・応用概念整理)
変分オートエンコーダ (VAE):
L = E[log p(x|z)] - KL(q(z|x)||p(z))
分子生成: 潜在空間での分子操作
敵対的生成ネットワーク (GAN):
min_G max_D E[log D(x)] + E[log(1-D(G(z)))]
新薬候補分子の生成
転移学習とドメイン適応:
- 事前訓練モデル: 大規模データでの基本表現学習
- ファインチューニング: タスク特化の微調整
- ドメイン適応: 異なる実験条件間での知識転移
解釈可能性とXAI (Explainable AI):
- 勾配ベース手法: Saliency Map, Integrated Gradients
- 摂動ベース手法: LIME, SHAP
- 注意機構: 重要領域の可視化
- 概念ベース説明: TCAV (Testing with Concept Activation Vectors)
技術革新の意義: 深層学習により、従来手法では捉えにくかった複雑なパターンを学習可能となった。AlphaFold系の進展により、構造予測や相互作用予測の活用範囲が広がっている。一方で、予測精度は対象やデータ条件に依存するため、実験的検証や信頼度指標の併用が前提となる。医用画像解析などでも実運用が進むが、評価設計と監視が重要である。
7.4 強化学習
創薬最適化:
- 状態: 分子構造
- 行動: 化学修飾
- 報酬: 薬理活性・毒性スコア
- 目標: 最適な薬物分子の設計
創薬支援での候補探索: 強化学習や生成モデルは、分子設計を最適化問題として定式化し、候補空間の探索を支援できる。ここで得られる出力は、実験計画や追加検証の候補リストであり、薬効、安全性、臨床有用性を保証するものではない。研究・教育用の説明では、訓練データ、評価指標、合成可能性、毒性評価、知的財産・利用条件、ウェット実験での確認要否を分けて記録する。
🎯 認定試験ポイント
重要概念チェックリスト
機械学習基礎 ⭐⭐⭐
- 教師あり・教師なし・強化学習の違いと生物学での応用例を説明できる
- 過学習とその対策(交差検証・正則化)を理解している
- 評価指標(精度・再現率・F値・AUC)の生物学的意味を把握している
- バイアス・バリアンストレードオフとモデル選択の関係を理解している
統計的機械学習 ⭐⭐⭐
- ベイズ統計の原理とMAP推定・事後確率の概念
- サポートベクターマシン(SVM)のカーネル手法と生物学応用
- 決定木・ランダムフォレストの特徴量重要度と解釈
- クラスタリング手法(k-means・階層・DBSCAN)の使い分け
深層学習 ⭐⭐
- 畳み込みニューラルネット(CNN)の配列解析応用
- リカレントニューラルネット(RNN/LSTM)の時系列解析
- Transformerとattention機構の配列モデリング
- AlphaFold 3/Serverの用途と制約(利用形態・制約・信頼度指標)
次元削減・可視化 ⭐⭐
- 主成分分析(PCA)の数学的原理と生物学的解釈
- t-SNE・UMAPの非線形次元削減の特徴と限界
- 高次元データの「次元の呪い」問題
- 特徴選択と次元削減の違いと使い分け
典型的な出題パターン
【アルゴリズム選択】 🧪 概念例(実行不可: 認定試験形式の説明例)
問題例: RNA-seq データから疾患関連遺伝子を特定する際、
以下の状況に最適な機械学習手法を選択し理由を述べよ。
・サンプル数: 100
・遺伝子数: 20,000
・ラベル: 疾患/健常
解答: ランダムフォレスト
理由:
1) 高次元低サンプル問題に対して過学習しにくい
2) 特徴量重要度により解釈可能性が高い
3) 非線形関係を捉えられる
4) 欠損値に対してロバスト
【性能評価】 🧪 概念例(実行不可: 認定試験形式の説明例)
問題例: 研究用がん分類モデルで、
仮に精度95%、感度80%、特異度98%の場合、
評価時に優先して確認すべき指標とその理由は?
解答例: 感度(80%)を重点的に確認する
理由: 研究用分類でも陽性例の見落としは下流解析や追加検証の候補選定に影響する。
ただし、実際の診断・治療判断へ接続するには、対象集団、検査法、外部検証、専門家レビュー、施設の品質管理を別途確認する。
【技術比較】 🧪 概念例(実行不可: 認定試験形式の説明例)
問題例: タンパク質配列解析において、従来の配列アライメント手法と
深層学習手法(Transformer等)の利点・欠点を比較せよ。
解答:
配列アライメント: 解釈しやすい・高速・進化的関係明確 / 線形関係のみ
深層学習: 複雑パターン学習・高精度 / ブラックボックス・大量データ必要
【数理的理解】 🧪 概念例(実行不可: 認定試験形式の説明例)
問題例: SVMのカーネルトリックがなぜ高次元特徴空間での
線形分離を可能にするか、数式を含めて説明せよ。
解答: カーネル関数 K(xi, xj) = φ(xi)・φ(xj) により、
明示的な特徴空間変換 φ(x) を計算せずに
高次元空間での内積を計算可能。
これにより線形分離不可能な問題を線形分離可能に変換。
小さな実例
TCGA-LUAD の研究用ミニケースでは、発現行列とサブタイプまたは表現型ラベルを使い、説明しやすいベースラインモデルを作ることから始める。ここでの目的は高精度モデルの作成ではなく、分割、前処理、評価、解釈、用途制約を文書化する練習である。
| 手順 | 確認すること | 失敗例 |
|---|---|---|
| データ選定 | 公開データ、利用条件、確認日、サンプル数 | 取得元や版を記録しない |
| 分割 | patient / study 単位、乱数seed、クラス比 | 同一患者由来データが train/test に混入する |
| 前処理 | train の統計量だけで標準化、欠測処理 | 全データで標準化してリークする |
| 学習 | ベースラインと比較対象を分ける | 複雑なモデルだけを試し、説明できない |
| 評価 | AUROC、AUPRC、F1、感度、特異度、calibration | accuracy のみで判断する |
| 記録 | model card、dataset card、用途制約 | 研究用途と臨床用途の境界を書かない |
結果の読み方
モデル評価では、単一のスコアを「正しさ」として読まない。クラス不均衡がある場合は AUPRC、誤検出の影響が大きい場合は感度・特異度、確率出力を使う場合は calibration を確認する。外部データ、別施設、別集団、別プロトコルで性能が維持されるかも別途確認する。
特徴量重要度や係数は、候補の優先順位づけや仮説生成には役立つが、因果関係や臨床的有用性を直接示すものではない。AI / foundation model の予測も、入力範囲、学習データ、利用条件、外部検証、専門家レビューと一緒に読む。
限界と注意点
本章の例は研究・教育用途であり、疾患診断、治療選択、投薬判断、患者説明を自動化する根拠にはしない。臨床実装には、施設の品質管理、規制対応、専門家レビュー、説明責任、継続的な性能監視が必要である。
AlphaFold 3、Chai-1、Boltz、RoseTTAFold All-Atom、AlphaGenome、Evo 2、Nucleotide Transformer、scGPT、Geneformer、Nicheformer、AlphaMissense などは、用途、入力範囲、学習データ、利用条件、商用可否・非商用制約、更新頻度が異なる。本文では能力を過大評価せず、実務利用前に公式情報と確認日付き出典を確認する。
関連する付録・章
- 付録G: JSBi認定試験の理解補助
- 付録H: プログラム・ツール・データベース一覧(機械学習)
- 第3章: データ構造とアルゴリズム(計算理論的基盤)
- 第8章: シングルセル・空間解析(最新AI応用)
- 第12章: 臨床応用システム(研究解析と臨床実装の責任境界)
まとめ
- 本章の要点は、モデルを作ることではなく、特徴量・分割・評価指標・リーク回避を一体で設計することです。
TCGA-LUADのような公開コホートでも、研究用途と臨床用途では要求される説明責任が異なります。- 第12章以降でモデル結果を扱う際は、ここで整理した解釈性と制約の線引きが前提になります。
演習
TCGA-LUADの公開データから小規模サブセットを作り、学習用 / 検証用 / 評価用に分割して分類モデルを 1 つ実装せよ。- ロジスティック回帰と Random Forest など 2 手法を比較し、AUROC / F1 / 感度 / 特異度のどれを採用判断に使うか説明せよ。
- データリークになり得る前処理(全データでの標準化、ラベル由来特徴量など)を 2 つ挙げ、回避策を文書化せよ。
具体課題例
- 発現行列または変異要約を入力とし、疾患群 / 非疾患群やサブタイプ分類の最小例を作る。
- 特徴量重要度または係数を出力し、「高精度だが説明しにくいモデル」と「精度は下がるが説明しやすいモデル」を比較する。
- 第12章で再利用する前提で、モデルの用途制約(研究用途 / 診断補助不可など)を明記する。
Source notes / 次の一歩
- 付録F: 第7章の次の一歩
- 2026年版出典監査メモ: AI / foundation model(AlphaFold 3 / Chai-1 / Boltz / RoseTTAFold All-Atom / AlphaGenome / Evo 2 / Nucleotide Transformer / scGPT / Geneformer / Nicheformer の公式情報と確認日)
- 付録J: 実在アクセッション一覧
- 付録K: 用語集
2026年時点の更新メモ
- AlphaFold 3 / AlphaFold Server、Chai-1、Boltz、RoseTTAFold All-Atom、AlphaGenome、Evo 2、Nucleotide Transformer、scGPT、Geneformer、Nicheformer、AlphaMissense などは、研究・教育用途、入力範囲、利用条件、商用可否・非商用制約、外部検証の有無を分けて扱う。
- 2026年時点の AI / foundation model は、構造予測、ゲノム配列の機能予測、single-cell 表現学習などで有用な候補を出せる一方、臨床判断、薬効、有効性、安全性を単独で保証しない。
- モデル利用時は model card、dataset card、学習データ、評価データ、バージョン、確認日、ライセンス、再現手順を記録し、第12章の臨床境界と第13章の研究方法論へ接続する。
- 更新根拠は 2026年版出典監査メモ: AI / foundation model と付録F/Hの foundation model 評価項目を参照する(確認日: 2026-06-05 JST)。
次章への橋渡し
機械学習の設計原則を理解すると、次は細胞単位・空間単位のように さらに高次元で複雑なデータへ進めます。第8章では、 同じ評価の考え方を保ったままシングルセル・空間解析へ進みます。
最小入出力(期待成果物/期待ログ)
- 入力: 特徴量行列(例: 発現/変異/臨床特徴)とラベル、学習/評価の分割(train/valid/test)
- 出力(期待成果物): 評価指標(例: AUROC/F1)と比較表、再学習可能なモデル(設定・乱数シードを含む)
- 期待ログ(例): データ分割条件・ハイパーパラメータ・学習曲線(loss/metric)・最終指標が記録されている
| 前へ: エピゲノム・マルチオミクス解析 | 目次 | 次へ: シングルセル・空間解析 |