๐Hierarchical classification?
Convolutional Neural Network(CNN)์ image classifiers์์ ์ฐ์ํ ์ฑ๋ฅ์ ๋ณด์ธ๋ค.
ํ์ง๋ง ์ผ๋ฐ์ ์ธ CNN์ ์์ธกํ๋ ค๋ class๋ค์ด equallyํ๊ณ exclusiveํ๋ค๋ ๊ฐ์ ์๋์์, ๋ง์ class์ค ํ๋๋ผ๊ณ ์์ธก์ ๋ด๋ฆฌ๋ ๋ชจ๋ธ์ด๋ค.
ํ์ง๋ง ๋ณดํต์ image classifier์ ๊ณ์ธต์ ์ธ(hierarchical)ํ ๊ด๋ จ์ ๊ฐ์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
์๋ฅผ ๋ค์ด, ๊ณ ์์ด์ ๊ฐ์์ง๋ฅผ ๊ตฌ๋ถํ๋ ๊ฒ๊ณผ ๊ฐ์์ง์ ๋นํ๊ธฐ๋ฅผ ๊ตฌ๋ถํ๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด์.
๊ณ ์์ด์ ๊ฐ์์ง๋ ๋๋ฌผ์ด๋ผ๋ ํ๋์ ๋ฒ์ฃผ์ ๋ฌถ์ด์ง๋ง, ๊ฐ์์ง์ ๋นํ๊ธฐ๋...? ์์ ๋ค๋ฅด๋ค.
๊ทธ๋ผ image๋ค์ ๊ณ์ธต์ ์ธ ๊ด๊ณ๋ฅผ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉ์ํค๋ฉด ์ด๋จ๊น?
์ด๋ฌํ ์์ด๋์ด์์ ๋์จ ์๊ณ ๋ฆฌ์ฆ์ด ๋ฐ๋ก B-CNN์ด๋ค.
<์ ๋ ผ๋ฌธ ๋งํฌ!>
https://arxiv.org/abs/1709.09890
B-CNN: Branch Convolutional Neural Network for Hierarchical Classification
Convolutional Neural Network (CNN) image classifiers are traditionally designed to have sequential convolutional layers with a single output layer. This is based on the assumption that all target classes should be treated equally and exclusively. However,
arxiv.org
<๋ ผ๋ฌธ์ ์ฐ์ธ ์๊ณ ๋ฆฌ์ฆ ์ฝ๋>
https://github.com/zhuxinqimac/B-CNN
GitHub - zhuxinqimac/B-CNN: Sample code of B-CNN paper (https://arxiv.org/abs/1709.09890) written in Python3+.
Sample code of B-CNN paper (https://arxiv.org/abs/1709.09890) written in Python3+. - GitHub - zhuxinqimac/B-CNN: Sample code of B-CNN paper (https://arxiv.org/abs/1709.09890) written in Python3+.
github.com
์ด ์๊ณ ๋ฆฌ์ฆ์ ๋ฉ์ธ ์์ด๋์ด๋ 2๊ฐ์ง ์ด๋ค.
์ฐ์ B-CNN(Branch Convolutional Neural Network)์ด๋ผ๋ ์๊ณ ๋ฆฌ์ฆ๊ณผ, BT-strategy(Branch Traning strategy)๋ผ๋ ์ ๋ต์ ํ์ต์ ์ ์ฉ์ํจ ๊ฒ!
ํ๋์ฉ ์์๋ณด์ฃ ... !

๐ซ Branch Convolutional Neural Network(B-NN)
์ฐ์ B-CNN์ ํ์ต์ํค๊ธฐ ์ํด์๋ hierarchical label์ ์๊ณ ์์ด์ผ ํ๋ค.
์๋ฅผ ๋ค์ด ์ฐ๋ฆฌ๋ hierarchcal level์ 3์ด๋ผ๊ณ ๋๋ค๊ณ ๊ฐ์ ํด๋ณด์.
๊ฐ๋ผ๊ณ ํ๋ฉด label์ [์๋ฌผ, ์ ์๋๋ฌผ, ๊ฐ] ์ด๋ฐ์์ label์ด ๋ ๊ฒ์ด๋ค.
์์๋ผ๊ณ ํ๋ฏ label์ [๋ฌด์๋ฌผ, ๊ฐ๊ตฌ, ์์] ์ด๋ฐ์์ label.
์ฌ๊ธฐ์ ๋ญ๊ฐ๋ฅผ ์ ์ ์๋๋ฐ ๋ฐ๋ก B-CNN์ output์ด hierarchical level๋งํผ ๋์ฌ ๊ฒ์ด๋ค! ๋ผ๋ ๊ฒ์ด๋ค.
๊ทธ๋ ค๋ฌ๋ฉด ์์ธก์ ์ํ layers๋ level ๊ฐฏ์๋งํผ ํ์ํ๋ค. ์๋๋ฉด ๊ฐ๊ฐ ๋ฐ๋ก ์์ธกํด์ผํ๋๊น ใ ใ
์ ๊ทธ๋ฆผ์์๋ layers๊ฐ 3๊ฐ๊ฐ ์ฐ์ธ ๊ฒ์ ์ ์ ์๋ค.
๊ฐ layer์๋ ConvNet์ ์ฌ์ฉํ๋ค๊ณ ํ๋ค.
๊ทธ๋ ๋ค๋ฉด model์ fit์ํค๊ธฐ์ํด ํ์ํ loss function๋ level๊ฐฏ์๋งํผ ๋์ฌ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ loss function์ cross-entropy loss๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํ๋ค.
์์์์ ์ฃผ๋ชฉํด์ผ ํ ๊ฒ์ ๋ฐ๋ก~ Ak์ด๋ค.
์ด๊ฑด ๊ฐ level์ ํด๋นํ๋ loss function์ loss weight์ธ๋ฐ, ์ด๋ฅผ ํตํด hierarchicalํ ๊ด๊ณ๋ฅผ ๋ชจ๋ธ ์ ๋ฐ์ดํธ์ ์ ์ฉ์ํฌ ์ ์๋ค.
์ด ๋ ผ๋ฌธ์์ ์ด ๊ฐ๋ ์ BT-strategy๋ผ๊ณ ์นญํ์๋ค.
๐ซ Branch Training Strategy(BT-strategy)
BT-strategy๋ loss weight๋ฅผ ๋ค์ํ๊ฒ ๋ณํ์ํค๋ฉด์ B-CNN model์ ํ์ต์ํจ๋ค.
loss weight๊ฐ ํฐ level์ ๊ทธ ํ์ต์์ ํฌ๊ฒ ์์ฉ๋๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
์ด๊ฒ์ ์ด ๋ ผ๋ฌธ์์๋ 'focus'๋ผ๊ณ ๋งํ์๋ค.
์๋ฅผ๋ค์ด loss weight๋ฅผ [0.2, 0.3, 0.5]๋ก ์ฃผ์๋ค๋ฉด ๋ง์ง๋ง level์ focus๊ฐ ๊ฐ์๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ด focus๋ ํ์ต์ ๊ฑฐ๋ญํ ์๋ก ๋์ level(ex: ์๋ฌผ)์์ ๋ฎ์ level(ex: ๊ฐ)๋ก ์ฎ๊ฒจ๊ฐ๋ค.
์ด ๊ณผ์ ์์ ๋ชจ๋ธ์ ๋์ level์ ํน์ง์ ์ ๋ฐฐ์ด ํ ๋ฎ์ level์ parameter tunining์ ์จ๋จน์ ์ ์๋ค.
๐ฌ Experiments
์ฒ์์ผ๋ก ์์๋ณธ ๊ฒ์ ๊ฐ level์ layer์ ์ ํ๋!
ํ์คํ ๋์ level(=coarse 1)์ ์ ํ๋๊ฐ ๋ฎ์ level(=fine)๋ณด๋ค ๋๋ค.
์ฌ์ค ์ง๊ด์ ์ผ๋ก ์๊ฐํด๋ด๋ ๋น์ฐํ ๊ฒฐ๊ณผ๋ค.
๊ณ ์์ด๋ ๊ฐ์์ง๋ฅผ ๊ตฌ๋ถํ๋ ๊ฒ๋ณด๋ค, ๊ฐ์์ง๋ ์์๋ฅผ ๊ตฌ๋ถํ๋๊ฒ ๋ ์ฌ์ธํ ๋ ใ ใ
๋๋ฒ์งธ๋ 3๊ฐ์ง ๋ฐ์ดํฐ์ ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ์ฌ ์ผ๋ฐ์ ์ธ CNN๊ณผ B-CNN์ ์ฑ๋ฅ์ ๋น๊ตํ์๋ค.
B-CNN์ด ๋ ์ข์ ์ฑ๋ฅ์ ๊ฐ์ก๋ค. (๊ทธ๋ฌ๋๊น ๋
ผ๋ฌธ์ ์ธ ์ ์์๊ฒ ์ง)
โ Conclusion
B-CNN์ hierarchical label์ ๊ฐ์ด๋์ฒ๋ผ ์ฌ์ฉํด์ ํผํฌ๋จผ์ค๋ฅผ ๋์๋ค.
์ผ๋ฐ CNN๊ณผ ๋น๊ตํด๋ ๋ ์ข์ ์ฑ๋ฅ์ ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
๋ค๋ง ์ด ์๊ณ ๋ฆฌ์ฆ์ ์์ฌ์ด ์ ์
1, hierarchical label์ ๋ฏธ๋ฆฌ ์๊ณ ์์ด์ผํ๋ค๋ ์
2, ๊ฐ์ฅ ์ข์ ์ฑ๋ฅ์ ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ์ด ์๋, ๊ธฐ๋ณธ์ ์ธ CNN๊ณผ ๋น๊ตํ๋ค๋ ์
3, training epochs๋ฅผ 60์ผ๋ก ์ ํํด์ ์ ์ผ ์ ํํ ์ํ๊ฐ ์๋๋ผ๋ ์ (๋ฌผ๋ก ์ด์ ์ด ๊ฐ์ง๊ณ ์ค๋ ์ด์ ๋ ์์ง๋ง)
๊ฐ๋จํ ์์ด๋์ด๋ก ๋ ์ข์ ์ฑ๋ฅ์ ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ์ ๋ง๋ค์ด๋ธ ๊ฒ์ด ์ ๊ธฐํ๋ค!

'Data Science > machine&deep learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋จ์ผ์ธต ์ ๊ฒฝ๋ง(single layer neural network) ๊ตฌํํ๊ธฐ (0) | 2022.02.09 |
---|