Lecture2: Image Classification with Linear Classifiers [cs231n]

>100 Views

April 27, 25

スライド概要

スタンフォード大学の講義"cs231n"について、機械学習の初心者に向けて勉強会を実施した際の資料
https://cs231n.stanford.edu/slides/2025/lecture_2.pdf

profile-image

AI-Driven graduate student

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

cs231n Lecture2 Image Classification with Linear Classifiers Deep Learning Study Group

2.

Image Classification 猫 犬 飛行機 マグカップ 画像内の物体が何なのか分類するタスク Deep Learning Study Group

3.

Image Classification 人間には難しくないが、 画像は0 ~ 225の画素で表されるため コンピュータには簡単ではない Deep Learning Study Group

4.

Image Classification 画角が変わると 画素値も変わってしまう Deep Learning Study Group

5.

Image Classification Deep Learning Study Group

6.

アプローチ 残念ながら、単に画像に処理を加えるだけでは 解決できない Deep Learning Study Group

7.

アプローチ:データ駆動型 1. 画像とそのラベルをたくさん収集する 2. そのデータを使い、機械学習アルゴリズムで分類器を訓練する 3. 新たな画像でその分類器を評価する Deep Learning Study Group

8.

Nearest Neighbor Classifier 最近傍法 分類器 Deep Learning Study Group

9.

Nearest Neighbor 最も画素値が近い訓練データのクラスを、そのテストデータのクラスとする 訓練画像 テスト画像 「青」クラスの画像と最も近いから ( この画像も「青」クラスだな...) Deep Learning Study Group

10.

Nearest Neighbor:距離の求め方 L1距離(マンハッタン距離) 差(絶対値) Deep Learning Study Group

11.

Nearest Neighbor:距離の求め方 L1距離(マンハッタン距離) L2距離(ユークリッド距離) Deep Learning Study Group

12.

K-Nearest Neighbor Classifier K-最近傍法 分類器 Deep Learning Study Group

13.

K-Nearest Neighbor Nearest Neighborsは最も近いデータのみで判断していた →これではノイズに弱い 訓練画像 テスト画像 青クラスのほうが適切そうだが、紫 クラスになってしまった Deep Learning Study Group

14.

K-Nearest Neighbor K-Nearest Neighborsでは最も近いK個をもとに判断 訓練画像 テスト画像 (青2 紫1なので青クラスだな...) K=3 Deep Learning Study Group

15.

K-Nearest Neighbor (島ができている) 分類できない領域が 多い? 白い領域は分類できないところ =複数のクラスで同数になっている デモ:http://vision.stanford.edu/teaching/cs231n-demos/knn/ Deep Learning Study Group

16.

ハイパーパラメータ 「K」や「距離の求め方」は人間が決定する →人間があらかじめ決定する値をハイパーパラメータと呼ぶ 最適なハイパーパラメータを決定するには? →さまざまな値を試して、どれが最も良いかを確認したい! Deep Learning Study Group

17.

ハイパーパラメータ 試すときにはデータの扱いに注意が必要 すべてのデータに対して最適化: テスト用も最適化すると、公正な性能 評価ができない データセットすべて 訓練用 訓練用 テスト用 検証用 テスト用 テスト以外すべてに最適化: 未知のデータでも性能が出るか わからない 訓練用をさらに2つに分ける: 検証用は訓練に使わず、擬似的 な未知のデータとして有効性の 検証に使う Deep Learning Study Group

18.

クロスバリデーション さらに堅牢な検証方法としてCross-Validationがある 複数の分割で訓練し、いずれの分割でも性能が出るか検証する。 訓練用 訓練用 5-Fold (5回分割を変える) の例 訓練用 訓練用 検証用 検証用 検証用 訓練用 検証用 訓練用 訓練用 検証用 テスト用 訓練用 テスト用 テスト用 テスト用 テスト用 Deep Learning Study Group

19.

K-Nearest Neighborの長所と短所 利点 理論がわかりやすい(データ同士の距離を考えるだけ) 学習コストが比較的低い (画像を保存するだけ) 欠点 推論時のコストが高い(すべての訓練データと比較が必要) 高次元空間(画像など)の距離は直感に反することが多い Deep Learning Study Group

20.

K-Nearest Neighborの短所 「高次元空間(画像など)の距離は直感に反することが多い」 右3つは、Original(左)といずれも同じL2距離。 これらが「同程度似ている」というのは直感に反するのでは? Deep Learning Study Group

