人口流出や高齢化、自然災害などの地域課題を解決するために、デジタル技術の活用が注目されている。山口県でも、官民連係フォーラム「デジテック for YAMAGUCHI」を創設し、地域課題解決に向けたさまざまな活動を行っている。AI人材育成プログラム「やまぐちAI Quest」も、その活動の一つだ。そしてこの度、山口県のAI人材の育成をさらに活発化するために本コンペティションが開催される運びとなった。コンペティションのテーマは、山口県内を走行した車両のドライブレコーダーの記録画像から、補修が必要な物体を検出するAIモデルを作成すること。道路標識や区画線、道路照明灯などの要補修物体の位置情報を認識し、これまで必要とされていた確認作業時間などを軽減することが狙いだ。 本コンペティションのU18部門で見事1位に入賞した勝山翔紀さんは、独学でAIの勉強を始め、数々のAIコンテストで入賞した経験を持つ。果たして、今回のコンペティション参加の動機とは何だったのか。取り組みにおける工夫、参加で得られた学びについて率直に伺った。
とりあえずやってみる。その姿勢がAIの学習やコンペティションの参加につながった。
AIに興味を持ったのは、中学生のときに参加したプログラミング教室がきっかけでした。部活が休みの日に無料で受講できると知り、面白そうだなと軽い気持ちで参加した結果、自分が普段使っているアプリの裏側 を垣間見ることができて一気に引き込まれたのです。そのとき触れたのはSwiftだったのですが、アプリケーションの範囲を超えてWebサイトなども手がけてみたいと思うようになり、Pythonなどジェネラルな言語も学び始めました。その過程で、プログラミングでAIを行うことができるのがすごい思ったことから、独学でAIの勉強を進めていきました。振り返ってみると、プログラミングに限らず興味があるものはとりあえずやってみるという姿勢を大切にしていたからこそ、不安や苦手意識を持つことなくAIを学び始めることができたように思います。 AIを学ぼうと決めた後は、まずはAIの基本の基から学び始め、その後は手探りでモデルを構築したり、とにかく論文を読んだりと、暗中模索で少しずつ知識を身につけていきました。その結果、AIのアイデアコンテストなどで結果を残すことができるようになったのですが、コンペティションだけはあまり良い思い出がなくて。コンペティションは2~3ヶ月もの時間が必要なため、途中でテストに集中してリタイアしてしまい、完走できないことが多かったんです。そんな中で、今回のコンペティションについて知り、卒業間近で時間に余裕がある今なら完走できるかもしれないと考え、思い切って参加することに決めました。
これまでの知見をフル活用し、試したいアプローチをすぐに実践することができた。
参加を決めた直後は「難しそうだけど、本当に自分にできるかな」と思っていたのですが、課題やデータと冷静に向き合ってみると意外と複雑なタスクはなく、補修が必要か否かを判別すれば良いだけで、一つひとつは簡易的なタスクだということに気づきました。そこで画像から直接補修の有無を判別するのではなく、先に物体を判別してそれぞれの補修有無を判別するという方法を採用しました。ただ、計算資源やデータセットが足りないため、Yolo V7とEfficient-Netなどの事前学習モデルをFine-Tuningしました。 またデータを分析する中で、各ラベルがかなり偏っていることが分かったため、この偏りをいかに解消するかが今回の大きなテーマになると考えました。そこで、モデル自体はシンプルなものを採用しつつ、大きく2つの工夫をしました。1つ目は、Efficient-Netで異なるClassifierを使用したこと。2つ目は、ラベルごとにLossの重みを変え、少ないサンプルの誤分類をより重視して修正するよう学習させました。 こうして、一つひとつのアプローチに迷うことなく進めることができたのは、過去に複数のモデルを作ったり、論文を読み漁ったりしてきた経験があるからこそだと思います。知識をインプットするだけでなく、実際に手を動かすことも両方を続けてきたため、思いついたアプローチをすぐに実践することができました。なんの役に立つかも分からない知識や経験が、思いもしない場面で役立つということを知り、これまで自分がやってきたことは無駄ではなかったと嬉しくなりました。
正直、もっとできたはず。考えれば考えるほど、心残りばかり出てくる。
スムーズに進めることはできましたが、コンペティション期間中全然手応えがなかったのが正直な想いです。その理由は、明確な判断軸を持たず、少し上手くいかなかっただけですぐに他のアプローチに切り替えてしまったからだと思います。画像拡張も1〜2回試してすぐに諦めてしまったし、モデルのサイズやアウトプットの閾値の変更も、精度が変わらなければ他のアプローチに変えてしまいました。表彰式で他の入賞者の解法を聞いたところ、自分が諦めてしまったアプローチでより高い精度を出している方もいたので、一度上手くいかなかったからといって諦めずに、もう少し粘ればよかったと後悔しています。 では、どうして明確な判断軸を持つことができなかったのか。それは、計算資源や時間の問題でクロスバリデーションを行わなかったことが最大の原因です。クロスバリデーションをやった方がいいことはわかっていたのですが、やるとなると膨大な時間がかかることや、自分のPCのスペックが足りないことなどを言い訳に諦めてしまったんです。その結果、ローカルのスコアとリーダーボードのスコアがかなり乖離したまま進めることになってしまいました。結局、最終的に提出しなかったモデルの方が精度が高かったことが後になって分かり、やり切れなさを感じると同時に、自分自身に対して悔しさを覚えました。 どれほど優れたアプローチが見つかったとしても、その精度を検証できなければ意味がありません。ローカルできちんと検証すること、そして自分が納得いくまで検証することの大切さを痛いほど実感したので、今後は検証環境を絶対に充実させようと決めました。
まだ見ぬAIの可能性を追求するため、世界で活躍するAIの研究者を目指す。
U-18部門で1位を受賞することができ、また、コンペティションを完走するという目的も達成できましたが全然満足はしておらず、むしろすごく悔しいです。先ほども話したとおり心残りばかりだし、どういうアプローチにすれば良かったのか未だに解明できていない部分も多いです。しかし、その後悔があるからこそまたコンペティションに参加したいと思えるし、もっと実力を伸ばそうというやる気が出てくるのです。 それに、私の夢はAIの基礎研究をする研究者になることです。心残りがあるからと落ち込んでいる暇はなく、夢に向かって技術をどんどん身につけていく必要があります。そのために、こうしたコンペティションに今後も参加しつつ、より深くAI技術を学ぶために海外の大学に留学したいと考えています。 生物学や地学など他の分野でAIを活用することで、人々が抱える課題を解決できるようになりたいと思っています。ChatGPTが登場するなど、AI技術は今もどんどん成長していますが、これらはあくまで通過点でしかありません。AIはまだまだ可能性を秘めている。その可能性を広げられるように、これからもさらに知識を身につけていきます。
コンペティション参加を検討している方へのメッセージ
コンペティションで上位入賞を目指すのも良いですが、コンペティションに参加して、さまざまなアプローチを試すそのプロセスにこそ価値があるのだと思います。新しいアプローチを学んだり、知っていたつもりのアプローチに実は勘違いがあったことに気づいたり。いわば、コンペティションは成長の場と言えると思います。少しでも興味があるなら、ぜひ参加してみてください。きっと、想像以上に学びがあるはずです。