今回は初めてのデータサイエンスのコンペとして、Nishika会社様が運営、株式会社オモロキ様(bokete)がホストをつとめるコンペに参加しました。
目次
- コンペの概要
- 今回の順位
- 反省と感想
・始めにコンペを開催してくださった皆様ありがとうございました。大変貴重な経験になりました。
本コンペのボケて判定AIを作ろう!(ボケてコンペ #1)に参加しました。このコンペでは株式会社オモロキ様が運営するboketeから画像と文字(テキスト)の両方のデータから、AIが面白い(1)面白くない(0)を判定するのが今回の目的となります。
boketeとは↓のように写真と文章のボケで皆さんを笑わせます。
初めてのコンペながらブロンズメダルを入手しました!とても嬉しいです
何もかもが初めてでしたが、google colaboratoryの凄さや使い方、コンペの流れを経験することが出来ました。
・私はAnacondaからpythonを使っていましたが、無料ですぐに使えるGPU入りのgoogle colaboratoryは大変便利なものだと実感しました。詳しい使い方も追々学んでいきたいです。
しかし、使いすぎた場合、制限で12時間から24時間GPUが利用出来なくなってしまうため注意が必要です。
・コンペでは、まずデータとサンプルコードを確認する所から始めました。データは訓練データだけでも約25000ありました。これを全て読まなければいけないのですが、正直なところ8000程で止めてしまいました...
データサイエンティストとして食べていくためには、この膨大な量のデータを確認し、パターンを見つけて課題を解決していくことが仕事なのだと身をもって体験しました。これからは全部読まないといけませんね。頑張ります!
・コードの中身では、画像とテキストの両方を用いたマルチモーダル分類モデルとしてMMBT(MultiModal BiTransformers)が使われており、BERTをベースとした画像とテキストのマルチモーダルディープラーニングです。画像にはResNet152を、テキスト側はBERTを用いてそれぞれベクトル変換し、両方をtokenとして連結したものに再度BERTに入力します。
しかし、私が初心者ということもありMMBTはおろかBERTとResNet152はG検定の勉強でどのようなものかという事だけしか分からず、どこをどう変えれば良いのかが分かりませんでした....本来はここがデータサイエンティストとして腕の見せ所の一つなのではないかと思いました。ここは日々の練習?で磨かれていくと思います。
・今回重点的に行ったことは、コードにある数値を変える事と前処理でのデータクレンジングを行いました。
数値を変えたとはepoch(学習回数)、バッチサイズ、画像のサイズの値をちまちまと変えてました。ここで注意することは、Validation Lossの値の幅が大きくならないようにすることです。この値は過学習の有無が何となく分かります。
データクレイジングではデータの中に改行(\n)や不必要だと思われる空白や句読点があります。それは私達人間にとっては要らないため除きました。しかし、データクレイジングでは機械(AI)と人間とではデータに対する見方が違う事を調べていく過程で分かりました。つまり人間にとって上の様に空白や句読点を除きましたが、これらが機械にとっては必要なものである可能性があるのです。こうなると何が機械にとって必要なのかが分かりません。だからそのサイトでは「機械の気持ちを考える」ことが大切だと書かれていました。難しいですね。
これからについて
・Nishikaの方で新たなコンペ(ヘイトスピーチ)が開催されたので参加します。
・このままでは自分の腕が磨かれないため、自然言語処理100本ノック、データ分析100本ノックを勉強していきます。
・G検定(JDLA2022#2)を合格したので、機械学習の実装等が範囲となるE資格にも挑戦しようと考えています。
・Kaggleに挑戦したいので英語が理解出来るようになるために、TOEICの勉強もコンペと同時並行で行っていきます。
引用
・Nishikaボケて判定AIを作ろう!(ボケてコンペ #1)
https://www.nishika.com/competitions/33/summary
・bokete
https://bokete.jp/
・データクレンジング時に参考にしたサイト
https://zenn.dev/deepblackinc/books/ad568c611643c6/viewer/c37a9f