【入門編】機械学習とは？3つの種類と身近な活用事例をわかりやすく解説

こんにちは。スキルアップAI編集部です。
人工知能（AI）は、近年急速に進化し、私たちの生活やビジネスといったさまざまな分野において劇的な変革をもたらしています。そのため、AIは私たちにとって、なくてはならない技術であるといえます。

その背景にあるのが機械学習（Machine Learning）という技術です。機械学習は、AIの構成要素の一つであり、**コンピュータがデータから学習し、経験を通じて課題の遂行能力を向上させる技術**です。

AIは、ロボット工学、自動運転車、自然言語処理、画像認識など、さまざまな分野で驚異的な成果を上げていますが、これらの多くは機械学習アルゴリズムによって支えられています。
例えば、スマートフォンの音声アシスタントが私たちの話す言葉を理解し、適切な応答を返すのも、機械学習の力によるものです。また、NetflixやYouTubeが個々のユーザに最適なコンテンツを推薦する背後にも、機械学習が重要な役割を果たしています。

本記事では、**機械学習の基本概念から実際の活用事例までをわかりやすく解説**します。これからの未来を形作る力をもつ機械学習の魅力と可能性について、探求していきましょう。

<目次>
1. 機械学習とは？
1. 機械学習の種類
1. 機械学習の代表的な手法
1. 機械学習の身近な活用事例
1. 機械学習の注意点
1. 機械学習を実装するならPythonを習得しよう
1. 機械学習やPythonについて学ぶならスキルアップAIがおすすめ

## 機械学習とは？
機械学習とは、**コンピュータが大量のデータを分析（学習）し、パターンや規則性を見つけ出すことで、予測や意思決定の精度を向上させる技術**です。学習した結果を新たに得られたデータに適用することで、将来の予測や、データの分類・判断が可能となります。

![about-machine-learning01.png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/9e093805-acd7-1e65-21ab-7a7e008849b6.png)

この際、機械学習モデルで取り扱う問題設定は「タスク」と呼ばれ、これには特定の目的に対する解決策を見つけることが含まれます。

機械学習は「Machine Learning（ML）」とも呼ばれ、人工知能（AI）を構成する要素の一つです。

## 機械学習の種類
機械学習における学習方法には、教師（正解ラベル）が付与されたデータを用いて学習を行う「教師あり学習」、教師（正解ラベル）を用いずに学習を行う「教師なし学習」、そして試行錯誤を行いながらよりよい行動の取り方を学んでいく「強化学習」の3種類が存在しています。

### 教師あり学習
教師あり学習は、**入力データと対応する正しい出力（＝教師）をもつデータセットを用いてモデルの訓練を行い**ます。モデルはこれらのデータからパターンを学習し、新しいデータに対する正しい出力（ラベル）を予想します。

また、教師あり学習には「回帰」と「分類」という2つの主要なタイプがあります。

回帰（Regression）は、**連続した値を予測するタスク**です。例えば、住宅価格や売上の予測などが該当します。この手法では、入力データとそれに対応する連続した数値（ラベル）を使用して、未知のデータに対する数値を予測します。

![about-machine-learning02.png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/031b6bac-9065-4a99-c8a2-d509df4c3eb5.png)

分類（Classification）は、**カテゴリやクラスを予測分類するタスク**です。例えば、メールが「スパム」か「非スパム」かの分類や、学生が次のテストで「優秀」「普通」「不合格」のどのクラスに分類されるかの予測などが該当します。この手法では、入力データとそれに対するカテゴリ（ラベル）を使用して未知のデータを特定のクラスに分類します。

![about-machine-learning03.png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/ce86dead-de06-cfbd-3d8d-ad4a22e8beab.png)

教師あり学習では、これらの手法を組み合わせてさまざまな予測や分析を行います。

### 教師なし学習
教師なし学習では、**入力とそれに対する正しい出力（＝教師）のデータセットをモデルに与えません**。代わりにラベルのないデータを用いて、データの構造やパターンの抽出を行います。

この手法では、モデルは入力データそのものに着目し、データの特性や類似性を見つけ出すことから、主にデータのクラスタリング（データの集合を部分集合＝クラスタに分割すること）や次元削減（多次元のデータをなるべく情報を失わないように低次元のデータに落とし込むこと）に使用されます。

教師なし学習の具体的なタスクとして、顧客セグメンテーションや異常検知、データの可視化などが挙げられます。

