AI 機械学習

文系でもわかる!機械学習入門①

はじめに

はじめまして、Internnectでインターンを経験させていただいている宮原 裕宇みやはら ゆうです。

僕は現在、インターン活動の中で学んだことをブログにする【インターンブログ】を書いています。

しかし、インターンの活動とは現在関係ないのですが、個人的に興味を持っている機械学習の分野を勉強したいと思い、Courseraというサービスでスタンフォード大学の機械学習の講義を受けようと考えました。(Courseraのサービスは基本無料です。下にURL張りますので興味ある方は受けてみてください!)

https://www.coursera.org/


そして現在、機械学習について勉強を始めたのですが、想像していたよりもかなり数学の知識を必要として難易度が高いです。

特に文系の方など数学が苦手な方、高校や大学を卒業してかなり時間がたって数学に長らく触れていない方には難しい内容ではないかと感じました。

ネットで調べてみても、わかりやすいけど数学の知識がないと全く分からない…という記事ばかりで全く分からない人に教えるという記事はあまり見つかりませんでした。

しかし、数学が苦手、忘れてしまったけど、興味があるという方はおそらくたくさんいらっしゃるかと思います。

なんといっても、これからAI、機械学習は金融、車両、アパレル、などの一見関係ないように思われるほとんどすべての分野で必須になる技術です。

そこで自分の学習のまとめも兼ねて、しっかり勉強をしたい方にも、教養として身に着けたいという方にも理解しやすいように、機械学習を学ぶことのできるブログを作成しようと決めました!

内容は先ほど申し上げたCourseraでの講義に沿った内容にします。

もちろん、1つの記事ではまとめきれないのでいくつか記事を出すことになるかと思いますが、是非これからの記事を見て、一緒に学んでいただけたらと思います。

また、Courseraの授業を受けている方、挫折してしまった方も是非見て、復習代わりに使ったり、もう一度やり直したりするために一緒に頑張りましょう!。


それでは、本日はまずはウォーミングアップも兼ねてそもそも機械学習って何?という内容を話していきたいと思います。

機械学習ってなに?

AIと機械学習ってどう違うの?

機械学習とはそもそも何でしょうか?
ハーバードの教授からお聞きした機械学習の定義を説明する前に、まずはAIと機械学習の違いが分からないという方も多いと思いますので、その点についてまとめていこうと思います。


まず、AI=Artificial Intelligence(=人工知能)について簡単にまとめていこうと思います。
そもそも、AIは明確に定義されていないものなのです。時代によって、またそれぞれの人によってAIはどのようなものかという考えは異なります。

たとえば例に二名の方の定義を上げましょう。

『 西田豊明(京都大学)「「知能を持つメカ」ないしは「心を持つメカ」である。」

  堀浩一(東京大学) 「人工的に作る新しい知能の世界である。」』

(今さら聞けない「AI・人工知能」とは?https://ainow.ai/artificial-intelligence-3/#AI

というように、微妙にニュアンスが違いますね。

しかし、AIの定義は定まっていないです!で終わるとAI周辺の話が分かりずらくなると思いますので、僕がいろいろな定義を見てその最大公約数として導き出した簡単な定義が、
「コンピュータで作成した人間の脳が行う様に、複雑な知能。」です。
もちろん、僕が勝手に定義したので参考程度にお願いします:)

それでは、AIの定義が分かったところで機械学習についてまとめていきましょう。

おそらく、「え、AIと機械学習って違うの!」と思った方も少なくないと思います。

実は、AIと機械学習の関係は下の図の様に包括関係にあります。

それでは、機械学習とはどういうものなのでしょうか?

Couseraの授業では、
アーサー・ミシェルという計算機科学者が「コンピュータに明示的にプログラムすることなく学習する能力を与える研究分野」と提唱したというのが例に挙げられています。
少しわかりずらいので、わかりやすくすると、「(ビッグデータなどを用いて、)物事の学習方法を指示することなく、自主的に学習方法すらも学び、物事について学習することができる能力を与える研究分野」ということです。

僕たちは学校で勉強をしながら、「学習方法」を学んでいます。

そのおかげで、まず物事について学ぶ際にはその物事そのものについて知り(今回もAIの定義を学んでいますね)、それからそれを成り立たせている規則を本やネットから知り、それを応用するということを意識せずに行うことができます

しかし、現在ではそれを機械学習に行わせるために、その方法すらもプログラムして指示をしているのです。
逆にこれさえ指示せずに行わせることができれば、あらゆることについて自主的に学習することができる、まさに人間のような存在を作ることができるということです!!!

これが実現すれば、ドラえもんも(秘密道具はさておき)作ることができますね!

しかし、これはCourseraの先生曰くかなり古い定義で、現在も機械学習はこのレベルには全く至っていないようです。
この機械学習の定義だと、先ほど挙げたAIの定義に近いように感じますね。

そこで、新しい機械学習の定義として挙げられたのが、 トム・ ミッチェルが提唱した「ある課題 T について、 ある性能基準 P に基づき、もし T についての性能が基準 P で測定して、経験 E と共に改善している場合に、 経験 E から学習したと言うことが出来る。」
…いきなり難しすぎて混乱しますね笑💦
(英語だと韻を踏んでいて面白い表現になっているようです。)

具体的にチェスで考えてみましょう。
チェスの試合が課題T、次の試合で勝つ確率が基準P、その基準Pがチェスを行って今までに学習してきた経験(つまり経験E)を通して向上させることができた際に、それは経験から学習したと言うことができ、それが行えるのが機械学習であるということです。

