はじめに
3回目?あたりのブームになっているAI技術の基盤を支えている機械学習の基本的なアルゴリズムについて駆け足で学び中です。
人口知能系の仕組み、活用の可能性、さらにはその実用例を知り、やって見ることは仕事の幅も広がります。
僕のわかった範囲で初学者の方々へこのブログを通じて共有したいと思います。
もはや機械にできることは機械にやってもらう時代になり
さらに、今まで人でなければできなかった事も
聞く、見る、話すといった範疇も一部できるようになりました。
あえて簡略に言うと
機械学習とは=機械に学習させて、ある事象を分類したり、予測したりすること。
その際、人(開発者)がデータを与えて・このデータの特徴はこうだから、こうしてねと教える手法を「教師あり」学習と言います。
以下に述べる箇条書き(項目)は教師あり学習を行う際の手法となります。
「手法」なので人が機械に教えるやり方でしかありません、教え方次第で当然結果も違ってきます。
他に自律的に学習していく「教師なし学習」という方法もありますが、まず先に「教師あり」から、その概要・概念をおさえていこうと思います。
機械学習のやっていること
ある事象xに対して結果yがxを分類するラベルになり得るとき→分類(classification)という手法をとる。
例)手書き文字の認識等
ある事象yに対して結果yがxを予測できる値(xに対応する値)として観測される場合→回帰(regression)という手法をとる。
例)気温xから季節商品yの売り上げを予測する等
様々な機械学習(教師あり)の手法
基本的理論は以下が中心で現在あまり利用されない手法も中にはあったりします。
今、注目されているのは、よく聞く「ニューラルネットワーク」ですね。
当ブログで下記の方法についてそれぞれ試して、感想を述べていきたいです。(少しずつコツコツとなりますが…)
万一、内容に誤りがありましたらご教示のほどお願いします。
最近傍法
小さいデータに関しては良いベースラインとなる。分析内容の説明が用意。
線形モデル
最初に試してみるべきアルゴリズム。非常に大きいデータセットに適する。
ナイーブベイズ
クラス分類にしか使えない。線形モデルよりもさらに高速。非常に大きいデータセット、高次元データに適する。
決定木
非常に高速。データのスケールを考慮する必要がない。可視化が可能で結果に至るまでの説明がしやすい。
ランダムフォレスト
ほとんどの場合単一の決定木よりも高速で、頑健で、強力。データのスケールを考慮する必要がない。
高次元の疎なデータには適さない。
勾配ブースティング決定木
多くの場合ランダムフォレストよりも少し精度が高い。ランダムフォレストよりも訓練に時間がかかるが、予測はこちらのほうが速く、メモリ使用量も小さい。ランダムフォレストよりもパラメータに敏感。
サポートベクターマシン(SVM)
同じような意味を持つ特徴量から中規模なデータセットに有効。データのスケールを調整する必要がある。パラメータに敏感。
ニューラルネットワーク(ディープラーニング)
非常に複雑なモデルを構築できる。特に大きなデータセットに有効。データのスケールを調整する必要がある。パラメータに敏感。大きいモデルは訓練に時間がかかる。
参考文献:
Pythonではじめる機械学習
OREILLY オライリージャパン
Hi there, just became alert to your blog through Google, and found that it’s truly informative.
I am gonna watch out for brussels. I will be grateful if you continue this in future.
A lot of people will be benefited from your writing.
Cheers!
Thanks in favor of sharing such a fastidious thought,
piece of writing is fastidious, thats why i have read it fully