進化計算コンペティション 2021 開催中のお知らせ

機械学習グループの濱田です。今回の記事では、私が運営代表を務めます『進化計算コンペティション』というイベントについて紹介します。

ちなみに今年のコンペは『社会シミュレーションによる経済支援施策の設計問題』で、今まさに開催中です!開催期間は12月18日までです。今からでも十分な時間をかけてプレイできますので、お気軽にご参加ください。コンペは初めて...という方から競プロガチ勢までお待ちしております!

進化計算コンペティション2021 Webサイト(参加登録はこちらから)

進化計算コンペティションとは?

進化計算コンペティションは進化計算学会が主催する最適化のコンペティションです。 最適化とは「与えられた条件下で最も優れた解を見つけよ」というタイプの問題で、工業製品の設計から社会インフラの運用、機械学習モデルの訓練まで様々な場面で現れます。

進化計算コンペティションでは、参加者は出題された最適化問題に対してできるだけ良い解を見つけることを競います。例年10月~12月頃にかけて開催され、開催期間中にいくつかの問題を解き、12月の進化計算シンポジウムで表彰式を行います。名前には「進化計算」とありますが、進化計算学会の会員に限らずどなたでも参加できますし、進化計算以外のどんな最適化手法を使って問題を解いてもかまいません。

それでは、進化計算コンペティションの魅力について紹介していきたいと思います。

進化計算コンペティションのスゴイところ

進化計算コンペティションは一種のプログラミングコンテストです。参加者は基本的には最適化問題を解くためのアルゴリズムを実装し、アルゴリズムの性能で順位が決まります。しかし、他のコンペではなかなか見られない特徴があります。

  • 毎年新しい実問題が登場
  • Human-in-the-loop型コンペ
  • 産業応用面からの表彰
  • コンペ結果公開による知見共有

順番に説明します。

毎年新しい実問題が登場

進化計算コンペティションでは、コンペを通して最適化の実問題に対する知見を産学で共有することを目的としています。そのため、産業や科学の現場で実際に使われているリアルな実問題を出題します。例年、幅広い分野から多種多様な実問題をピックアップしています。

リアルかつコンペに適した実問題を毎年新しく集めるのはなかなか大変なのですが、これこそが進化計算コンペティションの最大の価値だと信じて、取り組み甲斐のある問題を用意しています。

Human-in-the-Loop型コンペ

最適化の実問題に関するアンケートによれば、多くの実問題では解を評価するには長い時間がかかり(1評価あたり数秒~数時間)、評価回数は限られています(100~1000回程度のケースが多い)。1回1回の評価を無駄にはできません。実問題を解く際には、最適化アルゴリズムを実行して最適解が出るのを待つだけではなく、持てる知識を総動員してあらゆる試行錯誤を行います。手動で作った解を評価して様子を見たり、過去の類似問題から解を借用したり、問題の物理法則や最適化アルゴリズムの探索中の挙動から問題の構造を推測したり、最適化アルゴリズムを途中で打ち切って別のアプローチに切り替えたり。こういった試行錯誤ができるように、進化計算コンペティションは最適化プロセスに人間が介在できるHuman-in-the-loop型コンペとなっています。

参加者は、コンペシステムに対して最適化プログラムをサブミットするのではなく、解データをサブミットします。その解がどのように作られたかは問いません。最適化アルゴリズムを使わず人手で作っても構いませんし、コンペ問題のシミュレータを作ってそれを最適化した解を使っても構いません。何でもアリです!

解データは問題ごとに決められた評価回数まで送信することができます。評価回数は実問題と同程度(1000回など)で、各参加者は評価回数を使い切るまでプレイすることを想定しています。スコアは最後に送信した解だけで決まるのではなく、これまでに提出した解全体に対して決まります。限られた評価回数をいかに無駄なく使うかが勝利の秘訣です。

産業応用面からの表彰

進化計算コンペティションでは、表彰にも実問題を意識した特徴があります。スコア順位で決まる『トップ賞』だけでなく、出題者の判断で贈られる『産業応用特別賞』が設けられています。この賞はスコアとは無関係に、アプローチの実用性や得られた知見の面白さなどをもとに、出題者がピンときた人に贈ります。

一般的なコンペでは、往々にしてスコアのわずかな差が順位を左右するため、終盤はスコア指標をハックするゲームになることがあります。出題者としてもできるだけスコアと実用的価値が連動するように心掛けてはいますが、万全ではありません。そのため、スコア順位では惜しくも受賞を逃したけれど、出題者が本来やりたかったことに近かったり、出題者の想定を上回る何かを見せてくれた参加者に特別賞を送ることにしています。進化計算コンペティションでは、産業応用特別賞こそがむしろ真の優勝といっても過言ではないくらい重要視されています。

