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

銀_1D時系列データ分類_202212_nishika_睡眠コンペ

sugupoko
January 20, 2023

 銀_1D時系列データ分類_202212_nishika_睡眠コンペ

サイト:https://www.nishika.com/competitions/sleep/summary
所感:1DデータのDNNをいろいろやれて良かった。暫定が金圏内だっただけに悔しい・・・。次は最後までやりきる。

年齢、性別などのメタ情報が配られていたの忘れていたのはココだけの話。。。

金圏内は、特徴量抽出後のlightGBMのパターンが占めていた。
#do not sleep on traditional machine learningの論文をなぞって実装している人がほとんど。

sugupoko

January 20, 2023
Tweet

More Decks by sugupoko

Other Decks in Technology

Transcript

  1. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    1/xx
    サマリ
    • 参加コンペ:
    – Nishika - 睡眠段階の判定 〜”睡眠の深さを判別しよう”〜
    • 概要:
    – 睡眠ポリグラフ(polysomnography: PSG)から睡眠の深
    さ(睡眠段階)を予測
    • データ:EEG, EOG, EMGなどの時系列データ
    • 分類:4段階(Sleep Stage W, 1 , 2, ¾, R)
    • 順位:
    – 15位/109チーム(シルバー)
    • 暫定9位だったから悔しい・・・
    • 基本アプローチ概要:
    – 1D data => スペクトログラム変換 => 2D CNN => ensemble
    • 加えて時系列方向にスタックした2.5Dモデル、1D GRUモデル、経過
    時間を同時に入力したモデルのアンサンブルを実施
    • 所感:
    – 始めての1D時系列データを扱ったコンペ。
    – 良いサンプルコードをディスカッションに上げてくれている人がいて
    超勉強になった。
    – Kaggleの2.5Dや、睡眠経過時間を特徴量としてDNNに入
    れるという取り組みができたのはアピールしたいところ。
    – 最後10日間余ったけど、モチベーション下がって何もできなく
    なってしまった。今となっては悔しい。
    – メタ情報の存在をすっかり忘れていたのはやっちまった。。。
    • 4位の人はここら辺もちゃんと利用。
    Sleep stage W
    (覚醒状態)
    4種類分類したい
    コンペ
    概要
    結果

    View full-size slide

  2. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    2/xx
    コンペの主課題(データの観点で予測)
    • Train / testの乖離
    – なし
    • 録音環境は同一
    • ユーザーの被りはない
    • データの分布
    – 偏り有り。(ただし、rain/testで分布が偏ってても良いと思われるので気にしない)
    • ラベル精度
    – 無し(ラベルノイズは含まれていないかも。素人じゃわからん。)
    • ドメインの特有性
    – 複数脳波が存在
    • EEG-fpz, oz, EOG, EMG、、、
    – 眠開始からのトータルの時間に対する深さの変化が存在
    • ①:短期的な時間方向の相関がある
    – 前後の脳波を含めてみると良いかも?
    • ②:長期的な時間方向の傾向がある
    – いきなりレム睡眠の人なんかいない

    View full-size slide

  3. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    3/xx
    基本フロー
    • 1Dの睡眠ポリグラフデータを周波数変換し、2DCNNで学習
    – 入力を多次元した2.5D CNNも追加で利用(次ページ)
    1dAug
    周波数変換
    (スペクトログラム)
    CNN アンサンブル
    前処理 CNN 後処理
    tf_efficientnet_b0_ns
    などv
    複数モデルの
    結果結合
    2dAug

    View full-size slide

  4. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    4/xx
    独自実装:2.5D CNN with 睡眠経過時間の全体像
    EOG
    EEG Oz
    EEG Fpz
    9ch
    tf_efficientnet_b0_ns
    atgmax
    concat
    FC
    256次元
    (確か)
    睡眠経過時間
    (300秒ごとに切り分け)
    1次元
    4クラス
    EEG fpz, EEG oz, EOGの3ch
    前後含め3frame
    入力レイヤーの
    stem部分を置き換える形で実装。
    解像度が小さいのでstrideを1に設定

    View full-size slide

  5. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    5/xx
    生データ
    ✓ 睡眠経過時間とラベル変化
    ✓ 睡眠経過時間と脳波

    View full-size slide

  6. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    6/xx
    取り組み内容について 1/5
    • 概要
    – 異なるデータの入力のさせ方をさせた6モデルのアンサンブル
    • キーポイント
    – 上位陣はみんなパトリオットさんのコードを利用していると思うのでそれとの差分を記述。
    • A: epochの同時入力
    – □ 理由:眠ってすぐにレム睡眠はないやろ。て思ったので。(性別とか年齢は関係ないかなーと思って利用していない)
    • B: 2.5D CNNの利用
    – □ 理由:do not sleep on,,,の論文を見てみると、前後の時間をうまく活用していたので。Kaggle でも最近よく見るのでやっ
    てみたかったのもある。
    • C: 全モデルアンサンブル。
    – □ 理由;do not sleep on,,,の論文を見てみると、特徴量の取り方をMixしていたので。
    • CV戦略
    – シンプルに被験者でgroupKFold

    View full-size slide

  7. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    7/xx
    取り組み内容について 2/5
    • 前処理
    – チュートリアルにあるモノと同じく30secごとに区切るのみ。
    • モデル
    – A: 2.5D CNN tf_efficientnet_b0
    • (10epoch, 前後と該当フレーム利用,EEG EOGの3ch)
    – B: 2.5D CNN tf_efficientnet_b0
    • (10epoch、前と該当フレーム利用, EEG EOGの3ch)
    – C: 2.5D CNN tf_efficientnet_b0
    • (10epoch、後と該当フレーム利用, EEG EOGの3ch)
    – D: 2.5D CNN tf_efficientnet_b0 with epoch
    • (10epoch、前後と該当フレーム利用, EEG EOGの3ch)
    – E: 2.5D CNN tf_efficientnet_b0 with epoch
    • (10epoch、前後と該当フレーム利用, EEG fpz EOGの2ch)
    – F: 1D CNN with epoch
    • (10epoch, EEG fpz EOGの2ch)

    View full-size slide

  8. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    8/xx
    取り組み内容について 3/5
    • • 実験結果
    – A~F平均:
    • § CV:0.9074、最終0.8371
    – A: 2.5D CNN(10epoch, EEG EOGの3ch)
    • § CV : 0.89538 最終:0.827
    – B: 2.5D CNN(10epoch、前と該当フレーム利用, EEG EOGの3ch)
    • § CV : 0.89857 最終:0.8156
    – C: 2.5D CNN(10epoch、後と該当フレーム利用, EEG EOGの3ch)
    • § CV : 0.89236 最終:0.8116
    – D: 2.5D CNN with epoch(10epoch、前後と該当フレーム利用, EEG EOGの3ch)
    • § CV : 0.90384 最終:0.8203
    – E: 2.5D CNN with epoch(10epoch、前後と該当フレーム利用, EEG fpz EOGの2ch)
    • § CV : 0.88588 最終:0.8041
    – F: 1D CNN with epoch(10epoch, EEG fpz EOGの2ch)
    • § CV : 0.87265 最終:0.8108
    – 参考:2d cnn ベースライン
    • § CV : 0.775007 最終:0.783303

    View full-size slide

  9. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    9/xx
    取り組み内容について 4/5
    • 後処理
    – average アンサンブル
    • その他
    – EEG fpzのみを利用したモデルも作ったが微妙。
    – 1Dだと、EEG EOG EMG入れると学習がうまくできなかった。
    • 試したが利かなかったこと
    – 全然実験してないから無し、、、

    View full-size slide

  10. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    10/xx
    取り組み内容について 5/5
    • 取りくみ方
    – ○ 序盤
    • § ドメインの知識収集
    – □ 論文を調査。EEG、EOG、EMGなどは何かをざっくり調査。また、最新の論文のアプローチも調査。
    • § チュートリアル着手
    – □ ドメインの理解
    • § ベースライン作成(パトリオットさんの2D CNN。感謝)
    – □ 自分のいつもの書き方にリファクタしながら作成。
    – □ tf_efficientnetb0で性能が出ていたので、差異化ポイントは入力の入れ方とアンサンブルと判断。
    – ○ 中盤
    • § 類似コンペ調査
    – □ G2Netと鳥コンペを調査。あんまり参考にできなかった。
    • § あるある性能改善着手
    – □ パラメータ探索、交差検証、、、など。
    • § ドメイン特化のアイディア検討
    – □ 2.5D CNN化 ® do not sleep on traditional ...で、前後の時間を使うとよさそうな感じをしたので。
    – □ 睡眠経過時間(エポック)を同時入力 ® 時間方向に眠りの深さが依存してそうだったので。そのまま入れると崩壊しそうなので100エポッ
    ク単位で切り下げ。
    – ○ 終盤
    • § 全モデルのアンサンブル。

    View full-size slide

  11. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    11/xx
    参考資料
    • 論文:
    – Frontiers | A Novel Sleep Staging Network Based on Data Adaptation and Multimodal Fusion (frontiersin.org)
    – リンク
    – ycq091044/ContraWR: SSL: EEG dataset processing and EEG Self-supervised Learning (github.com)
    – 2207.07753v3.pdf (arxiv.org)
    • 東大資料:音声処理について
    – hil.t.u-tokyo.ac.jp/~kameoka/SAP/Kameoka2011__Speech_and_Audio_Processing__05.pdf
    • 鳥コンペ:
    – 1位:BirdCLEF 2022 | Kaggle
    – 5位:BirdCLEF 2022 | Kaggle
    – 7位:BirdCLEF 2022 | Kaggle
    – 鳥コンペ反省会資料 - Speaker Deck
    • G2Net
    – https://www.kaggle.com/code/scaomath/g2net-1d-cnn-gem-pool-pytorch-train-inference
    – https://qiita.com/anonamename/items/5b7fa5d9d5d7f9970e06

    View full-size slide

  12. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    12/xx
    ドメイン知識収集 利用するデータ
    Do not sleep on traditional machine learning: Simple and interpretable
    techniques are competitive to deep learning for sleep scoring - ScienceDirect
    最新論文を見てみると、どうやらEEGとEOG(+EMG)を使うのが良いのかもしれない
    調査

    View full-size slide

  13. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    13/xx
    ドメイン知識収集 画像化方法
    • サーベイ論文リンク
    左:脳波の取り方はこんな感じ。
    右:画像化方法は色々あるみたい。組み合わせの性能が良い模様。
    調査

    View full-size slide

  14. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    14/xx
    調査

    View full-size slide

  15. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    15/xx
    調査

    View full-size slide

  16. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    16/xx
    分析?
    • 被験者(延べ)の人数と、被り有無
    • 人数
    – 訓練被験者数 55
    – テスト被験者数 23
    count 108.000000
    mean 1496.388889
    std 142.721272
    min 840.000000
    25% 1450.000000
    50% 1530.000000
    75% 1588.250000
    max 1673.000000
    • Trainの1人当たりのデータ数
    • Testの1人当たりのデータ数
    count 45.000000
    mean 1162.133333
    std 330.059196
    min 699.000000
    25% 964.000000
    50% 1064.000000
    75% 1195.000000
    max 2027.000000

    View full-size slide

  17. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    17/xx

    View full-size slide

  18. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    18/xx

    View full-size slide

  19. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    19/xx

    View full-size slide

  20. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    20/xx

    View full-size slide

  21. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    21/xx

    View full-size slide

  22. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    22/xx
    チュートリアル内容まとめ

    View full-size slide

  23. 使用するデータのAASM形式への変更
    • 今回使用するのはMNEのデータ
    • MNEの分類はR&Kという方式→今回のAASMの分類に変更
    ここは見ない
    1つにする

    View full-size slide

  24. 使用するデータ構造とセンサデータ
    このセンサのモニタデータがカギ

    View full-size slide

  25. センサデータの加工
    1つのデータにセンサデータは
    100Hz約22時間の7,890,000行分
    1epoch=30sのためデータ結合
    (ラベルもこれに合わせて紐づけ処理)

    View full-size slide

  26. アノテーションと波形データは時間で紐づけ
    • アノテーションは元から1epoch(30s)毎に割り振り
    • 波形データも1epoch(30s)区切りに変更
    ⇒経過時間とアノテーションの間隔時間から睡眠段階を紐づけ
    (MNEにメソッドあり)

    View full-size slide

  27. チュートリアルでは脳波データに着目
    • 処理を簡単にするためにという理由らしい
    ✓ Epochとラベル
    ✓ Epochと脳波

    View full-size slide

  28. 脳波の周波数に着目
    • デルタ:0.5~4.5Hz
    • シータ:4.5~8.5Hz
    • アルファ:8.5~11.5Hz
    • シグマ:11.5~15.5Hz
    • ベータ:15.5~30Hz
    • これらを特徴量としてラベルとの関連を学習させる
    • ここではランダムフォレストを使用

    View full-size slide

  29. 改善のヒントとして
    • 他のセンサデータも使ってみよう
    • 前後の時間のデータを使ってみよう
    • 特徴量を自動生成するライブラリを作ってみよう
    • Sleep-EDF Benchmark (Sleep Stage Detection) | Papers
    With Code ここを参考にしてみよう
    • 深層学習してみよう
    みたいな話でした

    View full-size slide

  30. Platform Technology Division Copyright 2020 Sony Semiconductor Solutions Corporation
    DATE
    30/xx

    View full-size slide