概要
画像関連のモデルは、**「何をするためのモデルか」**で分けると理解しやすい。
| 分類 | 代表例 | 役割 |
|---|---|---|
| 画像を見る | CNN | 画像の特徴を取り出して分類する |
| 画像を作る | GAN | 新しい画像を生成する |
| 画像と言葉をつなぐ | CLIP | 画像とテキストを対応づける |
※以下の内容をいれたらまとめきれなかったので非掲載
- 物体検知: YOLO / SSD /
- 画像生成: VAE / 拡散モデル
- セグメンテーション:FCN / U-Net / SegNet
- その他いっぱい・・・
試験範囲の画像関連モデル多すぎ・・・
CNN
ざっくり
CNNは、画像から特徴を取り出して分類するモデル。
仕組み
画像
↓
畳み込み層
↓
プーリング層
↓
全結合層
↓
出力
各層の役割
| 層 | 役割 |
|---|---|
| 畳み込み層 | エッジ、模様、形などの 特徴を取り出す |
| プーリング層 | 情報を圧縮し、多少の位置ズレに強くする |
| 全結合層 | 抽出した特徴をもとに分類結果を出す |
覚え方
CNN = 画像を見るAI
例:
- この画像は猫
- この画像は犬
- この画像は車
GAN
ざっくり
GANは、画像を作るモデル。
日本語では、敵対的生成ネットワーク。
2種類のネットワーク
| 役割 | 名前 | 何をするか |
|---|---|---|
| 生成者 | Generator | 偽物画像を作る |
| 判定者 | Discriminator | 本物か偽物かを判定する |
仕組み
ランダムなベクトル
↓
Generator
「本物っぽい画像を作る」
↓
偽物画像
↓
Discriminator
「本物か偽物か判定する」
↓
Generator
「バレたので、もっと本物っぽくする」
これを繰り返して、だんだん本物に近い画像を作れるようになる。
CNNとの関係
GANの中の Discriminator は、画像を見て判定するため、CNN的な仕組みを使うことがある。
ただし、目的はCNNとは違う。
| モデル | 主目的 |
|---|---|
| CNN | 画像を分類する |
| GAN | 画像を生成する |
覚え方
GAN = Generator と Discriminator が戦う画像生成モデル
試験で出やすいキーワード
- 生成器
- 識別器
- 敵対的学習
- 本物と偽物
- 画像生成
CLIP
ざっくり
CLIPは、画像と言葉を対応づけるモデル。
※GANのように画像を作るモデルではない。
仕組み
- 画像と文章からそれぞれ、特徴を抽出する
画像
↓
画像エンコーダ
↓
画像ベクトル
テキスト
↓
テキストエンコーダ
↓
テキストベクトル
その後、
画像ベクトルとテキストベクトルが近いか?
を判定する。
例:
画像:猫がソファに座っている写真
テキストA:猫がソファに座っている
テキストB:車が道路を走っている
テキストC:人が料理している
CLIPは、画像とテキストAの意味が近いと判断できる。
覚え方
CLIP = 画像と言葉をつなぐAI
試験で出やすいキーワード
- 画像とテキスト
- 自然言語による画像分類
- ゼロショット分類
- マルチモーダル
- 画像と文章の類似度
CNN・GAN・CLIPの違い
| モデル | 目的 | 入力 | 出力 | 覚え方 |
|---|---|---|---|---|
| CNN | 画像を分類する | 画像 | ラベル | 画像を見る |
| GAN | 画像を生成する | ベクトル | 画像 | 画像を作る |
| CLIP | 画像と言葉を対応づける | 画像+テキスト | 類似度・対応関係 | 画像と言葉をつなぐ |
ようするに・・・
CNN :画像を見る
GAN :画像を作る
CLIP:画像と言葉をつなぐ
補足: DALL·E (Stable Diffusion)
テキストから画像を生成するモデルに、 DALL·E がある。
これは、 CLIP と Diffusion Model を利用している。
仕組み
CLIP
→ 画像と言葉をつなぐ
Diffusion Model
→ ノイズを除去して画像を作る
DALL·E / Stable Diffusion
→ テキストから画像を作る画像生成モデル
いちおう、参考書に載っていたのでメモしておく。