[Paper Review] MobileNet

msgoยท2026๋…„ 5์›” 25์ผ

๐Ÿ“Œ ๋ณธ ๊ธ€์€ 2023.03 ์— ์ž‘์„ฑํ•œ paper review๋ฅผ ๋‹ค๋“ฌ์–ด ๋ฐœํ–‰ํ•œ ์•„์นด์ด๋ธŒ ๊ธ€์ž…๋‹ˆ๋‹ค.
์ž‘์„ฑ ๋‹น์‹œ ์ปจํ…์ŠคํŠธ: X:AI 4๊ธฐ Basic
์›๋ณธ ๋…ผ๋ฌธ: https://arxiv.org/abs/1704.04861

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

์ด ๋…ผ๋ฌธ์—์„œ์˜ ํ•ต์‹ฌ ๊ธฐ์ˆ ์€ 3๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Depthwise separable convolution
  • Width multiplier
  • Resolution multiplier
    ๊ทธ ์ค‘, Depthwise separable convolution๋ฅผ ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์œผ๋กœ ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

INTRODUCTION

Convolution Neural Network๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋” ๋†’์€ ์ •ํ™•๋„๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋” ๊นŠ๊ณ  ๋ณต์žกํ•œ ๋„คํŠธ์›Œํฌ๋ฅผ ๋งŒ๋“œ๋Š” ์ถ”์„ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์ •ํ™•์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด์„œ ๋” ๊นŠ๊ณ  ๋ณต์žกํ•œ ๋„คํŠธ์›Œํฌ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋ฐ˜๋“œ์‹œ ์ข‹์€ ๋ชจ๋ธ์ด ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

์ปดํ“จํ„ฐ ๋น„์ „์— ๋Œ€ํ•œ ์ƒ์—…์ ์ธ ์š”๊ตฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. (+์ถ”๊ฐ€์ ์ธ ๋‚ด์šฉ)

  1. Data-centers(clouds)
  • Rarely safety-critical ์•ˆ์ „์„ฑ ์š”๊ตฌ
  • Low power is nice to have ์ €์ „๋ ฅ
  • Real-time is preferable ์‹ค์‹œ๊ฐ„
  1. Gadgets= Smartphones, Self,driving cars, Drones, etc.
  • Usually safety-critical(except smartphone)
  • Low power is must-have
  • Real-time is required
    ์šฐ๋ฆฌ๊ฐ€ ์‹ค์ œ ๋งŒ๋“  ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋Š” ์ž‘์—…์„ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋กœ๋ด‡, ์ž์œจ์ฃผํ–‰์ฐจ, ์ฆ๊ฐ•ํ˜„์‹ค ๋“ฑ ์ด๋Ÿฌํ•œ ์ž‘์—…์€ ์ œํ•œ๋œ ํ”Œ๋žซํผ์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์—, ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ๋น ๋ฅธ ์ž‘์—… ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์ผ๋ถ€ ๊ตฌ์กฐ ๋ณ€๊ฒฝ๊ณผ, 2๊ฐœ์˜ ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ธฐ์กด ๋ชจ๋ธ์—์„œ ์ถ”๊ฐ€ํ•˜์—ฌ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋” ์ž‘๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“  MobileNet์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

MobileNet Architecture

  • Depthwise Separable Convolution
    MobileNet ๋ชจ๋ธ์€ depthwise separable convolutions์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด Convolution layer 33์„ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ์‹ ๋Œ€์‹ , Depthwise Conv 33์„ ์ง„ํ–‰ํ•œ ๋’ค, 1*1 Conv๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

309

์—ฌ๊ธฐ์„œ Pointwise convolution์ด 1*1 Conv์™€ ๋™์ผํ•˜๋‹ค. MobuleNet์€ ์ด์™€ ๊ฐ™์€ ๋‘ ๋ฒˆ์˜ ย ย ย ย ย ย ย ย ย ย ย  ๊ฑธ์นœ layer๊ณ„์‚ฐ์„ ํ†ตํ•ด ์—ฐ์‚ฐ๋Ÿ‰๊ณผ ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜๋ฅผ ์ค„์˜€์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด์˜ 33 conv ๊ฐ™์€ ๊ฒฝ์šฐ์˜ ๊ณ„์‚ฐ๋Ÿ‰์€ $D_kD_kMND_FD_F$์™€ ๊ฐ™์€๋ฐ โ€˜Dkโ€™๋Š” ์ปค๋„์˜ ํฌ๊ธฐ, โ€˜Dfโ€™๋Š” ํ”ผ์ณ๋งต์˜ ํฌ๊ธฐ, M๊ณผ N์€ INPUT, OUTPUT ์ฑ„๋„ ์ˆ˜์ž…๋‹ˆ๋‹ค. ํ•˜์ง€ย ย ย  ๋งŒ ์ด์™€ ๊ฐ™์€ ์—ฐ์‚ฐ๋Ÿ‰์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€ํ•ฉ๋‹ˆ๋‹ค.

