Photo by fdecomite
こんにちは。谷口です。
最近、機械学習の勉強をしている人や、機械学習関連の求人が増えてきましたね。弊社のエンジニアにも、機械学習を勉強中の人達が何人かいます。
ただ、初心者だと「機械学習を勉強したいけど、難しいし何から手を付けたらいいのかよくわからない」という人も多いかと思います。
そこで今回は、機械学習の勉強を始めたばかりという初心者の方向けに、機械学習でよく使われるアルゴリズムがわかるスライドをいくつかご紹介します。
■機械学習以前
そもそも「機械学習で何ができるのか・どんなものなのか知りたい」という段階の人が機械学習の概要をつかむには、このあたりのスライドが参考になるかと思います。
www.slideshare.net
■ロジスティック回帰
ロジスティック回帰は主にデータ分析に使われる手法で、すごく簡単に言うと、「商品Aが売れるのは、何曜日の何時頃でどんな天気のときが多いのか?」というように、ある現象の発生する原因の組み合わせや程度を推定するといった手法です。
■ディープラーニング
機械学習とディープラーニングを混同している人もいますが、ディープラーニングはあくまで機械学習の手法の一つです。
機械学習とは、コンピューターが与えられたデータからアルゴリズムや特徴などを反復的に学び、学習したことからデータの特徴やパターンを見つけ出すという技術分野全体のことです。
一方ディープラーニングは、ニューラルネットワークという人間の脳の神経回路をもとにした機械学習の手法の一つです。すごく簡単に言うと、ディープラーニングはデータの特徴をさまざまな方面や段階から学び、勝手に深く理解してくれる手法で、複雑な画像の判別処理などに向いています。
www.slideshare.net
www.slideshare.net
ディープラーニング以前の機械学習(後述のSVMなど)では、たとえば「眼鏡」の画像を判別させるとなると、単に色や形、顔の目の上にあるといった情報から判別していたので、眼鏡っぽいけど眼鏡じゃないものまで「眼鏡」として判別されていたのが、ディープラーニングになるともっと細かい情報を元に判別するためより精度が高くなる傾向にある…(※絶対ではありません)ということが言えます。
ちなみにこちらの記事でも「Word2Vec」「Doc2Vec」という、文章などを分析するニューラルネットワークモデルを使ってディープラーニングの実践をしています。
paiza.hatenablog.com
■サポートベクターマシン(SVM)
SVMはディープラーニング以前の機械学習手法で、教師あり学習を用いるパターン認識モデルの一つです。各データの距離が最大になるようなパラメータの線形入力素子を求め、それを利用して2クラスのパターン識別器を構成する手法です。
下記は2つとも二次元の眼鏡っ娘の画像を分類するシステムを構築したスライドですが、サポートベクターマシンの前者が64%、ディープラーニングの後者が91~95%となっています。
www.slideshare.net
■K-means(K平均法)
あるデータがどのグループに属するかを、距離が近いデータ群の多数決により決定する手法で、距離が近いデータ群の平均値を、そのデータの値として予想する方法です。
スライドじゃなくて申し訳ないですが、こちらの記事でK-meansの詳しい解説や実践をやっているので興味のある方はごらんください。
paiza.hatenablog.com
■決定木学習
決定木もデータ分析に使われる手法です。決定木は予測モデルで、ある事項に対する観察結果から、その事項の目標値に関する結論を導きます。たとえば、Aを選択した人とBを選択した人の年齢や居住地、性別などを分析して、どういう条件の人がAを選択しやすいのか?といった分類をもとに分析が行えます。
Wekaは機械学習の計算をGUIの操作だけで行えるデータマイニングソフトですが、こちらのWeka入門の決定木を作るチュートリアルが有名です。
■まとめ
機械学習を学ぶことは決して簡単なことではありませんが、最近は初心者でも機械学習の勉強が始められるコンテンツが増えてきましたね。まずはPythonを使ったプログラミングの知識を固めつつ、自分で手を動かしてチュートリアル的なところから試していくとイメージも掴みやすいと思います。
動画でプログラミングが学べるpaizaラーニングでも、新たに「Python×AI・機械学習入門編」が追加されました。
人気声優の上坂すみれさんによる進行役のスベトラーナ・小百合・ベレフスカヤと一緒に、実際に画像認識技術を使いながら、初心者でも機械学習を体験・学習できるレッスン内容になっています。
Python×AI・機械学習入門編は全編無料でごらんいただけます。詳しくはこちら
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら
そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら