機械学習

機械学習とは

機械学習とは、データを分析するために使用する手法のひとつです。
膨大なデータの中から、プログラムがアルゴリズムという一定の法則を見つけられるよう、学習させることです。


機械学習は主に、AIを作る際のプログラミングで使用されることが多いです。AIは自ら判断するプログラムですが、判断をするためには基準がなければなりません。その基準として、機械学習で作り出したアルゴリズムを使用します。

機械学習を行うためには、プログラムにデータを与えて、アルゴリズムを学習させなければなりません。その手法には、以下の3通りに分かれます。

  • 教師あり学習
  • 教師なし学習
  • 強化学習

それぞれ与えるデータの内容が異なり、目的も違います。そのため、どのようなプログラムを作るかによって、使い分けることが大切です。

教師あり学習では、入力データと、その答えとなる出力データをあらかじめ用意しておきます。そして、入力データに応じた答えを出せるプログラムを作成することが目的です。
プログラムは入力データと出力データを教師として、教えられる形で学習するため、教師あり学習と呼ばれます。その教師あり学習は、気象データを元に天候を予想したり、メールを振り分けたりするなど、事前に分類するグループが決まっている場合に活用できる手法です。

教師なし学習では、出力データは用意しません。入力データのみで、プログラムが独自の法則を探して分類していきます。プログラムを誘導する教師となるデータがないため、教師なし学習と呼ばれます。
基本的には、人では法則がわからない、大量のデータを分類するプログラムを作るために使用します。そして、プログラムが自ら法則を探さなければならないため、教師あり学習より時間がかかりやすいです。

強化学習は、教師あり学習や教師なし学習とは異なり、事前に与えるデータがありません。プログラムが自らデータを取り込んで、法則を作り出し、その法則に従って答えを出せるように成長させるものです。
数が増え続けていたり、内容が変化したりするデータの中から、アルゴリズムを作るためには、強化学習が必要となります。

機械学習で作成したアルゴリズムは、精度が低ければ役に立ちません。
そのため、特に高性能なAIを作るためには、間違った答えをほとんど出さない、高精度なアルゴリズムが必要となります。その高精度アルゴリズムを作るために欠かせないのが、深層学習(ディープラーニング)です。
深層学習では、プログラムが内部でいくつもの階層に分かれています。そして、それぞれの階層ごとに、プログラムが自ら、データの特徴を把握していきます。
そうして習得した膨大な特徴は、プログラムが判断する際の材料にできます。そうすることで、データの細かい部分の違いや共通点も把握できるようになり、より精度の高い結果が出せます。

深層学習は、教師あり学習・教師なし学習・強化学習のいずれにも使用することが可能です。
そして、現代で使用されるAIは、ほとんどが高い精度を必要としています。
そのため、機械学習の際には、深層学習が必須になる場合がほとんどです。
したがって、AI分野では、機械学習=深層学習として扱われることも多いです。