■イベント :Sansan x atmaCup #12 振り返り会 https://atma.connpass.com/event/229180/
■登壇概要 タイトル:1st Place Solution 発表者: Kurose (@enu_kuro) さん
▼Sansan R&D Twitter https://twitter.com/SansanRandD
Kurose (@enu_kuro)1st Place SolutionSansan × atmaCup #12 振り返り会
View Slide
PROFILEKurose (@enu_kuro)Software Engineer (仕事はiOS, Web Frontendメイン)機械学習歴は1年半ちょっと(主にCourseraとKaggleで勉強)2020/1~2020/10 ほぼ無職だったのでフルタイムで取り組んでいたAndrew Ng先⽣の⼈気講座で基礎を⾝に付けKaggleに挑戦⾃⼰紹介
atmaCup Kaggleコンペ参加歴
中盤からの参加ということもあり、順位は意識せず淡々と取り組んでいたら優勝していた10/23 8:30 ~ 10/24 18:0010/22 21:34 初サブミットTotal 10 Submissionsスコアで振り返るSansan × atmaCup #12
コンペの進め⽅情報収集モデル選択特徴量選択モデルアーキテクチャ & ハイパラ調整エラー分析前処理・後処理
Sansan × atmaCup #12 開幕!Competitionの説明とDiscussionを読んで概要を把握しておく(まとまった時間が取れなかったので)公式のチュートリアル"[講座#1] データを眺めて submission する"をcolab上で動かしてみる10/15 ~10/20情報収集
注⽬したポイント- CV, LBの⽬安 (colum2131さんのdiscussion"CV vs LB"参照)LB:0.8超えたら結構強い LBとCVに0.1くらい開きがある- TestにしかないClassが存在する評価指標がクラスごとのF1 Score平均なのでスコアへの影響が⼤きい- 画像データから抽出されたデータによるテーブルデータ画像としてデータを扱うこともできる?最後まで本気で取り組むことを決めて⽬標設定- 運営ベースライン(0.8147)を超える- Discussionにコメントするなんの強制⼒もなくゆるい⽬標だが、あると踏ん張りどころで背中を⼀押ししてくれることも✓✓
LightGBMよく分からないんです...できればDeepでポンしたいrishigamiさんの"レイアウトに関する深層学習⼿法とGNNチュートリアル"を読んでGNNでも戦えそうな気がしたのでこれベースで勝負することに今回のデータは矩形をNodeとみなし、それぞれの中⼼点を結ぶ線を引くことでグラフ構造化することができる10/20モデル選択
Node特徴量- x_center- y_center- box_width- box_height0~1に正規化を⾏った中⼼座標と縦横幅正規化前の縦横⽐や⾯積等いくつか特徴量追加試したが精度あまり変わらなかったので採⽤せずNNは賢いので余計なことしなくても⼤丈夫なはず... Trust NNEdge特徴量- x_diff (Nodeのx_centerの差)- y_diff (Nodeのy_centerの差)rishigamiさんのチュートリアルの特徴量をそのまま使⽤特徴量選択
モデルアーキテクチャ & ハイパラ調整丸1⽇モデルのチューニングに費やすここで初サブ LB:0.7909まで到達10/22PNAConv Layer * 4+Fully Connected Layer⼤きめのDropout(0.8)⼤きめのLearning Rate(5e-3)StepLR20epochで5e-3*0.1
Class9(TestにしかないClass)への対応開始何が分かった?class9は上下のスペースに配置されている(かも)TrainデータではClass9を対象としたエラー分析ができないので、精度が同等の複数モデルでテストデータの推論結果を⽐較結果が異なるデータを⾒ていくことに上下のスペースにclass9の仮データを追加してみる?10/23こんな感じで気になったことをメモしていくエラー分析
最後にパラメータ変えた4モデルのアンサンブルをサブミットして終わりスコア⼤幅アップを確認仮説が当たっていた!この時点で2位に⼤差をつけて1位にClass9追加処理を雑に実装して...(後処理はなにもせず)LB 0.8819深夜のサブミッション10/24 00:24 真昼のサブミッション10/24 11:51前処理・後処理実装・パラメータを調整して
- テーブルデータなのでLightGBMがメイン今回はLightGBM勢が特徴量作り等を楽しみ過ぎたおかげでスコア的にはNN勢有利に働いたTransformer, GNNの⽅がスコア出しやすかった- コンペ慣れしてきた進め⽅、重要なポイントの把握、NNのお気持ち理解etc短期間で成果が出せたLightGBM Transformer GNN CNN1位 ✓2位 ✓3位 ✓4位 ✓5位 ✓ ✓6位 ✓7位 ✓8位 ✓9位 ✓ ✓ ✓10位 ✓最終順位はNN系が上位を占める勝 因
1週間くらいの短期決戦だとほとんどの⼈にとっては狙って上位に⼊れるものでもないと思うので楽しむことを優先に考えて結果は運任せというスタンスで良いと思いますatmaCupはお祭り Kaggleは修⾏感 想ちなみにKaggleのような⻑期決戦は修⾏(苦⾏)だと思って取り組んでいますつらい... 憂鬱...
ありがとうございました!Kurose (@enu_kuro)