機械学習について記事にまとめました。
機械学習とは
機械学習は人工知能の一つの分野です。
また、深層学習は機械学習の一種で、機械学習のいくつかの重要概念や考え方は深層学習の勉強にも役に立ちますので、ぜひここで理解しておきたいです。
機械学習(ML:machine learning)とは、人間が明示的にプログラミングせずに、コンピュータがデータから学習できるためのプログラミングの手法です。
色々難しい用語がありますが、「分類器(classifier)」を作ることが目標も一つです。
リンゴとミカンの写真を見せたら、それがリンゴかミカンかを「分類」してくれるものです。
機械学習では、この「分類器」を作るのは、人間ではなく、学習で分類器を作ってもらいます。
人工知能の研究では長い間、ルールベースのアプローチを取ってきました、その中で一番重要な処理は人間が担当していました。
分類器を自動的に作れなかったのです。
機械学習では、人間が担当しているところを可能な限りコンピュータが実行できるようになったのは一番の特徴です。
例えば、ルールベースのシステムで手書きの「あ」と「い」を認識するシステムを作成したとします。
ある人Aさんの癖の文字の特徴(どこで、曲がるか、曲がり具合、線の傾き)を人間が頑張って抽出して、まとめてルールの形式でプログラミングして、実現は初期では可能です、しかし、同じAさんでも毎回「あ」と「い」の書き方が少しずつ変化しますし、その上BさんもCさんもの手書き文字も対応しなければいけない時は、ルールの書き換えと拡張が必至です。
そして認識する対象が増えるたびに、このルールベースを修正しなければいけないです。
容易に想像できるように、このシステムはほぼ現実的に対応とメンテナンスはとても現実的ではないです。
こういった難しい課題が、機械学習が得意とする分野になります。上に述べたように、学習をすることによって「分類器」が訓練され、高い精度で入力の写真を「分類」してくれるようになったら、この「分類器」を使って、正確に高速で「分類」することができます。
機械学習のタイプ(分類)
機械学習のタイプは主に三つあります。
・教師あり学習(supervised learning)
・教師なし学習(unsupervised learning)
・強化学習(reinforcement learning)
これ以外も様々な機械学習タイプの分類があります。
例えば、半教師あり学習(semi supervised learning)、バッチ学習(batch learning)、オンライン学習(online learning)、インスタンスベース学習(instance-based learning)、モデルベース学習(model-based learning)も分類によって様々あります。
これらの分類は排他的ではありません。組み合わせて使うことができます。
[amazonjs asin=”4873117585″ locale=”JP” title=”ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装”]
[amazonjs asin=”4873118689″ locale=”JP” title=”機械学習のための特徴量エンジニアリング ―その原理とPythonによる実践 (オライリー・ジャパン)”]