PINTO!株式会社PLAN-Bの情報発信メディア

2017.06.22

粟田 順也

DMP/AI

話題の人工知能技術|導入編として ”機械学習” から解説

目次
    1. 機械学習とは?
    2. 機械学習を使う意味
    3. 機械学習の種類
      1. 教師あり学習
      2. 教師なし学習
    4. まとめ

「最近話題の『機械学習』ってどういうものなんだろうか?」「『人工知能』とどう違うの?」

弊社開発のアクセス解析DMP『Juicer』でも使われている、『機械学習』

色々と耳にすることはあるけど、なんだか難しそうで手を出せない、という方も多いのでは無いかと思います。今回は世間に溢れるそのような疑問を解決するために、『機械学習』について大枠を説明していきます。


機械学習とは?

平たく言うと、機械学習とは『人工知能と呼ばれるものの一部分』です。ですので機械学習というものを説明する上で、人工知能という言葉は欠かせません。

では、人工知能とはなんでしょうか?人工知能には、大きく分けて以下の2つの考え方があります。

1つ目は『汎用型人工知能』と呼ばれており、『人間のように振る舞い、行動し、(考える)ことの出来る機械』を指しています。鉄腕アトムや、スターウォーズのC3POなどをイメージすると分かりやすいかと思います。世間の人々が考えている人工知能は、どちらかと言うとこちらではないでしょうか。

それに対してもう1つは、『特化型人工知能』と呼ばれており、『人間が行っている作業や業務を自動化する機能』を意味します。例えば、鉄腕アトムがお茶の水博士を認識する時は、『画像を自動で認識する』という機能が必要になってきます。このように、汎用型人工知能を実現するための要素技術が『特化型人工知能』と言えます。

画像認識を例に出したように、『機械学習』は『特化型人工知能』に属します。

機械学習として、画像認識以外では迷惑メールフィルタなどが有名ですが、迷惑メールフィルタも元を辿れば、「あからさまに必要のないメールを削除する」という人間が行っていた作業を自動化したものです。

人口知能の分類


機械学習を使う意味

機械学習は万能ではありません。あくまで人間が行っている作業を自動化したものなので、人間がやったほうがいいことも多いです。例えば画像認識。

「その写真が人物像であるかどうか」ということを人が目で判断すると、かなり特殊な場合を除いて間違えることではありません。ですが、機械が判定するとなるとそうはいきません。

人間だと当たり前にできてしまうことでも、機械にとってはただの色の集合、もっと言うと数字の集合としか認識できないため、間違えてしまうことも大いにありえることなのです。

人間と機械の画像認識の違い

では何故機械でしようとするのか。

その理由は至極単純で、「膨大な量のデータでも、疲れることなく自動で素早く行ってくれるから」です。

数百枚~数千枚程度の画像ならなんとか人間でも、全部見て1つ1つを判別することができます。かなりしんどいですが。しかし、数万枚やそれ以上の量となると、人手で行うのは実質不可能だと思います。

そういう時に、一切疲れることなく大量の処理を行ってくれる機械学習が非常に役に立つ、というわけです。

人間と機械の処理速度の違い

その他にも、データを偏見なく純粋に数字として見るため、人間では気づきにくい何かを気づかせてくれたりもします。『機械学習』という単語だけで「何でもできそう」という幻想は抱かず、良いところ悪いところを十分理解した上で、人が出来ないことを上手に機械学習を利用して解決していくということが必要です。


機械学習の種類

機械学習には種類があります。

よく知られているのは、『教師あり学習』と『教師なし学習』です。その他にも『半教師あり学習』や『強化学習』などが存在しますが、世間で言われている機械学習の多くは、初めの2種類、特に『教師あり学習』だと思って問題ないと思います。


教師あり学習

教師あり学習は、その名の通り教師がいる学習です。

大体の場合、教師は人間です。機械に対して人間が、

「これが正解で、これが間違い、・・・」

「この画像はりんごで、こっちの画像はみかん、・・・」

と教えてあげることで、答えの分からないデータに対しても何らかの答えを推測できるようになります。これが教師あり学習です。

教師あり学習

教師あり学習の中でも種類に分けられ、求める答えが数値である『回帰』と、求める答えがラベルである『分類』の2つがあります。


教師なし学習

それに対して教師なし学習とは、答えが与えられていないデータから何かしらの法則を見つける、といったものです。

前述の、データを偏見なく純粋に数字として見るため、人間では気づきにくい何かを気づかせてくれる、というのは教師なし学習にあたります。

教師なし学習

このように近いものを1つの集合とみなすのが、『教師なし学習』です。

教師あり学習と違って、「これがAだ、Bだ」というような答えは与えられておらず、分けられたデータを見て人間がラベルをつけます。

人間が想定する分け方にしてくれるとは限らないですし、そもそもその集合を表すラベルをつけることが出来ない場合も存在します。

『教師なし学習』は、何らかの基準で『似たもの』を集める技術と言えます。


まとめ

以上が機械学習の大枠の説明となります。大体どんなことをしているかという雰囲気は掴んでいただけたのではないかと思います。

機械学習というと、

「すごい計算式を使ってすごいプログラムを組んで・・・」

というイメージがあると思います。そのイメージが完全に間違っているというわけではないですが、難しい計算式などは既に先人の知恵としてパッケージ化されているものが多いため、理論を知らなくても簡単に使えるようになっています。

例えばpythonではscikit-learnというパッケージを使うと、機械学習部分のコードはたった数行で書くことができます。

また、Azure MachineLearningなどを使えば、そもそもプログラミング言語を書く必要すらなくAPIの実装まで可能となっています。

これを機に、最近話題の『機械学習』に手を出してみてはいかがでしょうか?