RANZCR上位解法まとめ(随時更新)

RANZCRコンペ 上位解法まとめ

60th place

  • nakamaさんnotebookから始めて、lr,batch size,augmentations,optimizer(AdamPがAdamより良かった)
  • その後、画像サイズをあげていったところスコアも上がった
  • 3stageの学習の効果は議論になっていたが、学習時間節約のため3stageの方針を続けた
    • stage2の重みを利用してstage3で使うことで事前学習のような形になるため時間を節約できる
  • Forward Selection
    • 0から初めてどんどんモデルを追加していくアンサンブルのやり方
  • finetuningの最後の数エポックでADを行わないことでスコアが上昇した

71th place / 解説Notebook

f:id:deep21:20210319123925p:plain
引用元:https://www.kaggle.com/c/ranzcr-clip-catheter-line-classification/discussion/226664

  • ポイント
    • gradient accumulationを使って程よいbatchサイズで大きな画像を学習
    • augmentationに気を使った.強いrotationやcropは効果を下げた
    • power mean を使いAUCを最大にするようアンサンブルした
  • スタッキングとパワー・ミーニングを組み合わせることで、ローカルCVである0.9660に到達した
  • githubの構造も参考になりそう(url)
  • StratifiedGroupKFold
  • power meaningとは
    • np.mean(np.power(preds, p) * w, axis = 1) ** (1/p)
    • pはチューニングするパラメータ、wはモデルの重み
    • 使い方はnotebook参照

モデル管理の参考メモ zenn.dev

76th place

概要

  • わずかに異なる前処理をした3つのresnet200dモデルのアンサンブル
  • 3つのうち2つはChestXの事前学習モデル、1つはImageNetの事前学習モデル
  • 前処理については以下2つが効果が大きかった

    • 強いdropout
      • それぞれパラメータは変えた
    • Motion Blur(ランダムなカーネルサイズでぼかす)
      • Motion Blurはレントゲンのぼやけをマネできる
  • StratifiedGroupKFold

  • 推論の際、学習に利用したよりも大きいサイズの画像を利用した

140th place

概要

f:id:deep21:20210319110920p:plain
引用元:https://www.kaggle.com/c/ranzcr-clip-catheter-line-classification/discussion/226559

  • StratifiedGroupKFolds(k=5)
  • heavy augmentation
  • Adam + OneCycleR?
  • TTA(Horizontal Flip)
  • weight average
  • stacking of 4 models
  • efficientnetはたぶんこれ
  • to imageの処理について質問

606th place

  • 多様な個々の平凡モデル
  • stratified group-5-fold CV
  • ensembling based on CV

  • single channelのモデルを自作したが良い結果は得られなかった

  • グレースケールのモデルが医療画像に有用なことは明らかでそれを裏付ける論文もあるのにImageNetの事前学習モデルがないことを嘆いている
  • 分類器のheadは小さいモデルには2,3層の複雑なheadが効果があった(最小の2,3epochは他の層をfreezeさせる必要あり)
  • 大きいモデルではバッチを大きくできずBatchNormalization層で問題があったためheadは有効ではないように思えた?