ざっくり機械学習

データサイエンス

こんにちは。前回、ベイズの定理を取り上げましたが、数学を深めたいのではなく仕組みを知るためのツールとして取り上げた話題になります。近年、話題になっている機械学習の概要で、しかも大まかに確認していきたいと思います。「木を見て森を見ず」という言葉がありますが、その正反対の「森を見て木を見ず」という感じで全体像をつかみたいと思います。

人工知能???

突然ですが、私、「人工知能」という言葉が苦手です。「知能を人が作るとは畏れ多い」という大それた理由ではありません。「人工知能」の話をしている人が、どのようなものをイメージしているか、ちゃんと話を聞かないとわからないからです。言い換えると、それぞれの人が、それぞれのイメージで「人工知能」を語っていると思っているからです。

ロボットに話しかけた時に、単なる条件分岐で会話しているように見えるものをイメージしている人もいます。自動制御で動いているものをイメージしている人もいます。また、単なるフィードバック制御のようなものをイメージしている人もいます。自律的にデータを取得して、新たなアウトプットに結び付けているようなものをイメージしている人もいます。人に代わって、何でもできると思っている人もいます。

人によって様々なイメージがあるのに、一言で「人工知能」と表現してしまうことに、とても抵抗を感じます。「機械学習」と表現すれば、ある程度の範囲内に限定されます。それでも、まだ機械学習といわれるものには種類があるので、今回はざっくりと機械学習の種類を整理したいと思います。

機械学習の種類

機械学習の種類についても、調べればいろいろなものが見つかります。比較的容易に見つけられるものとして、「回帰」・「分類」・「クラスタリング」があります。さらに「強化学習」・「相関分析」といった言葉も検索できます。取りあえず、「回帰」・「分類」・「クラスタリング」・「強化学習」のイメージができる程度の整理をします。(なんていっても、ざっくり把握しようという整理です。厳密な話は、それぞれのキーワードで検索してください。すみません。)

回帰

不慣れな土地に行ってホテルに泊まろうと車を走らせると、チェックイン予定時間に間に合わないことがあります。そのような時に、ホテルに電話して「遅れます」というと、ホテルのフロントの人が「今、どのあたりにいますか?」と聞いてくることがあります。大体の場所を言うと、「あと30分くらいで来れますね」と返してくれたりします。

これは、ホテルのフロントの人が、ホテルからの距離と到着時間との関係を、経験に基づいて予測しているものです。ちゃんと到着時間を測ったことがない場所についても、「○市と△市の間で、△市寄りだから・・・」のような推測もしているでしょう。グラフにすると次のようなイメージです。横軸がホテルからの距離、縦軸が到着までの時間として、2つの量の関係を考えているといえるでしょう。このような予測が、回帰のイメージになります。(必ずしも直線にするとは限りませんが、イメージのしやすさを優先しています。)

分類

私たちは人や物、言葉などを区別して行動しています。例えば、「えいりな刃物」と「えいり企業」、「質問にかいとうする」と「ファイルをかいとうする」というような漢字テストでは、文字の使い分けをしています。顔を見て個人を区別しています。知っている人ならば、はじめて見る表情でもちゃんと誰だか分類することができます。レストランでフォークやスプーンを使うときも、大きさや形で用途を分類しています。

また、工業製品の検査の段階で、傷があって出荷に適していないものを除外するというのも分類になります。製品の画像をカメラで撮影し、その画像から「出荷できる」か「出荷できない」かを分類しているためです。

分類のアルゴリズムは、「k近傍法」とか「サポートベクターマシン」とか「単純ベイズ分類器」とか様々なものがあります。教師あり学習といわれるものは、分類しているものが多くあります。アルゴリズムが多いので、別途取り上げたいと思います。

クラスタリング

個別に多数のものを把握しようとすると難しいですね。なんとなく似た者同士でまとめてしまって、全体像をつかみたいですね。その感覚が、正にクラスタリングです。機械学習では、教師なし学習で扱われています。下の図では3つのクラスタ(集団)に分けられそうですね。近いもの同士をまとめて、どのクラスタに属するか判定しようというものです。

強化学習

よくゲン担ぎで、勝負の時には決まって同じ行動をする人がいますよね。「赤い服を着て外出するといいことがある」と思っている人が、本当にいいことがあると、次も赤い服を着て出かけたくなりますね。

また、その逆で嫌なことは避けたいですね。冬になると、自動車のドアを不用意に触ると「パチッ!」と静電気が飛び、痛いですね。そうすると、手から静電気が飛ばないように、鍵と車体との間に静電気を飛ばして痛くないようにしますね。行動心理学では「オペラント条件付け」といわれています。これと似たようなアルゴリズムがあります。

例えば、ロボットがブランコを漕げるようにするときに、ある動きをしたら振れ幅が大きくなったら同じ動きを繰り返したり、逆にある動きをしたら振れ幅が小さくなったらその動きをしないようにしたりするというようなものは、その一種といえるでしょう。

まとめ

今回は、数式を使わないでまとめてみました。そのため、アルゴリズムはほとんど説明がありません。ここまでの話だと、コンピュータの動きも人間味があって面白そうですね。しかし、人間と違うのはこれらの動きをするには、プログラムで何らかの動きを決めて指示しなければならないことです。また、どのような挙動をするか、動かしてみなければわからないこともあります。今は比較的容易に動かすことができるので、近いうちに動かしてみたいと思います。

今回はこれでおしまいにします。それではまた。

Posted by 春日井 優