競技プログラミングに挑戦したAI「AlphaCode」

競技プログラミングに挑戦したAI

2月初頭に囲碁AI「AlphaGo」で有名なDeepMind社が、コンピュータプログラムを競技者レベルで作成できるAI「AlphaCode」を開発しました。このAIは競技プログラミングコンテスト「Codeforces」に参加して実績をあげました。

CodeforcesはロシアのITMO大学主催で行われている、世界三大権威競技プログラミングに数えられるコンテストです。Codeforcesはこのコンテストにおいて上位54%以内のランクを取得しました。AIが競技プログラミングにおいて中央値のスコアを獲得したのは今回が初の出来事です。

問題解決型AI「AlphaCode」の仕組み

機械学習はTransformer という2017年頃に発表された深層学習モデルを用いて行われます。これはそれ以前の自然言語解析学習モデルよりはるかに多くの並列化が可能で、トレーニング時間を短くすることができます。これを用いてGitHub上の大量のコードをサンプリング・フィルタリングし、学習で得たデータと課題問題をもとに大量のC++やPythonのコードを組み合わせて生成します。

技術の進歩による光明

競技レベルのコードを作成するには過去のAIシステムではあまりにも能力不足で、特に大規模なコードを出力することが困難でした。しかし、先のTransformer等のように、以前とは比較にならないほどの大規模サンプリングやフィルタリングシステム、コード生成能力を持つ変換モデルが登場したことによって、AIが解決できる問題の幅を大きく広げることに成功しています。

Codeforcesの創業者であるMike Mirzayanov氏は今回のAIについてこのように述べています。

AlphaCodeの結果は、私の期待以上だと断言できます。

というのも、単純な競技問題であっても、アルゴリズムを実装するだけでなく、

それを考案することが求められることが多いからです(これが最も難しいところです)。

Mike Mirzayanov

解決できる問題が増えたことにより、人間でも難しいアルゴリズムの考案まで成し遂げられるようになったAlphaCodeは今後競技プログラミングにおいて、人間と競い合えるライバルにもなりうるとも発言していました。

今後のAIについての考察

ここ最近AIはとても目まぐるしい進化を遂げ、高度なことに挑戦してきました。有名なところでは、日本の上位プロ級の棋士とAIが戦う「将棋電王戦」などがあります。将棋などは「二人零和有限確定完全情報ゲーム」という理論上明確な必勝法があるゲームのですが、将棋は駒の獲得と利用というルールにより、チェスやオセロなど他のそれより数段レベルが高い代物でした。しかし、2017年の電王戦において名人級の棋士がAIに完敗し、電王戦は幕を閉じました。今回の件から考察して、AIや機械学習がさらに進歩していったら、人間がいつか競技プログラミングでも勝てなくなる日も近い将来やって来るのではないかの考えています。これは一人のプログラマとしてとてもロマンがある話だなと思いますし、今後もこのようなことを研究する機関や企業が増えていくと面白いなと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA