AIエンジニアって名乗れるとカッコいいので、この記事を読んでください【機械学習を解説】

# はじめに

AI、流行っていますね。
生成AI、AIエージェント、RAGなどのワードを耳にする回数も多いのではないでしょうか。
"AI"という言葉に注目が集まりがちですが、機械学習については整理できていますか？

さらに、「どんな手法」が「どんな場所」で実用されているのかまで知っている人は非常に少ないと思います。

生成AIがバズワードになっている今だからこそ、それを支える技術についてしっかりと理解しておくことで一段周りと差別化することができます。
各手法の実用例と技術説明に分けてまとめているので、興味のある部分から見てみると良いと思います。

### 本記事の対象者

- AIやデータサイエンスを学習中の方
- 実務でAIプロジェクトに取り組んでいる方
- AIエンジニアでの就職やインターンを考えている方

### 記事の構成

１｜機械学習の全体像
２｜教師あり学習
３｜教師なし学習
４｜強化学習
５｜まとめ

:::note info
GEEK OFFERでは[エンジニアにとって役立つ情報の発信を届けています](https://geek-offer.com/)
今後さらに情報を届けていくのでチェックしてみてください ☺︎
:::


# １｜機械学習の全体像

機械学習は大きく3つの手法に大別されます。

**① 教師あり学習**: 教師データデータをもとに法則性を学習します

**② 教師なし学習**: 正解データ（教師データ）を使うことなく、データからパターンを学習します

**③ 強化学習**: データをもとに行動した結果をもとに、最適な行動を学習します


各手法で、向いているタスク、向いてないタスクがあります。以降では、各手法が活用されているタスク事例と、アルゴリズムを交えて解説していきます。

# ２｜教師あり学習

## 概要

既知の入力データと対応する正解データを使ってモデルを訓練し、新たなデータに対する予測を行います。

### 主なタスク

入力データと出力結果の形式（I/O）によって分類をしました。

- 時系列予測: 過去の時系列データから未来のデータを予測します
- 画像分類: 画像データを入力し、あらかじめ割り当てた分類ラベルを出力します
- 物体検出: 画像データを入力し、画像内の特定の物体の位置と種類を特定します
- セグメンテーション: 画像をピクセル単位で分類し、各領域を識別します
- 文章分類: テキストデータを入力として、その内容に応じたカテゴリラベルを出力します
- 機械翻訳: ある言語の文章を別の言語に翻訳します

## 時系列予測

### 実用例

### 株価予測(大和証券)

大和証券では、AIを活用して決算発表後の1ヶ月間に株価が上昇する可能性が高い銘柄を選定し、顧客に伝えるサービスを開発しています。

https://www.dir.co.jp/business/case/ai.html

### 災害予測(ウェザーニューズ)

AIを活用して全世界の降水分布を高精度に可視化・予測するプロジェクト。特に東南アジアなど大雨災害の多い地域での被害軽減に取り組む。

https://jp.weathernews.com/news/24732

### 在庫予測(花王株式会社)

AIを用いた在庫予測システムを構築。
過去の販売データや市場動向データを分析し、将来の在庫需要を高精度に予測することを目指しています。
在庫・棚割・人流予測などは小売業界の中でAIが活用されやすいテーマです。

https://www.dsk-cloud.com/casestudy/kao?hsCtaTracking=f8e0d3db-844b-4616-abd3-e24ac838b386%7Ce75f10d7-31c7-497b-8a91-17cacf5312d5

### 主要なアルゴリズム

### 自己回帰モデル

時系列データの解析や予測に用いられる統計モデルです。

AR、MA、ARMA、ARIMAなどのモデルがあります。それぞれ特徴があるので詳しくは下記の記事などを参照してください。

https://gri.jp/media/entry/7602

### 状態空間モデル

時系列データを解析・予測する統計モデルで、観測されない「状態」と観測される「観測値」に分解してモデル化します。

https://note.com/yiida/n/n5e5db1bea552

### 決定木系

決定木はデータをツリー構造で表現し、分類や回帰を行う手法です。分類木と回帰木を組み合わせたもので、機械学習や統計、マーケティングなどで広く利用されています。ランダムフォレストは複数の決定木を組み合わせて精度を向上させる手法です。

https://cacoo.com/ja/blog/what-is-decision-tree/

### Transformer

Transformerはデータを検索するための鍵（Key）と値（Value）のペア集合に対して、問い合わせ（Query）を投げて値を取り出す仕組みを持ち、効率的な情報抽出が可能。

https://zenn.dev/zenkigen_tech/articles/2023-01-shimizu

### gMLP

Google Brainが開発したgMLPは、Attention機構を用いずにTransformer型モデルと同程度の精度を実現する、全結合層を基本としたニューラルネットワークです。

https://deepsquare.jp/2021/05/gmlp/

### RNN系

RNN（Recurrent Neural Network）は、時系列データやシーケンスデータの処理に特化したニューラルネットワークです。

https://qiita.com/omiita/items/72998858efc19a368e50

## 画像分類

画像データを使用してラベルや物体の位置・領域を予測します。

### 実用例

### 製品検査（株式会社システムインテグレータ）

AIを用いたディープラーニング異常検知システム「AISIA-AD」を開発し、製造業の品質検査を自動化しています。外観検査の自動化によりヒューマンエラーを排除し、検査コストを削減することが狙い。

https://products.sint.co.jp/aisia-ad/blog/what-is-quality-inspection

### ネットオークションで出品時の項目の自動入力（メルカリ）

画像系AIを活用し、出品時に商品名・カテゴリー・ブランドの項目を自動的に埋める機能を開発。これにより、出品者が商品情報を入力する手間を省き、より迅速に出品できるようになりました。

https://engineering.mercari.com/blog/entry/2017-12-23-100000/

### 主要なアルゴリズム

### SVM

サポートベクターマシン (SVM) は、分類アルゴリズムの一つで、線形・非線形な分類のどちらも扱えます。

https://helvetechblog.com/posts/scikit-learn-svc-class

### MLP

多層パーセプトロン（MLP）は複数の層を持つニューラルネットワークで、入力層、中間層（隠れ層）、出力層から構成されています。

各層のニューロンは前の層のニューロンと全結合されており、非線形関数を用いてデータを変換します。MLPは画像分類や自然言語処理など、様々なタスクに利用されています。

Machine LearningからDeep Learningに学習を進めるタイミングで最初にMLPを学ぶケースが多いです。

https://ai-scholar.tech/articles/image-recognition/mlp-mixer

### CNN(VGG, ResNet, ...etc)

CNN（Convolutional Neural Network：畳み込みニューラルネットワーク）は画像認識に特化したモデル。

基本的には「畳み込み層」＆「プーリング層」の組み合わせを複数回繰り返したあと、最後に全結合層を繰り返して結果を出力します。

https://ai-kenkyujo.com/artificial-intelligence/ai-architecture-02/

### 主要なアルゴリズム

### FasterRCNN

ディープラーニングによる一般物体検出手法の一つです。R-CNNやFast R-CNNの後継として開発され、End-to-Endのアプローチを採用しています。これにより、物体検出の精度と速度が大幅に向上しました。

https://blog.negativemind.com/2019/02/20/general-object-recognition-faster-r-cnn/

### SSD (Single Shot Multibox Detector)

領域スキャンのアプローチを使わずに入力画像からCNNで直接物体の位置を検出するOne-Stage(Shot)アプローチを採用しています。SSDの特徴は、CNNの複数の層から物体のBounding Boxを出力する点です。

https://blog.negativemind.com/2019/02/26/general-object-recognition-single-shot-multibox-detector/

### DETR

Transformerを用いた物体検出手法です。従来の物体検出手法の問題点を解消し、End-To-Endな学習を可能にしました。

DETRはBackbone、Transformer、FFNの3つの構成要素から成り、NMSのような事後処理を排除しています。

https://arxiv.org/abs/2005.12872

## セマンティックセグメンテーション

### 実用例

### 自動運転(TIER IV)

The Autoware Foundation (AWF)に提案しているAutowareの新アーキテクチャを紹介しています。このアーキテクチャはセンサーからのデータ処理、自己位置推定、物体認識、ルート計画、車両制御など、7つのモジュールで構成。

https://github.com/tier4/AutowareArchitectureProposal

### 医療解析(Holoeyes株式会社)

Holoeyes株式会社は医療向けVR／MRサービスでディープラーニングを活用し、CT画像から手術対象の臓器を立体化しています。

https://atmarkit.itmedia.co.jp/ait/articles/1803/14/news150.html

### 主要なアルゴリズム

### FNC

ニューラルネットワークを用いたアルゴリズムで、特に画像認識や自然言語処理などの分野で高い精度を誇ります。

https://blog.negativemind.com/2019/03/11/semantic-segmentation-by-fully-convolutional-network/

### U-Net

U-Netはセマンティックセグメンテーションのために開発されたディープラーニングモデルです。エンコーダとデコーダから構成され、エンコーダで抽出された特徴マップをデコーダで復元する際にスキップ接続を用いることで、高精度なピクセル単位の分類を実現します。

https://www.skillupai.com/blog/tech/segmentation2/

## 文章分類

### 実用例

### コメントの自動削除

オルツはYouTube Liveなどのライブ配信サービスのチャット・コメントを人工知能で自動的に管理する「AIモデレーター」を開発しました。不適切コメントの自動削除や問題のあるコメント投稿者の抽出、コメントの自動返信などを行います。

https://alt.ai/news/news-1163/

### 文章分類による業務自動化率の向上

ネットワークサービスの販売を行なっている企業で、注文受付から開通までの一連の流れを自動化するプロジェクト。従来、手作業で振り分けが行われていたものを文章分類の技術を活用して自動化に取り組んだ。

https://laboro.ai/case/document_classification/

### 主要なアルゴリズム

### ロジスティック回帰

ロジスティック回帰は教師あり学習手法の一つで、文書分類やスパムフィルタリングなどに使用されます。下記の事例では、ニュース記事を「映画記事」と「スポーツ記事」に分類するタスクに取り組んでいます。

https://poniti.hatenablog.com/entry/2020/01/02/185114

### RNN

RNN（Recurrent Neural Network）は時系列データやシーケンスデータの処理に特化したニューラルネットワークです。系列情報を扱えるため、自然言語処理や音声認識などのタスクで活用されます。

https://qiita.com/Kosuke-Szk/items/43f330b0888f8e696c3f

### BERT

BERT（Bidirectional Encoder Representations from Transformers）はGoogleが開発した自然言語処理モデルで、双方向のトランスフォーマーを用いて文脈を理解します。文書分類や質問応答など、様々なNLPタスクで高い精度を実現しています。

https://www.ai-shift.co.jp/techblog/2089

## 機械翻訳

### 実用例

### GNMT(Google Neural Machine Translation)

機械翻訳システムです。GNMTは文全体を翻訳することで、より文脈に沿った自然な翻訳を提供。ディープラーニング技術を活用し、長・短期記憶（LSTM）を用いて自然な言語処理を実現しています。

https://arxiv.org/abs/1609.08144

### DeepL

ChatGPTの登場によってやや利用する頻度が落ちた印象がありますが、機械翻訳の代表的な事例です。

研究室では、論文を日本語訳して読む際に愛用していた方も多いのではないでしょうか。

https://www.deepl.com/ja/translator

### 主要なアルゴリズム

### SequenceToSequence（Seq2Seq）

エンコーダとデコーダの2つの機構からなるニューラルネットワークモデルです。

主に翻訳、自動字幕生成、チャットボットなどのシーケンシャルなデータの処理に用いられます。Seq2Seqは入力シーケンスを固定長のベクトルにエンコードし、そのベクトルをデコーダに渡して出力シーケンスを生成します。

https://blog.octopt.com/sequence-to-sequence/

### Transformer

個人的に絶対押さえて欲しいポイントです。

Transformerは2017年に発表された"Attention Is All You Need"という論文で初めて登場した深層学習モデルです。

エンコーダとデコーダをAttentionというモデルのみで結んだネットワークアーキテクチャで、機械翻訳タスクにおいて高い精度と学習時間の短縮を実現しました。自然言語処理だけでなく、画像認識や音声認識など多くの分野で応用されています。

https://crystal-method.com/topics/transformer-2/

### BERT

Googleが開発した自然言語処理モデルで、双方向のトランスフォーマーを用いて文脈を理解します。文書分類や質問応答など、様々なNLPタスクで高い精度を実現しています。

https://www.ai-shift.co.jp/techblog/2089

# ３｜教師なし学習

## 概要

教師データ（正解データ）を用いることなく、データ間の特徴や規則性を見つけ出す手法です。

### 主なタスク

### クラスタリング

データを類似性に基づいてグループ化する手法です。

### 次元削減

データの次元を減らします。次元を落とすことで計算効率が上がったり、汎化性能の向上が期待できます。

## クラスタリング

### 実用例

### 異常検知（ブレインパッド）

食品工場における不良品の検知をディープラーニングによる画像解析で支援しています。

異物混入や不良品の発見精度の向上を通じて、製造体制の品質向上を狙います。

https://www.brainpad.co.jp/news/2016/10/25/3816

### レコメンデーションシステム（富士通）

富士通はユーザーの購買履歴や属性情報に基づいて適切な商品やサービスを推奨するレコメンデーションシステムを開発。

ECサイトやニュースサイトでのユーザー体験が向上し、売上の増加に寄与可能。

https://www.fujitsu.com/jp/solutions/business-technology/intelligent-data-services/digitalmarketing/column/column018.html?utm_source=chatgpt.com

### 主要なアルゴリズム

### Kmeans

K-meansはクラスタリングのアルゴリズムの一種で、実行速度が速く拡張性があるという特徴があります。

K-meansのKはクラスタの数を示すハイパーパラメータです。K-meansはデータをK個のクラスタに分けるために、各クラスタの重心をランダムに初期化し、各データポイントを最も近い重心に割り当てることを繰り返します。

https://aiacademy.jp/media/?p=254

### Fuzzy C means

ファジィc-平均法（Fuzzy c-means）は、データポイントが複数のクラスタに所属することを許容したクラスタリング手法の一つです。

各データポイントのクラスタへの帰属度を0から1の範囲で表現し、曖昧なデータの分類に適しています。ファジィクラスタリングは境界線上のデータに対して柔軟なクラスタリングを提供します。

https://qiita.com/dr_paradi/items/50213a8c00a7b862d922

## 次元削減

データの次元を減らして視覚化することで、データの特徴を把握しやすくし、分析がスムーズに行えるようになります。

### 実用例

### 前処理で特徴抽出

機械学習における「次元の呪い」とは、特徴量の数が増えるほど、必要な訓練データの量が指数関数的に増加する現象を指します。これにより、モデルの精度を高めるためには膨大なデータと時間が必要となります。

ちなみに英語だと"Curse of dimensionality"です。

https://atmarkit.itmedia.co.jp/ait/articles/2006/29/news023.html

### 主要なアルゴリズム

### PCA（主成分分析）

主成分分析（PCA）はデータセットの次元を削減するための手法です。

データの分散が最大になる方向に線形変換を行い、新しい特徴量を抽出します。これによりデータの可視化や解析が容易になります。

https://aiacademy.jp/media/?p=256

### NMF（非負値行列因子分解）

非負値行列因子分解（NMF）はデータ行列を非負の行列に分解する手法です。

これによりデータの潜在的な特徴を抽出し、解釈しやすくします。特に画像データやテキストデータの解析に有効です。

https://thinkit.co.jp/article/17411

### LLE（Locally Linear Embedding）

ローカル線形埋め込み（LLE）は高次元データを低次元空間に変換する次元削減手法です。各データポイントをその近傍点の線形結合として再構成し、データの局所的な構造を保持します。非線形なデータ構造の可視化に適しています。

https://ai.reinforz.co.jp/967?utm_source=chatgpt.com

### AutoEncoder

オートエンコーダはニューラルネットワークを用いた次元削減手法です。入力データを圧縮し再構成することで特徴量を抽出します。異常検知やノイズ除去など、様々なタスクに利用されます。

https://qiita.com/LicaOka/items/1f4d1131af05fe30674e

### VAE

変分オートエンコーダ（VAE）はオートエンコーダの一種で、データの生成モデルとしても利用されます。潜在変数を確率分布として扱い、データの生成や異常検知に応用されます。

https://qiita.com/kenmatsu4/items/b029d697e9995d93aa24

# 4｜強化学習

## 概要

エージェントが環境と相互作用し、報酬を最大化する行動戦略を学習します。

### 主なタスク

- ゲームAIの開発
- ロボット制御
- 自動運転
- 金融取引の最適化
- 医療分野での治療計画

## 実用例

### ゲームAIの開発（セガ）

セガはゲーム内のキャラクターがより自然でリアルな動きをするためのAI技術を開発しています。プレイヤーの行動に応じてキャラクターが動的に反応し、より没入感のあるゲーム体験を提供します。

https://www.sega.co.jp/business/case/game-ai.html

### 建設物の制振制御（大林組）

大林組はAIを活用した建設物の制振制御技術を活用。

強化学習を用いて建設物の揺れを効果的に抑制することが狙い。

https://laboro.ai/case/obayashi/

### 組合せ最適化

強化学習を用いた組合せ最適化ソリューションを開発。調理工程のスケジューリングや配達経路の選択など、複雑な最適化問題を効率的に解決します。

https://laboro.ai/solutions/combination-optimization/

### 主要なアルゴリズム

詳細は(元)東大松尾研の今井氏が執筆した『誰でもわかる教科学習』を見ると、各強化学習の手法の流れまで含めて理解できると思うのでおすすめです。下記紹介します。

https://speakerdeck.com/imai_eruel/reinforcement-learning-for-everyone

### Q-learning

Q値を学習するためのアルゴリズムのひとつです。名前が若干紛らわしいです。

まずは、強化学習で一番有名な手法だということを覚えておきましょう。

https://speakerdeck.com/imai_eruel/reinforcement-learning-for-everyone?slide=25

### Actor-Critic

Actor-Critic法はActorとCriticの二つの主要なコンポーネントから成り立っています。

Actorは環境に対する具体的なアクションを選択し、CriticはActorの行動の良し悪しを評価します。これにより共同して最適な行動を学び取るのがActor-Critic法の基本的な仕組みです。

https://reinforz.co.jp/bizmedia/10368/

### DQN

DQN(Deep Q-Networks)は強化学習に深層学習（ニューラルネットワーク）の技術を採用して成果を出した手法です。

深層強化学習の最も基本的な手法で、先ほど紹介したQ学習を改良したものです。

https://qiita.com/pocokhc/items/bb6a47e4d1d15112469f

### A3C

A3C（Asynchronous Advantage Actor-Critic）はVanilla Policy Gradientの学習を非同期分散並列で行う手法です。分散並列化されたエージェントがサンプル収集＆学習を行い、その結果を中央のパラメータサーバに集めます。

https://horomary.hatenablog.com/entry/2020/05/24/183545

## 終わりに

機械学習の全体像について、社会での活用事例と主要なアルゴリズムについて整理しました。

〇〇のテーマではXXの手法がよく使われる、という肌感を持っておくだけでも実際にプロジェクトに関わるときに他の人よりも素早く行動できます。

困ったときにいつでも見返せるようにしておきましょう！


▼ 深層学習を学びたい人向け

https://qiita.com/eureka-ai/items/6c55e3b6d9617ae58afa

▼ エンジニア就活の情報が欲しい人向け

https://qiita.com/eureka-ai/items/c455b7451f9aca8211a0

▼ ソフトウェアエンジニアの海外情報が欲しい人向け

https://qiita.com/nako_GEEKOFFER/items/56bbe9bd61374af6d083


:::note info
GEEK OFFERでは[エンジニアにとって役立つ情報の発信を届けています](https://geek-offer.com/)
今後さらに情報を届けていくのでチェックしてみてください ☺︎
:::


※ 記事の中で誤表記や掲載をやめてほしいリンクがある、こんなコンテンツも紹介してほしいなどのご要望があればご連絡ください。