この、経験に沿って学習していくことを、機械学習というと考えてよいと思います。

これで機械学習がAIの一分野だという話も分かったかと思います。

AIが人間に近しいものだと考えると、人間は経験から情報を学ぶ能力(つまり機械学習)だけでなく、新しく概念を創造したり、感情を持つからです。

そう考えると、AIの実現はかなり遠くなりそうですね。

機械学習の方法

機械学習は、先ほど言ったように経験から学習してある性能を向上させていくということですが、その方法はたくさんあり、今回は教師あり学習、教師無し学習、そして強化学習について学んでいこうと思います。

今後の記事では、今回受講しているCourseraで学習することができる、教師あり学習、教師無し学習について詳しく学んでいきます。

今回受講している講座はこちら ↓↓

https://www.coursera.org/learn/machine-learning

教師あり学習

教師あり学習とは、ある物事に関するデータと、それに対する答えを用意し、それを取り込ませることで、あるデータを与えられたときにそれに対する未知の答えを導き出すことを目的とした機械学習です。


言葉で説明されると難しいので、例として授業で用いられている家の価格を用いて考えてみましょう。

家の価格のデータとして、家の面積を与えます。
ここで5㎡の家が2万円、10㎡の時に5万円、20㎡の時に20万円、というようにデータを与えます。
そしてさらにたくさんのデータを集めて、複雑な面積と価格の関係を見つけ出すというものです。

これなら人間にもできそうだと感じた方もいらっしゃるかもしれません。

しかし、このデータの要素(授業に合わせて今後はフィーチャー=特徴といいます)が、建築年数、色、素材、部屋の数…の様に増えていくと、法則を見出すのがどんどん難しくなってきます。(一つ増えるだけで、何倍も難しくなります。)

そこで、その難しい処理を機械学習に行ってもらおうというわけです。

今回は部屋の価格という数字的なもの(回帰モデルといいます)でしたが、与えるデータを変更して例えば動物の画像と、その画像には何の動物が映っているか、のデータのセットを学ばせると、どんな動物が映っているのかを学習することができる。
ということもできますので(分類モデルといいます)、教師あり学習の応用範囲はかなり広いです。

つぎは教師無し学習です!

教師無し学習

教師無し学習は、教師あり学習と同じようにデータを与えるのですが、そこでは正解を与えません。
つまり、さっきの動物の写真を例に挙げると、動物の写真だけを与えてそれが何の動物の写真なのか、という情報は与えないということです。(この政界の情報がコンピュータにとっての先生のような存在なので、教師無し。というわけです)

それでは何もできないんじゃないか?と思った方もいらっしゃるかと思いますが、これは各々の特徴を捉えて、まとめるクラスタリングや、傾向を分析するアソシエーション分析という技術に使うことができます。

詳しく説明します。

まずはクラスタリングについてです。

クラスタリングは、データから得られる情報で似た者同士をグループ分けする。という技術です。
具体的な例で示すと、動物の写真をたくさん与えた時に、色の分布などを見て、「猫の写真の色の分布が似てるなぁ」というように機会が認識して、猫や犬など、似ている傾向を持つ者同士をグループに分けるということです。

しかし、注意点があります。
さきほど言ったように、正解を与えないため、機械はいったい何を分析しているのかは分からないのです。
先程の例でいうと、猫の写真同志にみられる傾向から猫の写真のグループには分けることはできるが、それが「猫」であるということはわかっていないというわけです。

おそらく読者のあなたも、いきなり石を100個渡されて似た者同士わけておいて!といわれると似た色や似た形で分けることはできますが、その石がいったい何の石のグループなのかはわかりませんよね。
大体それとおんなじ感覚です!(機械はそれが「石」であることすら分かりません。)

次にアソシエーション分析についてです。

アソシエーション分析は、いくつかのデータのセットの中で関係性を見出すというものです。

たとえば、顧客それぞれの、ある商品Aを買ったかどうか、ある商品Bを買ったかどうか。のデータを集めると、Aを買った人はBも買っている!という情報が分かったりします。
これが分かると、Aを買ってもらえば、Bも買ってもらえるからAをPRしよう!のようにマーケティングの方針などを決定することができます!

このようにつかわれるアソシエーション分析ですが、これにも注意点があって、機械は傾向を見つけることはできるのですが、登録されているデータが意味すること自体は認識できないので、そこで生じる傾向が何を表しているのかは分かりません

つまり、この数字が大きいと、この数字が大きくなる傾向があるよ!ということしかわからないので、その傾向の意味に、「Aを買った人はBも買う。」とラベル付けするのは、人間の仕事なのです。

強化学習

これは、人工知能のある行動に報酬を与えてその報酬を最大化するような行動を学習させるという学習方法です。

…難しいですね。
↓↓これは理解するのにいい動画がありますので、ぜひこちらを見てみてください!↓↓

僕は強化学習が最も機械学習に対して抱いていたイメージに近かったのですが、皆さんはどうでしたか?

さいごに

それでは、今回はこれで記事を終了しようと思います。

機械学習でデータを解析するいくつかの具体的な方法について分かったのではないでしょうか?
そしてそれと同時に、AIを実現する難しさについても理解していただいたと思います。

次回からついに数学を使った、本格的な機械学習(教師あり回帰モデル)について学んでいきます!
なかなか重たい内容になってきますが、僕も全力でサポートさせていただきますので頑張りましょう!

ここまで読んでくださった方は、ありがとうございました!!🎉

-AI, 機械学習
-, , ,

Copyright© Internect Engineering Blog , 2020 All Rights Reserved Powered by AFFINGER5.