神戸のデータ活用塾!KDL Data Blog

KDLが誇るデータ活用のプロフェッショナル達が書き連ねるブログです。

新卒社員がSIGNATEの「間取り図解析アルゴリズム作成」に挑戦してBronzeを獲得した話 最終回:モデル提出&順位発表編

 

こんにちは!

株式会社神戸デジタル・ラボ DataIntelligenceチームの原口です。

前回は「間取り図解析アルゴリズム作成」の部屋領域検出編をご紹介しました。

 

kdl-di.hatenablog.com

 

 

この取り組みを最初からお読みになりたい方はこちらからご覧いただけます。

 

今回はコンペ取り組み記事の最終回、モデル提出と波乱の順位発表編です!

まずはコンペの提出方法と順位の決定方法について説明します。

SIGNATEコンペの提出方法と順位について

提出方法

f:id:kdl-di:20220113092745p:plain

SIGNATEのコンペでは学習用データ評価用データの二種類が配布されます。

学習用データはその名の通り、アルゴリズムやAIモデルの構築に利用するデータです。

一方、評価用データは、構築したモデルの精度を評価する際に利用するデータです。

この評価用データの推論した結果(AIに入力して評価させた結果)をSIGNATEのコンペページに投稿することで、コンペでのスコアを獲得することができます。

コンペ参加時の大まかな流れは次の通りです。

  1. 学習用データでAIモデルを構築する
  2. 構築したモデルを用いて評価用データの推論、結果を提出
  3. スコアを確認し再度モデルを構築する

この流れを開催期間中に繰り返し行うことで、スコアと順位を向上させていきます。

順位

SIGNATEのコンペは、上記の流れに沿って推論結果を投稿し、その精度を競います。

通常、データ分析のコンペには、パブリックリーダーボードとプライベートリーダーボードの二種類の精度評価が存在します。

ここでパブリックリーダーボードとプライベートリーダーボードについて説明します。

f:id:kdl-di:20220113091832p:plain

パブリックリーダーボードは、コンペ開催期間中に公開されるスコアです。

このスコアは、評価用データの一部を利用して計算されます。

プライベートリーダーボードは、コンペ開催期間終了後に公開されるスコアです。

このスコアは評価用データのうち、パブリックリーダーボードで使われなかった残りの評価用データを利用して計算されます。

評価の対象となるデータが異なるので、パブリックリーダーボードのスコアが高いからと言って、プライベートリーダーボードのスコアも高いとは限りません

例えば、パブリックリーダーボードとプライベートリーダーボードのデータが次の図のような分布をしていると仮定します。

f:id:kdl-di:20220114142251p:plain

このような分布で、パブリックリーダーボードのスコアが上がる場合、予測モデルはパブリックリーダーボードの分布に適した形になっていると考えられます。

しかし、パブリックリーダーボード(左)とプライベートリーダーボード(右)の分布に違いがあるということは、その予測モデルはプライベートリーダーボードの分布には適さないモデルの可能性が高く、プライベートリーダーボードのスコアは上がらないと考えられえます。

f:id:kdl-di:20220113093159p:plain

コンペ参加者は、パブリックリーダーボードのスコアと学習結果を照らし合わせながら、プライベートリーダーボードのスコアが高くなるようなモデルを作成していきます。

コンペ終盤のチームの取り組み

コンペ終盤、私たちのチームはパブリックリーダーボード上で、スコア:0.845、順位が14位と、シルバー or ゴールドメダル圏内に位置していました。

f:id:kdl-di:20220113094236p:plain

もうすぐトップ10入り。一つ上の順位とも0.003pt差。

何とか順位を上げようと様々な手法を試しました。

禁忌の閾値調整・・・

AIモデルを作成するには、データの準備・モデルの学習・評価を行う必要があり、通常数日を要します。

コンペ最終盤では、新たにモデルを作成する時間はありません。

そこで私たちのチームは、甘く危険な香りがする「閾値調整」に手を出しました。

 

推論した結果の信頼度をもとに精度向上を狙う閾値調整(境界となる値の調整)はどんなコンペでも行われる一般的な手法です。

閾値の調整を行う際は、学習データを「検証用データ・調整用データ」に分割し、検証用データで閾値を調整する必要があります。

f:id:kdl-di:20220114143053p:plain

このように調整することで、過剰にパブリックリーダーボードに適合することなく、プライベートリーダーボードでも良いスコアが出るモデルを構築することができます。

 

しかし私たちのチームは、メンバ全員がコンペ初参加ということもあり、どうしたら順位が上がるのか、スコアが改善するのか、目の前のパブリックリーダーボードのスコアのみに気を取られていました。

 

そのため、本来ならばプライベートリーダーボードのスコアへの影響を考慮して、検証用データで行うべき閾値調整を、パブリックリーダーボードの順位が改善するように、パブリックリーダーボードのスコアを見ながら調整を行ってしまったのです!

 

上記で説明した通り、パブリックリーダーボードとプライベートリーダーボードのスコアは一致しません。

 

つまり・・・。

 

審判の時

7月14日、コンペが終了しました。同時にプライベートリーダーボードが公開され順位が確定します。

勤務を開始し、ワクワクしながら結果を確認する私たちのチームに下された判決は・・・。

 

f:id:kdl-di:20220113112509p:plain

 

大幅な順位ダウン・・・。一時期は14位まで上り詰めましたが、最後の閾値調整をパブリックリーダーボードで行ってしまったため、このような結果となりました。

 

まとめ

今回のコンペは苦い結果となりましたが、コンペの取り組み方や、モデル構築の仕方、精度向上の考え方など非常に学びの多いものになり、さらには初コンペでブロンズメダルも獲得できたので、とても良い経験になったと思います。

また、一つの課題に対してたくさんのアイデアを絞り出す力も鍛えられたように思いました!

次回のコンペでは今回の経験を生かして、さらに高い順位を目指していきたいと思います!

 

最後までご覧いただきありがとうございました!

原口俊樹

データインテリジェンスチーム所属
データエンジニアを担当しています。画像認識を得意としており、画像認識・ニューラルネットワーク系の技術記事を発信していきます

 

 

 

2021年7月14日(水