「機械学習っていったい何を学習しているの?」と質問されることがよくあります。その疑問に答えるべく、今回からは数回にわたって機械学習の概要を説明したいと思います。まず今回は、前半で機械学習を使うメリットについてお話し、後半からは具体的な手法の説明に入っていきます。
機械学習のメリット
機械学習とは何か、という質問に一言で回答するならば「データからパターンやルールを自動で抽出する技術」だと言えるでしょう。
機械学習が使われている身近な例としては、メーラーの迷惑メール判定(スパム判定)が挙げられます。迷惑メールが自動で「迷惑メール」フォルダに振り分けられる機能を使っている方は多いでしょう。大事なメールが「迷惑メール」フォルダに入ってしまい気づかなかった、なんて経験をしたことがある方もいるかもしれません。この「届いたメールが迷惑メールかどうかを判定する」ための技術として、機械学習が使われているケースが多いのです。
なぜ迷惑メールの判定に機械学習が用いられるのでしょうか。
メールの分類を、全て人手で行うことを想像してみてください。数通ならともかく、数千通、数万通と大量のメールが届いている場合、全て手作業で分類するには時間がかかりすぎ、あまり現実的ではありません。コンピュータで判定するメリットの1つは、こうした状況に強いこと、すなわち大量のデータを高速に処理できるという点にあります。
また、人は疲労によって判断が鈍ってしまうことがあります。あまりにも疲れると、ルールを逸脱し、適当に判定するようになるかもしれません。しかし、コンピュータは疲れ知らずの存在です。常に一定の判定基準に基づいて、一貫した判断を下すことができます。もちろんコンピュータが自動で判定するので間違いもありますが、あらかじめ精度を確認し、実用に耐え得るかどうかを判断しておけば良いでしょう。
「それなら機械学習なんか使わなくても、人が作ったルールに従ってコンピュータに判定させるだけで良いのでは?」と思った方がいるかもしれません。その発想は間違っていません。ただし、人が完璧なルールを記述できるのであれば、という条件付きです。
では試しに、迷惑メールを分類するためのルールを考えてみましょう。
- アドレス帳に登録されていないアドレスからのメールは迷惑メールである
- 本文に「http://」が入っていたら迷惑メールである
- 本文に「当選しました」という文言が含まれていたら迷惑メールである
さまざまなルールが思い浮かびます。しかし、それらのルールで本当に迷惑メールをうまく分類できるでしょうか。いくらルールを追加しても、正しい判定ができないケースが思い浮かんだのではないでしょうか。
機械学習を用いる最大の利点は、まさにこの問題を解決できることにあります。すなわち機械学習を用いれば、人が処理できないような複雑かつ大量のデータからルールやパターンを抽出し、分類したり予測したりできるのです。時には、人では見つけられないデータの深層に潜むルールを発見することもあります。
もう1つ、機械学習のメリットとして挙げておきたいのはメンテナンスの容易さです。ここで言うメンテナンスとは、例えば、既存のルールでは判定できない新しい迷惑メールが現れたときに、そのメールを迷惑メールだと判定するルールを追加することを指します。人手でルールを作成している場合、既にルールが複雑かつ膨大になっていることが多いため、「どこにどういうルールを追加したら良いのかわからない」というケースが少なくありません。
一方、機械学習におけるルールの抽出は入力されたデータに基づいて自動で行われます。そのため、これまでのデータに新しい迷惑メールの情報を追加し、同じ学習を再度実施するだけで、新たなルールを適切に構築することができるのです。
機械学習の3つの手法
機械学習にはさまざまな方法がありますが、特にメジャーなものとして、「教師あり学習」「教師なし学習」「強化学習」と呼ばれる3つの手法があります。
まずは、教師あり学習についてお話しましょう。
教師あり学習は機械学習において最もメジャーで、使用される頻度の高い方法です。一言で言えば、「あらかじめ正解データを与え、そこからルールやパターンを自動で学習させる方法」です。あらかじめ与える正解データのことを「教師データ」と呼び、コンピュータはこの教師データからルールやパターンを学習します。
ではここで、「パンの名前を入力すると飲み物の名前を出力するコンピュータ」を作ることを考えてみましょう。手元には、「正しい組み合わせ」として以下のような正解データがあるとします。
- あんパン → 牛乳
- クリームパン、あんパン → 牛乳
- クリームパン → コーヒー
- メロンパン、ソーセージパン → コーヒー
- ジャムパン、あんパン → 牛乳
- ジャムパン、メロンパン → コーヒー
機械学習を使わずに実現する場合は、この正解データを基に、次のようなルールを書けば良いでしょう。
もし「あんパン」ならば「牛乳」
もし「クリームパン」と「あんパン」ならば「牛乳」
もし「クリームパン」ならば「コーヒー」
もし「メロンパン」と「ソーセージパン」ならば「コーヒー」
もし「ジャムパン」と「あんパン」ならば「牛乳」
もし「ジャムパン」と「メロンパン」ならば「コーヒー」
これにより、例えば「クリームパン」と「あんパン」が入力された場合は、ルールに従って「牛乳」が出力されます。しかし、「ソーセージパン」と「あんパン」が入力された場合はどうでしょうか。ルールにはその組み合わせが存在しないため、何も出力することができません。このコンピュータを汎用的に使えるものにするには、正解データだけでなく、未知の入力データにも対応できるようにする必要があります。
次回は、このコンピュータを教師あり学習で実現する方法についてお話します。
著者紹介
![]() |
国立研究開発法人 情報通信研究機構
ユニバーサルコミュニケーション研究所
データ駆動知能システム研究センター 専門研究員
大西可奈子
2012年お茶の水女子大学大学院博士後期課程修了。
博士(理学)。同年、大手通信会社に入社。2016年より現職。
一貫して自然言語処理、特に対話に関する研究開発に従事。
人工知能(主に対話技術)に関する講演や記事執筆も行う。
twitter:@WHotChocolate