現在のAI(人工知能)ブームを支える機械学習。機械学習のスキルを身につけたいけれど、一から学ぶのはハードルが高そうで躊躇(ちゅうちょ)している――。そんなエンジニアは少なくないでしょう。

 機械学習を理解する上でカギとなるのが、数学です。難しそうに感じるかもしれませんが、機械学習に必要な数学は限られています。それをマスターすることは、機械学習エンジニアになるための最短コースといえます。

 本特集では、なぜ機械学習で数学が必要なのかを、高校1年生レベルの数学を使って説明します。今回は、そもそも機械学習とはどんなものかを解説します。

条件判断の基準を人間が決めない

 AIと機械学習。どちらもよく聞く言葉ですが、それぞれの定義について聞かれて、さっと答えられるでしょうか。

 人工知能に関しては、一般的に明確で厳密な定義はまだないというのが筆者の認識です。「人工知能とは何か」という問いに対して、1950年に「チューリングテスト▼1」を考案したアラン・チューリングの時代から様々な議論があります。実装方式としても「ルールベースシステム▼2」と呼ばれる、知識データベースから演繹により回答を見つける方式も含まれています。人工知能という言葉が指し示す範囲は極めて広いと言わざるを得ません。

 これに対して機械学習はその指し示す内容、振る舞いが明確で、ある程度厳密な定義が可能です。そこで本特集では、これ以降「人工知能」という言葉は原則として使わず、「機械学習」と表現することにします。

 では、「機械学習」とはどのようなものなのでしょうか?機械学習が指し示すものは明確なのですが、説明の仕方は人によってまちまちな点があります。認識にずれのないよう、以下に筆者の考えによる機械学習の定義を簡単に説明します。

原則1:機械学習モデルとは入力データに対して出力データを返す関数のような働きを持ったモデルである。

原則2:機械学習モデルの振る舞いは、学習により規定される。

 具体例で説明します。

 以下の表を見てください。これはIris Data Setという、アヤメの花びらの大きさを題材にした、機械学習でよく利用される公開データセットの中から、特定の行、列を抽出したものです。classは、その花がどの種類に属しているかを示しています。lengthは花弁の長さを、widthは花弁の幅を表します。

2種類のアヤメの花びらの大きさ
[画像のクリックで拡大表示]

 ここで、lengthとwidthの値を入力データとして、分類クラスclassを出力とするようなモデルを作ることを考えます。対象をこの表の6つのデータだけとするなら、人間がこのデータを観察して、


if width > 1
then class = 1
else class = 0

みたいなロジックを実装すれば、正しい振る舞いをするブラックボックスを作れそうです。