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

プログラムとは

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

機械学習とは

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

教師あり学習とは

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

教師なし学習

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

結び

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

関連する記事

  • R言語 CRAN Task View:数値解析R言語 CRAN Task View:数値解析 CRAN Task View: Numerical Mathematicsの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Hans W. Borchers Contact: hwb at […]
  • 決定木 – 分類木決定木 – 分類木 決定木とは、分類ルールを木構造で表したものである。分類したいデータを目的変数(従属変数)、分類するために用いるデータを説明変数(独立変数)という。目的変数がカテゴリデータなどの場合は「分類木」、連続値などの量的データの場合は「回帰木」と呼ばれる。 決定木の最大のメリットは、結果にグラフを用いることができるため、視覚的に確認できることである。 ここでは、R言語の「r […]
  • R 関数の引数が省略記号(…)を持つかどうかを判定する方法R 関数の引数が省略記号(…)を持つかどうかを判定する方法 ある関数の引数に省略記号である三連ドット(...)を持つかどうかを判定する関数を作成しましたので共有いたします。 判定する関数は次になります。 is_dots […]
  • R ggplot2を用いた2軸グラフの簡単な作成方法R ggplot2を用いた2軸グラフの簡単な作成方法 Rのggplot2を用いて、2軸グラフを作成するための簡単な方法をお伝えします. 2軸グラフは、グラフの縦軸(y軸)が左側と右側の両方にあり、それぞれ単位が異なるグラフのことを言います。 2軸グラフは、一般的に推奨されてはおりません。 そのため、ggplot2パッケージを用いた2軸グラフを作成するためには、scale_y_continuous()関数のsec.axi […]
  • Ubuntu OpenCVをインストールする手順Ubuntu OpenCVをインストールする手順 Ubuntu16.04にOpenCV3.3をインストールする手順をお伝えいたします。 OpenCVは、JPEGとPNGの画像だけを扱うように、できるだけ最小の構成を目指します。 そのため、動画に関する設定はできるだけ除いた形でインストールを行います。 環境 今回の作業環境を確認しておきます。また、以下の作業はすべてターミナルにて行っております。 Ubuntuのバージ […]
教師あり学習と教師なし学習のふわっとした説明