xnor-net: imagenet classification using binary ... · xnor-net bnn[ ] top-i top-5 top-i top-5 44.2...

10
XNOR-NET: IMAGENET CLASSIFICATION USING BINARY CONVOLUTIONAL NEURAL NETWORKS RYAN MCCAMPBELL 2019 SPRING @ HTTPS://QDATA.GITHUB.IO/DEEP2READ

Upload: others

Post on 15-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: XNOR-NET: IMAGENET CLASSIFICATION USING BINARY ... · XNOR-Net BNN[ ] Top-I Top-5 Top-I Top-5 44.2 69.2 27.9 50.42 . Created Date: 6/4/2019 4:11:47 PM

XNOR-NET: IMAGENET CLASSIFICATION USING BINARY CONVOLUTIONAL NEURAL NETWORKS RYAN MCCAMPBELL

2019 SPRING @ HTTPS://QDATA.GITHUB.IO/DEEP2READ

Page 2: XNOR-NET: IMAGENET CLASSIFICATION USING BINARY ... · XNOR-Net BNN[ ] Top-I Top-5 Top-I Top-5 44.2 69.2 27.9 50.42 . Created Date: 6/4/2019 4:11:47 PM

PROBLEM

• Ordinary neural networks are expensive to store and evaluate

• Not good for embedded and mobile platforms

• How to make them more efficient?

Page 3: XNOR-NET: IMAGENET CLASSIFICATION USING BINARY ... · XNOR-Net BNN[ ] Top-I Top-5 Top-I Top-5 44.2 69.2 27.9 50.42 . Created Date: 6/4/2019 4:11:47 PM

APPROACHES

• More compact networks

• Compressing pre-trained networks

• Quantizing parameters

• Binarizing parameters/activations

Page 4: XNOR-NET: IMAGENET CLASSIFICATION USING BINARY ... · XNOR-Net BNN[ ] Top-I Top-5 Top-I Top-5 44.2 69.2 27.9 50.42 . Created Date: 6/4/2019 4:11:47 PM

BINARY-WEIGHT-NETWORK

•  Idea: store weights as binary vectors, ±1, plus scale

𝑾≈𝛼𝑩, 𝛼>0, 𝑩∈ {−1,1}↑𝑛 

𝑰∗𝑾≈(𝑰⊕𝑩)𝛼

• ⊕: convolution using only addition/subtraction

•  Eliminates most multiplications

• ~32x storage reduction

Page 5: XNOR-NET: IMAGENET CLASSIFICATION USING BINARY ... · XNOR-Net BNN[ ] Top-I Top-5 Top-I Top-5 44.2 69.2 27.9 50.42 . Created Date: 6/4/2019 4:11:47 PM

BINARY-WEIGHT-NETWORK

• Minimize 𝐽(𝐵,𝛼)= ‖𝑊−𝛼𝐵‖↑2 

𝐵↑∗ =𝑠𝑖𝑔𝑛(𝑊)

𝛼↑∗ = ∑|𝑊↓𝑖 |/𝑛 = 1/𝑛 ‖𝑊‖↓1 

Page 6: XNOR-NET: IMAGENET CLASSIFICATION USING BINARY ... · XNOR-Net BNN[ ] Top-I Top-5 Top-I Top-5 44.2 69.2 27.9 50.42 . Created Date: 6/4/2019 4:11:47 PM

TRAINING

• Binarize weights during forward pass and backwards pass

• Use full-parameter weights for update

• Approximate 𝜕/𝜕𝑥 𝑠𝑖𝑔𝑛(𝑥)=1[|𝑟|≤1]

Page 7: XNOR-NET: IMAGENET CLASSIFICATION USING BINARY ... · XNOR-Net BNN[ ] Top-I Top-5 Top-I Top-5 44.2 69.2 27.9 50.42 . Created Date: 6/4/2019 4:11:47 PM

XNOR-NET

• Binarize both weights and inputs

• Convolutions using efficient binary operations: shift, XNOR & bit-count

•  𝐾↓𝑖𝑗 =𝛽= 1/𝑛 ‖𝑠𝑢𝑏𝑡𝑒𝑛𝑠𝑜𝑟 𝑜𝑓 𝑋 𝑎𝑡 𝑖𝑗‖↓1 

• 𝐾=𝐴∗𝑘, 𝐴= ∑|𝐼↓:,:,𝑖 |/𝑐 , 𝑘↓𝑖𝑗 = 1/𝑤ℎ 

Page 8: XNOR-NET: IMAGENET CLASSIFICATION USING BINARY ... · XNOR-Net BNN[ ] Top-I Top-5 Top-I Top-5 44.2 69.2 27.9 50.42 . Created Date: 6/4/2019 4:11:47 PM

TRAINING XNOR-NET

• Batch normalization first

• Binary activation: compute K and sign(I)

• Binary convolution

• Pool after convolution

Page 9: XNOR-NET: IMAGENET CLASSIFICATION USING BINARY ... · XNOR-Net BNN[ ] Top-I Top-5 Top-I Top-5 44.2 69.2 27.9 50.42 . Created Date: 6/4/2019 4:11:47 PM

RESULTS

Page 10: XNOR-NET: IMAGENET CLASSIFICATION USING BINARY ... · XNOR-Net BNN[ ] Top-I Top-5 Top-I Top-5 44.2 69.2 27.9 50.42 . Created Date: 6/4/2019 4:11:47 PM

RESULTS