現在の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

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

 しかし、このように判断の基準を決めるにあたって人間が介在した場合は機械学習とはいいません。「機械学習モデルである」と言うためには、人間はモデルにデータを与えるだけにとどめ、上のプログラムで実装されているような条件判断の基準はモデルが自分で見つけ出す必要があるのです。これが先ほどの原則2の「学習により規定される」という条件の意味になります。

機械学習の3つの方法

 機械学習モデルに必須の学習ですが、具体的な方法として3つあります。

教師あり学習
 学習データが、モデルに対する入力データとその時のあるべき出力である正解データ(教師データともいいます)のセットになっている学習法です。

教師なし学習
 正解データなしに、学習データのみが与えられ、そこからなんらかの出力を得る学習法です。対象データのみの情報からデータのグループ分けを自動的に行うクラスタリングが教師なし学習の代表的なものです。

強化学習
 教師あり学習と教師なし学習の中間の学習法です。システムは観測値を入力として「方策」と呼ばれる行動方針を出力とし、外部にはたらきかけます。出力する段階で正解はわからないのですが、しばらく経過した後で報酬という形でそれが正解かどうかがわかります。

 この3つの学習法のうち教師あり学習が、仕組みが最も単純でわかりやすいモデルとなります。

 教師あり学習のモデルの出力値には、例えば店の1日の売り上げ予測のような数値を出力とするモデルと、写真に写っている動物の種類のような離散値(「クラス」あるいは「ラベル」とも呼びます)を出力とするモデルがあります。前者を回帰モデル、後者を分類モデルと呼んで区別します。

回帰モデルと分類モデル
[画像のクリックで拡大表示]

 教師あり学習は、学習フェーズと予測フェーズの2つからなります。

 学習フェーズとは、下図のように入力データと正解データ(教師データ)からなる学習データが与えられていて、それを基にできるだけ精緻な(予測結果が正解データに近い)モデルを作るフェーズです。

学習フェーズ
[画像のクリックで拡大表示]

 予測フェーズでは、正解データはわからず入力データだけが存在します。機械学習モデルは入力データから正解データはなんであるかを予測し、システムの出力とします。

予測フェーズ
[画像のクリックで拡大表示]

 ここまでで説明した機械学習モデルの定義は、その内部実装には一切触れておらず、いわばブラックボックスとしての機械学習モデルの外部的な振る舞いに関するものでした。ここで定義した機能を実現する方法には様々なものがあります。例えば決定木と呼ばれる分類モデルは、データを観察してif then elseのルールを自動的に作り出すという、人間の考えに近い仕組みのモデルとなっています。

 しかし、これから取りあげるモデルでは、全く別のアプローチをします。ある構造とパラメーターを持った数値計算をする関数を用意し、これを機械学習モデルそのものとします。そして、この関数の持つパラメーター値をうまく調整することで、目的とするような値を出力するモデル(つまり、関数)を作るというアプローチです。

 この様子を下図に示しました。

損失関数を利用した学習アプローチ
[画像のクリックで拡大表示]

 「損失関数」は、モデルの予測値と正解値(正解データ)がどの程度近いかを示す指標となる関数です。すべての学習データに対してyp=yt(予測値=正解値)の場合、値はゼロとなり、2つの値の差が大きいほど、関数の値も大きくなるような性質を持っています。

 「勾配降下法」は、損失関数を最小とするような最適なモデルのパラメーターを見つけるためのアルゴリズムの名前です。

 機械学習をマスターするには、この「損失関数」と「勾配降下法」の考え方を理解することが重要なのです。損失関数と勾配降下法がどんなものかは、次回詳しく解説します。

▼1
隔離した部屋にあるコンピューターのシステムと人間が会話して、会話の相手がコンピューターか人間かどうか判別できなければ、そのシステムは「人工知能である」と定義しました。
▼2
ルールベースシステムの中で歴史的に最も有名なのは1970年代に開発されたMYCINというシステムです。これは500程度のルールからなる知識ベースを用いて患者の血液疾患を判定し、抗生物質を処方するシステムです。診断の正確さは65%程度で、専門医でない一般の医者の診断より精度が高いといわれています。
出典:「最短コースでわかる ディープラーニングの数学」(日経BP)
記事は執筆時の情報に基づいており、現在では異なる場合があります。