
この回でつかむこと
畳み込み・プーリング・分類の流れを言える。
CNNで画像を分類するって何だろう?
CNN(Convolutional Neural Network、畳み込みニューラルネットワーク)は、近くの画素の組み合わせを何度も調べるモデルです。プーリングは特徴マップを小さくまとめます。

縦線の絵と横線の絵、AIは何を見て選ぶの?

最初の層で小さな模様を探し、後ろでその組み合わせを使うんだよ。

分類に使う前に、特徴マップの形を確認したいです。

ROBORON ピコン! 小さな窓を動かして、縦線の手掛かりを探すよ。
CNNはConvolutional Neural Network。画像の局所的な特徴から分類する。 CNN(Convolutional Neural Network、畳み込みニューラルネットワーク)は、近くの画素の組み合わせを何度も調べるモデルです。プーリングは特徴マップを小さくまとめます。
import torch
from torch import nn
net = nn.Sequential(nn.Conv2d(1,4,3,padding=1),nn.ReLU(),nn.MaxPool2d(2),nn.Flatten(),nn.Linear(4*4*4,2))
print(net(torch.zeros(2,1,8,8)).shape)なぜそうなる? 8×8画像2枚が、2種類の点数へ変わります。ここでは学習前です。
初めて見る画像で試す
学習に使った絵だけで判断すると、覚えただけでも高得点に見えます。学習用とテスト用を別々に作ります。
prediction = net(torch.zeros(2,1,8,8))
print(prediction.argmax(dim=1))ここに注目 argmaxは大きい点数の位置を返します。正しさは別の画像と正解で確認します。
予想して、理由を話そう
答えを選んで、説明を確かめよう。外れても発見が一つ増えるよ。
答えを選ぶと理由が表示されます。
Colabで試してみよう
コードの実行はColaboratoryの実行環境で行います。まずノートブックを保存し、Colabで「ファイル → ノートブックをアップロード」から開いてください。上から順に実行し、最後に値を変えてみましょう。
保存ボタンを押しても画面は切り替わりません。通常はブラウザの「ダウンロード」フォルダに .ipynb が保存されます。見つからない場合はダウンロード履歴を確認してください。Colabの実習は小さな例から始められます。
身近な技術とつなげてみよう

AI先生:道路標識を見分けるとき、形だけでなく光や角度も変わる。次は『知らない状況でも使えるか』を考えよう。
この回の重要な用語
本文で出会った言葉を、ここで意味と一緒に振り返ろう。上の「ことばの窓」からも説明を開けるよ。
- CNN
- Convolutional Neural Network。畳み込みで特徴を取り出すニューラルネットワークです。
- 特徴マップ
- フィルタがどこに強く反応したかを並べた表です。
- プーリング
- 近くの値をまとめ、特徴マップを小さくする操作です。