Path: blob/master/site/ko/tutorials/interpretability/integrated_gradients.ipynb
25118 views
Copyright 2020 The TensorFlow Authors.
ํตํฉ ๊ทธ๋๋์ธํธ
์ด ํํ ๋ฆฌ์ผ์ ๋ฅ ๋คํธ์ํฌ์ ๋ํ ๊ณต๋ฆฌ์ ์์ฑ ๋ ผ๋ฌธ์ ์๊ฐ๋ Explainable AI ๊ธฐ์ ์ธ **ํตํฉ ๊ทธ๋๋์ธํธ(IG)**๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. IG๋ ํด๋น ํน์ฑ์ ๊ด์ ์์ ๋ชจ๋ธ ์์ธก ์ฌ์ด์ ๊ด๊ณ๋ฅผ ์ค๋ช ํ๋ ๋ฐ ๋ชฉ์ ์ ๋๊ณ ์์ต๋๋ค. ํน์ฑ์ ์ค์์ฑ ์ดํด, ๋ฐ์ดํฐ ๊ธฐ์ธ์ ์๋ณ ๋ฐ ๋ชจ๋ธ ์ฑ๋ฅ ๋๋ฒ๊น ์ ํฌํจํ ๋ง์ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์์ต๋๋ค.
IG๋ ๋ค์ํ ๋ชจ๋ธ(์: ์ด๋ฏธ์ง, ํ ์คํธ, ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ)์ ๋ํ ์ ์ฉ ๊ฐ๋ฅ์ฑ, ๊ตฌํ์ ์ฉ์ด์ฑ, ์ด๋ก ์ ๊ทผ๊ฑฐ ๋ฐ ๋๊ท๋ชจ ๋คํธ์ํฌ์ ์ด๋ฏธ์ง์ ๊ฐ์ ์์ ๊ณต๊ฐ์ผ๋ก ํ์ฅํ ์ ์๋ ๋์ฒด ์ ๊ทผ ๋ฐฉ์์ ์๋์ ์ธ ๊ณ์ฐ ํจ์จ์ฑ์ ํ์ ์ด ๋๋ฆฌ ํต์ฉ๋๋ ํด์ ๊ธฐ์ ๋ก ์๋ฆฌ ์ก์์ต๋๋ค.
์ด ํํ ๋ฆฌ์ผ์์๋ IG์ ๋จ๊ณ๋ณ ๊ตฌํ์ ์งํํ๋ฉด์ ์ด๋ฏธ์ง ๋ถ๋ฅ์์ ํฝ์ ์์๊ฐ ๊ฐ๋ ์ค์๋๋ฅผ ์ดํดํด ๋ณด๊ฒ ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฌผ์ ๋ถ์ฌํ๋ ์๋ฐฉ์ ์ ๋ํ๋ธ ์ด ์ด๋ฏธ์ง๋ฅผ ์๊ฐํด ๋ณด์ธ์. ์ด ์ด๋ฏธ์ง๋ ์๋ฐฉ์ ์ผ๋ก ๋ถ๋ฅ๋ ๊ฒ์ด๊ณ ์ด๋ฌํ ๊ฒฐ์ ์ ๋ด๋ฆฐ ๋ฐ๋ ๋ณดํธ์ ๋ฌผ ๋ํฌ๋ฅผ ๊ตฌ์ฑํ๋ ํฝ์ ์ด ์ค์ํ๊ฒ ์์ฉํ ๊ฒ์ ๋๋ค. ์์๋ณผ ๋ชจ๋ธ๋ ์ด ํํ ๋ฆฌ์ผ์ ๋ท๋ถ๋ถ์์ ์ด ์ด๋ฏธ์ง๋ฅผ ์๋ฐฉ์ ์ผ๋ก ๋ถ๋ฅํ๊ฒ ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ฒฐ์ ์ ์ค๋ช ํ ๋ ์ค์ํ ๊ฒ๊ณผ ๋์ผํ ํฝ์ ์ ๊ฐ์กฐํฉ๋๊น?
"IG Attribution Mask" ๋ฐ "Original + IG Mask Overlay" ์ ๋ชฉ์ ์๋ ์ด๋ฏธ์ง์์ ๋ชจ๋ธ์ ์ด ๊ฒฐ์ ์ ๋ด๋ฆด ๋ ๋ณดํธ์ ๋ฌผ ๋ํฌ์ ๋ฌผ ์ ํธ๋ฅผ ๊ตฌ์ฑํ๋ ํฝ์ ์ ๋ณดํธ ์์ฒด๋ณด๋ค ๋ ์ค์ํ๊ฒ ๊ฐ์กฐ(๋ณด๋ผ์)ํ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๋ชจ๋ธ์ด ์๋ก์ด ์๋ฐฉ์ ์ผ๋ก ์ผ๋ฐํํ๋ ๋ฐฉ์์ ๋ฌด์์ผ๊น์? ๋ฌผ ์ ํธ๊ฐ ์๋ ์๋ฐฉ์ ์ ์ด๋ป๊ฒ ๋ ๊น์? ๊ณ์ํด์ IG์ ์๋ ๋ฐฉ์๊ณผ ๋ชจ๋ธ์ IG๋ฅผ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์ธํ ์์๋ณด๊ณ ์์ธก๊ณผ ๊ธฐ๋ณธ ํน์ฑ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ ์ ์ดํดํ๊ธฐ ๋ฐ๋๋๋ค.
์ค์
TF-Hub์์ ์ฌ์ ํ๋ จ๋ ์ด๋ฏธ์ง ๋ถ๋ฅ์ ๋ค์ด๋ก๋
IG๋ ๊ตฌ๋ถ ๊ฐ๋ฅํ ๋ชจ๋ ๋ชจ๋ธ์ ์ ์ฉํ ์ ์์ต๋๋ค. ์๋ณธ ๋ ผ๋ฌธ์ ์ทจ์ง์ ๋ฐ๋ผ ๋์ผํ ๋ชจ๋ธ์ ์ฌ์ ํ๋ จ๋ ๋ฒ์ ์ธ Inception V1์ TensorFlow Hub์์ ๋ค์ด๋ก๋ํ์ฌ ์ฌ์ฉํฉ๋๋ค.
๋ชจ๋ ํ์ด์ง์์ Inception V1์ ๊ดํ ๋ค์ ์ฌํญ์ ์ผ๋์ ๋์ด์ผ ํฉ๋๋ค.
์
๋ ฅ: ๋ชจ๋ธ์ ์์ ์
๋ ฅ ํ์์ (None, 224, 244, 3,)
์
๋๋ค. ๋ฐ์ดํฐ ํ์์ด float32์ด๊ณ ํ์์ด (batch_size, height, width, RGB channels)
(ํด๋น ์์๋ [0, 1] ๋ฒ์๋ก ์ ๊ทํ๋ ํฝ์
์ RGB ์์ ๊ฐ์)์ธ ๋ฐ๋๊ฐ ๋์ 4D ํ
์์
๋๋ค. ์ฒซ ๋ฒ์งธ ์์๋ ๋ชจ๋ธ์ด ์์์ ์ ์ ๋ฐฐ์น ํฌ๊ธฐ๋ฅผ ์ฌ์ฉํ ์ ์์์ ๋ํ๋ด๋ None
์
๋๋ค.
์ถ๋ ฅ : (batch_size, 1001)
๋ชจ์์ tf.Tensor
์ tf.Tensor. ๊ฐ ํ์ ImageNet์ ๊ฐ 1,001 ๊ฐ ํด๋์ค์ ๋ํ ๋ชจ๋ธ์ ์์ธก ์ ์๋ฅผ ๋ํ๋
๋๋ค. ๋ชจ๋ธ์ ์ต๊ณ ์์ธก ํด๋์ค ์ธ๋ฑ์ค์ ๊ฒฝ์ฐ tf.argmax(predictions, axis=-1)
์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ํ tf.nn.softmax(predictions, axis=-1)
๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ๋ก์ง ์ถ๋ ฅ์ ๋ชจ๋ ํด๋์ค์ ์์ธก ํ๋ฅ ๋ก ๋ณํํ์ฌ ๋ชจ๋ธ์ ๋ถํ์ค์ฑ์ ์ ๋ํํ๊ณ ๋๋ฒ๊น
์ ์ํด ์ ์ฌํ ์์ธก ํด๋์ค๋ฅผ ํ์ ํ ์ ์์ต๋๋ค.
tf.image
๋ก ์ด๋ฏธ์ง ๋ก๋ ๋ฐ ์ ์ฒ๋ฆฌ
Wikimedia Commons์ ๋ ์ด๋ฏธ์ง์ธ Fireboat์ Giant Panda๋ฅผ ์ฌ์ฉํ์ฌ IG๋ฅผ ์ค๋ช ํฉ๋๋ค.
์ด๋ฏธ์ง ๋ถ๋ฅํ๊ธฐ
์ด๋ฌํ ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฅํ๊ณ ๊ฐ์ฅ ํ์ ํ ์ ์๋ ์์ 3๊ฐ์ง ์์ธก์ ํ์ํ๋ ๊ฒ์ผ๋ก ์์ํ๊ฒ ์ต๋๋ค. ๋ค์์ ์์ k๊ฐ์ ์์ธก ๋ ์ด๋ธ ๋ฐ ํ๋ฅ ์ ๊ฒ์ํ๋ ์ ํธ๋ฆฌํฐ ํจ์์ ๋๋ค.
ํตํฉ ๊ทธ๋๋์ธํธ ๊ณ์ฐํ๊ธฐ
๋ชจ๋ธ Inception V1์ ์ ๋ ฅ ํน์ฑ ๊ณต๊ฐ, ์ด๋ฏธ์ง ํฝ์ ๊ฐ ๋ฐ 0๊ณผ 1 ์ฌ์ด์ ImageNet ํด๋์ค ํ๋ฅ ๊ฐ์ผ๋ก ์ ์๋ ์ถ๋ ฅ ๊ณต๊ฐ ์ฌ์ด์ ๋งคํ์ ์ค๋ช ํ๋ ํ์ต๋ ํจ์์ ๋๋ค. ์ ๊ฒฝ๋ง์ ๋ํ ์ด๊ธฐ ํด์ ๊ฐ๋ฅ์ฑ ๋ฉ์๋๋ ๊ทธ๋๋์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ํน์ฑ์ ์ค์๋ ์ ์๋ฅผ ๋ฐฐ์ ํ์ผ๋ฉฐ, ์ด๋ ๋ชจ๋ธ์ ์์ธก ํจ์๋ฅผ ๋ฐ๋ผ ์ฃผ์ด์ง ์ง์ ์์ ๋ชจ๋ธ ์์ธก์ ์๋์ ์ผ๋ก ๊ฐ์ฅ ๊ฐํ๋ฅธ ๋ก์ปฌ์ ๊ฐ๋ ํฝ์ ์ ์๋ ค์ค๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋๋์ธํธ๋ ํฝ์ ๊ฐ๊ณผ ๊ด๋ จํ์ฌ ๋ชจ๋ธ ์์ธก ํจ์์์ ๋ก์ปฌ ๋ณํ๋ง์ ์ค๋ช ํ๊ณ ์ ์ฒด ๋ชจ๋ธ ์์ธก ํจ์๋ฅผ ์์ ํ ์ค๋ช ํ์ง๋ ์์ต๋๋ค. ๋ชจ๋ธ์ด ๊ฐ๋ณ ํฝ์ ์ ๋ฒ์์ ์ฌ๋ฐ๋ฅธ ImageNet ํด๋์ค ์ฌ์ด์ ๊ด๊ณ๋ฅผ ์์ ํ "ํ์ต"ํจ์ ๋ฐ๋ผ ์ด ํฝ์ ์ ๊ทธ๋๋์ธํธ๊ฐ ํฌํ๋์ด ์ ์ ์์์ง๊ณ ๊ฒฐ๊ตญ 0์ด ๋๊ธฐ๋ ํฉ๋๋ค. ์๋์ ๊ฐ๋จํ ๋ชจ๋ธ ํจ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ผ์ชฝ: ํฝ์
x
์ ๋ํ ๋ชจ๋ธ์ ๊ทธ๋๋์ธํธ๋ 0.0๊ณผ 0.8 ์ฌ์ด์ ์์์ด์ง๋ง 0.8๊ณผ 1.0 ์ฌ์ด์์ 0.0์ด ๋ฉ๋๋ค. ํฝ์ x
๋ ์ค์ ํด๋์ค์์ ๋ชจ๋ธ์ ์์ ํ๋ฅ 80%๋ก ๋ง๋๋ ๋ฐ ํฐ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ํฝ์ x
์ ์ค์๋๊ฐ ์๊ฑฐ๋ ๋ถ์ฐ์์ ์ด๋ผ๋ฉด ํฉ๋นํ ๊น์?์ค๋ฅธ์ชฝ: IG์ ์ ์ฉ๋๋ ๋ ผ๋ฆฌ๋ ํฝ์
x
์ ๋ก์ปฌ ๊ทธ๋๋์ธํธ๋ฅผ ์ถ์ ํ๊ณ ์ด๊ฒ์ด ๋ชจ๋ธ์ ์ ์ฒด ์ถ๋ ฅ ํด๋์ค ํ๋ฅ ์ ์ผ๋ง๋ ๋์ด๊ฑฐ๋ ์ค์ด๋์ง์ ๋ํ ์ ์๋ก ์ค์๋๋ฅผ ๋ํ๋ด๋ ๊ฒ์ ๋๋ค. IG๋ฅผ ์ธ ๋ถ๋ถ์ผ๋ก ๋๋์ด ๊ณ์ฐํ ์ ์์ต๋๋ค.ํน์ฑ ๊ณต๊ฐ์์ 0(๊ธฐ์ค์ ๋๋ ์์์ )๊ณผ 1(์ ๋ ฅ ํฝ์ ๊ฐ) ์ฌ์ด์ ์ง์ ์ ๋ฐ๋ผ ์์ ๋จ๊ณ๋ฅผ ๋ณด๊ฐํฉ๋๋ค.
๊ฐ ๋จ๊ณ์ ๊ด๋ จํด ๋ชจ๋ธ ์์ธก ์ฌ์ด์ ๊ฐ ๋จ๊ณ์์ ๊ทธ๋๋์ธํธ๋ฅผ ๊ณ์ฐํฉ๋๋ค.
์ด๋ฌํ ๋ก์ปฌ ๊ทธ๋๋์ธํธ๋ฅผ ๋์ (๋์ ํ๊ท )ํ์ฌ ๊ธฐ์ค์ ๊ณผ ์ ๋ ฅ ์ฌ์ด์ ์ ๋ถ ๊ทผ์ฌ๊ฐ์ ๊ณ์ฐํฉ๋๋ค.
์ด๋ฌํ ๋ ผ๋ฆฌ๋ฅผ ๊ฐํํ๊ธฐ ์ํด ์๋์ "Fireboat" ์ด๋ฏธ์ง ์์ IG๋ฅผ ์ ์ฉํ์ฌ ์ด ์ธ ๋ถ๋ถ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๊ธฐ์ค์ ์๋ฆฝํ๊ธฐ
๊ธฐ์ค์ ์ ํน์ฑ ์ค์๋๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํ ์์์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ ๋ ฅ ์ด๋ฏธ์ง์ ๋๋ค. ์ง๊ด์ ์ผ๋ก, ๊ธฐ์ค์ ์ ์ค๋ช ์ ์ญํ ์ ์ ๋ ฅ ์ด๋ฏธ์ง์ ์์ ๋ "Fireboat" ์์ธก์ ๋ฏธ์น๋ ๊ฐ ํฝ์ ์ ์ํฅ๊ณผ ๋๋น์์ผ ๊ฐ ํฝ์ ์ด ์์ ๋ "Fireboat" ์์ธก์ ๋ฏธ์น๋ ์ํฅ์ ๋ํ๋ด๋ ๊ฒ์ผ๋ก ์๊ฐํ ์ ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก, ๊ธฐ์ค์ ์ ์ ํ์ ํฝ์ ํน์ฑ์ ์ค์์ฑ์ ํด์ํ๊ณ ์๊ฐํํ๋ ๋ฐ ์ค์ฌ์ ์ธ ์ญํ ์ ํฉ๋๋ค. ๊ธฐ์ค์ ์ ํ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ด ํํ ๋ฆฌ์ผ ํ๋จ์ "๋ค์ ๋จ๊ณ" ์น์ ์ ์๋ ๋ฆฌ์์ค๋ฅผ ์ฐธ์กฐํ์ธ์. ์ฌ๊ธฐ์๋ ํฝ์ ๊ฐ์ด ๋ชจ๋ 0์ธ ๊ฒ์ ์ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์คํํด ๋ณผ ์ ์๋ ๋ค๋ฅธ ์ ํ์ผ๋ก ์ ์ฒด ํฐ์ ์ด๋ฏธ์ง ๋๋ tf.random.uniform(shape=(224,224,3), minval=0.0, maxval=1.0)
๋ก ๋ง๋ค ์ ์๋ ์์์ ์ด๋ฏธ์ง๊ฐ ์์ต๋๋ค.
์์์ ์ฝ๋๋ก ์์ถ ํด์ ํ๊ธฐ
ํตํฉ ๊ทธ๋๋์ธํธ์ ์์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฌ๊ธฐ์:
= ํน์ฑ
= ์
๋ ฅ
= ๊ธฐ์ค์
= ํน์ฑ์ ๊ต๋์ํค๋ ๋ณด๊ฐ ์์
์ค์ ๋ก, ์ ์ ๋ถ์ ๊ณ์ฐํ๋ ๊ฒ์ด ์์น์ ์ผ๋ก ํญ์ ๊ฐ๋ฅํ ๊ฒ์ ์๋๋ฉฐ ๊ณ์ฐ ๋น์ฉ์ด ๋ง์ด ๋ค ์ ์์ผ๋ฏ๋ก ๋ค์๊ณผ ๊ฐ์ ์์น์ ๊ทผ์ฌ๊ฐ์ ๊ณ์ฐํฉ๋๋ค.
์ฌ๊ธฐ์:
= ํน์ฑ(๊ฐ๋ณ ํฝ์
)
= ์
๋ ฅ(์ด๋ฏธ์ง ํ
์)
= ๊ธฐ์ค์ (์ด๋ฏธ์ง ํ
์)
= ๋ฐฐ์จ ์กฐ์ ๋ ํน์ฑ ์ญ๋ ์์
= ์ ๋ถ์ ๋ฆฌ๋ง ํฉ ๊ทผ์ฌ์ ๋จ๊ณ ์
= ๊ธฐ์ค์ ๊ณผ์ ์ฐจ์ด์ ๋ํ ํญ. ์ด๊ฒ์ ์ ๋ถ๋ ๊ทธ๋๋์ธํธ์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๊ณ ์๋ณธ ์ด๋ฏธ์ง์ ๊ด์ ์์ ์ด๋ฅผ ์ ์งํ๋ ๋ฐ ํ์ํฉ๋๋ค. ๊ธฐ์ค์ ์ด๋ฏธ์ง์์ ์
๋ ฅ๊น์ง์ ๊ฒฝ๋ก๋ ํฝ์
๊ณต๊ฐ์ ์์ต๋๋ค. IG๋ฅผ ์ฌ์ฉํ๋ฉด ์ง์ ์ผ๋ก ํตํฉ(์ ํ ๋ณํ)ํ๋ฏ๋ก ์ถฉ๋ถํ ๋จ๊ณ๋ฅผ ํตํด ์ ๊ด๋ จํด ๋ณด๊ฐ๋ ์ด๋ฏธ์ง ํจ์์ ๋ํจ์์ ์ ๋ถ ํญ๊ณผ ๋๋ต ๋์ผํด์ง๋๋ค. ์ ๋ถ์ ๊ฐ ํฝ์
์ ๊ทธ๋๋์ธํธ์ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ฅธ ํฝ์
์ ๋ณํ๋ฅผ ๊ณฑํ ๊ฐ์ ํฉ์ฐํฉ๋๋ค. ๋ฅผ ๋์ฒดํ์ฌ ํ ์ด๋ฏธ์ง์์ ๋ค๋ฅธ ์ด๋ฏธ์ง๋ก์ ๊ท ์ผํ ๋จ๊ณ๋ก ์ด ์ ๋ถ์ ๊ตฌํํ๋ ๊ฒ์ด ๋ ๊ฐ๋จํฉ๋๋ค. ๋ฐ๋ผ์ ๋ณ์๋ฅผ ๋ณ๊ฒฝํ๋ฉด ๊ฐ ์ฃผ์ด์ง๋๋ค. ํญ์ ์์์ด๋ฉฐ ์ ๋ถ์์ ์ ์ธ๋ฉ๋๋ค.
์ด๋ฏธ์ง ๋ณด๊ฐํ๊ธฐ
๋จผ์ ๊ธฐ์ค์ ๊ณผ ์๋ณธ ์ด๋ฏธ์ง ์ฌ์ด์ ์ ํ ๋ณด๊ฐ์ ์์ฑํฉ๋๋ค. ๋ณด๊ฐ๋ ์ด๋ฏธ์ง๋ ํน์ฑ ๊ณต๊ฐ์์ ๊ธฐ์ค์ ๊ณผ ์ ๋ ฅ ์ฌ์ด์ ์์ ๋จ๊ณ๋ก ์๊ฐํ ์ ์์ผ๋ฉฐ ์๋ ์์์์ ๋ก ํ์๋ฉ๋๋ค.
์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ ์ ๊ธฐ์ค์ ์ด๋ฏธ์ง์ ์์ "Fireboat" ์ด๋ฏธ์ง ์ฌ์ด์ ์ํ ๊ฐ๊ฒฉ์ผ๋ก ์ ํ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ๋ณด๊ฐ๋ ์ด๋ฏธ์ง๋ฅผ ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค.
๋ณด๊ฐ๋ ์ด๋ฏธ์ง๋ฅผ ์๊ฐํํด ๋ณด๊ฒ ์ต๋๋ค. ์ฐธ๊ณ : ๋ณด๊ฐ๋ ๊ฐ ์ด๋ฏธ์ง์ ๊ฐ๋๋ฅผ ์ง์์ ์ผ๋ก ์ฆ๊ฐ์ํค๋ ๊ฒ์ผ๋ก ์์๋ฅผ ์๊ฐํ ์๋ ์์ต๋๋ค.
๊ทธ๋๋์ธํธ ๊ณ์ฐํ๊ธฐ
์ด์ ํน์ฑ ๋ณ๊ฒฝ๊ณผ ๋ชจ๋ธ ์์ธก ๋ณ๊ฒฝ ์ฌ์ด์ ๊ด๊ณ๋ฅผ ์ธก์ ํ๊ธฐ ์ํด ๊ทธ๋๋์ธํธ๋ฅผ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ด๋ฏธ์ง์ ๊ฒฝ์ฐ, ๊ทธ๋๋์ธํธ๋ ๋ชจ๋ธ์ ์์ธก ํด๋์ค ํ๋ฅ ์ ๋ฏธ์น๋ ์ํฅ์ด ๊ฐ์ฅ ํฐ ํฝ์ ์ด ๋ฌด์์ธ์ง๋ฅผ ์๋ ค์ค๋๋ค.
์ฌ๊ธฐ์:
= ๋ชจ๋ธ์ ์์ธก ํจ์
= ๊ฐ ํน์ฑ ์ ์๋์ ์ธ ๋ชจ๋ธ F์ ์์ธก ํจ์์ ๋ํ ๊ทธ๋๋์ธํธ(๋ถ๋ถ ๋ํจ์ ์ ๋ฒกํฐ)
์ฉ์ดํ ๊ทธ๋๋์ธํธ ๊ณ์ฐ์ ์ํด TensorFlow์์ tf.GradientTape
๊ฐ ์ด์ฉ๋ฉ๋๋ค.
์ฌ๋ฐ๋ฅธ ์ถ๋ ฅ๊ณผ ๊ด๋ จํ์ฌ ๋ณด๊ฐ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ๊ฐ ์ด๋ฏธ์ง์ ๊ทธ๋๋์ธํธ๋ฅผ ๊ณ์ฐํด ๋ณด๊ฒ ์ต๋๋ค. ๋ชจ๋ธ์ ๊ฐ ํด๋์ค์ ์์ธก ํ๋ฅ ๋ก ๋ณํํ๋ ๋ก์ง๊ณผ ํจ๊ป (1, 1001)
ํ์์ Tensor
๋ฅผ ๋ฐํํ๋ค๋ ์ ์ ์๊ธฐํ์ธ์. ์ฌ๋ฐ๋ฅธ ImageNet ๋์ ํด๋์ค ์ธ๋ฑ์ค๋ฅผ ์ด๋ฏธ์ง์ compute_gradients
ํจ์๋ก ์ ๋ฌํด์ผ ํฉ๋๋ค.
(n_interpolated_images, img_height, img_width, RGB)
์ ์ถ๋ ฅ ํ์์ ์ฃผ๋ชฉํ์ธ์. ์ด๋ ๋ณด๊ฐ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ๊ฐ ์ด๋ฏธ์ง์ ๋ชจ๋ ํฝ์
์ ๋ํ ๊ทธ๋๋์ธํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ๊ทธ๋๋์ธํธ๋ ํน์ฑ ๊ณต๊ฐ์ ๊ฐ ์์ ๋จ๊ณ์ ๋ํด ๋ชจ๋ธ ์์ธก์ ๋ณํ๋ฅผ ์ธก์ ํ๋ ๊ฒ์ผ๋ก ์๊ฐํ ์ ์์ต๋๋ค.
๊ทธ๋๋์ธํธ ํฌํ ์๊ฐํํ๊ธฐ
์์์ ๊ณ์ฐํ ๊ทธ๋๋์ธํธ๋ ๋ชจ๋ธ์ ์์ธก๋ "Fireboat" ํ๋ฅ ์ ๋ํ ๋ก์ปฌ ๋ณ๊ฒฝํ๋ฅผ ์ค๋ช ํ๋ฉฐ ํฌํ๋ ์ ์์ต๋๋ค.
์ด๋ฌํ ๊ฐ๋ ์ ์๋ 2๊ฐ์ ํ๋กฏ์์ ์์์ ๊ณ์ฐํ ๊ทธ๋๋์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ์๊ฐํ๋ฉ๋๋ค.
์ผ์ชฝ: ์ด ํ๋กฏ์ "Fireboat" ํด๋์ค์ ๋ํ ๋ชจ๋ธ์ ์ ๋ขฐ๋๊ฐ ์ ์ฒด ์ํ์ ๊ฑธ์ณ ์ด๋ป๊ฒ ๋ฌ๋ผ์ง๋์ง ๋ณด์ฌ์ค๋๋ค. ์ฝ 40%์ ์ต์ข "Fireboat" ์์ ํ๋ฅ ์์ ์์ ํ๋๊ธฐ ์ ์ ๊ทธ๋๋์ธํธ ๋๋ ๋ผ์ธ์ ๊ธฐ์ธ๊ธฐ๊ฐ 0.6๊ณผ 1.0 ์ฌ์ด์์ ํฌ๊ฒ ํํํด์ง๊ฑฐ๋ ํฌํ๋๋ ๊ฒ์ ์ฃผ๋ชฉํ์ธ์.
์ค๋ฅธ์ชฝ: ์ค๋ฅธ์ชฝ ํ๋กฏ์ ์ ์ฒด ์ํ์ ๊ฑธ์ณ ํ๊ท ๊ทธ๋๋์ธํธ ํฌ๊ธฐ๋ฅผ ๋ ์ง์ ์ ์ผ๋ก ๋ณด์ฌ์ค๋๋ค. ๊ฐ์ด 0์ผ๋ก ๊ธ๊ฒฉํ๊ฒ ์ ๊ทผํ๊ณ ์ฌ์ง์ด ์ ๊น ๋์ 0 ๋ฏธ๋ง์ผ๋ก ๋จ์ด์ง๋ ๋ชจ์ต์ ์ฃผ๋ชฉํ์ธ์. ์ฌ์ค, ๋ชจ๋ธ์ ๋ฎ์ ์ํ ๊ฐ์ ๊ทธ๋๋์ธํธ์์ ๊ฐ์ฅ ๋ง์ด "ํ์ต"ํฉ๋๋ค. ์ด๊ฒ์ ์ง๊ด์ ์ผ๋ก ๋ณด๋ฉด, ๋ชจ๋ธ์ด ์ ํํ ์์ธก์ ์ํด ํฝ์ , ์๋ฅผ ๋ค์ด ๋ฌผ๋ํฌ๋ฅผ ํ์ตํ๊ณ ์ด๋ฌํ ํฝ์ ๊ทธ๋๋์ธํธ๋ฅผ 0์ผ๋ก ๋ณด๋ด์ง๋ง ์ฌ์ ํ ์๋นํ ๋ถํ์คํ๊ณ ์ํ ๊ฐ์ด ์๋ ์ ๋ ฅ ์ด๋ฏธ์ง์ ์ ๊ทผํจ์ ๋ฐ๋ผ ๋ค๋ฆฌ ๋๋ ๋ฌผ ์ ํธ ํฝ์ ์ ์ค์ ์ ๋๋ ๊ฒ์ผ๋ก ์๊ฐํ ์ ์์ต๋๋ค.
์ด ์ค์ํ ๋ฌผ๋ํฌ ํฝ์ ์ด "Fireboat" ์์ธก์ ์ค์ํ๊ฒ ๋ฐ์๋๋๋ก ํ๊ธฐ ์ํด ์๋์์ ๊ณ์ํด์ ๊ฐ ํฝ์ ์ด "Fireboat" ์์ธก ํ๋ฅ ์ ๋ฏธ์น๋ ์ํฅ์ ์ ํํ๊ฒ ๊ทผ์ฌ์ํค๊ธฐ ์ํด ์ด๋ฌํ ๊ทธ๋๋์ธํธ๋ฅผ ๋์ ํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋ณด๊ฒ ์ต๋๋ค.
๊ทธ๋๋์ธํธ ๋์ ํ๊ธฐ(์ ๋ถ ๊ทผ์ฌ๊ฐ ๊ณ์ฐ)
IG์ ๋ํ ์ ๋ถ์ ์์น์ ๊ทผ์ฌ๊ฐ์ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ผ๋ฉฐ, ๋ค์ํ ๊ธฐ๋ฅ์ ๊ฑธ์ณ ์ ํ๋์ ์๋ ด์์ ๋์ค ๊ด๊ณ๊ฐ ์กด์ฌํฉ๋๋ค. ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ฉ์๋ ํด๋์ค๋ ๋ฆฌ๋ง ํฉ(Riemann sums)์ ๋๋ค. ์ฌ๊ธฐ์๋ ์ฌ๋ค๋ฆฌ๊ผด ๊ท์น์ ์ฌ์ฉํฉ๋๋ค(์ด ํํ ๋ฆฌ์ผ ๋ง์ง๋ง์ ๋ค๋ฅธ ๊ทผ์ฌ ๊ณ์ฐ์ ์ดํด๋ณด๊ธฐ ์ํ ์ถ๊ฐ ์ฝ๋๊ฐ ๋์ ์์).
์์์์ m
๊ทธ๋๋์ธํธ ์ ์ฒด์ ๊ฑธ์ณ ํฉ์ฐํ๊ณ m
๋จ๊ณ๋ฅผ ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. m
๋ณด๊ฐ๋ ์์ธก ๋ฐ ์
๋ ฅ ์ด๋ฏธ์ง์ ๋ก์ปฌ ๊ทธ๋๋์ธํธ ํ๊ท ์ผ๋ก ํํธ 3์ ๋ํด ๋ ๊ฐ์ง ์ฐ์ฐ์ ํจ๊ป ๊ตฌํํ ์ ์์ต๋๋ค.
integral_approximation
ํจ์๋ ๊ธฐ์ค์ ๊ณผ ์๋ณธ ์ด๋ฏธ์ง ์ฌ์ด์ ๋ณด๊ฐ๋ ์ด๋ฏธ์ง์ ๊ด๋ จํ์ฌ ๋์ ํด๋์ค์ ์์ธก ํ๋ฅ ์ ๋ํ ๊ทธ๋๋์ธํธ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
๋ณด๊ฐ๋ m
์ด๋ฏธ์ง์ ๊ทธ๋๋์ธํธ ์ ์ฒด์์ ํ๊ท ์ ๊ตฌํ๋ฉด ์๋ "Giant Panda" ์ด๋ฏธ์ง์ ๊ฐ์ ํ์์ ํตํฉ ๊ทธ๋๋์ธํธ ํ
์๊ฐ ๋ฐํ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
๋ชจ๋ ํจ๊ป ์คํํ๊ธฐ
์ด์ ์์ ์์๋ณธ 3๊ฐ์ ์ผ๋ฐ ํํธ๋ฅผ IntegratedGradients
ํจ์๋ก ๊ฒฐํฉํ๊ณ @ tf.function ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ ์ฑ๋ฅ ํธ์ถ ๊ฐ๋ฅ Tensorflow ๊ทธ๋ํ๋ก ์ปดํ์ผํฉ๋๋ค. ์ด๋ฅผ ์ํด ์๋ 5 ๋จ๊ณ๋ฅผ ๊ฑฐ์นฉ๋๋ค.
์ํ ์์ฑ
๋ณด๊ฐ๋ ์ด๋ฏธ์ง = ์์ฑ
์ ๋ ฅ ํน์ฑ = ์ ๊ด๋ จํ์ฌ ๋ชจ๋ธ ์ถ๋ ฅ ์์ธก ์ฌ์ด์ ๊ทธ๋๋์ธํธ ๊ณ์ฐ
ํ๊ท ๊ทธ๋๋์ธํธ๋ฅผ ํตํ ์ ๋ถ ๊ทผ์ฌ =
์๋ณธ ์ด๋ฏธ์ง = = ์ ๊ด๋ จํด ์ ๋ถ๋ ๊ทธ๋๋์ธํธ์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํฉ๋๋ค. ์ด ๋จ๊ณ๊ฐ ํ์ํ ์ด์ ๋ ์ฌ๋ฌ ๋ณด๊ฐ๋ ์ด๋ฏธ์ง์ ๊ฑธ์ณ ๋์ ๋ ์์ฑ ๊ฐ์ ๋จ์๊ฐ ๊ฐ๋๋ก ํ๊ณ ์๋ณธ ์ด๋ฏธ์ง์ ํฝ์ ์ค์๋๋ฅผ ์ถฉ์คํ๊ฒ ๋ํ๋ด๊ธฐ ์ํด์์ ๋๋ค.
๋ค์ ํ ๋ฒ, IG ํน์ฑ ์์ฑ์ด ์ ๋ ฅ "Fireboat" ์ด๋ฏธ์ง์ ๊ฐ์ ํ์์ ๊ฐ๋๋ค๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์ด ๋ฌธ์์์๋ ์์ ์ ๋ฐ๋ผ 20์์ 300 ์ฌ์ด์ ๋จ๊ณ ์๋ฅผ ์ ์ํฉ๋๋ค(์ค์ ๋ก ์ ๋ถ์ ์ ํํ๊ฒ ๊ทผ์ฌ์ํค๊ธฐ ์ํด ์์ฒ ๋จ๊ณ๊น์ง๋ ์ด์ฉํจ). ์ด ํํ ๋ฆฌ์ผ ๋ง์ง๋ง์ "๋ค์ ๋จ๊ณ" ๋ฆฌ์์ค์์ ์ ์ ํ ๋จ๊ณ ์๋ฅผ ํ์ธํ๊ธฐ ์ํ ์ถ๊ฐ ์ฝ๋๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
์์ฑ ์๊ฐํํ๊ธฐ
์ด์ ์์ฑ์ ์๊ฐํํ๊ณ ์๋ณธ ์ด๋ฏธ์ง์ ์ค๋ฒ๋ ์ดํ ์ค๋น๊ฐ ๋์์ต๋๋ค. ์๋ ์ฝ๋๋ ์์ ์ฑ๋์์ ์ ๋ถ๋ ๊ทธ๋๋์ธํธ์ ์ ๋๊ฐ์ ํฉ์ฐํ์ฌ ์์ฑ ๋ง์คํฌ๋ฅผ ์์ฑํฉ๋๋ค. ์ด ํ๋กฏ ๋ฉ์๋๋ ๋ชจ๋ธ ์์ธก์ ๋ฏธ์น๋ ํฝ์ ์ ์๋์ ์ํฅ์ ํฌ์ฐฉํฉ๋๋ค.
"Fireboat" ์ด๋ฏธ์ง์ ์์ฑ์ ์ดํด๋ณด๋ฉด ๋ชจ๋ธ์ด ๋ฌผ ๋ํฌ์ ์ฃผ๋ฅ์ด๊ฐ ์ ํํ ์์ธก์ ๊ธฐ์ฌํ๋ ๊ฒ์ผ๋ก ์๋ณํ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
"๊ฑฐ๋ํ ํฌ๋" ์ด๋ฏธ์ง์์ ์์ฑ์ ํฌ๋ ์ผ๊ตด์ ์ง๊ฐ, ์ฝ ๋ฐ ํธ์ ๊ฐ์กฐํฉ๋๋ค.
์ฉ๋ ๋ฐ ์ ํ
์ฌ์ฉ ์ฌ๋ก
๋ชจ๋ธ์ ๋ฐฐํฌํ๊ธฐ ์ ์ ํตํฉ ๊ทธ๋๋์ธํธ์ ๊ฐ์ ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ฉด ์๋ ๋ฐฉ์ ๋ฐ ๊ทธ ์ด์ ์ ๋ํ ์ง๊ด์ ์ฝ๊ฒ ๊ฐ๋ฐํ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ฒ์ผ๋ก ๊ฐ์กฐ๋ ํน์ฑ์ด ์ง๊ด๊ณผ ์ผ์นํฉ๋๊น? ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์ด๋ ๋ชจ๋ธ ๋๋ ๋ฐ์ดํฐ์ธํธ์ ๋ฒ๊ทธ๊ฐ ์์์ ๋ํ๋ด๊ฑฐ๋ ๊ณผ์ ํฉ์์ ๋ํ๋ผ ์ ์์ต๋๋ค.
ํ๊ณ
ํตํฉ ๊ทธ๋๋์ธํธ๋ ๊ฐ๋ณ ์์ ์์ ํน์ฑ์ ์ค์๋๋ฅผ ์ ๊ณตํ์ง๋ง ์ ์ฒด ๋ฐ์ดํฐ ์ธํธ์ ๊ฑธ์ณ ์ ์ฒด ํน์ฑ์ ์ค์๋๋ฅผ ์ ๊ณตํ์ง๋ ์์ต๋๋ค.
์ ๋ถ ๊ทธ๋๋์ธํธ๋ ๊ฐ๋ณ ํน์ฑ์ ์ค์๋๋ฅผ ์ ๊ณตํ์ง๋ง ํน์ฑ ์ํธ ์์ฉ ๋ฐ ์กฐํฉ์ ๋ํด์๋ ์ค๋ช ํ์ง ์์ต๋๋ค.
๋ค์ ๋จ๊ณ
์ด ํํ ๋ฆฌ์ผ์์๋ ์ ๋ถ ๊ทธ๋๋์ธํธ์ ๊ธฐ๋ณธ ๊ตฌํ์ ์ ์ํ์ต๋๋ค. ๋ค์ ๋จ๊ณ์์๋ ์ด ๋ ธํธ๋ถ์ ์ฌ์ฉํ์ฌ ๋ค์ํ ๋ชจ๋ธ๊ณผ ์ด๋ฏธ์ง๋ก ์ด ๊ธฐ๋ฒ์ ์ํํด ๋ณผ ์ ์์ต๋๋ค.
๊ด์ฌ์ด ์๋ ๋ ์๋ฅผ ์ํด ์ด ํํ ๋ฆฌ์ผ์ ์์ธ ๋ฒ์ (์ฌ๋ฌ ๊ธฐ์ค์ ์ ๋ํ ์ฝ๋์ ํจ๊ป ์ ๋ถ ๊ทผ์ฌ์น ๊ณ์ฐ ๋ฐ ์ถฉ๋ถํ ์์ ๋จ๊ณ๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํ ์ฝ๋ ํฌํจ)์ ์ฌ๊ธฐ์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.
์ดํด๋๋ฅผ ๋์ด๋ ค๋ฉด ์ด์ TensorFlow ๋ฒ์ ์์์ ๊ตฌํ์ ํฌํจํ Axiomatic Attribution for Deep Networks ๋ฐ Github ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ํ์ธํ์ธ์. distill.pub์์ ํน์ฑ ์์ฑ ๋ฐ ์ฌ๋ฌ ๊ธฐ์ค์ ์ ์ํฅ์ ๋ํด์๋ ์์๋ณผ ์ ์์ต๋๋ค.
ํน์ฑ ์ค์๋, ๋ชจ๋ธ ์ค๋ฅ ๋ถ์ ๋ฐ ๋ฐ์ดํฐ ์ ๋ฆผ ๋ชจ๋ํฐ๋ง์ ์ํ ์ค๋ฌด ๋จธ์ ๋ฌ๋ ์ํฌํ๋ก์ IG๋ฅผ ํตํฉํ๊ณ ์ถ์ต๋๊น? IG ์์ฑ์ ์ง์ํ๋ Google Cloud์ Explainable AI ์ ํ์ ํ์ธํด ๋ณด์ธ์. Google AI PAIR ๋ฆฌ์์น ๊ทธ๋ฃน์ IG ํน์ฑ ์์ฑ ์๊ฐํ๋ฅผ ํฌํจํ์ฌ ๋ชจ๋ธ ๋๋ฒ๊น ์ ์ฌ์ฉํ ์ ์๋ What-if ๋๊ตฌ๋ฅผ ์คํ์์ค๋ก ์ ๊ณตํฉ๋๋ค.