Save 37% off PRO during our Black Friday Sale! »

SETIまとめ

E6311847f4fe11546a24eec9e7a403a5?s=47 start
October 14, 2021

 SETIまとめ

E6311847f4fe11546a24eec9e7a403a5?s=128

start

October 14, 2021
Tweet

Transcript

  1. 宇宙人コンペ👽 開催期間 2021/5/10 - 2021/8/18 by start (kaggle:@startjapan / twitter:@startjapanml)

  2. 【コンペ概要】

  3. 【コンペ概要】 ・天体観測データに埋め込まれた擬似的なシグナルを見つける画像コンペ

  4. 【コンペ概要】 ・天体観測データに埋め込まれた擬似的なシグナルを見つける画像コンペ

  5. 【データについて】

  6. 【データについて】 ・データ1件の次元 = (6, 273, 256) ・train : 60000件 /

    test : 39995件 ・targetが含まれうるのはチャネル 0,2,4のみ (1,3,5はコントロール) ・よって0,2,4だけ抽出してモデルを組むケースが多かった ・データ総量は156GB(※) ・test画像も見られる ※リークが見つかって100%の正答率が出せるようになったため 一度restartされたコンペであった.restart前のデータにも アクセスできたためこんなデータ量になった.
  7. 【出力と評価指標】

  8. 【出力と評価指標】 ・出力は各画像(dims=(6, 273, 256))においてtargetを含む確率 (回帰問題) ・評価指標はROC curve ・Leader boardはこんな感じ ・1位...

  9. 【コンペの主題】

  10. 【コンペの主題】 ・CVとPublic LBのgapが異常に大きいこと (だいたいROC1割くらい) ・著しい domain shift と test dataのみに登場する第3のクラスが原因だった

    Adversarial validation improves cv-lb gap Looks like Watercooled team closed the CV/LB GAP
  11. 【上位者の解法】

  12. 【上位者の解法】 ・1st Place Solution (0.96782) ・2nd Place Solution (0.81206, solo)

    ・3rd place solution (Triplet Attention) (0.80475, solo) ・4th Place Solution. Steven Signal (0.80428) ・5th place solution (0.80171) ・6th place solution (0.80072, solo) ・8th place solution (0.79945, solo) ・9th place overview (0.79929) ・10th Place solution (0.79809) ※()内はPrivate LB スコア
  13. 【1位】

  14. 【1位】 ・各train foldにおいてold leaky dataも使用 ・同じCVスコアでもLBが異なるモデルがあることに注目 → 差分の画像を可視化してみたところtestデータのみでS字シグナルを発見 ・signal generator

    を使用してtrainデータにS字シグナルを追加 (magic #1) (CVが一定になる範囲内でLBを最大化するように) ・ただし,その後もCV-LB gapは埋まりきらず...
  15. 【1位】 ・domain shiftに対応するため,さらに以下の magic #2を行った (自信ありません.間違ってたら教えて下さい ...) 1. 各列(画像の高さ)ごとに正規化(=平均を0に) 2.

    各画像の第1列のベクトル差をとり,0に近くなるものは同じ背景を有すると評価 (クラスターを作成) 3. クラスター内で列正規化後の画像の差分をとるとシグナルだけがいい感じに抽出される (細かいところは違うかもしれないが ) 要するに肝となる発想は以下の通りだと思われる ... A. 主催者はチャンネル単位(shape=(273, 256))で正規化を行っている B. よって単純に画像の差をとってもシグナルのみを上手く抽出することができない. C. 列ごとに正規化を施すことで画像間の差をとれば backgroundのノイズが消えるように仕向けることが可能 magic #1より magic #2のほうがboostにつながってるんじゃない?と多くの参加者が評価していた ... (magic #1に気づいているteamはあったが magic #2は他に誰も気づかなかった模様 ) 上記が正しいとすると,同じ背景を有する画像が複数存在するというのに気づけているかも大事だったはず
  16. 【1位】

  17. 【1位】 ・その他Tipsは以下の通り 1. 訓練には使えるデータ全てを使用 (old leaky dataも使う.全データにおいて洗浄前のも後のも使う) 2. backboneにおいて最初のCNN層のstrideを(1,2)にするとより解像度の高い画像 で処理が可能らしい

    (ALASKA2 Steganalysisでも同じ戦略を使った)
  18. 【2位】

  19. 【2位】 ・2 stage training ・1st stageではaugmentationとしてvflip、cutout、mixupのみを使用 (予期せぬaugmentationで信号が消失するのを防ぐ) ・StochasticDepthとDropoutを使用してover trainingを防止 ・mix

    upではα blendingの代わりに論理ORを使用し,弱いシグナルにも強く対応するこ とが可能に (これは1位もそうだった) ・論理OR : label = labelA + labelB - (labelA * labelB) (soft targetにも対応可) ・lossがNaNになるときは最初にheadとencoder BNsだけ学習させると良いそう
  20. 【2位】 ・2 stage training ・2nd stageでは1st stageのモデルを使って得られたpsudo labelingにて1st stage modelのパラメータを微調整

    ・NoisyStudentを採用し,Stochastic DepthとDropoutをさらに強力にしてpsudo label へのoverfitを防いだ.
  21. 【3位】

  22. 【3位】 ・psudo labeling ・convolutional triplet attention module ・SwishをReLUに置き換えると学習スピード速まる(387s → 347s/

    epoch) ・GeM pooling (1位も使ってたはず) ・Focal Loss (gamma=0.5) ・Mix up (やはり論理OR)
  23. 【4位】

  24. 【4位】 ・Mixed Sample Data Augmentation (MixUp, CutMix) ・Focal Loss (gamma=2,

    alpha=0.7) ・EMA ・周波数軸方向にcubic interpolation (画像サイズを大きく) ・6 channels全て使用するが,channel 0,2,4以外にはmaskを使用 ※時間があれば調べたい : DDP, AMP
  25. 【5位】

  26. 【5位】 ・SHOT (Source HypOthesis Transfer, domain adaptationの手法らしい)

  27. 【5位】 ・本コンペでは上手くいかなかったもののいつか使えそうなもの DANN (domain adaptationに) / Audio Spectrogram Transformer Unsupervised

    Data Augmentation for Consistency Training (半教師あり学習) ROC_star (ROCを最適化する損失関数)
  28. 【6位】

  29. 【6位】 ・各画像において次元を1つ増やし,on_channel=1, off_channel=0の平面を追加 (mask的なものに近い) ・信号がchannelのon/offで途切れるかそうでないところで途切れるかがtarget=0 or 1の 判定をする上で重要だと思ったから

  30. 【8位】

  31. 【8位】 ・入力サイズにはかなり敏感なコンペだった.INTER_NEAREST interpolationを使用し たup sizeとINTER_AREAを使用したdown size でトータルでみるとscale up. (OpenCVを使用) ・学習に使用したデータ:channelごとに正規化されたnew

    train data, old train&test data, ソフトラベル付けされたnew test data.古いデータを使用することでCVが 0.02-0.03程度上昇.
  32. 【9位】

  33. 【9位】 ・アンサンブルメイン ・様々な軸での正規化が上手くいった ・S波の存在に気づき,シグナルの合成や既存のシグナルのS字化augmentationを行っ た (Custom sine augmentation) ・1位と同じく背景がいくつかのクラスターに分けられるということに気づいた (AEを使って得られたembeddingを使用して分析)

  34. 【10位】

  35. 【10位】 worked big models / mixup / bid resolution /

    psudo label / TTA / oof stacking not worked channelをシャッフルするaugmentation / LSTM
  36. Thank you!!