コンペ結果公開による知見共有

進化計算コンペティションは、実問題に関する知見共有を促進するために、コンペ結果の情報公開にも力を入れています。コンペ開催後には、コンペ問題のプログラムや解データがすべて一般公開されます。

問題はDockerイメージとしてDockerHubに登録されます。実問題は様々なソフトウェアに依存しており、インストールするだけでも骨が折れるものです。これまでにも様々な学会で実問題を公開する試みがなされてきましたが、単にWebサイトで実行ファイルやインストール手順書を公開するだけでは計算機環境の変化によって数年で動かなくなり、公開ページもWebサイトのリニューアルや閉鎖とともに散逸してしまうという問題がありました。そこで、進化計算コンペティションではDockerのエコシステムに乗っかることで、長年にわたって動作環境を選ばずワンコマンドで利用できるようにしています。

解はコンペシステムのデータベース上で公開されます。データベースの内容はGraphQLというクエリ言語で検索できます。たとえば、Online GraphiQLのサイトに以下のAPIエンドポイントを入力すれば、対話的にクエリを書いて検索してみることができます。GraphQLの文法を知らなくても、雰囲気で使えてしまうのがスゴイところです。

APIエンドポイント:https://opthub-api.herokuapp.com/v1/graphql

なぜ解のデータベース化が重要なのかといいますと、産業現場で最適化を活用するときには、単に最適化問題を解くだけでなく、得られた解を事後分析して問題をより深く理解することこそが求められているからです。しかし、実問題の解データは問題プログラム以上に公開されにくく、事後分析の知見が蓄積されにくい傾向にありました。進化計算コンペティションでは、コンペで提出された解データを事後分析のためのオープンデータセットとして利用することを想定しています。解データを公開することで、苦労して作問してくださった出題者に利益還元するとともに、研究者の皆様にも事後分析研究の手助けができればと思います。

情報公開にあたって出題者や参加者の負担を軽減するために、「データはデフォルトでオープン」なポリシーで運営し、コンペを遊んでいるだけで実問題やその解データが自然に公開される仕組みにしています。もちろんオプトアウトには対応していますが、基本的にはプレイした過程がそのまま、試行錯誤する様子までありのままに公開されるというのが特徴です。通常のオープンデータには、試行錯誤を経た後の、最終的に上手くいった部分のデータしか公開されないという出版バイアスがあります。進化計算コンペティションでは、「参加者が未知の最適化問題に対してどう探りを入れていくか」という泥臭い、しかし実用上は重要な知見を含むデータを公開しています。

どうやって運営してるの?

大規模な実問題を使ったHuman-in-the-loopコンペを開催し、そのデータを一年を通して公開するには、それなりのシステムを通年で安定稼働させる必要があります。一方で、運営委員はみな本業で忙しく、作問や運営も行うなかでシステム構築・運用に割ける時間はほぼゼロです。外部委託できるほどの予算もありません。このような状況でいったいどうやってシステムを開発し運用しているのでしょうか?

本コンペシステムでは、様々なクラウドサービスをいいとこどりして安価に高機能性と高可用性を両立しています。ランニングコストがかかる部分を無料サービスに逃がし、有料にせざるをえない部分は各社の無料枠を賢く併用することで、シングルクラウドよりも安価にマルチクラウド・マルチリージョンの冗長構成を実現しています。

その甲斐もあってか、昨年9月に稼働して以来クラウドの大規模障害が何度かありましたが、毎回ノーメンテで乗り切っています!......というよりは、本業があるため障害対応の初動がいつも半日後とかになり、確認すると無事稼働していて「あ~よかった」という感じです(笑)。また、問題プログラムでは毎年いくつか不具合が出てしまっているので、より丁寧に作問できるように、来年以降の問題までストックできる体制を構築中です。自転車操業的な作問を抜け出すまで、もうしばらくは参加者の皆様からの報告に助けていただくことになると思います。

本コンペシステムの設計や他のコンペシステムとの比較については、以下の文献をご覧ください。

濱田直希、"進化計算コンペティションを支える技術"、第19回進化計算学会研究会、2021年3月(動画スライド論文

おわりに

進化計算学会 実世界ベンチマーク問題分科会では、コンペに出題する実問題やコンペ運営委員を通年募集しています。ご興味がありましたらお問合せ先までご連絡ください。

このブログについて

KLabのゲーム開発・運用で培われた技術や挑戦とそのノウハウを発信します。

おすすめ

合わせて読みたい

このブログについて

KLabのゲーム開発・運用で培われた技術や挑戦とそのノウハウを発信します。