๐ ์๋
ํ์ธ์! ์ค๋์ ์ต๊ทผ์ ํฅ๋ฏธ์๊ฒ ์ฝ์ ๋
ผ๋ฌธ์ ๊ฐ๋ณ๊ฒ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค.
๐งจ ๊ณต๋ถ์ฉ์ผ๋ก ๋จ๊ธฐ๋ ๊ฒ์๋ฌผ๋ก, ์ ๋ฆฌ์ ๋ถ์กฑํ ๋ถ๋ถ์ด ์์ ์ ์์ต๋๋ค :) ์ํด ๋ถํ๋๋ ค์!
๐ ์ผ๊ตด ์ธ์ task ๊ด๋ จ ์๋ฃ๋ฅผ ์์นญํ๋ค ๋ง๋๊ฒ ๋ ๋ ผ๋ฌธ, ArcFace ์ ๋๋ค! ๊ทธ๋ผ, Let's Diggin!
๊ธฐ์กด ๋
ผ๋ฌธ์์๋ ์ผ๊ตด ์ธ์ ๊ฐ์ ํ์คํฌ๋ฅผ ์ํํจ์ ์์ด์, ์ผ๋ฐ์ ์ธ ์ด๋ฏธ์ง ๋ถ๋ฅ์ ๋์ผํ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ต๋๋ค.
์ผ๋ฐ์ ์ธ ์ด๋ฏธ์ง ๋ถ๋ฅ์ ๊ฐ๋ตํ ๋ชจ๋ธ ํ์ต ์์๋ฅผ ์ด์ผ๊ธฐํด๋ณด๋ฉด,
1. ๋ณดํต DCNNs๋ผ๊ณ ๋ถ๋ฆฌ๋ Conv layer๋ค์ ๊น๊ฒ ์์ ๋ฐฉ์์ผ๋ก Neural Net Architecture๋ฅผ ๊ตฌ์ฑํ๊ณ ,
2. ์ด๋ฅผ Pooling ํ ํ MLP Layer๋ฅผ ๊ฑฐ์ณ logit์ ๋ฝ์๋
๋๋ค.
3. logit์ softmax ํ์ฑํ ํจ์๋ฅผ ๊ฑฐ์ณ Probability๊ฐ ๋๊ณ ,
4. ๋ณดํต ๋ถ๋ฅ ๋ฌธ์ ๋ Cross Entropy ํจ์๋ฅผ loss๋ก ํ์ฌ Neural Net ํ์ต์ด ์งํ์ด ๋ฉ๋๋ค.
๐ ๊ทธ๋ฐ๋ฐ! ์ผ๊ตด ์ธ์ ํ์คํฌ๋ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ์๋ ์กฐ๊ธ ๋ค๋ฆ
๋๋ค.
๐คฃ ๋ฐ์ดํฐ๊ฐ ๋ผ๋ฒจ๋น ๋ช ์ฅ ์๊ณ (์ฌ๋ ์ผ๊ตด์ผํ
๋๊น์), ๋ ์ด๋ธ๋ ๋ฌด์ง๋ง์งํ๊ฒ ๋ง์ต๋๋ค. (ํ์ต์ ์ฌ์ฉํ ์ฌ๋ ๋ช
์)
๐ค ์ด์ ๋ํด์, ์ ์๋ "Additive Angular Margin Loss" ๋ผ๋ ๊ฐ๋
์ ์ ์ํฉ๋๋ค!
๐ logit์ "๊ฐ๋ ๊ฐ๋
์ ํ์ฉํ์ฌ ๋ถ๋ฅํ๊ฒ ๋๋" ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝํ๋ฉฐ, ์ด๋ ๊ธฐ์กด์ ๋ฐฉ์๋ณด๋ค ๊ฐ class๊ฐ boundary ํ์ฑ์ ๋ชจ๋ธ์ด ๋ ์ ํ์ตํ๊ฒ ๋์๋ค๊ณ ์ด์ผ๊ธฐํฉ๋๋ค.
์ค๋ ์๊ฐํ๋ ๋ ผ๋ฌธ์์ ์ธ์ฉํ, "SphereFace" ๋ผ๋ ์ ํ ์ฐ๊ตฌ๊ฐ ์์ต๋๋ค.
ํด๋น ๋
ผ๋ฌธ์์ ์ฃผ์ฅํ๋ ๋ด์ฉ์ธ,
"Neural Net์ ๋ง์ง๋ง fully connected layer์ Weight Matrix๋, ๊ฐ class์ ์ค์ฌ ์งํ๋ก ํํ๋ ์ ์๋ค." ๋ผ๋ ๋ด์ฉ์ ์์งํ๊ณ ๊ฐ์๋ฉด, ์ถํ ์ดํด๊ฐ ํจ์ฌ ์ฌ์ธ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค :)
์กฐ๊ธ ๋ ์ค๋ช
ํ์๋ฉด,
์ ๊ทธ๋ฆผ์ "Normalized Weight"์ row๋ค์ด ๊ฐ class์ ์ค์ฌ์ ๋ํ๋ด๋ vector๋ก ๊ฐ์ฃผํ๋ค๋ ๋์์ค๋ก ์ดํดํ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค!
๐ ArcFace์ ์ฅ์ ๋ค์ ์ค๋ช
ํ๊ณ ์์ต๋๋ค.
๐ ๊ฒฐ๊ตญ์ ์ ์์ Margin-Loss๊ฐ ์ข๊ณ , ๊ทธ๊ฑธ ์ฌ์ฉํ๊ฒ ArcFace! ๋ผ๋ ์ค๋ช
์ด ์ฃผ ๋ด์ฉ์
๋๋ค.
angular margin penalty๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด, ๋ ์ข์ ํจ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋ค๊ณ 18, 19 ๋ ผ๋ฌธ์ ๋์์๋ค๊ณ ํ๋ค์...๐
18๋ฒ : https://arxiv.org/pdf/1704.08063.pdf (SphereFace)
19๋ฒ : https://arxiv.org/pdf/1612.02295.pdf
๐ ์ด์จ๋ ๋ด์ ์ ๊ณ์ฐํจ์ ์์ด ์ถ๊ฐ๋ก ๊ฐ๋๋ฅผ ๋ ๋ฒ๋ฆฐ ์ฑ๋ก ํ์ต์ ์งํํจ์ผ๋ก์จ
๊ฐ๋๊ฐ ๊ฐ๊น์์ง ๋์ ๋ ๊ฐ๊น์์ง๊ฒ, ๊ฐ๋๊ฐ ๋ฉ์ด์ง ๋์ ๋ ๋ฉ์ด์ง๊ฒ ํ๋ ค๋ ์ปจ์
์ผ๋ก ์ดํด๋ฉ๋๋ค.
๊ธฐ์กด softmax๋ฅผ ํ์ฉํ loss function์ ์๋์ ๊ฐ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ , ์ผ๊ตด ์ธ์ task์๋ ๋๋ฆฌ ์ฐ์ด๊ณ ์์์ต๋๋ค.
๊ทธ๋ฌ๋, ์ ์๋ ์๋์ ๊ฐ์ด ์ค๋ช ํฉ๋๋ค.
However,
the softmax loss function does not explicitly optimise the feature embedding to enforce higher similarity for intra-class samples and diversity for inter-class samples, which results in a performance gap for deep face recognition under large intra-class appearance variations (e.g. pose variations and age gaps)
๐ ์ฆ, softmax function์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๊ฐ์ ํด๋์ค ๋ด์์(for intra-class)๋ ๋น์ทํ๊ฒ Embedding์ด ํ์ฑ๋๊ณ , ๋ค๋ฅธ ํด๋์ค ๋ผ๋ฆฌ(for inter-class)๋ ๋ค๋ฅด๊ฒ Embedding์ด ํ์ฑ๋๋ค๋ ๋ง์
๋๋ค.
๐ค ๊ทธ๋ฌ๋, ์ผ๊ตด ์ธ์ task ๊ฐ์ ๊ฒฝ์ฐ ์ค์ ์ฌ๋์ ๋ค๋ฅด์ง๋ง, "์ฌ๋" ๋ค๋ก๋ง ๊ตฌ์ฑ๋ ๋ฐ์ดํฐ์
์ด๊ธฐ ๋๋ฌธ์ intra-class์ ๊ฐ์ ์ฑ์ง์ ๋๊ฒ ๋ฉ๋๋ค.
๐ข ์์ ์ด์ ๋๋ฌธ์ ์ฑ๋ฅ ์ ํ(performance gap)์ด ๋ฐ์ํ ์ ์๋ค๊ณ ์ด์ผ๊ธฐํฉ๋๋ค.
์์ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ธฐ ์ํด bias๋ ์์ ๊ณ , ๋ฒกํฐ๊ฐ ๊ฐ๋์ ์ง์คํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ต๋๋ค.
์ฌ๊ธฐ์ ๋ Weight์ธ ์ feature์ธ ์ ๊ฐ๋์
๋๋ค.
Abstract์์ ๋ง์๋๋ ธ๋ Weight๋ฅผ ๊ฐ class์ centre๊ฐ์ผ๋ก ์๊ฐํ๊ธฐ ๋๋ฌธ์, ์ผ์ข
์ ๊ธฐ์ค์ด ๋๋ ๊ฒ์ด์ง์.
์ฆ, ํด๋น ๊ธฐ์ค๊ณผ ๊ฐ์ class๋ผ๋ฉด ๊ฐ๋๊ฐ ์์์ง๊ฒ, ํด๋น ๊ธฐ์ค๊ณผ ๋ค๋ฅธ class ๋ผ๋ฉด ๊ฐ๋๊ฐ ๋ฉ์ด์ง๊ฒ ํ๋ ค๋ ๋ถ๋ถ์
๋๋ค.
๐ ์ฌ๊ธฐ์์ ๊ฐ์ norm์ ์ํด 1๋ก ์ ํ๋์ด ์๊ณ , ๋ํ norm์ผ๋ก ์ ํ๋์ด ์์ผ๋ฉฐ scale factor ๋ก re-scale ๋ฉ๋๋ค.
๐ ์ฆ, ๋ชจ๋ธ ํ์ต์๋ ์ ๋ง "๊ฐ๋๋ก" ๋ถ๋ฅ๊ฐ ๋๋๋ก ํ์ต์ด ์งํ๋๋ค๋ ๊ฒ์ด์ง์.
๐ ์์ ๊ฐ๋ ์ ์ ์ฉํ์ฌ ArcFace loss๋ฅผ ํ์ฉํ ํ์ต ์์๋ฅผ ๋์ดํ๋ฉด,
๊ทธ๋ฆฌํ์ฌ ์๋์ ๊ฐ์ Loss Function์ด ์ ๋ฆฌ๋ฉ๋๋ค!
๐ ๊ทธ๋ฆฌ๊ณ , ๋
ผ๋ฌธ์์๋ ์ผ๋ฐ softmax๋ณด๋ค ArcFace๋ฅผ ์ฌ์ฉํ์ ๋, ๋น์ทํ class๋ผ๋ฆฌ์ ๋ถ๋ช
ํ gap์ ๋ช
๋ฐฑํ ๋ณด์ฌ์ค๋ค๊ณ ์ด์ผ๊ธฐํฉ๋๋ค.
์ด๋ก์, ์ด๋์ ๋ ArcFace์ ๊ธฐ๋ณธ ๋ด์ฉ์ ์ ๋ฆฌ๊ฐ ๋ ๊ฒ ๊ฐ์ต๋๋ค. ํด์ฐ! ๐
์ค๋ ์์ฑํ ArcFace๋ kaggle์ ๋ค์ ๊ฑฐ๋ฆฌ๋ค๊ฐ ๋ง์ฃผ์น๊ฒ ๋ ์๊ณ ๋ฆฌ์ฆ์ธ๋ฐ, ์ ๋ง ์ ๋ช ํ๊ณ ์ด๋ฏธ ๋ง์ด ์ฐ๊ณ ๊ณ์ จ๋ค์ :)
Happy Whale Competiton์ ๋ณด๋ค๊ฐ ๊ณ ์๋ถ์ ๋ ธํธ๋ถ์์ ๋ฐ๊ฒฌํ๊ฒ ๋์๋ต๋๋ค๐
๊ทธ๋ฐ๋ฐ ์ค๋ ๊ธฐ์ค์ผ๋ก ์ต์ข
์ ์ถ๊น์ง 12์ผ ๋จ์๋๋ฐ ์ด๊ฑฐ ๊ฐ๋ฅํ๊ฑธ๊น์...? ๐คฃ๐คฃ๐คฃ๐คฃ
๋งํ ์คํผํธ ๋ด์ด์ ์ ์ถ์ ๋ชฉํ๋ก ํ๋๊ฒ์ผ๋ก ํด๋ด์ผ๊ฒ ์ต๋๋ค.
๋ค์์๋, ๊ฐ๋จํ ๊ตฌํ์ฒด๋ฅผ ์ฌ์ฉํ ์ฝ๋๋ฅผ ๊ณต์ ํ๋ ๊ฒ๋ ๊ด์ฐฎ์ ๊ฒ ๊ฐ์ต๋๋ค. ๐
๊ทธ๋ผ, ์ข์ ํ๋ฃจ ๋์ธ์!