コンペの概要(参考HP)
共通部分
- ほぼ全てのsolutionが2stage予測(image model の予測値を tabuler modelの特徴量に使用)
- image model: 各画像をinputとした NNのモデル
- tabuler model: lightGBM, XGBoost, Catboost を使用
- image model
- 過去データの使用: solutionによってまちまち
- 不均衡データの対処: upsampling、downsampling
- augmentation: isic2020のsolution のものを使用している人が多い
- backbone: swinv2, swin, convnextv2, convnext, vit, efficientnetなど
- tabluer model
- 公開notebookを元に色々な特徴量を追加してスコアを伸ばしている
- 数値の特徴量を複数のカテゴリ変数でグループ化した特徴量を追加
(patient_id, tbp_lv_location, tbp_lv_location_simpleなど)
- CV: Triple Stratified KFoldを使用
1st place solution
- image model
- CVをseedを変えて10回繰り返し、t検定によって優位差があるかどうか調べた
- validationに時間がかかるので、5epochごとにvalidation→4epochごと→…とvalidationの回数を減らした
- tabuler model
- 各patientに対して、catboostで重要度の高いパラメータに対して、lesionに関わるパラメータが外れ値かどうかを表す特徴量を追加
- ensemble: rank ensembleで実施
- image modelの予測値は標準化して使用
- overfitしないようにimage modelの予測値に標準偏差が0.1のノイズを追加している
- 患者ごとの予測値の平均で、その患者の各レコードの予測値を割った値を特徴量に追加
- 外部データ活用: Stable Diffusionをつかって合成データを作成して学習に追加
2nd place solution
- tabuler model
- Tabular Ugly Ducklings technique で特徴量を追加
- 異なる数のimage featuersを追加することでそれぞれの予測モデルにバリエーションを持た瀬ている
- image model
- meta featuresを予測してauxiliary lossを追加
- iddxをtf-idfによってベクトル化して、その後k-meansによってクラスタリング。
そのclusterの中心との距離をlossにした - tabular dataを使って、self-supervised pre-trainingを行いその後 finetuning
- backboneとheadそれぞれでlearning rateを調整
- backbone 1e-5 ~ 8e-6
- head: 1e-3 for the head
3rd Place Solution
- image model
- positiveを2パターンで定義して予測
- target = 1
- target=1, iddx_1=Indeterminate, iddx_2!=nan
- positiveを2パターンで定義して予測
4th place solution
- image model
- 5class labelとして予測(MEL, BCC, SCC, NV)
- softmaxではなくsigmoidを適用
- ema checkpointを使用
- tabular pipeline
- image pipeline(モデル10個)からimage fearturesを追加
5th place solution
- image model
- 過去データ有無やdown sampleの条件を変えて複数のモデルを作成
- 推論時間を節約するため、全てのデータを使って学習したmodelもあり
- あるモデルではhead とbackboneを分けて設定
- lr_head : 2e-4
- lr_backbone : 2e-5
- tabuler model
- 過去のメタデータ有り無しで複数のモデルを作成
- Soft Labels: indeterminate malignant のレコードをtarget=1、sample_weight=0.5とした
- Ensemble
- Weighted average(optunaで重みが均等になるように最適化???)
6th place solution
- image model
- フレームワークは first-place winner in 2020とほぼ同じ
- iddx_3を元に9class calassificationとして学習
- EfficientNetB3+shape192 は推論時間がかかるのでLGBのpredicted probabilitiesが高い70,000サンプルだけ予測に使用した
- tabuler model
- Only Tabular Dataをそのまま利用
7th place solution
- image model
- targetとlesion_idを予測する
- positive sampleには全てlesion_idが割り当てられていたため
- weighted sampler を使用
- targetとlesion_idを予測する
- tabuler model
- (特記事項なし)
- CV: 病院ごとにCVを分けた(private testで新しい病院が登場するため)。
結果LBとCV間で高い相関が得られたとのこと - ensemble: CVを信頼していたため、table dataとCNNはweighted ensembleにした。
8th place solution
- image model
- WeightedRandomSamplerを使用
- バッチサイズの影響が大きかったとのこと。EfficientNet-B1では64 MaxViT-Tでは32に調整
- ensemble
- CmaEsSamplerでアンサンブルを最適化
9th place solution
- image model
- use 5% of negative imageを利用し upsampleも実施。trainは3epochのみ
- Resizeをaugmentationの最後に持ってきたところスコアが改善した
- tabuler model
- 特徴量を追加したら5つの異なるseedでCVを確認してから、CVが上がっていたらLBを確認していた
- ensemblie
10th place solution
- image model
- negative sampleを20個のデータに分割し、それぞれのepochごとにデータセットを入れ替えて利用
- tabuler model
- negative sampleを10個のデータセットに分けて、それぞれでモデルを作成?
- 5fold× 3split seedsでmodel作成
- missing attributionをtraining dataに追加
- patientにフィッティングするのを避けるために、各patientの負例は50件までとした
11th place solution
- image model
- BCELoss(Binary: benign or malignant) + CrossEntropyLoss(Multiclass: benign, melanoma, SCC and BCC)
- Tabular Model
- 公開notebookとほぼ同じ
12th place solution
- Image model
- backboneを変えて複数作成
- tabuler model
- GLCM(Gray Level Co-occurrence Matrix)を使った特徴量を追加
- KNN Feature(K=5)を使って、patientごとの数値特徴量の平均値を算出
- Image modelのfeatureにgaussian noiseを足す(overfitしないように)
- Add Quartiles for numeric columnsを追加
以上
関連書籍
リンク
リンク
リンク