機械学習は万能か
この疑問に答えるために、別の例としてマルウェアの特定について考えてみよう。KasperskyのAlexey Malanov氏が説明しているとおり、かつてマルウェアの特定には、比較的単純なアルゴリズムやルールが用いられていた。しかしいつの間にか、検索する必要がある空間(特定すべき潜在的マルウェアの数など)があまりにも大きくなり、拡大速度も速くなりすぎてしまったため、その空間を完全に網羅したルールを考案し、最新の状態に保つことが難しくなった。ここに登場してきたのが機械学習だ。

機械学習には、何か魔法的な要素が関わっているのだろうか。
Malanov氏は機械学習が同じ作業(つまりマルウェアの特定)をより効率的に行うために使えることを説明している。その仕組みの本質は、特定の指標(この場合は、文字シーケンスの頻度)とアルゴリズムを訓練するために吟味されたデータセットに基づいて生成された、ヒューリスティック(発見的)なルールを実装したアルゴリズムだ。プロセスは異なっているし、かなり多くの説明を理解する必要があるものの、最終的な結果は基本的に同じだ。入力に対して、マルウェアかどうかという真か偽の答えを返す能力を得ることができる。
では、カーナビとマルウェアの特定はどこが違うのだろうか。この2つの例には、ある程度共通点もある。大きな検索空間を持つこと、そしてその空間全体をカバーするアルゴリズムを考案することが困難であることだ。Malanov氏の例が示しているのは、機械学習のアルゴリズムが、入力を真か偽のどちらかに分類する関数としてどう機能するかということだ。同じ原則は、A地点からB地点までの経路を選択するというような、真か偽かでは表せない出力にも拡張できる。
経路の選択は、実際には最適化の問題だ。A地点からB地点にたどり着くための最適な解は、2地点を結ぶ直線をたどることだと言える。しかし実際には、A地点からB地点まで遮るものがなくアクセス可能な経路は限られている。この問題を解決するアプローチの1つは、車を運転する際に何が可能で、何が不可能かを定義する一連のルールをコード化し、このルールとカーナビのデータベースを組み合わせて使用することで、目的地に到達する最善の経路を見つけ出すことだろう。
機械学習を用いて同じ問題にアプローチするとすれば、A地点からB地点まで行くのに使われてきた経路のデータを入手して、アルゴリズムをトレーニングすることになるだろう。この場合、同じルートに対して多くの選択肢が存在する可能性があるため、単に「イエス」か「ノー」かを答えるだけでは十分ではない。しかし、同じ原則は入力を2つ以上の出力グループに分類する問題にも適用できる。このような問題は、機械学習の分野では多クラス分類と呼ばれている。例えば単純に、可能性のある経路を「不可能」「悪い」「良い」「最適」に分類することも考えられるだろう。