May the Neural Networks be with you

ニューラルネットワークと共にあらんことを

第1回Cpaw AI Competitionを開催しました

こんにちは@shunk031です。昨日読んだ論文はDeconvolutional Paragraph Representation Learningです。

台風22号が猛威を振るった10/29に、Cpaw*1主催、全脳アーキテクチャ若手の会*2共催の「第1回Cpaw AI Competition」のお手伝いをしてきました。

Cpaw AI Competitionの概要

複数のデータセットを用いて、競技時間内に一定以上の精度が出るような識別器を作成し、機械学習技術を競う大会になっています。識別器を作成するための計算リソースは、さくらインターネット様からご提供の「さくらのクラウドを利用することができます。

GPUマシンではないのですが、かなりパワーのある「さくらのクラウド」マシンを利用することができ、さまざまなモデルを試せる環境を用意していただきました。ありがとうございます。

運営のお手伝いとして参加

Cpaw代表の@porisuteruとは研究室の同期で、大会を開催するにあたって運営のお手伝いを任されていました。

今回お手伝いをしたのは競技の作問とデータセットの作成周りでした。そもそもCpawはCpaw CTFCpaw CTF2など、セキュリティを中心に活動している組織です。そこで「セキュリティ×機械学習」でうまいデータセットがないかなと考えて、データセットを作成させていただきました。

そこで今回、以下のデータセットを使って競技を行っていただきました。

  • Classic Characters
    • ひらがなのくずし(古典)文字*3
    • 「あ」〜「ん」の各ひらがな画像を用いた50クラス分類
  • Entertainer Blog
  • Fashion MNIST with checkerboard
    • Fashion MNISTデータセットにチェッカー柄を追加したもの
    • T-shirt、Trouserなどの各10クラス分類
  • Malware Analysis
    • マルウエアから抽出したjson形式の特徴量
    • 「APT1」、「Crypto」、「Locker」、「Zeus」の4クラス分類
  • Malware URLs
    • 通常のURLと悪意のあるURLのデータ
    • 「Normal」および「Malicious」の2クラス分類

ベーシックな画像処理や自然言語処理、そしてセキュリティ領域での機械学習適用を考えたデータセットになっていると思います。

Classic Charactersは人文学オープンデータ共同利用センターが公開している「日本古典籍字形データセット」をベースに作成しています。「あ」〜「ん」までの各ひらがな画像が含まれており、また厄介なことにさまざまなアスペクト比の画像が含まれています。この点をどのように工夫するかが精度向上のポイントとなってくると思います。

Entertainer BlogはLINE Blogからクローリングしてきた芸能人のブログ記事を使っています。クローリングはScrapyをベースに作った拙作shunk031/LINEBlogScraperを利用しています。各人とても個性のある記事を作成しているため、たくさんの特徴があると考えています。

Fashion MNIST with checkerboardは、Fahion MNISTにチェッカー柄を追加したものとなっています。これはFashion MNISTの学習済みCNN*4が存在するため、少し強めのノイズとしてチェッカー柄を追加しました。

Malware AnalysisおよびMalware URLsはセキュリティ分野を意識したデータセットになっています。通常のソフトウェアとマルウェアのそれぞれの特徴を抽出したjsonファイルや、正常および悪意のあるURLを分類するものになっています。ドメイン知識があるとより精度が出そうなデータです。

競技は5時間ぶっ通しで行わせていただきまして、各々真剣に取り組んでいる様子が見て取れました。

スコアサーバー等に少し不具合があったのですが、トラコン運営の@porisuteruがリアルタイムでデバッグしていました汗

終結果は…!

少しドタバタしたのですが、最終的に今大会のWinnerはKaggle Grandmasterの@smlyさんでした! おめでとうございます!商品は最近話題のGoogle Home miniを贈呈させていただきました。

Twitterにて解法を共有されていらっしゃったので、掲載させていただきます。

各データセットの特徴を捉えてロジスティック回帰で分類というシンプルながら最強感あるモデルで優勝された模様です。

またKaggle masterである@threecourseさんはXGBoostを用いたモデルで2位に入られました。

これは僕のデータセット作成ミスなのですが、特徴量の中に正解ラベルが混入していたようです…。お試し精度100%問題になってしまっていたようです。

懇親会とこれから

競技終了後はピザを囲みながら解法などの情報交換が活発になされていました。競技要素ある機械学習コンペを開催するのは当方初めてでありまして、たくさんのフィードバックをいただくことができました。

これらのフィードバックを元に今後開催予定の機械学習コンペを作っていきたいと考えています。今回のCpaw AI Competitionに参加された皆様にはとても感謝しています。ありがとうございました!

*1:Cpaw | Caramel Programing Affect the World https://www.cpaw.site/

*2:全脳アーキテクチャ若手の会 https://wbawakate.jp/

*3:『日本古典籍字形データセット』(国文研ほか所蔵/CODH加工)提供:人文学オープンデータ共同利用センター | http://codh.rois.ac.jp/

*4:Convolutional Neural Networks