Goal
ここでの目標は「賢いモデルを作る」ではなく、第三者が同じ結果を再現できる最小ループ(L0)を作ることです。 L0がないと、どんなSOTA主張も“検証不能”になり、積み上がりません。
最小ループ(L0)の形
L0 Loop
- 入力:BIDS(データ + メタデータ)
- 品質:QCログ(数値で)
- 処理:前処理の設定・バージョン・乱数を記録
- 出力:ベースライン指標(最低1つ)
- 監査:失敗例・除外基準も残す
Step 1:BIDSの“骨格”を作る
EEGのBIDSは「置き方が決まっている」のが強みです。まずは最小構成で形だけ作ります。
例:最小ディレクトリ
```text
my_bids_eeg/
dataset_description.json
participants.tsv
sub-01/
eeg/
sub-01_task-rest_eeg.edf
sub-01_task-rest_eeg.json
sub-01_task-rest_channels.tsv
sub-01_task-rest_events.tsv
```
(実データがなくても、構造だけは先に作れます)
`dataset_description.json` はすでにこのリポジトリにも雛形があります(概念段階ですが、発想は同じです)。
Step 2:BIDS Validator を回す
機械的にチェックできる部分は、機械に任せます。BIDS Validatorは「規格違反」を早期に潰すための重要な道具です。
```bash # Node.js がある環境で npx bids-validator my_bids_eeg ```
ポイント
Validatorが通る=研究として十分、ではありません。でも、通らない状態で“共有”はほぼ成立しません。
Step 3:QCログを“数値”で残す
再現性が壊れる典型は「どのデータが悪かったか」が人依存になることです。最低限、次をログにします。
QC Items
- 欠損/飽和:チャンネルごとの欠損率、飽和区間
- ノイズ:電源周波数のピーク、ノイズフロア推定
- アーティファクト:眼球/筋電/動きの混入指標
- 除外基準:どの閾値で除外したか(理由つき)
Step 4:ベースラインを1本置く(最初は小さく)
最初は “たった1つの指標” で十分です。例: 安静EEGのスペクトル要約、睡眠段階分類のベースライン、運動想起の2クラス分類など。
重要
「ベースラインがある」と「改善を主張できる」ようになります。ベースラインなしのSOTA議論は、ほぼノイズになります。
このハンズオンがVerificationに繋がる点
ここまでできると、次は「同じ物差しで比較できる」方向へ進めます。つまり、ベンチマーク化です。