はじめに
こんにちは!楽しいkaggleライフをお過ごしでしょうか?
軽く自己紹介を。米国の大学で学部の4回生、計算生命科学と応用数学を専攻しています。kaggle歴は大学3年→4年になる夏休みから始めて、現在1年半程度になります。大学院では生物よりも医療寄りの分野での機械学習について勉強していきたいな~と考えています。
この記事は10月にモロッコで開かれた医用画像処理の国際学会であるMICCAI(Medical Image Computing & Computer Assisted Intervention)において開かれた大会に出場しての所感をそこはかとなくかきつくるものです!
この記事は以下の方々を主にターゲットとして書いています。
・学生kaggler
・学会コンペに興味のある方
背景
6月ごろに、手術支援システムを手掛けるスタートアップのJmees社から、以下のようなインターン募集がありました。
https://www.wantedly.com/projects/1719571
要約すると
・画像認識コンペに興味がある学生インターンの募集
・医用画像処理の学会であるMICCAI Challengeへ出場するよ
という感じです。
当時kaggleライフを満喫していた僕としては、学会コンペもおもしろそうだな~、インターンもやってみたいなぁ~という浅はかな理由で応募を決断しました。当初は学会コンペに出るだけでお給料が出るなんて夢のような話あるわけ…と金銭面であまり期待はしていなかったのですが、ちゃんと作業時間にお給料が出るので想定外の収入になってました。来年もおそらく募集があると思われるので、特に学生kagglerの皆さまにはおススメの案件です。
学会コンペってなんだ
名前の通り、学会でのワークショップ等の中の1イベントとして行われる機械学習コンペ、といった所でしょうか。これらの結果は主催がサマリーペーパーとして論文にし、上位解法者は共著に名前を連ねることもあります。
データマイニングの国際学会であるKDDのKDD Cup、推薦システムのRecSys Challengeあたりはレベルが高くて有名で、日本人参加者も多い印象があります。
実際kaggle界隈で使われる文脈ではkaggleのプラットフォーム上で行われてるものを除いた機械学習コンペを指しているような気もする…?
MICCAI Challenge
私たちが出場したのはMICCAI Challengeのうち、内視鏡の手術動画を主に扱うEndoScopic Vision (EndoVis) challenge cluster内のタスクです。EndoVisは毎年開催されており、そのデータセットもベンチマークとして広く使われています。他のchallengeでは頭部MRIを用いたBraTS (Brain Tumor Segmentation)も同様の理由で有名です。今年度はKaggleで行われていた ISIC 2024 - Skin Cancer Detection with 3D-TBP もMICCAI Challengeのうちの1枠でした。ISICは今回のMICCAI Challengesの中でも圧倒的な参加人数を誇っていました。Kaggle強い。
参加したチャレンジと所感
自分が主に担当したのは以下の3つのchallengeです。自チームの解法解説は本記事の目的とは外れるワリに長くなりそうので割愛させていただきます。
1. Semantic Segmentation for Tools and Fold Edges in Colonoscopy data (SegCol)
【概要】
内視鏡検査のデータセットであるEndomapperから、特に大腸の内視鏡動画をピックアップし、用いられる3種の器具と大腸のひだ(colon fold)に対してアノテーションを行い、タスクが与えられました。
Task1は器具3種とひだに対してのシンプルなセグメンテーションです。
Task2はActive Learning(能動学習)です。主催が用意したtask1のための学習済みモデルに対して、ラベルが未付与のフレームが5000枚与えられ、追加の学習に用いる400枚を選択する何らかのモデル・アルゴリズムを提出し、学習後のパフォーマンスの向上を競いました。
【所感】
能動学習でコンペやるのおもしろい。kaggleという競技性に重きを置いたプラットフォームでは、トレーニングにおける再現性の確保やリーク管理などを原因に開催が難しそうで、学会コンペならではの題材なのではないか?と思いました。
foldの太さが1pxで与えられたため、Average Precisionの評価指標が非常に厄介でした、というかこれは公開Discussionで評価指標の変更を提案してもよかったかなとかなり反省しています。提出まで漕ぎ着けたのが2チームしかいなかったのも悲しいコンペでした。
2. Open Suturing Skills Challenge (OSS)
【概要】
生徒が縫合手術のデモを行っている動画が真上から撮影されており、OSATS (Objective Structured Assessment of technical skill)という複数の評価観点からなる評価指標を基に採点を行い、3名の採点者による評価と合致したかを競いました。
Task1ではOSATSの合計値から各生徒のスキルをnovice, intermediate, proficient, expertの4段階で評価し、F1値を競いました。
Task2ではOSATSの各観点において行われる5段階評価についてF1値を競いました。
【所感】
このタスク難しそうだな~うまくいくのかな~とは思っていたのですが、やはり難易度が非常に高かった。(そして絶望の3週間延長。)これは他のChallengeでも同様の問題があり当日のCluster全体の振り返りで議題に上がっていたのですが、こういうリーダーボードのないコンペでまともなCVが出ないと提出する気になれない…この辺りも最終的に全体のスコアが伸びないボトルネックになっていたりしそうだという意見が上がっていました。
擁護すると、主催側視点ではこのようなうまく行くか分からないテーマについて学会コンペで試せるのは、コストを大幅に抑えられるという点で選択肢にあるとリスクとのトレードで便利だろうなという気もします。この点では本来あり得て然るべき結果が出てきただけとも言える。"実験"に参加していた感覚が強く得られたので、悪くない経験でした。
3. Surgical Tissue Tracking Using the STIR (Surgical Tattoos in Infrared) Dataset (STIR)
【概要】
手術動画において最初のフレームで指定したポイントを追い続け、最終フレームでのズレの小ささを競う、オンラインのマルチポイントトラッキングを行うチャレンジでした。
Task1では通常の動画を、Task2においてはステレオビジョンを用いた、深度情報も込みの3Dでのポイントトラッキングを行いました。
【所感】
タスクのクオリティは上の3つの中では最も高かったと思います。2Dについては主催が用いたベースラインのMFTに誰も勝てずに終わってしまったのですが、問題の設計や評価指標の設計、運営の対応などは文句のないクオリティでした。上記とは別にモデルの推論速度に基づいた賞もあって面白かったのですが、推論速度タスクについてはONNXでの提出のみ受け付けるなど制約が強く、提出まで漕ぎ着けたチームは1チームのみでした。僕らも結局提出できず。。。
このチャレンジは逆にkaggleでコンペ開いても上手く回らなそう、特に計算リソース周り。タスクの性質上一つの推論にもかなりの時間をかける必要があるため、参加者が極端に多い上に時間制限のあるkaggleでは開催の難しそうなコンペでもありそうでした。
他に、メンターをしてくださっていた会社のAIエンジニアのお2人はPhaKIRという手術動画について包括的なタスクを扱うチャレンジに出場していました。当社全体の結果についてはこちらのプレスリリースを:https://prtimes.jp/main/html/rd/p/000000007.000109189.html
なぜKaggleでやらない?
EndoVisクラスター全体の振り返りにおいて、EndoVisの開催プラットフォームをKaggleに移さないかという提案がありましたが、主催の教授の先生がこれに消極的な姿勢をとり、その理由として、以下の2つを挙げていました。
- コスト
Kaggleでコンペを賞金付きの形態で主催するには莫大な資金を用意する必要がある。一方でコミュニティコンペにする場合にも賞金の形態に制約があるらしく、これをできるだけ避けたい。 - データセット
現在、コンペに参加する上でデータセットを受け取るには適当な申請を行う必要があるが、Kaggleにはこれがない。特にEndoVisに用いるようなデータは安易にkaggleでPublicにできるデータでもない。
1についてはもう少し詳しく調べたい、コミュニティコンペなら大丈夫では…?とも思いました。個人的には上に加えて以下の理由もかなり大きいと思います。
3. コンペ設計のクオリティ
Challengeにも因りますが、コンペによってては修士や博士の学生が運営を行っているものも多く、クオリティがお世辞にも良いと言えないものも多々ある。すごく燃えそう
4. 解法のバラエティの確保
学会コンペはあくまで研究を目的に開催されるため、当日の主催の発表では手法間の比較に対して重きが置かれていた。パフォーマンス方向へのプレッシャーの大きいkaggleにおいては、主催の意図していた解法のバラエティを確保するにはそれなりのコンペデザイン力が求められることは想像できる。
学会コンペの何がいい?
- お小遣い稼ぎ
Competition Expertの僕でも上の3つで40万円近くを稼げてしまっています。今回の例は流石に上振れだとは思いますが、狙い目のコンペに参加すれば思ったより上の順位や賞金額まで目指せるのでは。 - 実戦に近い問題設計でkaggle(機械学習コンペ)できる
Kaggleはその競技性上、上に述べたようテーマになりやすい問題とテーマになりにくい問題があります。実際にはテーマになりにくい問題の中にも学習価値のある教材はたくさんあり、業務や研究に活かすにあたって視野を大きく広げることにつながります。特に、現在の技術の立ち位置と達成できていないことのギャップを把握する上で、競技性に執着しすぎずに全体を見通せることは大きいと思いました。(もちろん、この辺りは普段のkaggleライフにおいても意識したい点ではあります。)
それから、学会コンペは参加者と主催が協力してコンペを作り上げていく要素が強いように思います。前述のとおり、タスクの設計そのものが間違っている場合もあるので、より丁寧に問題を理解することを強制されます。初心者脱却を狙う上でタスク理解の深さと応用は一つの壁だと思うので、よいトレーニングになるのではないでしょうか。 - 実績
院出願について米大学のアドバイザーにCVを見てもらったところ、意外にも一番食いつきが良かったのは学会コンペの成績と学会での解法発表でした。コンペのホストとしてもOral Sessionの開催しての解法発表は学生をターゲットにアカデミアでの実績を得るチャンスとしてデザインしている部分があると話していました。あとはサマリーペーパーの著者に入るのも大きいです。生物系では論文の著者にいることの重要度が比較的高いので、学会コンペに出た事にはかなり救われています。この辺りについては昨年のアドカレより、以下の記事がかなり本質的なので興味がある方は一読をおすすめします。
https://yutori-datascience.hatenablog.com/entry/2023/12/06/135615
おわりに
個人的には学会コンペに参加したのは大学院出願を見据える上で運よくも最適択拾えたなと思っているのですが、それ以外にも、もちろん知識的な引き出しが増えた事やより実戦に近い形で機械学習の問題を扱う経験ができたのはよかったです。学会への参加も初心者kagglerや学生には中々ない機会で、それもいい経験でした。
kaggleもシーズンによっては興味のあるコンペが生えてないな~ということがあると思います。そんな時は、開催中の学会コンペを探してみるのもいかがでしょうか。
以下宣伝です。
株式会社Jmeesではエンジニア(AI/ML、SE等)を積極採用中です。
https://www.jmees-inc.com/recruit/
カジュアル面談も実施しているそうなので、お気軽にJmees公式Twitter/XのDMへご連絡ください。