Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

分析コンペティションの光と影

スペースICT推進フォーラム 第4回検討会
~AIを用いた宇宙関連技術~

分析コンペティションの光と影
衛星画像分析コンテストを題材に

https://spif.nict.go.jp/paper/info_0115.html

  • Loggen Sie sich ein, um Kommentare anzuzeigen.

分析コンペティションの光と影

  1. 1. スペースICT推進フォーラム 第4回検討会 〜AIを⽤いた宇宙関連技術〜 データ分析コンペティションの光と影 ~衛星画像分析コンテストを題材に~ 2021.1.19 Kenʼichi Matsui AI技術開発部 データサイエンスグループ 株式会社 Mobility Technologies 株式会社ディー・エヌ・エー 背景画像 : https://pixabay.com/ja/photos/%E8%A1%9B%E6%98%9F-iss%E3%81%AE-1030779/
  2. 2. 登壇情報 本発表は、スペースICT推進フォーラム https://spif.nict.go.jp/index.html の第4回検討会 〜AIを⽤いた宇 宙関連技術〜 にてお話しさせていただきました。
  3. 3. 株式会社Mobility Technologies AI技術開発部 データサイエンスグループ グループマネージャー(Kaggle Master) (株式会社 ディー・エヌ・エーより出向) 最近の職務経歴 • ドライブデータの解析 (DRIVE CHART) • https://drive-chart.com/ • 多⽬的ダムの流⼊⽔量の予測、運⽤効率化 • https://dena.ai/work11/ 著書 • 「ソフトウェアデザイン 2020年10⽉号 【第1特集】 Pythonではじめる統計学 2-4章」著 • 「アクセンチュアのプロフェッショナルが教える データ・ アナリティクス実践講座」共著 Twitter: kenmatsu4 経歴 ⼤⼿SIer ⇒ ⼤⼿通信キャリア ⇒ 外資系コンサルティングファーム ⇒ 現職 ⾃⼰紹介 : 松井 健⼀
  4. 4. 1. データ分析コンペティションとは 2. 衛星画像分析コンテスト概要と結果 3. 適⽤テクニックの解説 4. おわりに
  5. 5. 1. データ分析コンペティションとは 2. 衛星画像分析コンテスト概要と結果 3. 適⽤テクニックの解説 4. おわりに
  6. 6. データ分析コンペティションとは 主催者より分析対象データが提供され、コンペベンダーが運営。⼈⼯知能技術の1つである機械学習 モデルを作成しその予測精度を競う。決められた期⽇に最終精度スコアに基づき、順位・⼊賞者を 決定。 主催者 (データオーナー) コンペティションベンダー (Kaggle・SIGNATE) コンペティション サーバー ! コンペ情報ページ公開 ! データ公開 ! モデル評価サーバー提供 コンペティション 参加者 予測モデル ! 結果提出/評価 ! リーダーボード(順位表)への 結果反映 ! データ提供 ! コンペ概要情報取得 ! データダウンロード ! 予測モデル構築 ! Kaggleでは、ブラウザを通じ てサーバー上でプログラムが 書けるクラウド環境も提供 トップデータサイエンティ ストに分析してほしい
  7. 7. Kaggle SIGNATE 世界最⼤のデータ分析コンペティション。600万⼈以上が登 録し、15万⼈以上のコンペティションに参加⼈数実績があ る。世界中からデータサイエンティストが集う。 ⽇本のデータ分析コンペティション。 ⽇本語で提供されており、国や⽇本企業からの出題も。 広く知られているデータ分析コンペティションには下記の2つがある。データマイニング学会 KDD が主催するKDD CUPも有名。最近は個別の企業がコンペティションを開催することも。 https://www.kaggle.com/ https://signate.jp/ データ分析コンペティションホスト
  8. 8. Kaggleで得られる称号 Grandmaster Master Expert Performance Tiers(称号) 8 https://www.kaggle.com/rankings?group=competitions Master Expert Contributor Novice 203⼈ (0.1%) 1,525⼈ (1.0%) 6,251⼈(4.1%) 57,713⼈(37.9%) 86,494⼈(56.8%) Grandmaster 上記はcompetition に参加したことのある⼈数のカウント。 アカウント総数は 6,068,937ユーザー。(2021年1⽉現在) 分析コンペでは賞⾦が出るものも多いが、多くの⼈はお⾦よりも名誉を重じている⼈が多い印象。 ⾦メダルが獲れるよう参加者は世界のデータサイエンティスト達との熾烈な争いに巻き込まれる。 バックグラウンド関係なく良い成績をあげると称賛される。 称号の⼈数⽐Competition Medals だいたい上位0.2%が⾦メダル。 ⾦メダルが取れるとMasterの称 号が獲れたようなもの。
  9. 9. 分析コンペティション戦歴 ⽇本での実績 : SIGNATE ! 産業技術総合研究所主催 衛星画像分析コンテスト 2位⼊賞 https://www.slideshare.net/matsukenbook/signate-108228406 Globalの実績 : Kaggle ! Kaggle Master. ⾦メダル1つ(チーム1)銀メダル6つ(ソロ3つ、チーム3つ) ! 2021年1⽉現在 154,204⼈中 559位 (top 0.4%)
  10. 10. https://jp.techcrunch.com/2021/01/15/dena-kaggle-grandmaster-kaggle-master/
  11. 11. コンペティションのタイムスケジュール 典型的なコンペは2〜3ヶ⽉の開催期間。最終⽇を過ぎた直後に最終順位が確定する。 実はもう少し複雑な最終順位確定の過程があるが、詳細は後述。 時間 コンペティ ション開始 コンペ終了 順位確定 この⽇が終わった瞬間 最終順位が確定︕ 最終スコア 確定 ⼊賞者 順位 ユーザ名 スコア 応募件数 投稿⽇時 1 user_001 0.834 48 2018/4/26 20:07 2 Kenmatsu4 0.812 95 2018/4/26 20:40 3 user_002 0.807 2 2018/4/23 14:37 4 user_003 0.798 84 2018/4/26 20:05 5 user_004 0.791 40 2018/4/24 22:58 6 user_005 0.791 6 2018/4/26 21:22 7 user_006 0.790 14 2018/4/25 21:03 … … … … … Private Leader Board @コンペティションサーバー リーダーボードに全参加者の 精度スコアがランキングで表⽰される ⼀般的には2〜3ヶ⽉ この期間でモデルを構築、サブミットして実験する !開催期間中、リーダーボードには予測精度スコアが 記載されランキング表⽰される。 !1⽇あたりのサブミット回数は数回に制限されている
  12. 12. 様々な題材のコンペティション 過去、様々な題材でコンペが開催されている。本⽇はその中から衛星画像分析コンテストを題材に 紹介する。 概要 参加 チーム数 データ 種類データ [Kaggle] Home Credit Default Risk [Kaggle] Elo Merchant Category Recommendation [Kaggle] Quora Insincere Questions Classification 消費者ローンの申込書と、過去の返済 履歴から申込者が返済不能に陥るかど うかを予測する。 ユーザーの購買⾏動データから、 Royalty Scoreという値を予測する。 7190 teams 4127 teams テーブル データ テーブル データ ⾃然⾔語 質問⽂が、差別的・攻撃的など不適切 な⽂章ではないかを分類。 4037 teams ⾦融機関の ローン申込み [Kaggle] TGS Salt Identification Challenge 地質調査画像からどの領域が、塩が固 まっている領域を特定する。 3229 teams 画像 セグメンテー ション 地質調査 画像 ECサイトの 購買履歴 [Kaggle] iMet Collection 2019 - FGVC6 NTのMetropolitan Museum of Art所 蔵の美術品が美術品の種類を⽰すラベ ルを予測する。 446 teams 画像 分類 美術品の 写真 Webの QAサイト 質問/回答⽂ [SIGNATE]産業技術総合研究 所 衛星画像分析コンテスト Landsat-8で撮影された衛星画像から、ゴ ルフ場が写っている画像を抽出する。 65 teams 画像衛星画像
  13. 13. 1. データ分析コンペティションとは 2. 衛星画像分析コンテスト概要と結果 3. 適⽤テクニックの解説 4. おわりに
  14. 14. 国⽴研究開発法⼈産業技術総合研究所(産総研) ⼈⼯知能研究センターの提供す る衛星画像データを使⽤し、各画像に対してゴルフ場が含まれているか否かを判別する、 画像認識アルゴリズムの作成に挑戦していただきます。 使⽤するデータはLandsat-8で撮 影された衛星画像をグリッド分割したパッチ画像 724,879枚です。 【データ概要】 エリア︓⽇本国内全域及び海外7エリア ⼤きさ︓32px × 32px × 7チャネル 分解能︓1pxあたり30m 枚 数︓学習⽤︓296,182枚 評価⽤︓428,697枚 【正例・負例の定義】 画像データの総⾯積の5%以上をゴルフ場が占める場合は、”正例” 画像データの中にゴルフ場が全く含まれていない場合は、”負例” ※中間のカバレッジ(0〜5%)の画像は使⽤していません。 URL: https://signate.jp/competitions/61 衛星画像分析コンテスト概要
  15. 15. チャネルの詳細 Landsat 8 衛星に搭載されているセンサーは、可視から短波⻑⾚外波⻑にあたる0.43〜 2.29µmの観測波⻑帯を持ち、通常は太陽光の反射成分を観測しています。 本コンペティションの提供データは、以下に⽰すバンド1〜7を利⽤しており、⼈間の⽬で⾒え る波⻑以外のバンドを含みます。例えば、⾼温からの輻射が存在すると、観測波⻑が⻑くな るにつれて輝度値が⾼くなることが分かっています。 バンド 波⻑ [µm] 1 0.43–0.45(沿岸エアロゾル) 2 0.45–0.51(可視光「⻘」) 3 0.53–0.59(可視光「緑」) 4 0.64–0.67(可視光「⾚」) 5 0.85–0.88(近⾚外) 6 1.57–1.65(短波⾚外線1) 7 2.11–2.29(短波⾚外線2) 衛星画像データセット
  16. 16. 問題設定 インプットデータ 機械学習 モデル 推論結果 今回の問題設定は 2値分類問題 今回の衛星画像分析コンテストは画像をインプットとして、そのインプットデータにゴルフ場が含ま れているか。含まれていないかを判別する機械学習モデルを構築すること。 ゴルフ場を 含んでいる ゴルフ場を 含んでいない 正解データ ゴルフ場を本当に 含んでいる ゴルフ場を本当に 含んでいない この突き合わせ結果が なるべく合う様に モデルに学習させる
  17. 17. たぶんコレが ゴルフ場 衛星画像データセット 正例のサンプル (32 x 32 x 7) 32px 32px
  18. 18. 衛星画像データセット 負例のサンプル (32 x 32 x 7) 32px 32px
  19. 19. 学習⽤データと評価⽤データ … インプット データ 正解 データ ゴルフ場 あり ゴルフ場 あり ゴルフ場 あり ゴルフ場 なし ゴルフ場 なし … 学習⽤データ(約30万件) … インプット データ 正解 データ ︖ … 評価⽤データ(約40万件) ︖ ︖ ︖ ︖ 正解がわかるので、ここ からパターンを⾒出す この”?”を埋めて、 提出する インプットと正解が対になった学習⽤データと、インプットのみの評価⽤データが与えられる。学習デー タでパターンを⾒出し、評価⽤データに適⽤して予測結果を得て、それを提出する。
  20. 20. 評価関数 精度評価は、評価関数「IoU」(Intersection of Union)を使⽤(下式参照)。 IoUはモデルの予測精度の”良さ”を表すため、⼤きい値であるほど優れている結果であると判定 できる。かつ、不均衡データに関して良い精度評価を⾏うことができる指標である。 正例 12,442 負例 283,740 True Positive False Negative False Positive True Negative ⾚枠の中の数 ⻘枠の中の数 正例 ∩ Positive 正例 ∪ Positive 訓練データにおいてデータ数は 正例 12,442 ( 4.2%) 負例 283,740 (95.8%) 合計 296,182 (100%) と、超不均衡データとなっている。 Positive Negative モデルの出⼒
  21. 21. 評価関数 ⼆値分類の評価指標にはよくAccuracyが利⽤されるが、今回の様な不均衡問題では期待する 精度指標とならない。すべてゴルフ場が含まれていないと振り分けてしまうだけでも 283,740 / 296,182 = 0.958 と何も分類できていないが、⾼精度であると判定してしまい参考にならない。 ⾚枠の中の数 ⻘枠の中の数 正例 12,442 負例 283,740 0 12,442 0 283,740 Positive Negative モデルの出⼒
  22. 22. 評価関数 ⾚枠の中の数 ⻘枠の中の数 正例 ∩ Positive 正例 ∪ Positive 本コンペで採⽤されているIoUであれば、不均衡データに対する前ページのような意味のない識別 器には精度が低く算出され、正しく精度評価できる。すべてNegativeと判定したケースは IoU = 0 になる。 正例が少ないタイプの不均衡データであれば、きちんと正例を捉えられることが実⽤上重要。 正例 12,442 負例 283,740 0 12,442 0 283,740 Positive Negative モデルの出⼒
  23. 23. 予測結果を提出すると、スコアが算出され順位が出る このスコアで順位付け
  24. 24. コンペ中にやること、考えること ! データを集計・可視化して、データセットの全貌や特徴を掴む ! データを⾒て気づきを発⾒し、より良い予測に活かせないか ! コンペで採⽤されている精度指標で何が測られているか、モデルの最適化指標に 何を選ぶか ! 過去に類似の問題がコンペで出題されていないか ! 類似の問題の対処⽅法が研究されている論⽂はないか ! どのような機械学習モデルを⽤いるか ! どのように機械学習モデルをチューニングするか ! 複数の機械学習モデルを組み合わせて精度を上げられないか ! データの前処理、後処理をどのように⾏うか ! 学習に使うデータと予測対象データの間の差異を⾒つけ、予測に活⽤できないか などなど コンペ参加時に精度を上げるために考えることは⾮常に多くあります。そこから経験し、学び、業務にも活か せることが⾮常に多くあります。 いろいろあるけどうまくいくと は限らない。 ⼀喜⼀憂しながら試⾏錯誤を繰 り返す 徹夜して実験したのに精度が悪 化したり・・・
  25. 25. Public評価データと、Private評価データ … インプット データ Public or Private Public … 評価⽤データ(約40万件) Public Private 評価データの約半分は結果の精度と順位がコンペ期間中にわかるが、最終評価に使われるデータの 結果は⾒えない。これにより汎化性能(与えられたデータに特化せず汎⽤的に使えるか)を測る。 Private Public 衛星コンペでは、Public : Private⽐は 50:50程度 まだ結果が⾒えない 開催期間中の順位表 Privateデータは計算されない これを 最終順位計算 に使う︕︕︕
  26. 26. Shake up と Shake down … Public Data … Private Data Public、Privateでデータの傾向が異なったり、 あるいはモデルがPublicのデータを丸暗記してし まったりすると、Private Dataでのスコアが⾮常に 悪化するケースも 2019年に開催されたKaggleの商品購⼊予測コ ンペでは、PublicとPrivateの違いをうまく扱え ないと最終的な順位が⼤きく下がってしまった Public 1位の⼈はPrivateで1352位に・・・ PublicとPrivateを意識しないと悲劇が起 きることも。でも実務でも重要。 ここが publicとの 順位の差を 表す
  27. 27. 私のPublicスコアの道のり この時点でだいぶ精度が 良くなったが、ここからなか なか上がらなかった ここでData Augmentationを もう1種類追加して少し上昇 たまにあるすごく低いところは 実験的なサブミット(そして失敗) 最終⽇24時に終了予定 18時時点までは1位︕ 精度が上がって良い順位となるが、停滞して いる間に他の参加者に抜かれて焦る ⇒ 必死でアイディアを考え試⾏錯誤 実験は1⽇5回までしか提出 できないので、終盤はどの実験を⾏ うかの選択が鍵となる
  28. 28. Public Score Private Score 結果 Private LB 最終順位2位でした︕ 本コンペではshake up, shake downは ほぼ起こらず、安定していました
  29. 29. 1. データ分析コンペティションとは 2. 衛星画像分析コンテスト概要と結果 3. 適⽤テクニックの解説 4. おわりに
  30. 30. モデル構築・評価・サブミットの流れ 学習ループ 作成/修正 Private LBの 精度公開/順位決定 ! DLモデルの学習 ループの作成 ! Data Augmentationな どの学習ループ適⽤ ! コンペ期間終了後、 Private LBが公開 される ! ⾃分のスコア、確定 順位を確認 モデル調査 Data Augmentation検討 データ理解データ取得 評価⽤データによる Public LBの精度評価 ! サブミットファイルをコ ンペサーバーにアップ ロード ! Public LBにて⾃分 のスコア、順位を確 認 サブミットファイル 作成 ! アンサンブルモデルが 出⼒したTestデータ に対する予測結果 を所定のフォーマット のcsvファイルで作成 アンサンブル作成 ! 複数のCNNモデル の結果をアンサンブ ル ! アンサンブル⼿法の 検討(多数決⽅式、 全員⼀致⽅式etc) バリデーションデータ での精度評価 ! あらかじめ作っておい たバリデーションデー タにて精度評価 ! コンペサイトよりデー タをダウンロード ! 所定のプロジェクト ⽤のデータフォルダに 展開 ! データ数、正例負例 のバランス、データ構 造、値の範囲の確 認 ! 可視化 ! 回転、フリップ、 Brightness、 Contrast 、 Padding/Croppi ng等の検討 ! 様々なCNNモデル を調査検討 さらなる精度向上を図る データ受領から学習、サブミットの流れを何度も繰り返し精度向上を図る。 1 2 3 4 5 6 7 8 9 10
  31. 31. 1.データ取得 コンペサイトのデータダウンロードページよりデータ⼀式をダウンロード。 衛星画像分析コンペのデータダウンロードページ がすでに閉じられていたため別コンペのページを 参考として表⽰。 学習ループ 作成/修正 Private LBの 精度公開/順位決定 モデル調査 Data Augmentation 検討 データ理解データ取得 評価⽤データによる Public LBの精度評価 サブミットファイル 作成 アンサンブル作成 バリデーションデータ での精度評価 1 2 3 4 5 6 7 8 9 10
  32. 32. 2. データ理解 Trainデータ Testデータ 正例 12,442 4.2% 2,977 0.7% 負例 283,740 95.8% 425,702 99.3% 合計 296,182 100% 428,679 100% データの内訳 超不均衡データであるため、 扱いについて対処が必要 可視化 データの構造 ! 1つの画像はtiff形式で保存されており、(32, 32, 7)のテンソル(多次元配列)として処理できる。 ! 各ピクセルの範囲0-65536であったが、各ピクセルの分布をみて5000-30000の間にほとんどのデータが収 まっていることを確認。このレンジを0-1にスケーリングして処理を⾏うことに決定。 データ数、正例負例のバランス、データ構造、値の範囲の確認を⾏い、後段の処理のための情報と する。また可視化により対処データのイメージを掴む。 学習ループ 作成/修正 Private LBの 精度公開/順位決定 モデル調査 Data Augmentation 検討 データ理解データ取得 評価⽤データによる Public LBの精度評価 サブミットファイル 作成 アンサンブル作成 バリデーションデータ での精度評価 1 2 3 4 5 6 7 8 9 10 テストデータ中の正例割合 は本当はわからないが、推 測が可能
  33. 33. 3. Data Augmentation(前処理) 回転 0° 90° 180° 270° 今回は32x32と画像が⼩さいため 90°回転を軸に4種 original ⽔平flip 垂直flip 今回は32x32と画像が⼩さいため 90°回転を軸に4種 フリップ Padding/Cropping pad幅 padding cropping フチを周囲に追加して、ランダムに切 り取る。 Brightness Contrast 暗い 明るい 低い ⾼い ランダムに明るさを変更する。 ランダムにコントラストを変更する。 今回は5種のDA⼿法を適⽤。通常の画像ファイルはRGBの3チャネルであるが、今回のデータは7 チャネルで既存のDAライブラリが利⽤できず⾃前で実装。各DA⼿法を乱数で選択して適⽤。 学習ループ 作成/修正 Private LBの 精度公開/順位決定 モデル調査 Data Augmentation 検討 データ理解データ取得 評価⽤データによる Public LBの精度評価 サブミットファイル 作成 アンサンブル作成 バリデーションデータ での精度評価 1 2 3 4 5 6 7 8 9 10
  34. 34. 4. モデル調査 モデル名 採⽤ モデル名 採⽤ se_resnet10 ResNet18 ○ se_resnet20 ○ ResNet34 ○ se_resnet32 ○ ResNet50 se_resnet56 ResNet152 se_resnet62 ResNet101 se_resnet78 ○ dpn26 se_resnet80 dpn92 se_resnet100 ○ mobilenetv2 se_resnet152 densnet wide_resnet16 nasnet_mobile wide_resnet28 21種類のCNNモデルを試し、6つのモデルを採⽤。基本的にはResNet系が相性が良かった。 ベースにしたモデルコードは3チャネル⽤のものから7チャネル32x32で動作するようカスタマイズした。 学習ループ 作成/修正 Private LBの 精度公開/順位決定 モデル調査 Data Augmentation 検討 データ理解データ取得 評価⽤データによる Public LBの精度評価 サブミットファイル 作成 アンサンブル作成 バリデーションデータ での精度評価 1 2 3 4 5 6 7 8 9 10
  35. 35. 5. 学習ループ作成/修正 学習パラメーターをセット モデルをロード データセットを読み込み Data Augmentationを 適⽤ 設定のepoch数 イテレーションして学習 規定のepoch毎に バリデーションセットで評価 学習完了モデルで 評価⽤データの推論実施 学習の流れ 学習⽤パラメーター設定 パラメータ名 説明 学習名 今回の学習の名称。各種管理⽤に命名して管理する。 適⽤CNNモデル 学習対象のCNNモデルを指定。 モデルファイルのパス 学習をresumeする際のベースとなるモデルウェイトファイルのパスを指定。 momentum 慣性項とも呼ばれるmomentumの値を指定。前回の勾配をどれくらい引き継ぐかの度合。 learning rate 学習率。勾配の⽅向にどれくらい更新するかを決めるパラメータ。 learning rate step size ここで指定したepoch数毎に学習率をgamma倍して変化を段階的に⼩さくする。 gamma 学習率を段階的に⼩さくする時のその倍率。 batch size SGDの1イテレーションのミニバッチサイズ。 epochs 学習ループのepoch数。この回数epochを回すと学習完了となる。 seed 乱数のseed。今回はData Augmentationに効いてくる。 weight decay 正則化項。重みの勾配が爆発することを防ぎ、過学習を起こりにくくする。 test ratio バリデーションデータを学習データからどのくらい取るかを指定。最初0.2に指定し、最終サブ ミット時は0とした。 optim オプティマイザにSGDとAdamを選択可能。 normalize データを標準化するか否かを指定。今回は標準化を使わず、 scalingを適⽤した。 scaling データを5000-3000の間にclipし、rangeを0-1にスケーリングするか否かを設定。 random rotation Data Augmentationの回転を適⽤するか否かを設定。 random flip Data Augmentationのフリップを適⽤するか否かを設定。 学習に適⽤する各種パラメーターを学習⽤のpythonファイルの引数として設定。 学習ループ 作成/修正 Private LBの 精度公開/順位決定 モデル調査 Data Augmentation 検討 データ理解データ取得 評価⽤データによる Public LBの精度評価 サブミットファイル 作成 アンサンブル作成 バリデーションデータ での精度評価 1 2 3 4 5 6 7 8 9 10
  36. 36. 5. 学習ループ作成/修正 学習パラメーターをセット モデルをロード データセットを読み込み Data Augmentationを 適⽤ 設定のepoch数 イテレーションして学習 規定のepoch毎に バリデーションセットで評価 学習完了モデルで 評価⽤データの推論実施 学習の流れ 正例データ 負例データ 不均衡データを均衡に バリデーションデータ⽐率0.2の場合、正例データは9,954枚であるが繰り返し読み込まれる。 … 226,992枚 9,954枚 1epochの中で、正例が 負例と同数になるように 繰り返し読み込みover samplingする。 Data Augmentation が⼊っているので、同じ ファイルが重複されて利 ⽤されず、ファイル増幅 が効いていることになる。 学習ループ 作成/修正 Private LBの 精度公開/順位決定 モデル調査 Data Augmentation 検討 データ理解データ取得 評価⽤データによる Public LBの精度評価 サブミットファイル 作成 アンサンブル作成 バリデーションデータ での精度評価 1 2 3 4 5 6 7 8 9 10
  37. 37. 不均衡データを均衡に 6.バリデーションデータでの精度評価 学習⽤データ 教師ラベルあり 評価⽤データ 教師ラベルなし 参加者が分割 訓練データ バリデー ション データ Public LB⽤ 評価データ サーバーで分割 (参加者にはわからない) Private LB⽤ 評価データ 学習パラメーターをセット モデルをロード データセットを読み込み Data Augmentationを 適⽤ 設定のepoch数 イテレーションして学習 規定のepoch毎に バリデーションセットで評価 学習完了モデルで 評価⽤データの推論実施 学習の流れ ローカルでの精度評価はバリデーションデータセットを利⽤。 バリデーションデータでIoUを評価し、モデルの汎化性能を測る。均衡 データで学習しているのでAccuracyも参考にできる。 最終サブミット⽤には、選択したモデルに対して全ての学習⽤データを訓 練データとして学習を⾏う。 訓練データ 最終サブミット⽤ 学習時 Public LB⽤ 評価データ Private LB⽤ 評価データ 学習ループ 作成/修正 Private LBの 精度公開/順位決定 モデル調査 Data Augmentation 検討 データ理解データ取得 評価⽤データによる Public LBの精度評価 サブミットファイル 作成 アンサンブル作成 バリデーションデータ での精度評価 1 2 3 4 5 6 7 8 9 10
  38. 38. 7. アンサンブル作成 se_resnet20 se_resnet32 se_resnet78 se_resnet100 ResNet18 ResNet34 全員⼀致型アンサンブル 全てのモデルが positiveと予測した データだけをpositiveとする。 (正例の少ない不均衡データのため、 安易にpositiveと判断してしまい FPとなることを抑⽌する効果があったと 思われる) 構築したモデルを組み合わせ、アンサンブルモデルを作成。今回は全員⼀致型のアンサンブルを 採⽤した。 学習ループ 作成/修正 Private LBの 精度公開/順位決定 モデル調査 Data Augmentation 検討 データ理解データ取得 評価⽤データによる Public LBの精度評価 サブミットファイル 作成 アンサンブル作成 バリデーションデータ での精度評価 1 2 3 4 5 6 7 8 9 10
  39. 39. 8. サブミットファイル作成 学習ループ 作成/修正 Private LBの 精度公開/順位決定 モデル調査 Data Augmentation 検討 データ理解データ取得 評価⽤データによる Public LBの精度評価 サブミットファイル 作成 アンサンブル作成 バリデーションデータ での精度評価 1 2 3 4 5 6 7 8 9 10 se_resnet20 se_resnet32 se_resnet78 se_resnet100 ResNet18 ResNet34 ! " # " $ % 評価⽤データ 教師ラベルなし Submit⽤ 予測結果ファイル 作成したアンサンブルモデルに評価⽤データを読み込ませ予測結果を算出。Submit⽤予測結 果ファイルをtsvファイルに書き出す。
  40. 40. 9. 評価⽤データによるPublic LBの精度評価 学習ループ 作成/修正 Private LBの 精度公開/順位決定 モデル調査 Data Augmentation 検討 データ理解データ取得 評価⽤データによる Public LBの精度評価 サブミットファイル 作成 アンサンブル作成 バリデーションデータ での精度評価 1 2 3 4 5 6 7 8 9 10 コンペサーバー 順位 ユーザ名 スコア 応募件数 投稿⽇時 1 user_001 0.86045 48 2018/4/26 20:07 2 Kenmatsu4 0.83743 95 2018/4/26 20:40 3 user_002 0.80527 2 2018/4/23 14:37 4 user_003 0.81092 84 2018/4/26 20:05 5 user_004 0.78761 40 2018/4/24 22:58 6 user_005 0.80134 6 2018/4/26 21:22 7 user_006 0.80465 14 2018/4/25 21:03 … … … … … Public リーダーボード@コンペサーバー Submit⽤ 予測結果ファイル アップ ロード 精度 算出 書き出したSubmit⽤予測結果ファイルをコンペサーバーにアップロード。1⽇5回までという制限 があるため、どのファイルをサブミットするか、戦略的に扱う必要がある。
  41. 41. 9. 評価⽤データによるPublic LBの精度評価 学習ループ 作成/修正 Private LBの 精度公開/順位決定 モデル調査 Data Augmentation 検討 データ理解データ取得 評価⽤データによる Public LBの精度評価 サブミットファイル 作成 アンサンブル作成 バリデーションデータ での精度評価 1 2 3 4 5 6 7 8 9 10 多くのモデルパラメーター、学習パラメータの試⾏錯誤、さらにアンサンブルの組み合わせの試⾏錯誤 をおこなった。何をどのサーバーで⾏ったかわからなくなるのできちんと記録・管理しておくことが肝要。 多くのパラメーター、多くのモデル、アンサンブルの 試⾏錯誤をExcel管理していた。 この管理⽅法は今後の改善ポイント。 個別モデル アンサンブル
  42. 42. 10. Private LBの精度公開/順位決定 学習ループ 作成/修正 Private LBの 精度公開/順位決定 モデル調査 Data Augmentation 検討 データ理解データ取得 評価⽤データによる Public LBの精度評価 サブミットファイル 作成 アンサンブル作成 バリデーションデータ での精度評価 1 2 3 4 5 6 7 8 9 10 時間 2018年2⽉28⽇ コンペティション開始 59⽇間 2018年4⽉26⽇ コンペティション終了 順位確定 この⽇が終わった瞬間にPrivate LBが公開。 最終順位が確定︕ Private LBスコア コンペティション最終⽇が終わった直後0時にPrivate LBスコアが公開され、最終順位が確定。
  43. 43. 開発環境 Oregon Virginia Ohio Tokyo 最初ここを使っていたが ⾼いのでUSに移⾏ p3.2xlarge p3.2xlarge p3.2xlarge p3.2xlarge p3.2xlarge p3.2xlarge 終盤は多数のモデルを同時並⾏で構築して精度評価。 賞⾦は全てこの「クラウド費⽤」に消えました・・・。 ローカルPC ⼩さいデータでの導通確認をローカルPC(CPU)で実施し、学習⾃体はAWS EC2のGPU instance P3.2xlargeで実⾏。結果をローカルPCに集め、アンサンブルはローカルPCで作成。 💸 💸 💸 💸 💸 💸 💸 💸 💸 💸
  44. 44. 1. データ分析コンペティションとは 2. 衛星画像分析コンテスト概要と結果 3. 適⽤テクニックの解説 4. おわりに
  45. 45. コンペは実務に役に⽴たない︖ よく⾔われる批判的意⾒ ! Kaggleで使われるテクニックはマニアックすぎて、精度コンマ1%を争っても、実務上意味がない ! 学習データが完璧に準備されお膳⽴てされており、実務ではそんな状態は稀でデータを準備・整備 することが⼤変だし重要 ! ベースラインコードが参加者から提供されることが多いので、ちょっと変更を加えただけで、それ がよくわかってなくても参加できてしまう 私がコンペが実務の能⼒研鑽に有効と思っている点 ! とはいえ、データが豊富にあることは重要。MLはデータがないと何も試せないので、試⾏錯誤の練 習の場としては良い取り組み⽅による。本当の上位はゲーム的要素も多分にあるが、ある程度のま ともなスコアを出すところまでなら実務と同じ ! そもそも⽐較対象がないと、本当はもっと良い精度が出せるが⼒不⾜なのか、データの限界か分か らないので、⾃分の実⼒を知る良い場 ! コンペで与えられたデータも、綺麗に整えられているとは限らないのが現実なので、良いデータと は何か、の知⾒が得られる ! 圧倒的な量の試⾏錯誤をコンペで経験できる。(ツール群の使い⽅にかなり習熟できるし、他の⼈ の使い⽅も知れる) ! 世界のトップデータサイエンティストの解法を知ることができる ! 確かにKaggleだけ強ければ万能な訳ではない事は事実だが総合して実⼒をあげることに⼀役買える
  46. 46. THANK YOU!!!
  47. 47. APPENDIX
  48. 48. コンテスト例︓天体観測で⾒つかった物体の識別 https://www.kaggle.com/c/PLAsTiCC-2018
  49. 49. 超⾼性能天体望遠鏡 LSST 49 ⽇本 チリ https://www.kaggle.com/michaelapers/the-plasticc-astronomy-starter-kit 2019 年に完成する超⾼性能天体望遠鏡の観測天体を 15 種類に分類
  50. 50. 超拡⼤して様⼦がわかる https://www.kaggle.com/michaelapers/the-plasticc-astronomy-starter-kit https://arxiv.org/pdf/1903.11756.pdf 14種類+その他 計15種の分類 https://en.wikipedia.org/wiki/Type_Ia_supernova class90 Ia型超新星 https://www.quantamagazine.org/variable-stars-have-strange-nonchaotic-attractors- class53: 脈動変光星 広⼤な宇宙を超拡⼤して様⼦を観察できる
  51. 51. 51 class53: 脈動変光星 class90: Ia型超新星 https://www.kaggle.com/kenmatsu4/feature-engineering-with-gaussian-process Gaussian Process適⽤前約2年半 1年のうち半年は観 測できない 光の強さ 強い 弱い 学習データ例: グラフで表現されている時系列データから、星のタイプを分類する
  52. 52. EOF

×