各所でAIの重要性が叫ばれる一方、AIの開発にかかる膨大な時間や手間が導入の障壁になっているのが現状だ。こうした課題を解決するために、最適なハイパパラメータの探索(Hyperparameter Optimization、以下HPO)を自動で行うHPOモジュールの開発を目指してこのコンペティションが開催されることとなった。特定の問題を解くというコンペティションが多い中、今回のコンペティションは汎用的な問題を解くことが求められたため、その難易度の高さから参加者たちは頭を悩ませた。 そんな本コンペティションで5位に入賞した重松康祐さんは、大分工業高等専門学校の講師として働きながらコンペティションに臨んだという。果たして、今回のコンペティション参加の動機とは何だったのか。そして、どのようにして5位入賞に漕ぎ着けたのか。取り組みにおける工夫、参加で得られた学びについて伺った。
難易度が高く、人がやりたがらないであろうコンペティションを選ぶのがポリシー。
ある程度解決の筋道が想像できるテーマではなく、ひねりが効いた難しいテーマかどうか。それが、私が参加するコンペティションを選ぶ際の指針です。なぜ難しい方を選ぶかというと、大きく2つの理由があります。1つ目はかなり打算的なのですが、難易度が高ければ高いほど参加者の人数が減り、上位に入る可能性が高まるため。「もしかしたら入賞できるかもしれないぞ」と思いながら取り組めるため、モチベーションが高まります。そしてもう1つは、難しいテーマだからこそ自分の研究に活かせるヒントが見つかるのではと考えたため。難しいテーマは、まだ誰も注目していない未開拓の分野を扱っていることが多く、新しい情報や難しい技術に触れることができるのです。 今回このコンペティションに参加を決めたのも同じ理由です。一般的なコンペティションのようにAIを開発するのではなく、AIを活用するための汎用的なツールを開発しなければならず、目眩がしそうなほど難しい。正直に言うと、難しいコンペティションを選ぶと決めてはいたものの、HPOモジュールの知見が全くないので少し尻込みしてしまいました。それでも参加を決めたのは、色々な研究に応用できそうな汎用的な知識が得られると考えたからです。うまくいかなくても失うものはないと、自分を奮い立てて参加しました。
一から自分で手がけるのは無理。そこからの切り替えの早さが結果につながった。
よしやるぞと意気込んだものの、あまりの難しさに途方に暮れました。これを一から自分で進めるのは到底無理だろう。そう思い、先行研究をとことん活用しようとすぐに方向転換しました。今振り返ると、この切り替えの早さが結果に大きくつながった気がします。自分にはできないと放り出したり、意固地になって無理やり進めたりするのではなく、潔く諦める。一番大切なのは目標を達成することなので、そのために諦めるのは全く悪いことではないと思いますね。じゃあ私の目標はなんだったのかというと、入賞すること。先ほどと言っていることが違うと指摘されるかもしれませんが、研究のヒントを見つけたいというのも嘘ではありません。ただ、心の奥底には「せっかく参加するなら賞を取りたい」という欲があったのです。コンペティションに限らず、こうした欲が一番のモチベーションになるので、うまく使うことが大切だと思います。実際、その想いがあったからこそ素早く諦めて方向転換できました。 先行研究を調べていく中で目が止まったのは、NeurIPSという国際会議で開催されていた「Black Box Optimization Challenge」というコンペティションで入賞していた手法。最適化をする以上、広範囲の探索が得意なアルゴリズムと、狭い範囲の探索が得意なアルゴリズムを組み合わせることが効果的ではないかと考えていたのですが、上記の手法はまさにその典型的な例だったのです。そこで、100回の試行回数のうち前半50回はscikit-optimizeというアルゴリズムを、後半50回はHEBOというアルゴリズムを使うことにしました。実際に動かしてみると、それぞれ単体で使うよりも精度が高く数値も安定している。これならいけるかもしれないと思いました。
大切なのは、自分の中にどのくらい知識を落とし込むべきか判断すること。
目ぼしいアルゴリズムが決まったとはいえ、本当にそれがベストなのか、より高いスコアが出るアルゴリズムがあるのではないかという疑問は拭いきれませんでした。そこで、自分の選択を信じるためにもローカルでの検証環境を充実させることに力を注いだのです。もちろんリーダーボードでもスコアは確認できますが、投稿する時々でスコアが異なるため、リーダーボードだけに頼り切ってしまうと、いざ本番環境で検証したときにスコアが大きく下がってしまうこともある。そのため、どんなにリーダーボードのスコアが良くてもローカルでのスコアを最優先してアルゴリズムを選んでいきました。結果、やはり最初に考えた2つのアルゴリズムを組み合わせたもののスコアが最も高かったため、安心して提出することができました。 ただ、HPOの知識がほぼゼロだったため、こうした先行研究の読み解きや、アルゴリズムの選定、ローカルでの検証環境の整備などは、単語やコードの意味を逐一確認する必要がありかなり苦労しました。だからこそ大切にしていたのは、インプットする情報を取捨選択するということ。調べようとすればどこまででも情報が集まるため、時間だけが過ぎてしまう危険がある。初心者に必要な情報とコンペティションに必要な情報、研究に必要な情報とで知識レベルは異なるので、このコンペティションをする上で必要な情報だけに絞ってインプットするように心がけました。
コンペティションの面白みを、学生たちに伝えていきたい。
結果として5位に入り、入賞という根本の目的が達成できて大きな達成感を感じました。ただその一方で、「これもやれたはず」「違うアプローチもあったのではないか」という心残りもたくさんあります。特に、1つしかベンチマークを試せなかったのが一番心残りですね。本当の意味で汎用的なアルゴリズムを生み出すためには、あらゆる状況に対応できるよう複数のベンチマークを試すべきなのに、時間がなく諦めてしまいました。しかも今回は産業技術総合研究所のABCI(AI橋渡しクラウド:AI Bridging Cloud Infrastructure)が使えたため、重いタスクに対するベンチマークも試すべきでした。次回コンペティションに参加する際は、さまざまなベンチマークを試せるよう時間の使い方を意識したいです。その結果、より良い順位や自身の学びにもつなげていければと思います。 心残りも多いですが、コンペティションは机上の勉強では手に入らない経験が得られるので、今後も積極的に参加していきたいです。また、去年キャリアチェンジをして高等専門学校の教員になり、研究の領域だけでなく教育の領域にも携わるようになったため、自分だけでなく学生たちにもコンペティションの魅力を伝えていけたらと考えています。勉強とは辛く苦しいものというイメージが強いかもしれませんが、学生たちには学ぶことを楽しむ気持ちを忘れないでほしい。だからこそコンペティションを通じて、楽しみながら成長するという経験を培ってくれたらと思います。どの学生たちも伸びしろがあるので、楽しむきっかけさえ与えてあげれば、あとは自分でどんどん成長してくれるはず。彼らの成長を楽しみに、私自身も技術を磨いていきたいです。
コンペティション参加を検討している方へのメッセージ
コンペティションに挑戦すればするほど成長できるし、結果にも表れる。参加費がかかるわけでもないし、うまくいかなかったからといって自分にデメリットがあるわけでもないので、少しでも興味があるならぜひ参加してほしいです。「1人で参加してモチベーションが続くの?」という方も、自分と近い順位の方々のスコアをチェックすることで、競争心が湧いてくるはずです。あまり気張らず、自分に合った進め方を見つけるぞというくらいの気持ちで始めてみてください。