DK ยท DK ยท M ยท N ยท DF ยท DF์ด๋Š” Depthwise Conv 33 ๋ ˆ์ด์–ด์˜ ๊ณ„์‚ฐ๋Ÿ‰์ด๊ณ , DK ยท DK ยท M ยท DF ยท DF ์ด๋Š” 11 Conv์˜ ๊ณ„์‚ฐ๋Ÿ‰์ด ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ฉํ•˜๋ฉด ์ด ย ย ย ย ย ย ย  DK ยท DK ยท M ยท DF ยท DF + M ยท N ยท DF ยท DF ๊ณ„์‚ฐ๋Ÿ‰์„ ์–ป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

281

์ด๋Š”, ๊ธฐ์กด 3*3 Conv๋ณด๋‹ค ๋ฐฐ๋งŒํผ์˜ ํšจ์œจ์„ฑ์„ ์–ป์–ด ๋‚ผ ์ˆ˜ ์žˆ๊ณ  ์ดํ›„ ์‹คํ—˜ ๊ฒฐ๊ณผ์—์„œ ํ‘œ์ค€ 8๋ฐฐ ~9๋ฐฐ ์ •๋„์˜ ์ ์€ ๊ณ„์‚ฐ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

input : 3 x 28 x 28ย  ย filter : 3 x 3output : 32 x 28 x 28ย ย Dk = 3,ย  M = 3, N = 32

Standard Convolution =ย Dk x Dk x M x N = 3 x 3 x 3 x 32 = 864๊ฐœ

Depthwise Separable Convolution = Dk x Dk x 1 x M + 1 x 1 x M x N = 3 x 3 x 1 x 3 + 1 x 1 x 3 x 32 = 123๊ฐœ

  • Network Structure and Training
    MobileNet์—์„œ๋Š” ์ฒซ ๋ฒˆ์งธ ๋ ˆ์ด์–ด๋Š” ํ‘œ์ค€์˜ ์ปจ๋ณผ๋ฃจ์…˜ ๋ ˆ์ด์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋‚˜๋จธ์ง€๋Š” depthwise separable convolutions๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ข… fc_layer๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋ชจ๋“  ๋ ˆ์ด์–ด ๋’ค์—๋Š” batch_normalization๊ณผ ReLUํ™œ์„ฑํ™” ํ•จ์ˆ˜๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Down_sampling์€ standard convolution layer์™€ depthwise separable convolution layer์—๋„ ์ „๋ถ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์—์„œ๋Š” averaging pooling์„ ํ†ตํ•ด 77์„ 11๋กœ ์ „ํ™˜ํ•ด์ค๋‹ˆ๋‹ค. ๋ชจ๋“  ์ธต์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๋ฉด MobileNet์—๋Š” 28๊ฐœ์˜ ๊ณ„์ธต์ด ์žˆ์Šต๋‹ˆ๋‹ค. MobileNet์€ ๋‹ค์Œ ์‚ฌ์ง„๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

    241

  • Width Multiplier: Thinner Models
  • Resolution Multiplier: Reduced Representation
    MobileNet์—์„œ๋Š” ๋‘ ๊ฐ€์ง€ ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋” ์ถ”๊ฐ€ํ•˜์˜€๋Š”๋ฐ ํ•˜๋‚˜๋Š” channel์˜ ๊ฐœ์ˆ˜๋ฅผ ์กฐ์ •ํ•˜๋Š” Width Multiplier์™€ ์ด๋ฏธ์ง€์˜ ํ•ด์ƒ๋„๋ฅผ ์กฐ์ ˆํ•˜๋Š” Resolution Multiplier์ด๋‹ค.