### 強化学習
強化学習は、AI自身（エージェント）が与えられた環境と相互に作用しながら、**試行を繰り返すことによって、行動に対する報酬を最大化するように学習する方法**です。そのため、前述した2つの手法とは異なり、学習用のデータがない状態で始めることが多くなります。

学習する主体であるエージェントは、ある状況において行動を選択し、その結果として環境から報酬を受け取ります。報酬は、エージェントが取った行動がどれだけよかったかを示すものです。エージェントは、これらの報酬をもとに、将来の行動を改善するために学習します。

強化学習の具体的なタスクとしては、チェスや囲碁のようなボードゲームにおける最適なプレイ方法の学習や、ロボットの歩行制御、自動運転の制御などが挙げられます。例えば、ロボットの歩行制御では、倒れずに歩けた距離を報酬として与えたりします。

## 機械学習の代表的な手法
ここでは、教師あり学習や教師なし学習の具体的な手法を簡単に紹介します。

|手法|	分類|	目的|	概要|
| --- | --- | --- | --- |
|線形回帰|	教師あり学習	|回帰	|データ間の関係を直線で表し、ある変数から別の変数を予測する統計手法|
|ロジスティック回帰|	教師あり学習	|（回帰）分類	|ある事象が発生する確率を0から1の間で予測する統計手法|
|サポートベクターマシン	|教師あり学習	|分類	|データを最大限に分離する超平面を見つけるアルゴリズム|
|決定木	|教師あり学習|	回帰 分類	|データを特徴ごとに分割し、分岐の末端で結果を予測するアルゴリズム|
|ランダムフォレスト	|教師あり学習|	回帰 分類	|複数の決定木を構築し、それらの予測を統合するアルゴリズム|
|ニューラルネットワーク	|教師あり学習	|回帰 分類	|多層のノードを通じてデータを処理・学習し、複雑なパターン認識や予測を行うアルゴリズム|
|ナイーブベイズ	|教師あり学習	|分類	|ベイズの定理を用いてクラスの確率を計算するアルゴリズム|
|アダブースト	|教師あり学習	|回帰 分類	|弱い分類器を組み合わせることで、強力な分類器を構築するアンサンブル学習アルゴリズム|
|k近傍法（kNN法）|	教師あり学習	|回帰 分類	|最も近いk個の隣接点の多数決により、予測を行うアルゴリズム|
|k-means	|教師なし学習	|クラスタリング	|各クラスタの重心とデータポイントとの距離の二乗和を最小化するクラスタリング手法|
|主成分分析|	教師なし学習	|次元削減 特徴量抽出	|多次元のデータを少数の主成分に圧縮することでデータの特徴を抽出・可視化する統計手法|
|階層型クラスタリング	|教師なし学習	|クラスタリング	|データ点間の類似度にもとづいて階層構造を形成し、クラスタを結合するクラスタリング手法|

## 機械学習の身近な活用事例
機械学習は私たちの日常生活のさまざまな場面で活用されています。ここでは、「データ分析」「データ予測」「画像認識」「音声認識」「自然言語処理」の5つの身近な活用事例について簡単に説明します。

### 1.データ分析
データ分析は、膨大なデータから有益な情報を抽出するプロセスです。このプロセスでは、データの収集、整理、処理を行い、傾向やパターンを見つけ出します。

例えば、ネットショッピングのサイトでは、**ユーザの購入履歴や閲覧履歴を分析して、個々のユーザに合った商品をおすすめ**します。これにより、ユーザは自分にぴったりの商品を見つけやすくなり、サイト運営者も売上を増やすことができます。

また、企業ではデータ分析を通じて**顧客のニーズや市場のトレンドを把握し、ビジネス戦略を最適化**します。

### 2.データ予測
統計モデルや機械学習アルゴリズムを用いて、将来の傾向や出来事を予測します。

例えば、過去の**気象データを使って未来の天気を予測**します。これにより、農作物の収穫量を収穫時期を予測でき、生産性を高めることが可能です。さらに、金融機関では**株価の動向や市場の変動を予測するためにデータ予測を活用し、リスクを管理しつつ投資戦略を立てられます**。

### 3.画像認識
画像内の物体や人物を識別し、特徴を抽出することができます。

