Upgrade to Pro — share decks privately, control downloads, hide ads and more …

コンペ解説 HMS-Harmful Brain Activity Classification

Rist Inc.
December 20, 2024

コンペ解説 HMS-Harmful Brain Activity Classification

Rist Inc.

December 20, 2024
Tweet

More Decks by Rist Inc.

Other Decks in Technology

Transcript

  1. ©Rist Inc. 04 Confidential • 開催情報: ◦ 期間: 2024/1 ~

    2024/4 ◦ 主催: Harvard Medical School ◦ 結果: 9位 / 2767チーム • 課題: ◦ 脳波 (EEG) 信号から、発作など6種類の症状を判定する ◦ てんかんなどの診断に役立てるのが目的 • 評価指標: ◦ Kullback Leibler情報量 ◦ 評価者の判定分布 と AIモデルの予測分布 の差を評価 • Data: ◦ 入力 = 1次元の時系列データ (20ch) ◦ 出力 = 6クラス分類結果 HMS - Harmful Brain Activity Classification 用いられる脳波計 出典: https://www.creact.co.jp/measure/eeg/satellite_gemini/ 評価者 (アノテーター) が見ている画面
  2. ©Rist Inc. 05 Confidential • 19chのEEG波形 + 心電波形 の 合計20chの波形データ

    • EEG波形は全体で50秒間あり、ラベルはその真ん中10秒間の部分について付与される • コンテキスト情報として、真ん中10秒以外をどう活用するか Data|EEG波形 50秒 ラベリング対象 10秒
  3. ©Rist Inc. 06 Confidential Data|ラベル No. クラス名 説明 1 てんかん発作(Seizure)

    てんかん発作に伴う異常放電 2 側方化周期放電(LPD) 右脳 / 左脳 どちらかの領域での周期的なスパイク 3 全身性周期放電(GPD) 右脳 / 左脳 両方の領域での周期的なスパイク 4 側方化律動デルタ活動(LRDA) 右脳 / 左脳 どちらかの領域での比較的大きな波形パターン 5 一般化律動デルタ活動(GRDA) 右脳 / 左脳 両方の領域での比較的大きな波形パターン 6 その他の反応(Other) 信号欠損などもここに分類される てんかんについて てんかん発作を繰り返す脳の病気で、年齢、性別、人種の関係なく発病します。 世界保健機関(WHO)では、てんかんは「脳の慢性疾患」で、脳の神経細胞(ニューロン) に突然発生する激しい電気的な興奮により繰り返す発作を特徴とし、それに様々な臨床症状や 検査での異常が伴う病気と定義されています。 引用:https://www.tenkan.info/about/epilepsy/ 右脳 / 左脳 → 複数chの信号を比較する 波形パターン → ラベル部分 けでなく  周辺情報も見る
  4. ©Rist Inc. 07 Confidential Data|ラベル • サンプルによっては、ラベル付において専門家間でも意見が別れる場合がある • 今回のデータは1 ~

    28人のアノテーター(サンプルによって人数は変わる)の投票結果 (の比率) がGT 正規化 1. 複数人のアノテーターで 独立にラベル付 2. 実際の予測対象は ラベル比率 分布を当てる必要がある!
  5. ©Rist Inc. 09 Confidential Data|アノテーター人数の分布 • データごとに何人でラベル付けしてるか見てみると... アノテーター人数 (vote_num) のヒストグラム

    明らかに2つの集団に 分かれている ...🤔 • ホストが以前データセット構築した時の論文を調査 • その際はvote_num>=10をtest setとしていた  (大人数でラベル付したデータの方が、ラベルの  信頼性が高いため) • その他の調査から、今回のtest setもおそらくほぼ vote_num>=10で構成されてそう、ということが わかった vote_num>=10のデータに対してfitするモデルを作るとスコアが上がりそう!
  6. ©Rist Inc. 010 Confidential Data|ここまでのまとめ • ラベルがつけられる領域(10s) と周辺領域 (50s) •

    複数chでのスパイクの同期 / 非同期が大事 • アノテーションでは、最初に10分間の荒いスペクトログラムで概形を確認して、その後見たい領域 (10s) に フォーカスしてラベルをつけている • どうやらアノテーション数に偏りがあり、特に大人数でつけられているデータに対する予測精度が大事らしい ◦ (それでなくとも、少人数でつけたサンプルはラベルノイズが多いはず) データの傾向が掴めるとモデルの方向性がわかる
  7. ©Rist Inc. 012 Confidential 全体 • 入力データ ◦ 10sだけでなく50sまで含めてモデルに入力 (コンテキスト情報の利用)

    ◦ アノテーションに倣って、10分間の荒いスペクトログラムも入力に加える • モデルの学習戦略 ◦ vote_num>=10に対してfittingしたい ▪ vote_num>=10のデータで学習 ▪ そうすると捨てるデータが増えてしまいもったいない... • ノイズの多い vote_num<10のデータは事前学習につかう • チームでの取り組み方 ◦ 各自でパイプラインを組み、お互い良かった(効いた)点を取り込みながらモデルを育てていく ◦ 最終的には3人分のモデルを合わせて大規模なensemble (モデルの予測値を混ぜる)
  8. ©Rist Inc. 013 Confidential 詳細|前処理 • フィルタリング処理に気をつかう: ◦ 60Hzノッチフィルタ(電気ノイズの除去)、0.4Hzハイパスフィルタ(低周波ノイズ除去) ◦

    chごとにrobust scaler ▪ この辺りのフィルタリングを失敗すると、一気にモデルの学習が進まなくなる ▪ 波形処理の経験豊富なメンバ (nikaido) の知見によるところが大きい • ch同士で差分をとる: ◦ 実際にアノテーターが見ている波形は下記のDouble bananaだが、他にも様々な差分の取り方を採用 し、それぞれでモデルを作る (多様性確保の目的) ◦ 右脳 / 左脳の同期 / 非同期の一部はここでケアできる
  9. ©Rist Inc. 014 Confidential 詳細|モデル 3人それぞれで異なるモデルを構築していたが、代表的なものは下記のようなもの 1. 10sの波形だけでなく、50s, 40sなど多少幅を持たせたwindowの波形も入力として加える 2.

    GRUなどで波形から特徴抽出し、2D wavegramとする 3. 波形から生成した上記の2D特徴を、画像AIモデルの入力とする 引用:弊チームの解法詳細 :https://www.kaggle.com/competitions/hms-harmful-brain-activity-classification/discussion/4924 29 modelに関しては本当に色々な細かいテ クを使ってます ぜひ引用元の Discussion投稿も覗いて みてください
  10. ©Rist Inc. 015 Confidential 詳細|モデル Q:なぜ最終的に画像モデル? A:今回のデータのポイントである、右脳 / 左脳の違いをうまく捉えられるから wavegram1

    (h, feature_len) 1D EEG信号1 (1, wave_len) 1D特徴抽出 wavegram2 (h, feature_len) 1D EEG信号2 (1, wave_len) 1D特徴抽出 wavegram3 (h, feature_len) 1D EEG信号3 (1, wave_len) 1D特徴抽出 wavegram1 wavegram2 wavegram3 2D画像化 画像モデル 判定結果 時間方向 ch方向 このように特徴を積むことで、 - たて:一部の chでだけ放電が起きているか - よこ:周期的か否か が一目でわかる
  11. ©Rist Inc. 016 Confidential コンペを振り返って なぜ金圏に入れたか • おそらく一番大きいのは、test setが大人数サンプルで構成されていると気づけた点 •

    あとは、下記が特に貢献度が高い ◦ 前処理 (ここが適切でないと、そもそも学習ができない) ◦ モデル構成 (右脳 / 左脳の違いを効率よく学習する) なぜ賞金圏 (3位以内)に入れなかったか • モデルの多様性不足 ◦ 終盤で手札が尽きてしまった。普段から手札を増やす努力をすべき ◦ 上位解法を見てみると、自分たちの知らない活性化関数やデータ変換の方法などが散見された • モデルのブレンドの仕方 ◦ 仮説を立てたら、ある程度のリスクを取る覚悟で積極的な方法も採用するべきだった ◦ 上位チームでは、vote_num>=10にさらにfitさせるために積極的なmodel stackingなどを利用していた