畳み込みの変わり種で、Dilated(Atrous)ConvolutionとDepthwise Separable Convolutionが出てくる
ふつうの畳み込みと何が違うん?
1: 名無しさん
畳み込みの変わり種で、Dilated(Atrous)ConvolutionとDepthwise Separable Convolutionが出てくる
ふつうの畳み込みと何が違うん?
前提のおさらい。ふつうの畳み込み層のパラメータ数は「フィルタの縦×横×入力チャンネル数×出力チャンネル数+バイアス」
>>1
Dilated Convolutionは、フィルタの要素のあいだにすき間をあけて畳み込む。Atrous Convolutionは同じものの別名
3×3 のフィルタを1マスおき(拡張率2)にすると、見る範囲は で 5×5 になる。でも重みは9個のまま
>>3
見る範囲を広げたいだけなら、プーリングで画像を小さくすればええんちゃう?
>>4
小さくすると細かい位置の情報が失われる。画素ごとにクラスを当てるセグメンテーションでは困る
Dilatedなら、解像度を落とさずに広い範囲を見られる。セグメンテーションのモデル(DeepLabなど)で使われてる
Depthwise Separable Convolutionは、ふつうの畳み込みを2段に分けて計算を減らす
1段目(depthwise):チャンネルごとに別々の 3×3 フィルタをかける
2段目(pointwise):1×1 の畳み込みでチャンネルを混ぜる
>>6
入力32チャンネル・出力64チャンネル・3×3 で重みを比べると
ふつう:
分けた場合:
約8分の1。比は で、スマホ向けの軽いモデル(MobileNetなど)で使われてる
>>7
減らしたぶん、表せるものは少し狭くなる。精度とのかね合いで選ぶもので、いつも分けたほうがええわけやない