例えば、スマートフォンのカメラアプリでは、顔認識機能を使って写真を撮るときに顔にピントを合わせます。また、SNSでは投稿された写真に写っている友人を自動でタグ付けする機能もあります。医療分野では、**画像認識技術を用いてX線やMRI画像から病変を検出し、診断をサポートする**システムが開発されています。

### 4.音声認識
音声認識は、人間の話す言葉をコンピュータが理解する技術です。音声信号を解析し、文字情報に変換することができます。

例えば、スマートフォンの音声アシスタント（SiriやGoogleアシスタントなど）では、音声で操作することができるため、「明日の天気は？」と尋ねるだけで、天気予報を教えてくれます。また、車のナビゲーションシステムでは、目的地を音声で設定したり、道案内を音声で受け取ったりすることができます。

さらに、**電話の自動応対システムを導入することで、コールセンター業務の自動化**を実現している企業も多くあります。

### 5.自然言語処理
自然言語処理は、人間の言葉をコンピュータが理解し、適切に処理する技術です。この技術では、テキストデータの解析や生成を行い、自然なコミュニケーションを実現します。

例えば、翻訳アプリでは、異なる言語間の翻訳を瞬時に行います。また、チャットボットは、ユーザの質問に自然な言葉で答えることが可能です。これにより、**カスタマーサポートが24時間対応可能**になります。さらに、自然言語処理技術は、**メールの自動返信や文書の要約作成など、日常的なタスクの効率化**にも役立っています。

現在注目されている生成AIやその代表的なツールであるChatGPTも自然言語に該当します。それぞれ詳細に解説している記事も合わせてご覧ください。

## 機械学習の注意点
機械学習において、本当に評価すべきは、**運用段階でどの程度の精度で予測が可能であるか**ということです。運用段階では、**学習に使用していない未知のデータを用いて予測を行う**ことになります。実運用で使用可能かどうかは未知のデータに対する評価結果で判断することが望ましいです。

この際、評価に使用する指標の1つにデータに対する「誤差」があります。機械学習ではこの誤差を「**訓練誤差**」と「**汎化誤差**」の2つに分けて考えます。

訓練誤差とは、学習に用いたデータに対する誤差であり、汎化誤差とは、未知のデータに対する誤差のことです。機械学習におけるモデルの作り込みは**汎化誤差を小さくする**ように行うべきであるといえます。

### 過学習と未学習が起きる可能性がある
訓練誤差が十分小さいにもかかわらず、汎化誤差が大きい場合、「**モデルは訓練データに過学習している**」といいます。

テストを例に挙げて考えてみましょう。

ある学生が数学のテストのために、特定の練習問題セットだけを繰り返し解いているとします。この練習問題セットには、例えば「3×4」「5×6」「7×8」などの問題が含まれています。学生はこれらの問題を何度も解くことで、これらの特定の問題に対して完璧に答えられるようになります。

しかし、テスト当日に同じ形式の新しい問題「6×7」「8×9」などが出題された場合、学生はこれらの新しい問題にうまく答えられません。これは、学生が練習問題セットに特化して学習しすぎて、一般的な数学の理解が不足しているためです。

これが過学習のイメージです。**練習問題のセット（訓練データ）にだけ特化して学び、一般的な掛け算の理解が不足**してしまっています。

![about-machine-learning04.png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/d9531fce-9798-8d08-ad8b-371beb63f0d0.png)

過学習の原因としては、**訓練データの数が少ない**ことや、**モデルの表現能力が高すぎる**ということが挙げられます。

対して、訓練誤差と汎化誤差がともに大きいままであれば、「**モデルは訓練データに未学習している**」といいます。

別の学生が数学のテストのために、たくさんの異なる練習問題セットを一度だけざっと解くとします。この学生は、各問題セットに対してあまり時間をかけず、表面的にしか解かないため、問題のパターンや解き方を深く理解できていません。

テスト当日、新しい問題「3×5」「4×6」などが出題されたとき、この学生はどのように解けばよいかを十分に理解していないため、正しい答えを出すことができません。これは、学生が練習問題から十分に学習できていないためです。これが未学習のイメージです。

未学習の原因としては、**データの性質とモデルがかみ合っていない**ことや、**計算条件が不適切である**ことが挙げられます。

![about-machine-learning05.png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/cbd0c118-a91a-ac90-1e4f-a6d07bc8cd7d.png)

