機械学習の勉強をしてみたいけれど難しいの?
勉強してみようとしたけど、よくわからない……
人工知能が私たちの生活に身近になったことから、機械学習に興味を持った方もいるでしょう。しかし、機械学習について知りたい・学びたいと思っても、難しそうというイメージがありますよね。
そこで今回は、機械学習について仕組みや利用事例、学び方までわかりやすく解説します。
そもそも機械学習とはなにか?未経験から機械学習について学びたいと考えている方は、ぜひこの記事を参考にしてください。始めて機械学習に触れる方必見の内容ですので、ぜひ一読してみることをおすすめします。
機械学習とは
まず機械学習とは何か、その定義について見ていきましょう。同列で語られることの多いAIやディープラーニングとの関係や、機械学習が注目されている背景についても紹介します。
そもそも機械学習とは
機械学習とは簡単にいうと、人間が行う学習能力と同様の機能をコンピュータで実現する技術のことをいいます。具体的には、
- コンピューターに大量のデータから指定したアルゴリズムを元に特徴を発見させる(モデル化)
- その特徴に基づいて、コンピュータが最適化や推論、判断などを自動的に行う
という仕組みとなっています。
コンピューターは、人間の目や脳と異なりデジタルな情報しか扱えません。例えば、コンピュータが猫と犬を見分けるには、猫について、
- 体長が◯◯cm~◯◯cm程度
- 足の長さは◯◯cm~◯◯cm程度
という具合に、数字でルールを定義することが必要になります。ところが動物には個体差があるため、それぞれの特徴を一つ一つ人間がコンピューターに教えることは不可能です。
そこで詳細なルールを与える代わりに、大量のデータと分析・解析ができるアルゴリズムを与えることにより、コンピュータが人間の学習能力と似たような判断作業を行えるようにするのが機械学習です。
機械学習とAI(人工知能)・ニューラルネットワーク・ディープラーニングの関わりとは
機械学習は、AI(人工知能)・ニューラルネットワーク・ディープラーニングとともに語られることが多いため、関係を正しく理解しておきましょう。
AI(人工知能)とは、機械に人間のような動作や判断をさせようとする試み全般を指します。人間の自然に行っている思考や行動などを、アルゴリズムや数値などで置き換えることで、機械が自動的に実行することを目指します。
機械学習は、AI(人工知能)の中のひとつのカテゴリ。人が定義した特徴をもとに、トレーニングを重ねて機械が実行できるようになる仕組みになります。
ニューラルネットワークは、機械学習の手法のひとつであり、人間の脳のニューロンを模したモデルを使用するものです。入力層、出力層、隠れ層の3層で構成されています。
そして、ディープラーニングは、ニューラルネットワークの層を多層化したもの(ディープニューラルネットワーク)を用いて、より高度な学習や分析を行えるようにしたアルゴリズムです。
人間が答えを定義しなくてもコンピューターが自動でパターンの定義を行うことができ、現在ニューラルネットワークの主流として用いられています。
ディープラーニングについての詳細は、こちらの記事で解説していますので、ご参考ください。
機械学習が注目される理由とは
機械学習が注目されるようになったのは、コンピュータの性能向上と低価格化により、今までにできなかった大量のデータを効率的に扱えるようになったからです。
さらに近年のビッグデータの登場やIoT化により、データ分析の需要がますます高まっていることも影響しています。
機械学習の技術も進化しており、様々な課題の解決に機械学習が利用されるようになりました。
機械学習でできること
機械学習は人間を超える規模の処理や分析が可能で、大量のデータから正確な結果を得られます。また、その判断には言語的解釈は必要なく、人間が認識できない法則まで発見することが大きなメリットです。
ここでは機械学習でどのようなことが実現できるのか、具体例をご紹介します。
過去のデータから将来を予測する
これまで経験に頼っていた将来の予測を、過去データや影響要素を加味してより精度の高い予測ができます。
生産管理や販売計画などに活用して収益増加を図ったり、顧客情報から行動を予測して最適な販促施策を行ったりすることが可能です。
また、異常や故障のデータを活用することで、問題の発生をいち早く予測・検知できます。製品管理や製造ライン管理、定点観測などでの活用も進んでいます。
自動化で人員コストを削減する
コンピュータに自動作業させることで、人員コストを削減できます。チャットボットを用いた無人サポートシステムやレジの自動化などが代表的な活用例です。
また、コンピュータに大量の画像を学習・解析させることで、認証や特定を行えます。個人認証のほか、画像診断システムなどへも活用されています。
機械学習の3つの種類とは
機械学習は、正解となる「教師データ」を元に答えを出力します。その教師データの種類によって、以下の3つの種類に分けられます。
- 教師あり学習
- 教師なし学習
- 強化学習
それぞれ、どのような違いがあるのか仕組みを詳しく見ていきましょう。
教師あり学習
教師あり学習とは、あらかじめデータと特徴を紐付けておき、新しいデータがどこに分類されるかを予測する手法です。問題(データ)と正解(ground truth)を与えることが教師の役割を果たしているので「教師あり学習」と呼ばれます。
教師あり学習は、過去のデータを元に特徴の基準(モデル)を構築して未知のデータに適用させ、判別を行う仕組みです。
「過去のデータから将来起こりそうな事象を予測すること」に使われるのが一般的で、メールのスパムフィルターや、明日の天気や気温の予測といったことに用いられています。
教師なし学習
教師なし学習とは、与えられたデータから規則性を発見して学ぶ手法です。ある一定の基準をデータに与えて、データの分布状況を学習します。
教師なし学習は正解を導き出すことを目的としており、正解・不正解が存在しません。新しいデータがどのグループの特徴に近いか判別し、データの精度を上げていくものです。
おすすめのメニューや商品を紹介する「レコメンド機能」や電子メールの分類などに利用されています。
強化学習
強化学習は、どのような行動をとれば報酬を最大でもらえるかを学習していきます。
教師あり学習に似ていますが、違いは答えを与えるかどうか。教師あり学習では明確な「答え」を与えますが、強化学習では与えません。その代わりに「行動」と「報酬」を与えます。
行動を繰り返し、報酬が大きくなった行動に高いスコア、報酬がもらえなかった行動に低いスコアをつけていくことで、その場面で最も効率がいい行動をとれるようになっていきます。
強化学習は、囲碁や将棋などのゲーム用AIやロボット制御など、明確な答えをあらかじめ与えることが難しい問題に使われます。注目を集めている自動運転技術は、強化学習とディープラーニングの手法を組み合わせたものです。
機械学習の5つの用途と利用事例とは
機械学習には、大きく分けて以下の5つの用途があります。
- 分類
- 回帰
- 次元削減
- クラスタリング
- レコメンデーション
それぞれ詳しく見ていきましょう。
データを分類する「クラス分類」
クラス分類とは、教師データを元に分析したいデータがどのカテゴリーに当てはまるのかを学習する手法です。
例えば、画像に写っている動物が「犬」なのか「猫」なのか、一定のデータに基づいた顧客が新規商品を購入するか否か、ある一定のデータが揃った時にどのような天候になるかなどを予想するのに使われます。
- 使用アルゴリズム:k近傍法、決定木、svm(サポートベクターマシン)など
実績から予測を行う「回帰」
回帰とは、様々なデータを元に
新規の数値を予想することです。過去の実績データを教師とする学習になります。
例えば、広告費をどのくらい増やせば売り上げがどれくらい伸びるのか、過去のデータに基づいた地価予想などを行えます。
- 使用アルゴリズム:線形回帰・ベイズ線形回帰など
データの圧縮・可視化を行う「次元削減」
次元削減とは、文字通りデータの次元を少なくしていくこと。
例えば身長と体重のデータを、「体格」という形でひとつにまとめるといった手法になります。教師データは用いません。
次元削減を行うことで不必要なデータがなくなり、機械学習の精度が上がります。データ量の多くなる、顔認識などの技術にも用いられています。
- 使用アルゴリズム:主成分分析(PCA)、特異性分解(SVD)など
データをグルーピングする「クラスタリング」
クラスタリングとは、データをある一定の規則に基づいて分けることです。
「分類」に似ていますが、「分類」があくまで答えを与えられたもの(教師あり学習)であるのに対し、こちらは、マシンが自分で共通するパターンを見つけ出します(教師なし学習)。顧客情報の分析や、ソーシャルネットワーク上の繋がりのグルーピングなどに使われます。
- 使用アルゴリズム:k平均法・混合ガウスモデルなど
嗜好を予測し推薦する「レコメンデーション」
レコメンデーションとは、その名の通り「おすすめ」を行う機能です。教師データはあり・なし両方で行われます。
データの中から特定のデータと似た特徴のものを見つけ出すことで、顧客の嗜好やニーズにあった別の商品などをお勧めすることに使われます。ECサイトでよく見られる「〇〇を購入した人は△△も見ています」はこの仕組みを利用しています。
- 使用アルゴリズム:協調フィルタリングなど
機械学習で使われるプログラミング言語とは
機械学習のプログラムを作る際に使われているプログラミング言語はいくつかありますが、一般的に使われている言語は「Python」です。また、統計解析向けの言語として開発された「R言語」も用いられています。
実装が簡単で扱いやすい「Python」
機械学習のプログラミングで一般的に使われている言語はPythonです。
Pythonは、プログラミング初心者の学習に使われるほど簡単な言語であり、コンパイリング(言語の書き換え)などの手間がないことから、機械学習分野でも広く使われています。
またライブラリやフレームワークが充実しており、ゼロから開発をしなくても様々なプログラムを作れることも魅力です。
Pythonについてもっと学びたい方は、こちらの記事も参照してみてください。
統計解析向けの「R言語」
統計解析言語として開発されたR言語も、機械学習に用いられます。統計解析のパッケージが豊富に揃っていることが特徴です。
統計学的な処理についてはR言語の方が正確性に優れていますが、取り扱いには統計解析の専門知識が必要になります。また、統計解析以外のパッケージは少ないため、汎用性ではPythonの方が有利です。
R言語については、こちらで詳しく解説しています。
機械学習の学習を始めるには?おすすめの方法3つ
機械学習は書籍や解説サイト、オンライン講座などを利用して学べます。
それぞれメリットがありますので、自分の状況にあった学習方法を選びましょう。複数の方法を併用するのもおすすめです。
書籍で概要を学ぶ
機械学習の解説本には、「機械学習とは何か?」という基礎的なものから、実践テクニックを解説しているものまで幅広くありますので、レベルや目的に応じて選びましょう。
ここでは、レベル別におすすめの本を2冊ずつご紹介します。
初心者向け
人工知能は人間を超えるか(角川EPUB選書)
人工知能をゼロから学べる入門書。機械学習はもちろん、ディープラーニングや人工知能の歴史まで網羅し、人工知能の概要をこの一冊で知ることができます。
深層学習教科書 ディープラーニング G検定(ジェネラリスト) 公式テキスト
ディープラーニングG検定の対策本。人工知能や機械学習の基礎的な情報が一冊にまとまっています。数式がほとんど出てこないので読みやすく、検定を受けない方にもおすすめです。
先に紹介した「人工知能は人間を超えるのか」をセットで読むのがおすすめです。
中級者向け
はじめてのパターン認識
機械の統計や線形代数など数学の話から、実際にPythonのコードで動かす実践まで取り扱っている本です。Pythonの各コードについて、数学の知識とひもづけて解説しているため理解が深まります。
専門的な内容を含むため、機械学習の概要を理解し、実践する方法を知りたい方におすすめです。
[第3版]Python 機械学習プログラミング 達人データサイエンティストによる理論と実践
機械学習に関する基礎から応用まで取り扱い、機械学習の概念から実装の体験まで実践的な内容を扱う本です。前半では、機械学習の背景にある概念や理論を解説しているため、理解を深めた状態で実装に臨めます。
紹介するコードはシンプルなものばかりなので、機械学習の実装をはじめたい方にぴったりな本です。
上級者向け
パターン認識と機械学習 下 (ベイズ理論による統計的予測)
パターン認識と機械学習の理論や手法をまとめた本です。機械学習についての理論を数学の知識を応用し解説しているため、この本を理解するには微分積分や統計の基礎知識が必要です。
機械学習の背景にある理論を理解することで、実装にも繋がります。数学の基礎知識があり、機械学習の理解を深めたい方におすすめです。
技術者のための基礎解析学 機械学習に必要な数学を本気で学ぶ
機械学習に関して最も必要とされる、解析学や微積分を体系的に学べます。機械学習に関する全ての知識を解説している訳ではありませんが、機械学習を実装する上での「本質」に迫った本です。
実装に繋がる実用的な内容なので、基礎から学び直したいエンジニアの方や理工系の大学生におすすめです。
機械学習の解説サイトで理解を深める
機械学習の概要が体系的にまとめられていベンダーのサイトも学習に役立ちます。リファレンス的な使用にもおすすめです。
Microsoft Azure Machine Learning のアルゴリズムの選択方法
Microsoftが提供するAzure Machine Learning Studioは、モジュールをドラッグアンドドロップしたり、接続したりして機械学習を利用できるサービスです。
Azure Machine Learningのドキュメントの中にアルゴリズムを紹介しているページがあり、非常に参考になります。
機械学習アルゴリズム選択ガイド
SAS Japan提供のメディアで、2択の質問に答えていくことで「最初に試すべきアルゴリズム」を紹介してくれるチートシートが掲載されています。各アルゴリズムの理解に役立てることができるでしょう。
オンライン講座で目的のテーマを学ぶ
学びたい内容が具体的にある方は、オンライン講座でテーマを選択してピンポイントで学ぶのがおすすめです。機械学習に関する講座のあるオンライン講座サービスを3つご紹介します。
Aidemy(アイデミー)
AidemyはAI専門のオンラインスクールで、AIに関する様々な講座を扱っています。
コースを閲覧するには授業料が必要ですが、『Python入門』『機械学習入門』『ディープラーニング基礎』の3つのコースは、無料で視聴できます。
AIや機械学習になんとなく興味がある、という初心者の方はここから始めてみるとよいでしょう。
PyQ(パイキュー)
PyQは、自分で動画やスライドなどを見ながら自分で学習を進めていく自習型学習サイトです。Pythonや機械学習の、基礎から実務に使えるレベルまで、幅広い講座が揃っています。
受講プランは、ライトプラン(月額3,040円)とスタンダードプラン(月額8,130円)の2種類があります。スタンダードプランなら、質問機能によるサポートがつきます。じっくり機械学習について学んでみたい人におすすめです。
Udemy(ユーデミー)
Udemyは、世界最大のコースラインナップを持つMOOCs(Massive Open Online Courses)です。様々な講師による講座が揃っており、Pythonや機械学習の基礎から、特定のライブラリの活用方法までラインナップが豊富です。
機械学習に関する講座だけでも700以上(2021年3月時点)があるため、自分にあった講師・トピックを厳選しながら学びたい人におすすめです。
まとめ
機械学習はさまざまな可能性が秘められている重要な技術です。AIや機械学習の技術を活用した新しいサービスは続々と生まれており、今後ますます生活に身近なものとなってくるでしょう。
AIの活用も様々な分野で進んでおり、ビジネスパーソンには必須の知識といえる日も遠くないはずです。ぜひこの機会に、AI活用に欠かせない機械学習について学習されてみてはいかがでしょうか?