21.

K-Nearest Neighborの短所 「高次元空間(画像など)の距離は直感に反することが多い」 L2距離が近いものが近くに配置されている 意味的なクラスの違いよりも、背景の影響が強く現れているように見える Deep Learning Study Group

22.

Linear Classifier 線形 分類器 Deep Learning Study Group

23.

Linear Classifier 画像をそのまま比較するのは限界があった。 →パラメトリックなアプローチを試してみよう f(x, W, b) f(x, W, b) = Wx + b クラスごとのスコア W: weight(重み・パラメータ) b: Bias(バイアス) Deep Learning Study Group

24.

Linear Classifier クラス数が10、画像が32x32x3なら? f(x, W, b) = Wx + b W: [10 x 3072] x: [3072 x 1] b: [10 x 1] (行列の演算であることに注意) Deep Learning Study Group

25.

Linear Classifier 56 231 24 2 上記はまだ良い結果ではないけれど より正しく分類できるWとbを発見できれば良さそう! Deep Learning Study Group

26.

Linear Classifier Wx+bの結果を座標平面に 置いて考えてみると? カテゴリを分類する境界線 が引ける 正確には:高次元ベクトル(画像)を扱っているため実際には超平面である 理解増進のため2次元空間で表している Deep Learning Study Group

27.

Linear Classifier 重みは各クラスの視覚的な特徴を保持していると捉えられる Deep Learning Study Group

28.

Loss Function 損失関数 Deep Learning Study Group

29.

Loss Function あまり良くないことはわかるが、 どの程度良くないかはわからない ↓ 正しいラベルとのズレを計算し、 ズレをもとに調整を行う ズレ:損失 損失の計算:損失関数を使用 クラスごとのスコア Deep Learning Study Group

30.

Loss Function 損失関数は、以下の式で表される i番目データの i番目データの予測値 正解ラベル Deep Learning Study Group

31.

SVMにおけるLoss Function Support Vector Machineは、深層学習登場以前に 最も人気があった手法のひとつ その損失関数は以下のように定義される : 正解以外のスコア : 正解クラスのスコア つまりSVMは、誤分類を減らしながら正解のクラススコアが 他のクラススコアよりΔ以上大きくなる方向に調整する Deep Learning Study Group

32.

SVMの設計思想 カテゴリーを分類するだけであれば、境界線は色々引ける が、より好ましい境界線を選びたい 境界線とデータの距離(=マージン) が小さいと未知のデータを誤分類し てしまいそう →決定境界とデータはある程度 距離があったほうが良さそう https://avinton.com/academy/svm/ Deep Learning Study Group

33.

SVMの設計思想 マージン(Δ)よりも近いデータがあるのは「良くないこと」(=損失)として扱う (もちろん誤分類も) このような設計を実現するための 損失関数が定義された https://en.wikipedia.org/wiki/Support_vector_machine (CC-BY 3.0) Deep Learning Study Group

34.

SVMにおけるLoss Function ねこの場合 (Δ=1とする) Deep Learning Study Group

35.

SoftmaxにおけるLoss Function Softmax: SVMと並ぶ代表的な分類器 SVMが各クラスの未調整のスコアを出力していたのに対して Softmaxは正規化されたクラス確率(信頼度)を出力する 損失関数にはCross Entropy損失を用いる: Deep Learning Study Group

36.

SoftmaxにおけるLoss Function 人間が直感的にわかりやすい 各クラスに対する信頼度を表現できる s= Deep Learning Study Group

37.

SoftmaxにおけるLoss Function 人間が直感的にわかりやすい 各クラスに対する信頼度を表現できる s= Deep Learning Study Group

38.

SVM vs. Softmax Deep Learning Study Group

39.

SVM vs. Softmax SVMはマージンさえ満たされていればスコアの詳細には関心がない Softmax分類器は,、正解クラスの確率がより高くなり、 誤クラスの確率がより低くなることを常に望んでいる 左の場合(緑が正解スコア): SVMはいずれも損失 0 Softmaxは一番下が最も損失が小さい Deep Learning Study Group

40.

GRTバンク おわり [参考] https://cs231n.stanford.edu/slides/2025/lecture_2.pdf https://tpu-dsg.github.io/cs231n/lecture2/ その他はスライド内に記載 Deep Learning Study Group