読むだけでちょっと賢くなる、架空のまとめスレ

【疑問】畳み込み層のフィルタ・ストライド・パディング、出力の大きさとパラメータ数はどう計算するん?【G検定】

10レスカテゴリ:AI・機械学習
1: 名無しさん

畳み込み層の計算問題、出力の大きさとパラメータ数がいつも合わん
フィルタ・ストライド・パディングを整理したい

2: 名無しさん

前提のおさらい。全結合層のパラメータ数は「入力の数×出力の数+出力の数」。画像を全結合でつなぐと、すぐに何百万個にもなる

3: 名無しさん

>>1
畳み込みは、小さい重みの表(フィルタ、カーネルとも言う)を画像の上でずらしながら、重なった部分を掛けて足す操作
3×3 の入力 [[1, 2, 0], [0, 1, 3], [2, 1, 0]] に 2×2 のフィルタ [[1, 0], [0, 1]] をかけると
左上:、右上:、左下:、右下:
出力は 2×2 の [[2, 5], [1, 1]]。この出力を特徴マップという

4: 名無しさん

>>3
同じフィルタを画像のどこでも使い回すのがポイント。どこに写ってても同じ模様を見つけられるし、パラメータも少なくて済む

5: 名無しさん

ストライドは、フィルタを1回に何マスずらすか
パディングは、入力のまわりに0などを足して広げること。端の画素もフィルタの中心に来られるようにして、出力が小さくなりすぎるのを防ぐ

6: 名無しさん

>>5
出力の大きさは、入力 、フィルタ 、パディング 、ストライド で

32×32 に 3×3、パディング1、ストライド1 なら で大きさが変わらん
7×7 に 3×3、パディング0、ストライド2 なら

7: 名無しさん

>>6
パラメータ数はどう数えるん?

8: 名無しさん

>>7
入力のチャンネル数も込みで「フィルタの縦×横×入力チャンネル数」がフィルタ1枚の重み。それにバイアス1つ。それがフィルタの枚数(出力チャンネル数)ぶん
32×32×3 のカラー画像に 3×3 のフィルタを16枚なら、 個
画像の大きさには関係ない。同じ入出力の大きさを全結合でつなぐと、重みは 万個

9: 名無しさん

>>8
448と5000万か。画像に畳み込みを使う理由がよう分かる

10: 名無しさん

>>9
そのかわり、畳み込みは「近くの画素どうしに意味がある」データ向き。画像や音声には合うけど、列の並び順に意味がない表のデータにそのまま使っても効かん。畳み込みニューラルネットワーク(CNN)が画像で強いのはそこが合ってるから

管理人のひとこと