Channel์˜ ๊ฐœ์ˆ˜๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ „ํ˜•์ ์ธ ๊ฐ’์€ 1, 0.75, 0.5 and 0.25์œผ๋กœ ์„ธํŒ…์„ ํ•˜์˜€๊ณ , ์ด๋ฏธ์ง€์˜ ํ•ด์ƒ๋„๋ฅผ ์กฐ์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ „ํ˜•์ ์ธ ๊ฐ’์€ 224, 192, 160 or 128๋กœ ํ•œ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ ˆ์ด์–ด์˜ ์—ฐ์‚ฐ๋Ÿ‰์€ DK ยท DK ยท ฮฑM ยท ฯDF ยท ฯDF + ฮฑM ยท ฮฑN ยท ฯDF ยท ฯDF์ด ๋œ๋‹ค. ฮฑ๋Š” Width Multiplier, ฯ๋Š” Resolution Multiplier๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ด๋ฏธ์ง€์˜ ํ•ด์ƒ๋„๊ฐ€ ๊ธฐ๋ณธ 1*1์ด๋ผ ํ•˜๊ณ  ฯ๋ฅผ 0.75๋ผ ํ•œ๋‹ค๋ฉด ฯ^2๋ฐฐ๋งŒํผ์˜ ์—ฐ์‚ฐ๋Ÿ‰์œผ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ๋‘ ๊ฐœ์˜ ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ์‚ฐ๋Ÿ‰์„ ๋‹ค์‹œ๊ธˆ ์ค„์ผ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

Experiments

217

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทธ๋ฆผ์˜ ๊ฒฐ๊ณผ์—์„œ MobileNet์„ ์‚ฌ์šฉํ•˜์˜€์„ ๋•Œ, ์ •ํ™•๋„๋Š” ์•ฝ๊ฐ„ ๋–จ์–ด์ง€์ง€๋งŒMillion Mult-์œ ์‚ฌํ•˜๊ณ  Adds(ํ•œ ์ด๋ฏธ์ง€๋ฅผ ์ธ์‹ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ณฑ์…ˆ-ํ•ฉ ์—ฐ์‚ฐ ํšŸ์ˆ˜)์™€ Million Parameters(์‚ฌ์šฉํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜)๊ฐ€ ํ˜„์ €ํžˆ ์ ์–ด์ง„ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. Channel๊ณผ Resolution์„ ์ค„์ด๋Š” ์ž‘์—…์„ ํ–ˆ์„ ๋•Œ ๋˜ํ•œ ๋ชจ๋ธ์˜ ์†๋„๊ฐ€ ๋นจ๋ผ์ง„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

313

MobileNet์€ GoogleNet๊ณผ VGG 16๊ณผ ์ •ํ™•๋„๊ฐ€ ์œ ์‚ฌํ•˜๋ฉฐ ๋ชจ๋ธ์€ ํ›จ์”ฌ ๊ฐ€๋ฒผ์šด ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

300

๋˜ํ•œ, ๋‹ค๋ฅธ ์œ ๋ช…ํ•œ ๋ชจ๋ธ๊ณผ ๋น„๊ตํ•˜์˜€์„ ๋•Œ ์ผ๋ถ€ ํŠน์ • ์ข…๋ฅ˜์˜ ์ด๋ฏธ์ง€๋งˆ๋‹ค ์„ฑ๋Šฅ์ด ์ข‹์€ ๊ฒฝ์šฐ๋„ ์กด์žฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  MobileNet์€ ๊ฐ์ฒด ํƒ์ง€, ์–ผ๊ตด ์ธ์‹๊ณผ ๊ฐ™์€ ์ž‘์—… ๋˜ํ•œ ์ค€์ˆ˜ํ•˜๊ณ  ๋น ๋ฅธ ์ž‘์—…์ด ๊ฐ€๋Šฅํ–ˆ์Šต๋‹ˆ๋‹ค.

Conclusion

depthwise separable convolutions์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ MobileNet์„ ์ œ์•ˆํ•˜์˜€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ํ†ตํ•ด ํšจ์œจ์ ์ธ ๋ชจ๋ธ์ด ๊ณ ์•ˆ๋˜์—ˆ์œผ๋ฉฐ width multiplier์™€ resolution multiplier์„ ์‚ฌ์šฉํ•˜์—ฌ ๋” ์ž‘๊ณ  ๋น ๋ฅธ MobileNets์„ ๊ตฌ์„ฑํ•˜์˜€๋‹ค. ๋‹ค๋ฅธ ๋‹ค์–‘ํ•œ ๋ชจ๋ธ๊ณผ๋„ ๋น„๊ต๋ฅผ ํ•ด๋ณด์•˜์„ ๋•Œ ์šฐ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ ์ž‘์—…์—์„œ ์ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ๋‹ค๊ณ  ๊ฒฐ๋ก ์„ ๋‚ด๋ ธ๋‹ค.


๐Ÿ”— ๊ด€๋ จ ๊ธ€

0๊ฐœ์˜ ๋Œ“๊ธ€