コース: AI 入門

大量で複雑なデータを処理する

コース: AI 入門

大量で複雑なデータを処理する

アプリケーションの開発には、 事細かな指示文を幾通りも 定義しておくことが必要になります。 業務用ソフトもスマホアプリも、 あらゆる種類の入力に対応する出力を プログラミングしなければ 機能しないからです。 しかし、AI にこのような プログラミングは通用しません。 考えられる入力と出力の組み合わせが 多すぎるからです。 そこでは、機械学習が可能で、 フィードバックにも 対応できるような プログラミングモデルが必要となります。 迷惑メール検出プログラムを 作るとしましょう。 不要な広告やウイルスなどを 送りつけてくるメッセージの検出です。 比較的簡単に作れるのは、 よくある単語をフィルタリングし て削除するプログラムです。 金賞、抽選、当選、といった単語が入った 迷惑メールが多く見られる状況なら、 メッセージに「金賞」の文字列があれば メッセージを迷惑メールとして扱う、 などと書いていけばいいのです。 でも、この方法では複雑な課題に 十分対応できません。 機械学習では、この発想を根本から 転換して、機械には指示の代わりに データを入力します。 出力をプログラミングするのではなく、 機械がパターンを認識して 学習できるようにするのです。 まず教師あり学習で考えてみます。 最初に、全データを訓練データと テストデータに分けます。 訓練データは、データの一部を 学習用に取り分けたものです。 学習に用いる機械学習アルゴリズムは、 統計的な手法でデータを解析します。 このアルゴリズムの種類については 後述します。 アルゴリズムは、 最初に訓練データを調べます。 例えば、「幸運、当選、おめでとう、 などの文字列が含まれていると、 迷惑メールである確率が 50%上がる」 という関連性が わかったとします。 システムはこれを使って、 さらに規模が大きいテストデータを 見ていきます。 テストデータは、訓練データの何倍もの 大きさがあるのが普通です。 迷惑メールの例で、 具体的に見てみましょう。 すべてのメールから、訓練データとして 1万通を分けておき、 これを使ってモデルを構築します。 訓練データには、普通のメールが9千通と、 迷惑メールとしてラベリングされたものが 1千通含まれています。 さらに、訓練データ以外のメールから、 100 万通をテストデータとして用意します。 このテストデータには、 迷惑メールかどうかを人が調べて ラベリングする処理を行っていません。 100 万通ともなると、 簡単に調べられるものでもありません。 訓練データを 機械学習アルゴリズムにかけて、 迷惑メールの検出モデルを 構築します。 訓練データでまずまずの予測が できるようになったら、 次にテストデータを使って検証します。 満足のいく結果が出れば、 それがデータモデルとなります。 この機械学習アルゴリズムは、 迷惑メールと普通のメールという 2つのカテゴリーにメールを 分類するものです。 このようなタスクは、 2項分類問題と呼ばれています。 すべてのメールを2つのどちらかに 分類するというもので、 機械学習では非常に 一般的な活用法の1つです。 機械学習アルゴリズムは、 データのパターンを統計的に 判定しています。 アルゴリズムが認識した パターンに基づいて、 ほかのデータの分類を行うのです。

目次