検索
連載

至宝の人工知能 〜問題に寄り添い、最適解をそっと教えてくれるOver the AI ―― AIの向こう側に(17)(7/8 ページ)

先人たちにより開発され、磨かれてきた「至宝の最適化アルゴリズム」。本当はこれを軽々しく「AI」とは呼びたくな……い……という気持ちをぐっとこらえ、AI技術として解説します。「試験前の一夜漬け」「雪山遭難」「井戸堀り」の例を使って、説明していきます。繰り返しますが、最適化アルゴリズムを軽々しく「AI」という言葉で片付けたくはないんですよ、本当は。

Share
Tweet
LINE
Hatena

滑降シンプレックス法を、井戸堀で考えてみる

 ここからは後半になります。この連載の後半は、「私の身の回りの出来事」を使った、「数式ゼロ」のAI解説になります。

 本日は、前半に引き続き「最適化アルゴリズム」の1つである「滑降シンプレックス法」についてお話したいと思います。

 私は、エージェントを作るときには「ファジィ推論」、パラメータを抽出する時は「遺伝的アルゴリズム(GA)」を使って、ちゃっちゃと実装してしまうのですが、この他にも、「滑降シンプレックス法」も、よく使います。

 そこで、今回は、最適な井戸を掘る場所を発見する手法をイメージして、この「滑降シンプレックス法」の使い方をご紹介します。

 実は私、最近町内会で発行している会報の記事を担当することになり、現在、「地震発生時のシミュレーション」のシリーズを執筆中です。

 それで今回、市役所や関係者にインタビューを行った上で、机上シミュレーションをやってみたのですが、正直、青冷めました。まあ、ここでは詳しく述べませんが、「苦痛の中で死んでいきたくなかったら、ちゃんと被災時の準備をしておけ」とだけ申し上げます。

 特に、飲料水の確保が相当に厳しいことになることが分かり、今後は新しい井戸の開発が必要になると考えました。しかし井戸を掘ることは、結構難しいのです。良い水源を見つけなければならないからです。

 そこで、現存している井戸と、試掘をベースに、水源を見つける戦略アルゴリズムとして、「滑降シンプレックス法」を適用するケースを、想定してみました。

 上図のように、現状、町内には3つの井戸があるものと仮定します。そして、町内には、いくつかの貯水量を確保できる場所があるのですが、当然、これは私たちには分かりません(神サマだけが知っている)。

 私たちは実際に井戸を掘る前に、簡単な試掘を行えることとします。この問題の目的は、試掘の回数を少なくして、貯水量の大きな水源のある場所を発見することにあります。

 滑降シンプレックス法は、現在ある情報を使って、次の4方向で試掘するものです。

 初期の3つの井戸の情報をベースに、このシンプレックスを繰り返していきます。この4パターンによって、ローカルでの探索(局所探索)と、ローカルミニマムの回避を同時に実施します。

 今回のケースでは、試掘を繰り返しながら、成績の良い3点で三角形を何度も作り直して、最も良い解の水源を探し続けていくことになります。

 私が、この滑降シンプレックス法を気に入っているのは、ベクトルとか解曲面の微分とかの計算をする必要が一切全くなく、単に良い値が発見できたら、そこに三角形の頂点を動かすだけ、という「単純さ」にあります。

 もちろん、この手法でも、ローカルミニマムの問題からは逃げられませんが、それでも、時間をかけずに、簡単に、そこそこの最適解が欲しい時には、この方法は本当においしいのです。

 前述した通り、最新のAI技術は、大量のメモリやディスク、そして超高速のCPUやGPUなどが必要です。

 しかし、そういうものが存在しなかった時代(パソコンすら存在しなかったころ)の「最適化アルゴリズム」は、シンプルな上に、美しく、短いコードでバグが入り込む可能性も小さく、何より、少ない繰り返し数で、解答に至ることができて ―― 私は、大好きなのです。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る