IPSJ情報処理カタログ #ジョーショリ

用語集

最適化

さいてきかOptimization

概 要

もっとも効率よくすることを指す用語。たとえば、計算のやり方を工夫して、さらに短い時間で計算できるようにする、使用する記憶領域(メモリやディスク)を少なくするように工夫するなど。

また、理想的な結果が出るような組み合わせを求めること。たとえば機械学習などにおいて用いる計算式に当てはまるパラメータを、どのように設定すると、もっとも誤差が小さくなるかを求めなければならないことがある。そうしたときも、最適化という用語が使われる。

解 説

ここでは処理時間を短くしたり記憶領域を少なくしたりする最適化ではなく、理想的な結果が出るような組み合わせを求めるという意味での最適化について説明します。

組み合わせのうち、もっとも適したものを求めるには、実際に組み合わせてみて、その結果が理想的なものを確認すれば実現できます。現実的な話では、こうした組み合わせに、いくつかの制限があることがほとんどです。

「手持ちのカードから5枚のカードを選んで敵と戦う」というカードゲームが人気です。それぞれのカードは「HP(ヒットポイント)」や「MP(マジックポイント)」のほか、「この属性は別の属性に強い・弱い」など、いくつかの性質があり、敵のカードの性質を考えて、どの組み合わせが最強なのかを考えなければなりません。

「数学の組み合わせ」を知っている人ならわかりますが、仮に自分が100枚のカードを持っているのなら、100C5=(100×99×98×97×96)÷(5×4×3×2×1)=75,287,520通りの組み合わせがあります。現在のコンピュータなら、このぐらいの組み合わせをすべて試すことは可能ですが、これが1万枚のカードとなると、すべて試すと、とてつもない時間がかかってしまいます。

そこでコンピュータのやり方では、「ありえない(最適化条件を満たさないもの)」をあらかじめ除外するとか「値が大きなものから順に試していき、小さなものを省く」「組み合わせの式の微分を求めて、その勾配を比較しながら求める方法」など、さまざまな方法が考えられています。

どの方法が適するのかは、求める関係が、「直線的であるかないか」「二次式や三次式など多次元の式の関係であるか」など、どのような性質を持っているかによります。

たとえば人工知能を実現する手法のひとつである機械学習では、たくさんのサンプル値(学習対象のデータ)があるとき、それらの関係を式にして、その式のパラメータ(係数)を求めます。そしてそうして求めた式を、「未知の値」に当てはめることで、結果を出します。こうしたパラメータを求めるのにも、最適化法が使われています。

物理や化学の実験などで、実験値から、それに近いグラフを描くことがありますが、こうした近似的なグラフを求める処理と似たような処理(しかも次元が多くてとても複雑なもの)を、最適化の処理では行っていると考えるとわかりやすいでしょう。

実現できること

  • ・手持ちのカードから最強のデッキを自動で作る
  • ・アルバイトの「予定の空き状況」や「はじめて間もない人は経験者と一緒でなければならない」「この人とこの人は仲が悪いから一緒の時間にできない」などのいくつかの条件から、自動でシフト表を作る
  • ・機械学習の基礎

将来の展開

最適化が高速にできるようになれば、機械学習などにかかる時間の短縮や利用する記憶容量の削減が見込めます。そうなれば、いまよりもたくさんのデータを機械学習の対象とできるため、精度の向上を期待できます。

PAGE TOP