機械学習理論研究室
← AI体験の一覧
朝、コンビニの配送トラックが営業所を出ます。全部の店に1回ずつ荷物を置いて、また営業所へ戻ります。どの順で回れば走る距離がいちばん短いでしょうか。店が20軒あると、回り方は6京通りあります。全部を試すことはできません。それでも、ほとんど最短の順番なら一瞬で作れます。
地図の上に営業所が1つと、店がいくつかあります。トラックは営業所を出て、すべての店を1回ずつ通り、営業所に戻ります。回る順番を変えれば走る距離も変わります。いちばん短い順番を見つけるには、すべての順番を書き出して距離を測り、いちばん短いものを選べば確実です。実際にやってみます。
地点が n 個あるとき、回り方は (n−1)! ÷ 2 通りです。営業所をどこから出るかは決まっているので (n−1)!、時計回りと反時計回りは走る距離が同じなので ÷2 です。この数が、地点を1つ増やすたびにどう変わるかを見てください。
| 地点の数 | 回り方の数 | 1秒に1億通り調べたときの時間 |
|---|
全部を試すのは無理でした。そこで、全部は調べずに短い順番を作るやり方を3つ試します。どれも「いちばん短い」と言い切ることはできません。それでも、かなり短い順番が一瞬で手に入ります。
近いところから順に回る。 いまいる場所からいちばん近い、まだ行っていない店へ進む。これをくり返すだけです。一瞬で経路ができて、適当な順よりずっと短くなります。ただし、近い店を先に拾ってしまうので、遠くに取り残された店が最後に1軒残り、そこまで長い一本道を走るはめになります。目先の得だけで選ぶこのやり方を貪欲法といいます。
交差をほどく。 経路のどこかが×の形に交わっていたら、その2本を別のつなぎ方に替えると必ず短くなります。短くなるつなぎ替えがある間はそれをくり返し、どこを替えても短くならなくなったら止まります。2本の辺を選び直すので2-optという名前がついています。
焼きなまし法。 交差をほどくやり方は、短くなる手しか選びません。そのせいで、少し遠回りしてからでないと届かない、もっと短い順番を見逃します。そこで、ときどきわざと長くなる手も受け入れます。受け入れやすさを決める数を温度と呼び、最初は高くしておいて、だんだん下げていきます。熱した金属をゆっくり冷ますと内部のひずみが取れる、その冷まし方から名前をとって焼きなまし法といいます。
どれも、すべてを調べたわけではないので「これが最短だ」とは言えません。答えが最短だと保証しないかわりに一瞬で答えを出す、こういうやり方を近似解法といいます。
店の配置を自分で決めてみてください。地図の好きなところを押すと店が増えます。近いところから順に回るやり方が損をする配置、交差をほどいても短くならない配置を、自分の手で作れます。
「別の出発点から20回やり直す」を押すと、バラバラの順番から始めて交差をほどく作業を20回くり返します。出てくる距離は毎回同じではありません。交差をほどく作業は、どこを2本つなぎ替えても短くならないところで止まります。止まった以上そこから先へは進めませんが、その場所が全体でいちばん短い順番だとは限らないのです。周りを見渡すかぎり自分がいちばん低い、でも山を1つ越えた先にもっと低い谷がある。この止まり方を局所最適といいます。
焼きなまし法が、ときどきわざと長くなる手を受け入れるのはこのためです。いったん損をして山を越えないと、隣の谷には行けません。
全部試す = 必ず最短・現実には終わらない / 近似解法 = 最短の保証なし・一瞬で終わる
この2つのどちらを取るかが、実際に物を運ぶ現場での判断です。配送トラックの回る順番、ゴミ収集車のコース、プリント基板に穴をあける順番、旅行で名所を回る順番。どれも同じ形の問題で、どこでも「最短だと証明された順番」ではなく「十分に短い順番」が使われています。
そしてAIの学習も、まったく同じことをしています。 データに合う答えは無数にあり、その全部を調べることはできません。だから少しずつ良くなる方向へ動かして、これ以上良くならないところで止めます。訓練データに完璧に合わせると、かえって次のデータを外してしまう。完璧な答えを探すこと自体が目的ではない、というのはその裏側です。勝ち負けの記録から少しずつ強くなっていくAIも、山を降りていく途中の姿です。
同じ意思決定シリーズでも、パンを何個焼くか、レジを何台置くかは、答えが式で一発で出ました。こちらは式では出ません。答えが求まる問題と、求まらない問題がある。機械学習理論研究室では、求まらない問題に対して「どこまで良い答えなら保証できるか」を数学で調べています。