amagaeru blog

Sansan DSOC 分析コンペ勉強会参加メモ

connpas リンク

https://sansan.connpass.com/event/202716/

発表

脱! Deepでポン🎶 ハイパラチューニング芸人を卒業するために

Hidehisa Araiさん @kaggle_araisan

speakerdeck.com

  • 対象視聴者(初級〜)
    • 誰もが思いつくことを越えるためには?
    • 解法の背景(なぜやったのか)を掴むためには?
  • 面白くなるステップ
    • 課題の難しいところ理解する
      • train/testの分布の違い(データのノイズ量、クラスの比率)
      • testにはtrainになかったラベルがある
      • CV/LBが相関しない
    • 課題を小さな課題に分解する
      • 対策可能になるまで小さくする
    • 小さな課題を置換する
  • まとめ
    • 出てきた課題を潰していく->いつの間にか他の人がやっていないことに至る
    • 個々の課題を潰した人が上位にいく

質問

  • 英語が苦手な場合の取り組み方
  • 抽出された課題の管理
    • Trelloを活用
    • タグをつける(Todo、doing、worked、not worked、pending)
  • やることが見つからなかった場合
    • 今回の話がそれに当たるはず
    • (もっとやっていた場合)コンペをやる中で得た知識の元に改めて課題を見直す
  • 既存の分野をそもそも知らない場合

memo

  • Zenhubでコンペチケット管理していたけど、「解像度が良くない」話は参考になった
  • not workedをIceBoxに入れてしまっていたので、後から見てやったかどうかわからなくなったのを思い出した

その他参考

qiita.com

atmaCup#6 を開催したときの体制や流れについて

黒木裕鷹さん @kur0cky / Sansan株式会社 DSOC 研究員

speakerdeck.com

前提の話
実務よりの裏側
  • 携わった部署
    • R&Dと人事部が表だってatmaとコミュニケーション
    • 法務部(情報公開のチェックや契約関連)
    • 広報
  • 企画からふりかえり
    • 企画から当日まで半年近い期間かかってる
    • 企画
      • サマーインターンの見通しが不明瞭
      • オンラインイベントでもコンペ開催したい(オフは経験あり)
    • 選定の基準
      • 媒体の選択(参加人数、費用、秘密保持契約が結べるか、などなど)
      • 強いDS人材。広く技術者がターゲット -> SNSでも盛り上がれる!
    • タスク選定
      • R&D数名から複数案だし(問題が出せないことをまず避ける)
      • Sansanらしいデータを使いたい(名刺)
      • 仮タスク設計で実際に解いてみる
      • 企業が特定されないようにマスクの工夫
      • データ正規化(human computationのエキスパートが活躍)
    • atmaさんとのやりとり
      • atam、sansanでお互いにタスクを解いてみてleak確認
    • 周知・集客
      • connpas
      • 抽選(強い人が漏れても、広く参加者を取った)
    • コンペ期間中
      • Twitter実況で盛り上げ
      • 複数賞用意
    • ふりかえり
      • KPT実地
      • P:データのハンドリングが難しかったかも?
      • T:データ量調整で短期間化が望めるかも?

質問

  • シェイクやleakを回避するために意識したこと
    • 過去にあったleak事例を調査
    • データが生まれる背景を考えて漏れを調べた
    • 自分が実際に解いてみたり、強い人に解いてもらう
  • 今後のコンペ開催はあるか
    • 黒木さんは開催したい!
  • コンペが採用に繋がったか
    • 実際に繋がった例がある
  • コンペ参加者数と強く相関するのは賞金
    • kaggleは強い傾向がある
    • 各媒体の参加人数は大きくブレないかも
  • コンペ開催で大変だったこと
    • このタスクが行けるかどうか
    • 情報ごとに出して良いかの判断
  • よかったこと
    • コンペとして成立していること(leakなさそう)
    • 盛り上がっている様は嬉しい

memo

  • 開催側が楽しんでいる様子がビシビシ伝わってくる
  • leak問題はどこのコンペサイトでも問題になっているので開催側複数でコンペ設定失敗事例を共有する会面白そう

その他参考

Colaboratoryで分析コンペをする時のテクニック集

カレーちゃんさん @currypurin

