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

プログラムとは

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

機械学習とは

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

教師あり学習とは

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

教師なし学習

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

結び

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

関連する記事

  • Ubuntu TensorFlowのGPU版をpipでインスールする手順Ubuntu TensorFlowのGPU版をpipでインスールする手順 Ubuntu上で、TensorFlowのGPU版をpipでインストールする手順をお伝えする。 TensorFlowのバージョン0.6.0からPython3が使えるようになったので、Python3を用いることにする。 ここに記載されていることの大部分は、TensorFlowのDownload and […]
  • Windows上のRStudioでKnit to PDFを実行するための環境を構築Windows上のRStudioでKnit to PDFを実行するための環境を構築 RStudioでKnit to PDFをを実行するための環境を構築する手順をお伝えします。 最初に、Knit to PDFを実行した際には、次のように必要なパッケージのインストールを要求されますので、「Yes」ボタンをクリックしインストールします。 Knit to […]
  • R言語 CRAN Task View:Rでの高性能並列コンピューティングR言語 CRAN Task View:Rでの高性能並列コンピューティング CRAN Task View: High-Performance and Parallel Computing with Rの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Dirk Eddelbuettel Contact: Dirk.Eddelbuettel at […]
  • 経営戦略に使えるABC分析の基礎知識と活用法経営戦略に使えるABC分析の基礎知識と活用法 ABC分析は売上に関する経営戦略を立てるうえで、最も基本となる分析手法である。ABC分析とは、販売管理、顧客管理で使われる分析の一つで、ある期間で対象を重要度によって分類することにより現状を把握し易くする分析手法だ。 それでは早速解説していく。 ABC分析の手順 期間を過去一年間、対象を商品、重要度を売上とした場合を例に取り、ABC分析を行う手順を説明していく。 […]
  • R dplyrパッケージのgroup_by_関数で複数の文字列を指定する方法R dplyrパッケージのgroup_by_関数で複数の文字列を指定する方法 Rのdplyrパッケージのgroup_by関数は指定した列をグルーピングできるので便利ですが、文字列を指定できません。 このパッケージのgroup_by_関数は文字列を指定できますが、複数の文字列を指定する場合には少し工夫が必要になります。 ここでは、異なるダイエットの雛の体重と年齢が収められているChickWeightをサンプルデータとします。 > […]
教師あり学習と教師なし学習のふわっとした説明