๐ํด๋น ํฌ์คํ ์์ ์ฌ์ฉ๋ ์๋ฃ๋ ๊ณ ๋ ค๋ํ๊ต ์ฐ์ ๊ฒฝ์๊ณตํ๋ถ ๊น์ฑ๋ฒ๊ต์๋์ Youtube ๊ฐ์์๋ฃ์ ๊ธฐ๋ฐํ์์ ์๋ ค๋๋ฆฝ๋๋ค. ํน์ฌ๋ ์ถ์ฒ๋ฅผ ๋ฐํ์์๋ ๋ถ๊ตฌํ๊ณ ์ ์๊ถ์ ๋ฌธ์ ๊ฐ ๋๋ค๋ฉด joyh951021@gmail.com์ผ๋ก ์ฐ๋ฝ์ฃผ์๋ฉด ํด๋น ์๋ฃ๋ฅผ ์ญ์ ํ๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ ์ปดํจํฐ ๋น์ ๋ถ์ผ์ ์ด๋ฏธ์ง ๋ถ๋ฅ ๋ฌธ์ ์ ์์ด์ CNN ๋ฅ๋ฌ๋ ๋ชจ๋ธ์ ์์ธก ๊ฒฐ๊ณผ๋ฅผ ์ค๋ช ํด์ค ์ ์๋ ์์ ์ค ํ๋์ธ CAM(Class Activation Map) ๊ณผ ์ด๋ฅผ ์์ฉํ ๋ฐฉ๋ฒ์ธ Grad CAM ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๋ ค๊ณ ํ๋ค. ์ ๋ฒ ํฌ์คํ ์์๋ Tabular data ์ฆ, ์ ํ ๋ฐ์ดํฐ์์ ์์ธก ๊ฒฐ๊ณผ๋ฅผ ์ค๋ช ํ ์ ์๋ ์์์ธ Shapley Value๋ฅผ ์์๋ณด์๋ค. ์ด๋ฒ์๋ ๋๋ฉ์ธ์ ๋ณ๊ฒฝํ์ฌ ์ปดํจํฐ ๋น์ ๋ถ์ผ์์ ์์๋ณด๋ ค๊ณ ํ๋ค. ํด๋น ํฌ์คํ ์ ์ดํดํ๊ธฐ ์ํด์๋ CNN ๋ชจ๋ธ์ ๋ํ ๊ฐ๋ ์ด ์ ์ ๋์ด์ผ ํ๋ฏ๋ก ํน์ CNN ๋ชจ๋ธ์ ๋ํด ๋ชจ๋ฅธ๋ค๋ฉด ์ฌ๊ธฐ๋ฅผ ์ฝ์ด๋ณด๊ณ ์ค์.
CNN ๋ชจ๋ธ์ด ๊ฐ์์ง ์ฌ์ง์ ์ธํ์ผ๋ก ๋ฐ์๋ค์ฌ์ ๋ถ๋ฅ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์์ง๋ก ์์ธกํ๋ค. ๊ทธ๋ ๋ค๋ฉด ๋์ฒด CNN ๋ชจ๋ธ์ด ์ธํ ์ด๋ฏธ์ง์ ์ด๋ค ๋ถ๋ถ์ ์ค์ ์ ์ผ๋ก ๋ณด๊ณ ํด๋น ์ธํ ์ด๋ฏธ์ง๊ฐ ๊ฐ์์ง ์ฌ์ง์ด๋ผ๋ ๊ฒ์ ์์ธกํ์๊น? ์ธ๊ณต์ง๋ฅ์ด๋ผ๋ ๊ทธ๋ ๊ฒ ํ๋จํ ์ ๋์ ์ธ ์ด์ ๊ฐ ๋ถ๋ช ํ ์์ ๊ฒ์ด๋ค. ์ด๋ฌํ ์ด์ ๋ฅผ ์ ์ ์๋ ๋ฐฉ๋ฒ ์ค ํ๋๊ฐ ๋ฐ๋ก CAM(Class Activation Map)์ด๋ค. ์ฐ์ CAM์ ์ดํดํ๊ธฐ ์ ์ ๊ฐ๋จํ๊ฒ CNN ๋ชจ๋ธ์ด ์ด๋ค ๊ตฌ์กฐ์๋์ง ์ ๊น ์๊ธฐ์์ผ๋ณด์.
1. GAP๋ฅผ ํ์ฉํ CAM
์์ ๊ฐ์ด ์ธํ ์ด๋ฏธ์ง๊ฐ CNN ๋ชจ๋ธ๋ก ๋ค์ด๊ฐ๊ฒ ๋๋ฉด ์ฌ๋ฌ ๋จ๊ณ์ ์ปจ๋ณผ๋ฃจ์ ๊ณผ์ ์ ๊ฑฐ์น๊ณ ๋ถํ์ ๋ค๋ชจ์นธ์ฒ๋ผ ์ต์ข Feature Map ์ํ๊ฐ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด Feature Map์ Flatten ํด์ฃผ๊ณ ์ต์ข ํด๋์ค ๋ถ๋ฅ๋ฅผ ์์ธกํ๊ฒ ๋๋๋ฐ, CAM์ Feature Map์์๋ถํฐ ์ด Feature Map์ Flatten ํด์ฃผ๊ณ ๊ฒฐ๊ณผ๊ฐ์ ๋ถ๋ฅํ๋ ๋จ๊ณ๊น์ง๋ฅผ ํฌ๊ดํ๋ค. ๊ทธ๋ฆผ์ผ๋ก ํ์ํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
์ฆ, ์ธํ์ด๋ฏธ์ง๊ฐ CNN ๋ชจ๋ธ๋ก ์ธํด ํด๋์ค ๋ถ๋ฅ๊ฐ ๋ ํ, ์ด๋ค ํฝ์ ๋ถ๋ถ์ด ํด๋์ค ์์ธก์ ํฐ ์ํฅ์ ์ฃผ์๋์ง ํ์ธํ๊ธฐ ์ํด ์ต์ข Feature Map์ ๊ฐ ์ฑ๋๋ง๋ค GAP ๊ณผ์ ์ ๊ฑฐ์น ํ์ ๊ฐ๋ค์ Input ๋ ธ๋๋ก ํ๊ณ , Ouput ๋ ธ๋๋ฅผ ์ต์ข ํด๋์ค๋ก ํ๋ ๋ด๋ด ๋คํธ์ํฌ๋ฅผ ํ์ต์ํค๊ฒ ๋๋ค. ์ด์ CAM์ด ๊ตฌ์ฒด์ ์ผ๋ก ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํดํ๊ธฐ ์ํด ์ CAM ๋จ๊ณ๋ฅผ ์ข ๋ ํ์ฅ์์ผ๋ณด์.
์ฐ๋ฆฌ๋ $Class\ 1$๋ก ๋ถ๋ฅ๋ ๊ฒฐ๊ณผ๋ฅผ ์ค๋ช ํ๋ ์ํฉ์ด๋ผ๊ณ ๊ฐ์ ํด๋ณด์. ์์ ๊ฐ์ด Feature Map์ Channel 1๊ฐ ๋ง๋ค GAP(Global Average Pooling)์ ์ ์ฉํด์ ํ๋์ Scala ๊ฐ์ ๊ณ์ฐํ๋ค. ์ด ๋ GAP๋, ์ฝ๊ฒ ๋งํด์ Avreage Pooling์ ์๋ฏธํ๋ค. ์ฆ, Feature Map์ ํฝ์ ๊ฐ๋ค์ ๋ํ ํ๊ท ๊ฐ์ ๋ธ๋ค. ๊ทธ๋ ๊ฒ ๊ฐ ์ฑ๋๋ง๋ค GAP๋ฅผ ์ ์ฉํด $a, b, c$ ๊ฐ์ ๊ณ์ฐํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด 3๊ฐ์ ๊ฐ๋ค์ ์ธํ ๋ฐ์ดํฐ๋ก ํ๊ณ ํด๋์ค ๋ถ๋ฅ ๊ฒฐ๊ณผ๊ฐ์ Output์ผ๋ก ํ๋ ๋ด๋ด ๋คํธ์ํฌ๋ฅผ ํ์ต์ํจ๋ค. ๊ทธ๋ฌ๋ฉด ์ ๊ทธ๋ฆผ์์ ์ฒ๋ผ ๊ฐ GAP ๊ฐ($a, b, c$) ๋ง๋ค ๊ด๋ จ๋์ด ์๋ $w_1, w_2, w_3$ ๊ฐ์ด ํ์ต๋ ๊ฒ์ด๋ค.
๊ทธ๋ฐ ๋ค์ ํ์ต๋ $w_1, w_2, w_3$ ๊ฐ์ ๊ฐ๊ฐ ๊ด๋ จ๋์ด ์๋ Feature Map ์ฑ๋์๋ค๊ฐ ๊ณฑํด์ค๋ค. ๋ฐ๋ก ์๋ ๊ทธ๋ฆผ์ฒ๋ผ ๋ง์ด๋ค.
์์ฒ๋ผ ์ด๋ ๊ฒ ๊ฐ์ค์น๊ฐ ๊ณฑํด์ง ๊ฐ ์ฑ๋์ ๋ค์ ํฉ์น๋ค. ์ด๋ ๊ฒ Weighted Sum๋ Feature Map์ Graphical ํ๊ฒ ์๊ฐํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ํ๋ด์ง๊ฒ ๋๋ค.
2. Grad CAM
๋ค์์ผ๋ก ์๊ฐํ ๋ฐฉ๋ฒ์ ์์์ ์์๋ณด์๋ CAM ๊ธฐ๋ฒ์ ์์ฉํ Grad CAM ๊ธฐ๋ฒ์ ๋ํด ์์๋ณด์. ๊ธฐ์กด CAM์ GAP(Global Average Pooling)์ ํ์ฉํ์ง๋ง ์ด๋ฒ์ ์๊ฐํ Grad CAM ๊ธฐ๋ฒ์ GAP๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค. ๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ์ ๊น ์๊ฐํด๋ณด์. ๊ทธ๋ ๋ค๋ฉด GAP๋ฅผ ์ ์ฌ์ฉํ์ง ์์๊น?
GAP๋ ์์์ ์์๋ณด์๋ ๊ฒ์ฒ๋ผ Feature Map์ ๊ฐ ์ฑ๋๋ง๋ค GAP๋ฅผ ์ทจํ ๊ฐ์ ํ๋์ Input์ผ๋ก ์ค์ ํด์ ๋ด๋ด๋คํธ์ํฌ๋ฅผ ํ์ต์์ผ์ผ ํ๋ค. ๊ฒฐ๊ตญ ํ์์ ์ผ๋ก ํ๋์ ์ถ๊ฐ์ ์ธ ๋ด๋ด ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ๊ณ ์ด๋ ๊ฒฐ๊ตญ ๋์ ์ปดํจํ ๋น์ฉ ๋ฌธ์ ๊ฐ ์์ฐ์ค๋ฝ๊ฒ ๋ฐ์ํ๋ค. ์ด๋ฌํ ๋ฌธ์ ์ ์ ์ฐฉ์ํ์ฌ Grad CAM์ ๊ธฐ์กด CAM ์ฒ๋ผ ์๋ก์ด ๋ด๋ด ๋คํธ์ํฌ๋ฅผ ์ถ๊ฐํ์ง ์๊ณ ์ด๋ฏธ์ง ๋ถ๋ฅ ๊ฒฐ๊ณผ๋ฅผ ์ค๋ช ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ์ํ๋ค. Grad CAM์ 'Grad' ๋ 'Gradient(๋ฏธ๋ถ=๋ณํ๋)'์ ๋ปํ๋๋ฐ, ์ 'Gradient'๋ฅผ ํ์ฉํ๋์ง, ๋ Grad CAM์ด ์ด๋ค ๋ฐฉ์์ผ๋ก ๋์ํ๋์ง ํ๋ฒ ์ดํด๋ณด์.
Grad CAM๋ ํน์ดํ๊ฒ Feature Map์ ๊ฐ ์ฑ๋๋ค์ Flatten ์ํค๋ ๊ณผ์ ์ ๊ฑฐ์น๋ค. ์ด๋ ๊ฒ ๊ฐ ์ฑ๋์ Flatten ์ํจ ํ ํด๋์ค ๋ถ๋ฅ ๊ฒฐ๊ณผ๊ฐ์ธ Output ๊ณผ์ ๊ฐ์ค์น($w_i$)๋ฅผ ํ์ฉํ๋ค. ์ฆ, Flatten ์ํจ ์ผ์ข ์ Input ๋ ธ๋๋ค์ด ํน์ ํด๋์ค๋ก ๋ถ๋ฅ๋๋ ๊ฒ์ ์ํฅ์ ๋ฏธ์น๋ ๊ฐ์ผ๋ก์ $w_i$๊ฐ ์ ์๋๋ค. ์ด ๋ $w_i$ ๊ฐ๋ค์ ๋ํด ๊ตฌํ๊ธฐ ์ํด์ ๋ค์๊ณผ ๊ฐ์ ๊ณ์ฐ ๊ณผ์ ์ ๊ฑฐ์น๋ค.
์๋ฅผ ๋ค์ด $Class\ 1$ ๋ก ์์ธก๊ฐ์ด ๋์๋ค๊ณ ๊ฐ์ ํ๊ณ ๊ฐ Feature Map์ ์ฑ๋๋ง๋ค Weight ๊ฐ์ ๊ตฌํด์ค๋ค. Weight ๊ฐ์ ๊ตฌํด์ฃผ๋ ์์์ ์ดํด๋ณด์. ๋ถ์์ธ ํน์ ํด๋์ค $y^{c_1}$์ผ๋ก ๋ถ๋ฅ๋๋ ๊ฐ์ ๋ถ๋ชจ์ธ $\partial {A_{ij}}^k$๋ ํน์ Feature Map ์ฑ๋์ ํ ํฝ์ (Feature Map์ ํ ์นธ)๊ฐ๋ค ๊ธฐ์ค์ผ๋ก ํ๋ฒ์ฉ ์ฐจ๋ก๋ก ํธ๋ฏธ๋ถ์ ์ํํด์ฃผ๋ ๊ฒ์ ์๋ฏธํ๋ค.(์ด ๋, ํธ๋ฏธ๋ถ์ ์ํํด์ค๋ค๋ ๊ฒ์ ์ต์ข ํด๋์ค ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ผ๋ง๋ '๋ณํ'ํ๋์ง์ ๋ํ ๋ณํ๋์ ์๋ฏธํ๊ธฐ ๋๋ฌธ์ Grad CAM์ 'Grad' ๊ฐ 'Gradient(๋ฏธ๋ถ = ๋ณํ๋)'์ ์๋ฏธํ๋ ๊ฒ์ด๋ค.)
๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ๋ชจ๋ ํฉํ ํ Feature Map์ ์ฑ๋ ๋น ํฝ์ ์ด ๊ฐ์์ธ $z$ ๊ฐ์ผ๋ก ๋๋์ด ์ฃผ์ด ํ๊ท ์ ์ทจํด์ค๋ค. ์ด๋ ๊ฒ ๊ฐ Feature Map์ ์ฑ๋๋ง๋ค ๋๊ฐ์ด ์ํํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๊ฐ Feature Map ์ฑ๋์๋ค๊ฐ ๊ฐ ์ฑ๋์ ๋งคํ๋์ ๊ณ์ฐ๋ Weight ๊ฐ์ ๊ณฑํด์ฃผ๊ณ ์ฑ๋๋ค์ ๋ค์ ํฉ์น๋ค.
๊ทธ๋ฆฌ๊ณ ๊ธฐ์กด CAM์ฒ๋ผ ๊ฐ์ค์น๊ฐ ๋ํ ๊ฒ์ด ๋ฐ์๋ Feature Map์ ๊ทธ๋ํผ์ปฌํ๊ฒ ๊ทธ๋ ค๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์๊ฐํ๊ฐ ๋๋ค.
'Data Science > Computer Vision' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ML] Residual Block์ ํ์ฉํ ResNet(Residual Network) (2) | 2021.10.06 |
---|---|
[ML] GoogleNet(InceptionNet) CNN ๋ชจ๋ธ (0) | 2021.10.04 |
[ML] Mask RCNN Instance Segmentation ๋ชจ๋ธ (0) | 2021.05.06 |
[ML] Retina Net Object Detection ๋ชจ๋ธ (0) | 2021.04.26 |
[ML] YOLO(You Only Look Once) Object Detection ๋ชจ๋ธ (5) | 2021.04.22 |