機械学習の教師あり学習と教師なし学習について、難しい専門用語を全く使わずに概要を分かりやすく説明してみます。

プログラムとは

まず、プログラムについてふわっと説明します。
このページをご覧になられているということは、ブラウザと呼ばれるプログラム(例えば、Google ChromeやMicrosoft Edge、Mozilla Firefox、Apple Safariなど)があなたのパソコンやスマートフォンに入っており、このブラウザを使用しているということになります。
ブラウザというプログラムは、インターネットと情報をやりとりするための専用のプログラムになります。
ここでは、ブラウザという例を挙げましたが、多くのプログラムは、このように何かしらの専用の目的を持っております。

機械学習とは

機械学習の機械とは、上記で説明したプログラムのことになります。
では、どのような専用の目的を持っているのかというと、「学習」するプログラムということになります。
学習するプログラムとは、なかなかイメージが難しいですが、受験生の勉強をイメージしてみてください。
いくつもの教材を暗記し、理解し、問題を解き、解答の正誤判定し、解答が間違っていれば暗記や理解に戻る、といった勉強をしたことがあると思います。
これが機械学習における学習と同じになります。
ただし、機械学習はヒトの理解と同じような理解をすることはとても困難だという明確な違いがあります。
そのため、機械学習の学習は、教材を暗記し、問題を解き、解答の正誤判定し、解答が間違っていれば暗記に戻る、といった流れになります。
つまり、機械学習の学習は、理解しているかどうかは関係なく、覚えた教材と問題のパターンから解答してきます。
重要なことは、機械学習の学習はヒトでは考えられないスピードで、かつ大量に行うことができる点です。

教師あり学習とは

教師あり学習を、機械を幼い子供、学習を片付けとして説明してみます。
親が子供に、ブロックの玩具は箱へ、本は本棚へ片付けしてもらうようにお願いします。
現実では、このようにお願いしてもなかなか片付けをしてもらえませんが、あくまでも仮想なので、とても良い子をイメージしてください。
子供がブロックの玩具と認識しているものは箱へ入れると思います。
もし、ブロックの玩具を本棚に片付けたら、親が「これは箱に入れてね」と伝えます。
すると、子供はこの玩具はブロックであることが間接的に伝わります。
片付けられた箱の中を指さして、子供に「なぜこれをこの箱に片付けたの?」と訊くとブロックだからと答えるようになると思います。
このようなことを繰り返すと、片付けるものがブロックの玩具であるか本であるかの判別を子供が獲得できます。
このように、親が教えたルールのパターンを子供が学習する流れは、機械学習における教師あり学習と同じになります。

教師なし学習

教師なし学習を教師あり学習と同様に機械を幼い子供、学習を片付けとして説明してみます。
教師あり学習とは異なり、親が子供に片付けをしてとだけお願いします。
すると、玩具と近い箱へ入れたり、ある箱がいっぱいになったら別の箱へ入れたり、ブロックの玩具ならこの箱で車の玩具なら別の箱へ入れる、などしたりすると思います。
片付けられた箱の中を指さして、子供に「なぜこれをこの箱に片付けたの?」と訊くとある箱がいっぱいになったら別の箱へ入れるというルールが形成されていた場合は「あの箱がいっぱいになったから」と答えるようになると思います。
親が口を出さなければ、片付けを繰り返すと子供独自の片付け方のルールが形成されていくと思います(いつもランダムに片付けるというルールになるかもしれません…)。
このように、子供自身がルールを独自に形成(学習)する流れは、機械学習における教師なし学習と同じになります。

結び

今回、教師あり学習と教師なし学習を子供と片付けと見立ててお伝えしてみました。
子供は十人十色で個性が様々です。
片付けが早い子もいれば、遅い子もいます。
本を片付けるのは丁寧なのに、ブロックの玩具は投げ捨てるように箱に入れる子もいます。
機械学習も子供と同様に、様々な手法があります。
そして、機械学習も子供と同様に、目的に応じて得手不得手があります。
楽しく子供(機械学習)と向き合っていけば素敵な日々になると思います。
教師あり学習と教師なし学習について、少しでも理解が深まったなら幸いです。

関連する記事

  • ggplot2を用いて階層的クラスタリングの結果を可視化する方法ggplot2を用いて階層的クラスタリングの結果を可視化する方法 R言語のggplot2パッケージを用いて階層的クラスタリングの結果を可視化する方法についてお伝えいたします。 一般に、階層的クラスタリングの結果は、デンドログラムまたは樹形図として可視化されます。 ggplot2パッケージには、デンドログラムまたは樹形図を可視化する機能が備わっておりません。 しかし、ggplot2パッケージと合わせてggdendroパッケージを用い […]
  • MySQL データベース内のカラム数を確認する方法MySQL データベース内のカラム数を確認する方法 MySQLまたはMariaDBのデータベース内のカラム数を確認する方法をお伝えします。 サンプルデータベースを次のように準備します。 # データベース作成 CREATE DATABASE sample_database; # データベース指定 use sample_database; # テーブル作成 CREATE TABLE […]
  • R言語 CRAN Task View:機械学習&統計学習R言語 CRAN Task View:機械学習&統計学習 CRAN Task View: Machine Learning & Statistical Learningの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Torsten Hothorn Contact: Torsten.Hothorn at […]
  • R言語 CRAN Task View:RデータベースR言語 CRAN Task View:Rデータベース CRAN Task View: Databases with Rの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Yuan Tang Contact: terrytangyuan at […]
  • R ggplotでファセットラベルテキストの体裁を変更する方法 ggplotのfacet_gridやfacet_wrapを用いた場合、垂直方向のラベルテキストが縦書きとなり直感的でないときがあります。 この場合は、ラベルテキストのアングルを横書きに変更することで、より見やすいグラフとなります。 デフォルト 特に何も指定しない場合は、次のようなグラフとなります。 library(ggplot2) data("diamond […]
教師あり学習と教師なし学習のふわっとした説明