speakerdeck.com

  • colabの概要
  • テクニック
    • colabかkaggle notebookかを判定可能(同じコードで動かせる)
    • notebook名を取得できる
    • 学習速度比較(content直下の方がやや速いがセッション切断時にリセット)
    • content直下にデータを置くのにkaggle apiを使おう
    • githubでcolab管理できる

質問

  • コンペでの計算機資源配分
    • colab 5: その他(GCP/AWS): 5
  • RAM不足回避するには
    • バッチサイズを下げる
  • colab proと同じスペックのGCPならどっち使うか
    • V100使ってたら1weekで5万くらいいった
    • colab proの方がお得

memo

  • githubと連携してコード履歴残すの良さそう
  • colab proが待ち遠しい

その他参考

recruit.gmo.jp


Noisy label 対抗記 ~Cassava Leaf Disease Classification~

齋藤慎一朗さん @sinchir0 / Sansan株式会社 DSOC 研究員

speakerdeck.com

  • コンペ概要
    • cassavaの画像から病気判別
    • 評価指標は Accuracy
    • 重要ポイント
      • 画像のラベリングミスが多い(Noisy label)
      • PublicLBの評価もNoisy
      • LB上でスコアに大きな差がなかった
  • なぜ取り組んだか
    • 画像に取り組みたい
    • testもNoisy対策できれば良いのでは?
  • どう対抗するか
    • 学習データにfitさせすぎない
      • 多くのモデルでアンサンブル
      • noisyを考慮できるlossを使う
      • noisy labelのデータを処理する
    • testもnoisyなデータに対抗
      • cleanlabの考え方を応用
      • 誤り分布を利用
  • 反省点
    • discussionやnotebookを追うのに時間を使ってしまった
    • CVの計算など一部適当になった

質問

  • ノイズの乗り方はtrain/testで同じと仮定するか
    • Yes
  • シェイクするモデルとシェイクしないモデルはどういう違いがあるか
    • アンサンブルをたくさんしていると生き残りやすい?
    • testにしか存在しないラベルを考慮できたか
  • noisyラベルの先行研究でもtestのノイズがあるとしていたか
    • trainがノイジーでtestがクリーンが多い(というかそれ以外みたことない)

memo

  • 「testもnoisy」は良くわからない..
  • CV計算が適当になった、は身につまされる話

その他参考

github.com

ai.googleblog.com

atmaCupなど短期間コンペのススメと戦い方について

paoさん @pppaaaooo

speakerdeck.com

・kaggleのコンペ期間は2~3ヶ月が大半。長くない?

  • コンペの長さによる比較
    • 長い
      • 新しいことに時間をかけられる/失敗をカバー可能
      • 外れた時のダメージ
    • 短い
      • 効率的に学びを得られる/限られた時間で精度向上を学べる
      • 新しいチャレンジの難易度が高い
    • おすすめは両方に参加
  • 精度の分解
    • 基本的手法やデータ・タスクに応じたアイデアの積み重ねで成立
    • 精度の最終到達点は期間によって違う
    • 長期間コンペは全部のアイデアを組み込まないと勝てない
    • 短期間コンペは重要なアイデアを押さえておけば勝ちに近づく
  • 限られた時間で何をすべきか
    • 思いつくアイデアからやることを効果的に絞る
    • 効果 x 実装時間 x 成功確率で決める
  • どこで実力に差が出るか
    • どんな技が使えるか(経験やinput量、サーベイEDAで技を増やせる)
    • どの技を選ぶか(時間が短いほど有効、相性大事)
    • 技の消費MP(実装時間を減らす、スニペットやパイプラインにしておく)
    • 命中確率や効果をいかに正しく見積もるか(仮説根拠、使用経験、Feature Importance、Discussionなどなど)

質問

  • 成功した際の効果の推定は当たるか
    • 比較的当たる
    • データの質やタスクを分解することで当たりやすくなる
  • 効果が高そうな技(手法)を覚える方法
    • 一個ずつやっていくしかない
    • コンペ参加はおすすめ
    • 解法だけだと身に付きづらい

memo

  • 思いついたものを思いついた順にやっていた(脳死でした) -> zenhubのestimate使えるか?
  • 技マシン欲しい
  • 技マシン欲しい

所感

  • 分析コンペの取り組み方の話が多く、参考になった。
  • しかも、短期間コンペのatmaCupが今週末(3/5)から始まるのですぐに試せるのでは!?
  • そもそもsolafuneとprobspace放置しているのどうにかしろ