### 入力の次元数が増えると学習の難易度が上がる
入力データの次元数（説明変数の数）が増えると、モデルの学習の難しさが指数関数的に増加してしまいます。「難しさが増加する」とは、**学習時間が大きく**なったり、十分な予測精度を記録するために**膨大な量のデータが必要**になったりすることです。
このような問題は「次元の呪い」とも呼ばれています。

近年はビッグデータ化が進んでおり、データの次元はますます増える傾向にあります。

### 予測結果を説明することが難しい
機械学習のモデルの予測結果において、**その結果が出力された理由を説明することは難しい**という課題があります。特にニューラルネットワークは複雑な構造をもつことが多いため、その予測結果を人間が理解しやすい形で説明することが難しいことが少なくありません。

2015年には、Google Photosがアフリカ系女性の写真に「ゴリラ」とラベル付けを行ってしまい、世界的な問題に発展した事例があります。

当然ではありますが、Googleがこのようなラベル付けされた学習用データを用意していたわけではなく、当時のアルゴリズムの限界としてこのような事態が起こってしまいました。この際、**写真のどこを見て「ゴリラ」と予測してしまったかの説明をつけることが難しかった**ため、アルゴリズムの変更では問題を解決することができずに、学習用データセットからゴリラのラベルを外すこととなりました。

## 機械学習を実装するならPythonを習得しよう
機械学習の実装には、Pythonが用いられることが多くあります。

Pythonには、scikit-learn、TensorFlow、Kerasなど**機械学習ライブラリやフレームワークが豊富**に揃っています。

これらのライブラリやフレームワークを使えば、複雑なアルゴリズムを簡単に実装でき、データの前処理やモデルの評価もスムーズに行えるため、開発のコスト削減や効率アップなどにつながります。

また、Pythonは多くの企業で導入実績があるという点で高い信頼性を誇っています。YouTubeやInstagramなどの身近にあるサービスにおいてもPythonが使用されていることから、その**信頼性の高さ**がうかがえます。

これらの要素に加えて、Pythonはシンプルで理解しやすいので、**初学者でも比較的簡単にコーディングが可能**です。機械学習の実験やプロジェクトを効率的に進めるために、Pythonの基礎をしっかり身につけましょう。

以下の記事では、学習方法なども紹介しているのでぜひチェックしてみてください。

https://www.skillupai.com/blog/tech/python-study/

## 機械学習やPythonについて学ぶならスキルアップAIがおすすめ
機械学習やPythonを学ぶなら、スキルアップAIがおすすめです。

スキルアップAIは、初心者から上級者まで幅広いレベルに対応した学習コースを提供しており、実践的な内容が多いのが特徴です。オンラインでいつでも学べる柔軟な学習環境が整っており、**実際のプロジェクトに役立つスキルを効率的に身につける**ことができます。

豊富な教材やサポート体制が充実しているため、独学では難しい部分も安心して学習を進められます。

「[現場で使える機械学習・データ分析基礎講座](https://www.skillupai.com/machine-learning/)」では、**機械学習プロジェクトの一連の流れとさまざまなアルゴリズムの詳細をハンズオンを通じて学びます**。機械学習の概論から始まり、重要なアルゴリズムや機械学習プロジェクトの流れを学び、実務に応用することができます。一部無料で講座を視聴できるトライアル版もあるので、気になる方はまずはトライアルから始めてみてください。

「[機械学習のためのPython入門講座](https://www.skillupai.com/python_jdla/)」は、**期間限定で約8時間の講座が全編無料（通常税込55,000円）で視聴可能**となっています。
環境設定、Pythonの基礎文法、Numpy/Pandasなどの入門スキルから、データ可視化、前処理、モデル構築の基礎スキルまでを習得することが可能です。機械学習エンジニアやデータサイエンティストを目指す方は、この機会にぜひPythonを学んでみてください。

☆☆☆
スキルアップAIのメールマガジンでは会社のお知らせや講座に関するお得な情報を配信しています。配信を希望される方は[こちら](https://share.hsforms.com/1_XlReV-4Te-zcxCl9lhffA2mtef)

また、SNSでも様々なコンテンツをお届けしています。興味を持った方は是非チェックしてください♪
Xは[こちら](https://twitter.com/SkillupAi)
Facebookは[こちら](https://www.facebook.com/skillupai)
スキルアップAI公式YouTube AIビジネスチャンネルは[こちら](https://www.youtube.com/AIBusinessChannel)