๐ ๊ฐ์
EfficientNet์ 2019๋
Google Brain์์ ๋ฐํ๋ ์ด๋ฏธ์ง ๋ถ๋ฅ ๋ชจ๋ธ๋ก,
โ์ ์ ํ๋ผ๋ฏธํฐ๋ก ๋ ๋์ ์ ํ๋๋ฅผ ๋ด๋ ๋ชจ๋ธโ์ ๋ชฉํ๋ก ์ค๊ณ๋์์ต๋๋ค.
๐ฏ ํต์ฌ ์์ด๋์ด: ๋จ์ํ ๋คํธ์ํฌ ๊น์ด(depth)๋ ๋๋น(width), ํด์๋(resolution)๋ฅผ ๋๋ฆฌ๋ ๊ฒ์ด ์๋๋ผ,
**์ธ ๊ฐ์ง๋ฅผ ๊ท ํ ์๊ฒ ํ์ฅ(compound scaling)**ํ๋ ๋ฐฉ์์ผ๋ก ์ ํ๋์ ์ฐ์ฐ๋ ์ฌ์ด์ trade-off๋ฅผ ์ต์ ํํ๋ค.
๐ EfficientNet์ ํน์ง ์์ฝ
ํญ๋ชฉ | ์ค๋ช |
---|---|
๋ชจ๋ธ ์ด๋ฆ | EfficientNet (B0 ~ B7) |
๋ฐํ์ฐ๋ | 2019 |
์ ์ ๊ธฐ๊ด | Google Brain |
๊ธฐ๋ฐ ๋ ผ๋ฌธ | EfficientNet: Rethinking Model Scaling for CNNs |
์ฃผ์ ๊ฐ๋ | Compound Scaling, MBConv, AutoML |
์ฅ์ | ๋์ ์ ํ๋, ์ ์ ํ๋ผ๋ฏธํฐ, ์ฐ์ฐ ํจ์จ |
๐ง ํต์ฌ ๊ตฌ์ฑ ์์
1. ๐งฑ MBConv (Mobile Inverted Bottleneck Convolution)
- MobileNetV2์์ ๋์ ๋ ๊ฒฝ๋ ์ปจ๋ณผ๋ฃจ์ ๋ธ๋ก
- Depthwise Separable Convolution ๊ธฐ๋ฐ โ ์ฐ์ฐ๋ ์ ๊ฐ
- Inverted residual ๊ตฌ์กฐ + SE(Squeeze-and-Excitation) ๋ธ๋ก ๋ด์ฅ
2. โ๏ธ Compound Scaling
EfficientNet์ ๋จ์ผ ์์ธ์ ํค์ฐ๋ ๋์ , ์ธ ๊ฐ์ง๋ฅผ ํจ๊ป ์กฐ์ ํฉ๋๋ค:
์์ | ์๋ฏธ | ํจ๊ณผ |
---|---|---|
depth (d) | ๋คํธ์ํฌ ๊น์ด | ๋ ๋ณต์กํ ํํ ํ์ต |
width (w) | ์ฑ๋ ์ | ๋ ๋ง์ ์ ๋ณด ์ฒ๋ฆฌ |
resolution (r) | ์ ๋ ฅ ์ด๋ฏธ์ง ํด์๋ | ๋ ์ ๋ฐํ ํน์ง ๊ฐ์ง |
๐ ์์:
depth: d = ฮฑ^ฯ
width: w = ฮฒ^ฯ
resolution: r = ฮณ^ฯ
๋จ,ฮฑ * ฮฒยฒ * ฮณยฒ โ 2
โ ์ฐ์ฐ๋ 2๋ฐฐ ์ฆ๊ฐ๋ก ์ ํ๋ ๊ทน๋ํ
๐ EfficientNet ๋ชจ๋ธ๊ตฐ ๋น๊ต
๋ชจ๋ธ | Top-1 Accuracy (ImageNet) | ํ๋ผ๋ฏธํฐ ์ | FLOPs |
---|---|---|---|
B0 | 77.1% | 5.3M | 0.39B |
B1 | 79.1% | 7.8M | 0.7B |
B3 | 81.6% | 12M | 1.8B |
B5 | 83.6% | 30M | 9.9B |
B7 | 84.3% | 66M | 37B |
B0์ ๊ธฐ๋ณธ ๊ตฌ์กฐ, ์ดํ ๋ฒ์ ์ Compound Scaling์ผ๋ก ํ์ฅ
B7์ ImageNet ๊ธฐ์ค ๊ฐ์ฅ ๋์ ์ ํ๋๋ฅผ ๋ฌ์ฑํ ๋ชจ๋ธ ์ค ํ๋
๐ ์ค์ต ์์ (PyTorch)
pythonfrom torchvision.models import efficientnet_b0
import torch
model = efficientnet_b0(pretrained=True)
model.eval()
# ์์ ์ ๋ ฅ
dummy_input = torch.randn(1, 3, 224, 224)
output = model(dummy_input)
- PyTorch ๋ฐ
torchvision.models
์์ B0~B7 ๋ชจ๋ธ ์ง์ - Keras์์๋
tf.keras.applications.EfficientNetB0~B7
๋ก ์ฌ์ฉ ๊ฐ๋ฅ
๐ก EfficientNet์ ์ฅ์
์ฅ์ | ์ค๋ช |
---|---|
โ ์ฐ์ฐ ํจ์จ | ์ ์ FLOPs๋ก ๋์ ์ ํ๋ ํ๋ณด |
โ ๊ฒฝ๋ ๋ชจ๋ธ | ๋ชจ๋ฐ์ผ/Edge ํ๊ฒฝ์์ ์ ํฉ (ํนํ B0~B2) |
โ ํ์ฅ ๊ฐ๋ฅ | Compound Scaling์ผ๋ก ๋ค์ํ ํ๊ฒฝ์ ๋ง๊ฒ ์กฐ์ |
โ SOTA ๊ธฐ๋ก | ๊ณต๊ฐ ๋น์ ImageNet ์ ํ๋ 1์ ๋ฌ์ฑ |
โ ๏ธ ๋จ์ ๋ฐ ํ๊ณ
ํญ๋ชฉ | ์ค๋ช |
---|---|
โ ํ์ต ์๊ฐ | Compound ๊ตฌ์กฐ๋ก ์ธํด ์ด๊ธฐ ํ์ต ๋น์ฉ ๋์ |
โ ๊ตฌ์กฐ ๋ณต์ก์ฑ | ๊ตฌ์กฐ ์ปค์คํฐ๋ง์ด์ง์ด ์ด๋ ต๊ณ , ์ดํด๊ฐ ๋ค์ ๋ณต์ก |
โ ์ต์ ๋ชจ๋ธ๊ณผ์ ๊ฒฝ์ | ConvNeXt, ViT ๋ฑ์ ํธ๋์คํฌ๋จธ ๊ธฐ๋ฐ ๋ชจ๋ธ ๋ฑ์ฅ ์ดํ์ ์ฐ์ ์ถ์ |
๐งช ํ์ฉ ์ฌ๋ก
๋ถ์ผ | ํ์ฉ ์์ |
---|---|
์๋ฃ ์์ ๋ถ์ | ํ CT/์ฌ์ฅ ์ด์ํ ์ด๋ฏธ์ง ๋ถ๋ฅ |
์๋ ํ์ง ๊ฒ์ฌ | ์ ์กฐ ๊ณต์ ์์ ๊ฒฐํจ ํ์ง |
๋ฆฌํ ์ผ ๋ถ์ | ์ํ ์ด๋ฏธ์ง ๋ถ๋ฅ, ์ธ๋ฒคํ ๋ฆฌ ์ถ์ |
๋ชจ๋ฐ์ผ์ฑ | ์ฌ์ง ํ๊ทธ ์๋ ๋ถ๋ฅ, AR ํํฐ ์ ์ฉ |
๐งฌ ํ์ ๋ชจ๋ธ: EfficientNetV2
- 2021๋ Google์์ ๋ฐํํ ํ์ ๋ชจ๋ธ
- Fused-MBConv ๋ธ๋ก ๋์
- ๋ ๋น ๋ฅธ ํ์ต, ์ ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ
EfficientNetV2-S
,M
,L
,XL
๋ชจ๋ธ ๊ตฌ์ฑ
โ ๊ฒฐ๋ก
EfficientNet์ “์ต์ ์ ๊ท ํ”์ ์ถ๊ตฌํ๋ ๋น์ ๋ชจ๋ธ์ ๋ํ์ฃผ์์ ๋๋ค.
- ๋์ ์ ํ๋์ ํจ์จ์ ๋์์ ์ถ๊ตฌํ๋ ํ๋ก์ ํธ์ ๋งค์ฐ ์ ํฉ
- ์ฐ๊ตฌ ๋ฐ ์ค๋ฌด, ๋ชจ๋ฐ์ผ๊ณผ ์๋ฒ ํ๊ฒฝ ๋ชจ๋ ๋์ ๊ฐ๋ฅ
- ์ต์ EfficientNetV2, MobileNetV3, ConvNeXt ๋ฑ๊ณผ ๋น๊ต๋ ๊ณ ๋ คํ๋ฉด ์ข์
๐ โ์ ์ ๋น์ฉ์ผ๋ก ๋์ ์ฑ๋ฅ์ ์ํ๋ค๋ฉด, EfficientNet์ ์ฌ์ ํ ํ๋ฅญํ ์ ํ์ ๋๋ค.โ