通常のプログラミングと「機械学習」を使ったプログラミングって何がちがうの

「機械学習」に興味はあるけど、具体的な利用イメージがわかない人

通常のプログラミングと「機械学習」を使ったプログラミングって何がちがうのかな。「機械学習」を使ったプログラミングによって、どんな事が可能になるのかな。

こういった疑問に答えます。


ゼロからしっかり機械学習を学びたい方は「Pythonではじめる機械学習」がオススメです。

難しい数式をできるだけ使用せずに、初学者にもわかりやすく解説されています。

通常のプログラミングと「機械学習」を使ったプログラミングの違い

 一般的に「機械学習」を利用しないプログラミングは「もし~なら」「~でなければ」というような、あらかじめ決められた条件に対する処理が行われる。

例えば、「赤色」と「青色」を判断する場合、通常のプログラミングでは「赤色のRGB値」と「青色のRGB値」を条件としてRの値が何以上だったら、Bの値が何色以下だったらと具体的な数値を設定する事となる。

 つまり通常は、どこまでが青なのかを人間が全て最初から設定しておかなければならず、設定にない色、たとえば「黄色っぽい赤」、「緑色っぽい青」、はたまた「紫色」などを判定した場合、条件にない部分は考慮されない。

一方「機械学習」では、RGB値の条件をプログラム上に設定する必要がない。

「機械学習」の場合は、入力の「画像やRGB値」とそれに対する答え「赤色や青色」を機械に与える事で、機械自身が赤色の特徴と青色の特徴を学習し、あとは入力の「画像やRGB値」さえ与えれば、学習した経験(統計)から答えを導きだしてくれる。

この入力値と答えをセットで機械に学習させる事を「教師あり学習」という。

「教師あり機械学習」を使ったプログラミングでは、この入力値とその答えのデータセットをいかに機械に学習させるかがカギとなっている。

そして、機械に学習させた経験(統計)データを「学習済みモデル」という。この「学習済みモデル」を使って、判定させるのが「機械学習」をつかったプログラミングという事になる。

機械学習において最も重要視されていること

 機械学習において最も重要視されていることは「解決しようしている問題に関わるデータの関連性」とされている。

なぜならば、入力データに「問題の答えとなるデータ」が含まれていなければ、そもそも正しい結果を導き出すことができない為、あらかじめ、どんなデータからどんな結果を得たいのかを明確にしておかなければならない。

以下の内容は「オライリーのPythonではじめる機械学習」に記載されている内容である。

機械学習システムを構築する際には、以下の質問に答えられるようにするべきだし、もし答えられないなら留意しておく必要がある。

● 答えようとしている問いは何か?集めたデータでその問いに答えられるかちゃんと考えただろうか?
● 解こうとしている問題を表現するのに十分なデータを集めただろうか?
● どのような特徴量を抽出しただろうか?その特徴量で、正しい予測が可能だろうか?
● アプリケーションがうまく行ったかをどう判断したらよいだろうか?
● 自分の研究もしくは製品の他の部分と機械学習はどのように関わるだろうか?

Pythonではじめる機械学習

教師あり学習の機械学習で重要となるのは、データセット

というわけで、記事は以上となります。

「Pythonではじめる機械学習」を読みつつ、機械学習によるプログラミングを学んで行きたいと思います。

ここまで見ていただき、ありがとうございます。

では、また😀