最近、なにかとよく耳にするようになった人工知能(AI)や機械学習。エンジニアなら誰しも、何かと気になる話題ですよね。
そこで今回は、これから機械学習や人工知能について勉強をしていきたい!と考えている意欲的なエンジニアに向けて、具体的な勉強方法等についてご紹介していきます。
そもそも機械学習って?
機械学習や人工知能・・・なんだか色々な用語があり混乱してしまいますが、「機械学習」は人工知能における一つの技術要素として存在しています。
まず人工知能とは、「人間の知能に近しい特徴を人工的に作ること」と言えます。その人工知能において機械学習は、「人間が自然に行っている学習能力と同様の機能をコンピュータで実現しようとする技術・手法」を指しています。
少し難しいですが、機械学習は人間の”学習”する能力、すなわち「データを分析して特徴を見つけ出す」ようなことを実現する技術と言えるのではないでしょうか。
利用されるシーンは?
このように様々なデータから予測される特徴を洗い出す「機械学習」には、多くのシーンにおいて利用価値があります。例えば、有名なところだと「Googleの検索エンジン」や「Facebookの友達候補の通知機能」、「Amazon内の商品におけるレコメンド機能」などが機械学習によって構築されています。
他にも「迷惑メールの振り分け」や「画像の解析」、「コールセンターの問い合わせ内容の振り分け」から、「明日の天気予報の予測」など、実に様々です。
機械学習はデータの中から、いくつかの特徴をモデル化するのが得意であるため、ビッグデータを活用した基盤が整ったこともあり、最近では大量のデータを解析・分析することで、日常生活からビジネスなど様々なシーンで機械学習が利用されているのです。
これから機械学習をマスターするために:学習分野を決めよう
これから機械学習を勉強していくためには、学習をする上で、明確な目的をしっかりと持つことが大切です。機械学習には以下のように主に5つの分類があり、全てを網羅的に勉強しようとすると、挫折するリスクが高くなってしまいます。
~機械学習の5つの分類~
1. クラスタリング・・・データの類似性を基に、複数のグルーピングを行う ex)検索エンジンなど
2. クラス分類・・・大量のデータから決められたクラス分けを行う ex)迷惑メールの分類など
3. レコメンデーション・・・ユーザーの過去の行動履歴から反応しやすい情報を推測する ex)ECサイトのオススメなど
4. 回帰・・・過去のデータから未来の数値を推測する ex)売上高や株価など
5, 情報圧縮・・・データ量を減らす。 ex)相関関係がある値の片方のデータだけを残すときなど
これら5つの分類を参考に、自分が挑戦してみたい分野を明確にすれば、覚える内容を整理でき、より円滑に勉強を開始することができるようになります。
レベル別・これから機械学習をマスターするための勉強法
機械学習が難しい!と言われている理由は数学などの知識が必要な点です。数学が苦手・・・というエンジニアであれば、たとえ機械学習の入門書を読んでも、やはり数式が何度も登場して結局やる気がなくなってしまうもの。
そこで持っている数学などの知識レベルの応じて、効果的に機械学習を勉強していきましょう。
■ケース1:エンジニアだけど、数学や統計学は苦手!
普段はバリバリとプログラミングを使うエンジニアでも数式は苦手・・・という人も多いと思います。そういう場合は、まずはいきなり本などから入らず、機械学習における入門コンテンツから学ぶようにしましょう。またそのような入門コンテンツと並行して、機械学習に必要な数学や統計の知識も補完していきます。
– 機械学習入門以前
参考:http://www.slideshare.net/mrtc0/machine-learning-41005650
機械学習の入門すら難しく感じる人向けの、入門以前に関して解説しているスライドです。機械学習をゼロから学ぶ方にとって、非常に細かくわかりやすいスライドになっています。
– 機械学習チュートリアル
参考:http://www.slideshare.net/mrtc0/machine-learning-41005650
こちらも機械学習について入門者向けに優しく解説をしてくれているスライドです。機械学習の仕組みや考え方を、ビジュアル化して解説してくれています。
– Coursera
参照:https://www.coursera.org/learn/machine-learning
Courseraというオンライン講座では、スタンフォード大学の講師が開催するMachine Learningコースを受講できます。もちろん日本語字幕でも受講することができ、かつ無料なので入門者にもお勧めです。
– プログラミングのための線形代数
参照:https://www.amazon.co.jp/dp/4274065782
機械学習で主に使われる数学は線形代数、確率・統計、微分・積分。特に線形代数は機械学習入門でも必須のため、できればこれらの知識を身につけておくようにしましょう。こちらは書籍ですが、「プログラミングのための」となっている通り、エンジニアでも理解しやすい内容となっています。
ケース2:Pythonならある程度使える!
関連する記事