ಒಂದು ಪ್ರಮಾಣಿತ ಕನ್ವಲ್ಯೂಷನಲ್ ಲೇಯರ್ (convolutional layer) ವಿಚಿತ್ರವಾಗಿ ಎಲ್ಲವನ್ನೂ ಸಮಾನವಾಗಿ ಕಾಣುತ್ತದೆ. ಇದು ಡಜನ್ಗಟ್ಟಲೆ — ಕೆಲವೊಮ್ಮೆ ನೂರಾರು — ಫೀಚರ್ ಡಿಟೆಕ್ಟರ್ಗಳನ್ನು (feature detectors) ಜೋಡಿಸುತ್ತದೆ, ನಂತರ ಪ್ರತಿಯೊಂದನ್ನೂ ಒಂದೇ ರೀತಿಯ ಗೌರವದಿಂದ ಪರಿಗಣಿಸುತ್ತದೆ. ಓರೆ ಅಂಚುಗಳನ್ನು (diagonal edges) ಗುರುತಿಸಲು ಕಲಿತ ಚಾನಲ್, ನೀಲಿ ಆಕಾಶದ ಪಿಕ್ಸೆಲ್ಗಳನ್ನು ಗುರುತಿಸುವ ಚಾನಲ್ಗೆ ಸಮಾನವಾದ ಮತವನ್ನು ಪಡೆಯುತ್ತದೆ. ಬೆಕ್ಕಿನ ಫೋಟೋದಲ್ಲಿನ ಮೃದುವಾದ ಕೂದಲಿನ ವಿನ್ಯಾಸವನ್ನು (fur texture) ಪತ್ತೆಹಚ್ಚುವ ಚಾನಲ್, ಹಿನ್ನೆಲೆಯ ಶಬ್ದದಿಂದ (background noise) ಸಕ್ರಿಯಗೊಂಡ ಚಾನಲ್ನಷ್ಟೇ ತೂಕದೊಂದಿಗೆ ಮುಂದೆ ಪ್ರಸಾರವಾಗುತ್ತದೆ. ಆ ಏಕರೂಪತೆಯೇ ಅದರ ದೌರ್ಬಲ್ಯ. ಪ್ರತಿಯೊಂದು ಚಿತ್ರಕ್ಕೂ ಎಲ್ಲಾ ಚಾನಲ್ಗಳು ಸಮಾನವಾಗಿ ಮುಖ್ಯವಾಗಿರುವುದಿಲ್ಲ, ಮತ್ತು ಡೀಪ್ ನೆಟ್ವರ್ಕ್ಗಳು ಇದನ್ನು ಹೇಳಲು ಬೇಕಾದ ಕಾರ್ಯವಿಧಾನವನ್ನು ಐತಿಹಾಸಿಕವಾಗಿ ಹೊಂದಿಲ್ಲ.
Hu ಮತ್ತು ಅವರ ಸಹೋದ್ಯೋಗಿಗಳು ಪರಿಚಯಿಸಿದ Squeeze-and-Excitation, ಅತ್ಯಲ್ಪ ಬದಲಾವಣೆಯೊಂದಿಗೆ ಇದನ್ನು ಸರಿಪಡಿಸುತ್ತದೆ. ಇದು ಯಾವುದೇ ಕನ್ವಲ್ಯೂಷನ್ ಬ್ಲಾಕ್ಗೆ ಕಲಿಯಬಹುದಾದ (learnable) ಗೇಟಿಂಗ್ ಮೆಕ್ಯಾನಿಸಮ್ ಅನ್ನು ಜೋಡಿಸುತ್ತದೆ, ಇದರಿಂದ ನೆಟ್ವರ್ಕ್ ಪ್ರತಿಯೊಂದು ಚಾನಲ್ ಎಷ್ಟು ಕೊಡುಗೆ ನೀಡುತ್ತದೆ ಎಂಬುದನ್ನು ಡೈನಾಮಿಕ್ ಆಗಿ ಮರುಹೊಂದಿಸಬಹುದು (recalibrate), ಮತ್ತು ಇದು ಪ್ರತಿ ಇನ್ಪುಟ್ಗೆ ಹೊಸದಾಗಿ ಮಾಡುತ್ತದೆ. ಇದರ ಹೆಚ್ಚುವರಿ ವೆಚ್ಚವು ಅತ್ಯಲ್ಪ — ResNet-50 ಗೆ ಇದನ್ನು ಜೋಡಿಸಿದಾಗ ಸುಮಾರು ಶೇಕಡಾ 2.5 ರಷ್ಟು ಹೆಚ್ಚಿನ ಪ್ಯಾರಾಮೀಟರ್ಗಳು ಬೇಕಾಗುತ್ತವೆ — ಆದರೆ ಇದು ನೀಡುವ ಪ್ರತಿನಿಧಿಸುವ ಸಾಮರ್ಥ್ಯವು (representational power) ಎಷ್ಟು ದೊಡ್ಡದಿದೆಯೆಂದರೆ, SE ಬ್ಲಾಕ್ಗಳು ILSVRC 2017 ಗೆ ವಿಜಯ ಸಾಧಿಸಲು ಸಹಾಯ ಮಾಡಿತು ಮತ್ತು ಈಗ MobileNetV3 ಮತ್ತು EfficientNet ನಂತಹ ಪ್ರೊಡಕ್ಷನ್ ಆರ್ಕಿಟೆಕ್ಚರ್ಗಳಲ್ಲಿ ಬಳಕೆಯಾಗುತ್ತಿವೆ.
ಇದನ್ನು ಮೂರು ಹಂತಗಳಲ್ಲಿ ಮೊದಲಿನಿಂದಲೇ ನಿರ್ಮಿಸುವುದು ಸಾಕಷ್ಟು ಸರಳವಾಗಿದೆ.
Squeeze: ನೆಟ್ವರ್ಕ್ಗೆ ವೈಡ್-ಆಂಗಲ್ ಲೆನ್ಸ್ ನೀಡುವುದು
ಕನ್ವಲ್ಯೂಷನ್ ವಿನ್ಯಾಸದ ಪ್ರಕಾರ ಸ್ಥಳೀಯವಾಗಿರುತ್ತದೆ (local). ಒಂದು 3×3 ಕರ್ನಲ್ ಚಿತ್ರದ ಮೇಲೆ ಚಲಿಸುತ್ತದೆ ಮತ್ತು ಕೇವಲ ತನ್ನ ಸುತ್ತಮುತ್ತಲಿನ ಪ್ರದೇಶವನ್ನು ಮಾತ್ರ ನೋಡುತ್ತದೆ. ಸಾಕಷ್ಟು ಲೇಯರ್ಗಳನ್ನು ಜೋಡಿಸಿದರೆ ರಿಸೆಪ್ಟಿವ್ ಫೀಲ್ಡ್ (receptive field) ಬೆಳೆಯುತ್ತದೆ, ಆದರೂ ಯಾವುದೇ ಒಂದೇ ಕಾರ್ಯಾಚರಣೆಯು ಇಡೀ ಫೀಚರ್ ಮ್ಯಾಪ್ ಅನ್ನು ಒಂದೇ ನೋಟದಲ್ಲಿ ನೋಡುವುದಿಲ್ಲ. ಇದರರ್ಥ, ಒಂದು ಚಾನಲ್ ನಾಯಿ ಅಥವಾ ಕಾರಿನ ಸಂಪೂರ್ಣ ಸ್ಪೇಷಿಯಲ್ ವ್ಯಾಪ್ತಿಯಲ್ಲಿ ಬಲವಾಗಿ ಸಕ್ರಿಯಗೊಂಡಿರಬಹುದು, ಆದರೆ ಮುಂದಿನ ಲೇಯರ್ಗೆ "ಈ ಡಿಟೆಕ್ಟರ್ ಎಲ್ಲೆಡೆ ಸಕ್ರಿಯಗೊಂಡಿದೆ" ಎಂಬ ಸ್ಪಷ್ಟ ಸಾರಾಂಶ ಎಂದಿಗೂ ಸಿಗುವುದಿಲ್ಲ.
Squeeze ಹಂತವು ಗ್ಲೋಬಲ್ ಆವರೇಜ್ ಪೂಲಿಂಗ್ (global average pooling) ಮೂಲಕ ಆ ಅಂತರವನ್ನು ತುಂಬುತ್ತದೆ. ಪ್ರತಿ ಚಾನಲ್ಗಾಗಿ, H×W ಸ್ಪೇಷಿಯಲ್ ಗ್ರಿಡ್ನಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದು ಮೌಲ್ಯವನ್ನು ಸರಾಸರಿ ಮಾಡಿ ಒಂದು ಸಂಖ್ಯ
ಅಂತಿಮ ಹಂತವು ಬಹುತೇಕ ನಿರಾಸಕ್ತಿ ಮೂಡಿಸುವಂತಿದೆ (anticlimactic), ಇದು ಅದರ ಸೊಬಗಿನ ಒಂದು ಭಾಗವಾಗಿದೆ. ಪ್ರತಿಯೊಂದು ಮೂಲ feature map ಅನ್ನು ಅದರ ಅನುರೂಪ sigmoid-activated gate value ಮೂಲಕ ಗುಣಿಸಲಾಗುತ್ತದೆ. ಒಂದು ವೇಳೆ gate value ಒಂದಕ್ಕೆ ಹತ್ತಿರವಿದ್ದರೆ, ಆ channel ಯಾವುದೇ ಬದಲಾವಣೆ ಇಲ್ಲದೆ ಹಾದುಹೋಗುತ್ತದೆ. ಒಂದು ವೇಳೆ gate value ಸೊನ್ನೆಗೆ ಹತ್ತಿರವಿದ್ದರೆ, ಆ ಇಡೀ feature map ಮೌನವಾಗುತ್ತದೆ (muted). ಇದರ ಫಲಿತಾಂಶವನ್ನು ನೆಟ್ವರ್ಕ್ನ ಮುಂದಿನ ಪದರಕ್ಕೆ (layer) ಕಳುಹಿಸಲಾಗುತ್ತದೆ.
ಇದು spatial maps ಗಳಾದ ಕೇವಲ ಗುಣಾಕಾರವಾಗಿರುವುದರಿಂದ, inference ಸಮಯದಲ್ಲಿ ಇದು ಕನಿಷ್ಠ ಕಂಪ್ಯೂಟ್ ಓವರ್ಹೆಡ್ ಅನ್ನು ಮಾತ್ರ ನೀಡುತ್ತದೆ. ಹೆಚ್ಚಿನ ಕೆಲಸವನ್ನು global pooling ಮತ್ತು ಎರಡು ಸಣ್ಣ projections ಮಾಡಿದ್ದವು, ಇವು ಸುತ್ತಮುತ್ತಲಿನ 3×3 convolutions ಗೆ ಹೋಲಿಸಿದರೆ ಅತ್ಯಲ್ಪವಾಗಿವೆ.
ಈ ವಿನ್ಯಾಸವು ಏಕೆ ಉಳಿದುಕೊಂಡಿದೆ
ಸರಳ ಗಣಿತದ ಹೊರತಾಗಿ, Squeeze-and-Excitation ಎಂಜಿನಿಯರಿಂಗ್ ಮಿತಿಗಳನ್ನು (engineering constraints) ಗೌರವಿಸುವುದರಿಂದ ಇದು ಇಂದಿಗೂ ಚಾಲ್ತಿಯಲ್ಲಿದೆ.
ಕಡಿಮೆ ಪ್ಯಾರಾಮೀಟರ್ಗಳು (Cheap parameters). ResNet-50 ಗೆ SE ಬ್ಲಾಕ್ಗಳನ್ನು ಸೇರಿಸುವುದರಿಂದ ಕೇವಲ ಶೇಕಡಾ 2.5 ರಷ್ಟು ಪ್ಯಾರಾಮೀಟರ್ಗಳು ಮಾತ್ರ ಹೆಚ್ಚಾಗುತ್ತವೆ. MLP layers ಚಿಕ್ಕದಾಗಿವೆ; ಅವು ಮಾಡೆಲ್ ಅನ್ನು ದೊಡ್ಡದಾಗಿಸುವುದಿಲ್ಲ (bloat). ಮಾಡೆಲ್ ಗಾತ್ರವನ್ನು ದ್ವಿಗುಣಗೊಳಿಸುವುದರಿಂದ ನಿಖರತೆ (accuracy) ಹೆಚ್ಚುವ ಯುಗದಲ್ಲಿ, SE ಒಂದು ಅಪರೂಪದ ಲಾಭವನ್ನು ನೀಡುತ್ತದೆ.
ಮಾಡ್ಯುಲಾರಿಟಿ (Modularity). SE ಎಂಬುದು ನಿಮ್ಮ ಪೈಪ್ಲೈನ್ ಅನ್ನು ಮರು ವಿನ್ಯಾಸಗೊಳಿಸುವಂತೆ ಕೇಳುವ ಹೊಸ backbone architecture ಅಲ್ಲ. ಇದು ಒಂದು drop-in module ಆಗಿದೆ. ನೀವು ResNet, DenseNet ಅಥವಾ ಕಸ್ಟಮ್ ಸ್ಟ್ಯಾಕ್ಗಳಲ್ಲಿರುವ ಯಾವುದೇ convolution block ನಂತರ ಸುತ್ತಮುತ್ತಲಿನ ಲಾಜಿಕ್ ಅನ್ನು ಮರುಬರೆಯುವ ಅಗತ್ಯವಿಲ್ಲದೆ ಇದನ್ನು ಸೇರಿಸಬಹುದು. ಈ ನಮ್ಯತೆಯು (flexibility) ಸಂಶೋಧನೆಯಲ್ಲಿ ಮತ್ತು ನಂತರ ಮೊಬೈಲ್-ಆಪ್ಟಿಮೈಸ್ಡ್ ನೆಟ್ವರ್ಕ್ಗಳಲ್ಲಿ ಇದರ ಅಳವಡಿಕೆಯನ್ನು ವೇಗಗೊಳಿಸಿತು.
ಇನ್ಪುಟ್-ಅಡಾಪ್ಟಿವ್ ವರ್ತನೆ (Input-adaptive behavior). ತರಬೇತಿಯ ಸಮಯದಲ್ಲಿ ಕಲಿತ ಮತ್ತು ಸ್ಥಿರವಾಗಿರುವ (frozen) static channel weights ಗಳಿಗಿಂತ ಭಿನ್ನವಾಗಿ, SE gates ಪ್ರತಿ forward pass ಗಾಗಿ ತಕ್ಷಣವೇ (on the fly) ಲೆಕ್ಕಹಾಕಲ್ಪಡುತ್ತವೆ. ನೆಟ್ವರ್ಕ್ಗೆ ಯಾವುದೇ ವೈಶಿಷ್ಟ್ಯಗಳಿಲ್ಲದ (featureless) ಸಮತಟ್ಟಾದ ಆಕಾಶವನ್ನು ನೀಡಿದರೆ, ಸಂಬಂಧಿತ channels ಮಂದವಾಗಿರುತ್ತವೆ. ಪಾದಚಾರಿಗಳು, ಚಿಹ್ನೆಗಳು ಮತ್ತು ವಾಹನಗಳಿರುವ ಜನನಿಬಿಡ ರಸ್ತೆಯ ದೃಶ್ಯವನ್ನು ತೋರಿಸಿದರೆ, ಆ ನಿರ್ದಿಷ್ಟ ಚಿತ್ರಕ್ಕೆ ಅಗತ್ಯವಿರುವ detectors ಅನ್ನು ಹೆಚ್ಚಿಸಲು gates ಮರು-ಹೊಂದಾಣಿಕೆ (recalibrate) ಮಾಡಿಕೊಳ್ಳುತ್ತವೆ. ಅದೇ ನೆಟ್ವರ್ಕ್ ಪ್ರತಿ ದೃಶ್ಯಕ್ಕೆ ಅನುಗುಣವಾಗಿ ತನ್ನ ಸಂವೇದನಾಶೀಲತೆಯನ್ನು (sensitivity) ಹೊಂದಿಸಿಕೊಳ್ಳುತ್ತದೆ.
ಸ್ಪರ್ಧೆಯ ವಿಜೇತರಿಂದ ದೈನಂದಿನ ಬಳಕೆಯವರೆಗೆ
SE ಬ್ಲಾಕ್ಗಳು ILSVRC 2017 ರಲ್ಲಿ ಮೊದಲ ಸ್ಥಾನವನ್ನು ಪಡೆದವು, ಆದರೆ ಅವುಗಳ ನಿಜವಾದ ಮೌಲ್ಯೀಕರಣವು ನಂತರ ಬಂದಿತು. ಅವುಗಳನ್ನು MobileNetV3 ನಲ್ಲಿ ಬಳಸಿಕೊಳ್ಳಲಾಗಿದೆ, ಅಲ್ಲಿ ಅವು ಮೊಬೈಲ್ ಬ್ಯಾಟರಿಯನ್ನು ವ್ಯಯಿಸದೆ ಲಘು ತೂಕದ (lightweight) ಮಾಡೆಲ್ಗಳು ಹೆಚ್ಚಿನ ಸಾಮರ್ಥ್ಯವನ್ನು ಪ್ರದರ್ಶಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತವೆ. ಅವು EfficientNet ನ compound scaling ರೆಸಿಪಿಯಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ, ಇದು channel attention ಎಂಬುದು ಕೇವಲ ಭಾರೀ ಸರ್ವರ್ಗಳಿಗೆ ಮಾತ್ರ ಸೀಮಿತವಾದ ಐಷಾರಾಮಿ ಅಲ್ಲ, ಬದಲಾಗಿ ದಕ್ಷ ವಿನ್ಯಾಸಕ್ಕಾಗಿ ಒಂದು ಪ್ರಾಯೋಗಿಕ ಸಾಧನ ಎಂಬುದನ್ನು ಸಾಬೀತುಪಡಿಸುತ್ತದೆ.
ಇದಕ್ಕೆ ಎಷ್ಟು ಕಡಿಮೆ ಕೋಡ್ ಬೇಕಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ನೀವು ನೋಡಲು ಬಯಸಿದರೆ, ಲೈವ್ ಡೆಮೊ ಈ ಬ್ಲಾಕ್ ಅನ್ನು ಸಾಲು ಸಾಲಾಗಿ ವಿವರಿಸುತ್ತದೆ:
- Live demo: https://dev48v.infy.uk/dl/day40-squeeze-excitation.html
- Full build walkthrough: https://dev.to/dev48v/squeeze-and-excitation-from-scratch-cheap-channel-attention-that-learns-which-feature-maps-matter-1hic
ಮತ್ತು ನೀವು ಸಮುದಾಯದೊಂದಿಗೆ ಸೇರಿ ನಿರ್ಮಿಸುತ್ತಿದ್ದರೆ: https://t.me/GyaanSetuAi
ನಿಜವಾದ ಸಾರಾಂಶ
ಉತ್ತಮ ವಿಷನ್ ಮಾಡೆಲ್ಗಳಿಗೆ ಯಾವಾಗಲೂ ಆಳವಾದ ಸ್ಟ್ಯಾಕ್ಗಳು ಅಥವಾ ಅಗಲವಾದ ಫಿಲ್ಟರ್ಗಳ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ. ಕೆಲವೊಮ್ಮೆ ಅವುಗಳ ಮುಂದೆ ಇರುವ ಚಿತ್ರಕ್ಕೆ ಯಾವ channels ನಿಜವಾಗಿಯೂ ಮುಖ್ಯ ಎಂಬುದನ್ನು ಕೇಳಲು ಅವುಗಳಿಗೆ ಒಂದು ಕ್ಷಣದ ಅವಶ್ಯಕತೆ ಇರುತ್ತದೆ. Squeeze-and-Excitation ಕೇವಲ ಒಂದು pooled average, ಸಂಕುಚಿತಗೊಳಿಸಿದ (compressed) MLP ಮತ್ತು sigmoid gate ಮೂಲಕ ಆ ಕ್ಷಣವನ್ನು ನೀಡುತ್ತದೆ. ಇದರ ಫಲಿತಾಂಶವೆಂದರೆ, ಪ್ರತಿಯೊಂದು ವೈಶಿಷ್ಟ್ಯವನ್ನೂ (feature) ಸಮಾನ ಧ್ವನಿಯಲ್ಲಿ ಕೂಗುವ ಬದಲು, ದೃಶ್ಯವು ಅಗತ್ಯವಿರುವಾಗ ಪ್ರತಿಯೊಂದು channel ಅನ್ನು ಮೌನಗೊಳಿಸಲು, ಒತ್ತಿ ಹೇಳಲು ಅಥವಾ ಮೆಲ್ಲಗೆ ಹೇಳಲು ಕಲಿಯುವ ನೆಟ್ವರ್ಕ್ ಆಗಿರುತ್ತದೆ.
