Sketch image data classification(1st)
#naverboostcamp #ai_tech #computer_vision #classification
νλ‘μ νΈ κ°μ
- 2024.09.11 ~ 2024.09.26
- ImageNet Sketch μ΄λ―Έμ§ λ°μ΄ν° λΆλ₯
- 1st Prize π
- Naver Connect & Upstage μ£Όκ΄ λν
- git
λν μκ°
Sketch μ΄λ―Έμ§ λΆλ₯ κ²½μ§λνλ μ£Όμ΄μ§ Sketch μ΄λ―Έμ§ λ°μ΄ν°λ₯Ό νμ©νμ¬ λͺ¨λΈμ μ μνκ³ μ΄λ€ κ°μ²΄λ₯Ό λνλ΄λμ§ λΆλ₯νλ λνμ λλ€.
κ°λ° νκ²½
- Language : Python
- Environment
- CPU : Intel(R) Xeon(R) Gold 5120
- GPU : Tesla V100-SXM2 32GB x 1
- Framework : PyTorch
- Collaborative Tool : GitHub, Tensorboard, Notion
Leaderboard
νμλ€κ³Όμ νμ
λ° λ
Έλ ₯μΌλ‘ Sketch μ΄λ―Έμ§ λΆλ₯ λνμμ 0.9390μ private Accuracyλ₯Ό λ¬μ±νλ©° 1λ±μΌλ‘ λ§λ¬΄λ¦¬ν μ μμμ΅λλ€. μ΄λ¬ν μ±κ³Όμ λ°°κ²½μλ λ€μν κ°μ€ μ€μ , μ€ν μ€κ³, κ²°κ³Ό λΆμ λ° νμλ€κ³Όμ μ§μ 곡μ κ° κ°μ₯ ν° νμ΄ λμμ΅λλ€. μ΄λ₯Ό ν΅ν΄ λ¨μν μμλΏ μλλΌ, λ€μν μ§μμ μ΅λνλ κ°μ§ κ²½νμ μ»μ μ μμκ³ , νμ
μ μ€μμ± λν κΉμ΄ 체κ°ν μ μλ κ²½νμ΄μμ΅λλ€.
νμλΌμΈ
-
νλ‘μ νΈ νμλΌμΈ
-
λ¨κ³λ³ μ±λ₯ λ³ν
νλ‘μ νΈ μν λ΄μ©
- λͺ¨λΈ νμ λ° μ μ
- λͺ¨λΈ μ μ κ³Όμ μμλ λ€μν λͺ¨λΈμ Inductive Biasλ₯Ό κΉμ΄ μ΄ν΄νκ³ , λ°μ΄ν° νΉμ±μ μ΅μ νλ λͺ¨λΈμ μ ννκΈ° μν΄ μ μ€μ κΈ°νμ΅λλ€. λ¨Όμ , λ°μ΄ν°μ locality μ 보λ₯Ό νμ©ν λΆλ₯λ₯Ό λͺ©νλ‘ CNN κΈ°λ° λͺ¨λΈ μ€ κΈ°μΈκΈ° μμ€ λ¬Έμ λ₯Ό ν΄κ²°ν ResNetμ νλ³΄λ‘ κ³ λ €νμ΅λλ€.
- λν, λ°μ΄ν°μ semanticν μ 보λ₯Ό λ°μν λΆλ₯λ₯Ό μν΄, ViT κΈ°λ° λͺ¨λΈλ€ μ€ ImageNet sketch λ°μ΄ν°μμ μ΅κ³ μ±λ₯(SOTA)μ κΈ°λ‘ν EVA-Giant λͺ¨λΈκ³Ό EVA02-Large λͺ¨λΈμ νλ³΄λ‘ μ μ νμμ΅λλ€. μ΄μ²λΌ λ°μ΄ν°μ νΉμ±μ μ ν©ν λͺ¨λΈμ μ μ ν¨μΌλ‘μ¨, μ΅μ’ μ μΌλ‘ λμ μ νλλ₯Ό λͺ©νλ‘ ν μ΅μ μ λͺ¨λΈμ νμν μ μμμ΅λλ€.
- μ΄λ¬ν λͺ¨λΈ μ μ κ³Όμ μ λ°μ΄ν°μ λ³Έμ§μ μ΄ν΄νκ³ , κ·Έμ λ§λ Inductive Biasλ₯Ό κ°μ§ λͺ¨λΈμ μ μ€ν μ ννλ κ²μ΄ μ€μν¨μ λ€μ νλ² λλΌκ² ν΄μ£Όλ κΈ°νκ° λμμ΅λλ€.
- Fine-tuning layers
- MLP-3 : Linear(1024, 1024)-ReLU()-Linear(1024, 500)
- Linear :(1024, 500)
- Prediction method
- train-validation split : train setμ ν λ² λλμ΄ μ±λ₯μ νκ°νκ³ ν μ€νΈ ν©λλ€.
- 5-fold CV : 5-fold cross validation λ°©λ²μ ν΅ν΄ λͺ¨λΈμ λ€μ― λ² νμ΅νκ³ voting νμ¬ ν μ€νΈ ν©λλ€.
- νμ΄νΌνλΌλ―Έν° νλ
λ¬Έμ ν΄κ²°

-
νμ΅λ λͺ¨λΈμ μ±λ₯μ 90%μ΄μμΌλ‘ λμμ§λ§ λΆμ‘±ν 10%μ μ±λ₯μ λμ΄μ¬λ¦¬κΈ° μν΄μ μμΈ‘ κ²°κ³Όλ₯Ό μκ°ννκ³ μ΄λ₯Ό λΆμνμμ΅λλ€.
-
μ΄ λκ°μ§μ λ¬Έμ μ μ μ°Ύμ μ μμκ³ μ΄λ₯Ό ν΄κ²°νκΈ° μν΄μ μλμ κ°μ κ°μ€μ μΈμ°κ³ μλνμμ΅λλ€.
-
λ¬Έμ 1 : (b) μμ§μΌλ‘ λ€μ§ν Sketch μ΄λ―Έμ§ μμΈ‘μ λν μ·¨μ½μ μ λν 보μ νμ
- μ°μ μ μΌλ‘ μ¬λλ λ ν΄λμ€μ μ°¨μ΄λ₯Ό ꡬλΆνκΈ° μ΄λ €μ΄ μ΄λ―Έμ§(a)μ κ²½μ°λ³΄λ€λ μμ§ λ³νλ μ΄λ―Έμ§μμμ μμΈ‘μ 보μνκΈ°λ‘ νμμ΅λλ€.
- κ°μ€ 1 : μμ§ λ³ν λ°μ΄ν° μ¦κ°μ μΆκ°νλ©΄ μμ§μΌλ‘ λ³νλ μ΄λ―Έμ§μ λν μΈμ μ±λ₯μ΄ ν₯μλ κ²μ΄λ€.
- μ€ν μ€κ³ 1 : κΈ°μ‘΄ μ¦κ° + Vertical Flip ν μ±λ₯ λΉκ΅
-
κ²°κ³Ό λΆμ 1 :
- κ°μ 쑰건μμ Vertical Flip μ¦κ°μ μΆκ°ν¨μΌλ‘μ¨ λ λμ μ±λ₯μ 보μ΄λ κ²μ νμΈνμμ΅λλ€.
-
λ¬Έμ 2 : (a) κ°μ ν΄λμ€μ λν΄μ λ€μν Sketch μ΄λ―Έμ§ ννμ λν μ±λ₯ μ·¨μ½μ 보μ νμ
- Sketch μ΄λ―Έμ§μ νΉμ± μ κ°μ ν΄λμ€(κ°)μμλ 그리λ μ¬λμ λ°λΌ λ€μν λ³νκ³Ό μκ³‘μ΄ λ°μν μ μμ΅λλ€.
- μ΄κΈ° νμ΅ λ¨κ³μμ 볡μ‘ν λ³νμ΄ λ§μ΄ ν¬ν¨λ Sketchλ°μ΄ν°λ₯Ό νμ©ν κ²½μ° λͺ¨λΈμ΄ ν¨ν΄μ μ λλ‘ νμ΅νμ§ λͺ»ν©λλ€.
- κ°μ€ 2 : Curriculum learningμ νμ©νμ¬ μ¬μ΄ λ°μ΄ν°λΆν° μμνμ¬ μ μ§μ μΌλ‘ μ΄λ €μ΄ λ°μ΄ν°λ₯Ό νμ΅νλ€λ©΄ μ΄κΈ°μ κΈ°λ³Έμ μΈ ν΄λμ€μ μ€κ³½μ ν¨ν΄μ μΈμνκ³ μ΄ν Elastic λ³ν, Grid Distortion λ± λ³΅μ‘ν λ³νμ μ μ© ν νμ΅νμ¬ λ€μν λ³νκ³Ό μ곑μλ κ°ν μΌλ°ν μ±λ₯μ κ°μ§λ λͺ¨λΈμ λ§λ€ μ μμ κ²μ΄λ€.
- μ€ν μ€κ³ 2 : Curriculum learningμ νμ©νμ¬ κΈ°λ³Έ μ΄λ―Έμ§ - κ°λ¨ν λ³ν - 볡μ‘ν λ³ν μμΌλ‘ νμ΅ μ§ν
- Curriculum learning
- μ΄κΈ° λ¨κ³(0~5 epoch) : κΈ°λ³Έ μ΄λ―Έμ§
- μ€μΌμΉ λ°μ΄ν°μ κΈ°λ³Έ ν¨ν΄μ νμ΅νλλ° μ§μ€νκΈ° μν΄, μ¦κ° μμ΄ νμ΅μ μ§ν

- μ€μΌμΉ λ°μ΄ν°μ κΈ°λ³Έ ν¨ν΄μ νμ΅νλλ° μ§μ€νκΈ° μν΄, μ¦κ° μμ΄ νμ΅μ μ§ν
- μ€κ° λ¨κ³(5~10 epoch) : μμ§/μν λ€μ§κΈ°, μ΅λ 10λ νμ
- λͺ¨λΈμ΄ λ€μν ꡬλμ μ μν μ μλλ‘, μμ§/μν λ€μ§κΈ°μ 10λ νμ κ°μ κ°λ¨ν μ¦κ°μ μΆκ°

- λͺ¨λΈμ΄ λ€μν ꡬλμ μ μν μ μλλ‘, μμ§/μν λ€μ§κΈ°μ 10λ νμ κ°μ κ°λ¨ν μ¦κ°μ μΆκ°
- νλ° λ¨κ³(10~20 epoch) : μμ§/μν λ€μ§κΈ°, μ΅λ 15λ νμ , Elastic λ³ν, Grid Distortion
- λͺ¨λΈμ΄ λ€μν λ³νκ³Ό μ곑μ κ°ν μΌλ°ν μ±λ₯μ κ°μ§ μ μλλ‘ Elastic λ³νκ³Ό Grid Distortion κ°μ κ³ λμ΄λ μ¦κ° μΆκ°

- λͺ¨λΈμ΄ λ€μν λ³νκ³Ό μ곑μ κ°ν μΌλ°ν μ±λ₯μ κ°μ§ μ μλλ‘ Elastic λ³νκ³Ό Grid Distortion κ°μ κ³ λμ΄λ μ¦κ° μΆκ°
- μ΄κΈ° λ¨κ³(0~5 epoch) : κΈ°λ³Έ μ΄λ―Έμ§
-
κ²°κ³Ό λΆμ 2 :

- μ¦κ°μ΄ 볡μ‘ν΄μ§ λλ§λ€, μ νλκ° λ¨μ΄μ§κ³ λ€μ μ¬λΌκ°λ κ³Όμ μμ λͺ¨λΈμ΄ λ³΄λ€ λ³΅μ‘ν ν¨ν΄ νμ΅
- μ΅μ’ μ μΌλ‘ λ¨μΌ λͺ¨λΈ μ΅κ³ μ±λ₯ λ¬μ±(Accuracy(Test) : 0.9370)
μμλΈ λ° κ²°κ³Ό
- Hard Voting, Soft Voting
- Soft-Soft
- Soft-Hard
- hard-hard
- μμλΈ μ±λ₯ λΉκ΅ κ²°κ³Ό
- EVA 02-large-Linear, EVA-giant-Linear, EVA 02-large-curriculum-mlp-3 λ₯Ό hard-hard μμλΈν λͺ¨λΈμ΄ κ°μ₯ μ’μ μ±λ₯μ 보μλ€.
- Soft-Soft, Hard,Hard μμλΈ Method λͺ¨λ λΉμ·νκ² μ’μ μ±λ₯μ 보μλ€.
κ°μΈ νκ³
- νλ‘μ νΈμ μμ νμ΅ λͺ©ν
- λ€μν λ¬Έμμ μλ£λ₯Ό νμνμ¬ μ΅κ·Ό νΈλ λμ κ°μ₯ κ°κΉκ³ μ±λ₯μ΄ μ’μ λͺ¨λΈμ μ¬μ©ν΄λ³΄μ
- μ λ°μ μΈ AI νλ‘μ νΈμ μ§νμ μ λΆ μ κ·Ήμ μΌλ‘ μ°Έμ¬νμ¬ λ¨κ³ λ³ μ€μν λΆλΆλ€μ λ°°μ°μ
- νμ΅ λͺ©ν λ¬μ±μ μν΄ λ¬΄μμ μ΄λ»κ² νλκ°?
- λͺ©ν λ¬μ±μ μν΄ λ€μν λ Όλ¬Έκ³Ό μλ£λ€μ νμνλ©° μ΅μ κΈ°μ νΈλ λλ₯Ό νμ νκ³ , μ±λ₯μ΄ μ°μν λͺ¨λΈλ€μ μ°κ΅¬νμ΅λλ€. νΉν, κΈ°μ‘΄μ νμ΅λ μ°μν λͺ¨λΈλ€μ νμ©ν μ μ΄νμ΅μ μ€μ μ λμ΄ κΈ°νμ΅λ λͺ¨λΈμ μ€μμ±μ μκ² λμμ΅λλ€.
- λͺ¨λ λ¨κ³μ μ κ·Ήμ μΌλ‘ μ°Έμ¬νλ©° μ€μ νλ‘μ νΈ μ§ν κ³Όμ μ κ²½ννκ³ , νμλ€κ³Ό νλ ₯νμ¬ λ¬Έμ ν΄κ²° λ₯λ ₯μ ν₯μμν¬ μ μμμ΅λλ€.
- λλ μ΄λ€ λ°©μμΌλ‘ λͺ¨λΈμ κ°μ νλκ°?
- Hugging face λ΄ λ€μν λ² μ΄μ€λΌμΈ λͺ¨λΈλ€μ λΉκ΅ λΆμνμ¬ νλ‘μ νΈ λͺ©νμ κ°μ₯ μ ν©ν λͺ¨λΈμ μ μ νκ³ μ μ΄ νμ΅μ μ μ©νμ΅λλ€.
- k-fold cross validationκ³Ό μννΈ λ³΄ν μμλΈ κΈ°λ²μ ν΅ν΄ λͺ¨λΈμ μ±λ₯μ ν₯μμμΌ°μ΅λλ€.
- λ¨μν μ±λ₯ μ§νλ§μ κ³ λ €νμ§ μκ³ , νμ΅ κ³Όμ μμ λͺ¨λΈμ΄ μ΄λ€ λ°μ΄ν°μ μ·¨μ½νμ§λ₯Ό λΆμνμ¬ λ°μ΄ν° μ¦κ° κΈ°λ²μ μ μ©νμ΅λλ€.
- μ΄λ€ κΉ¨λ¬μμ μ»μλκ°?
- κΈ°μ‘΄μ νμ΅λ λ°μ΄λ λͺ¨λΈμ νμ©νλ κ²λ λ¬Έμ ν΄κ²°μ μμ΄μ ν° λΆλΆ μ€ νλλΌλ κ²μ κΉ¨λ¬μμ΅λλ€. λν, μ¬μ νμ΅λ μ°μ λͺ¨λΈμ νμ©νλ μ μ΄ νμ΅μ ν¨μ©μ±μ μ€κ°νμ΅λλ€.
- k-fold cross validationμ νμ©ν¨μΌλ‘μ¨, λͺ¨λΈμ΄ λ°μ΄ν°μ λ€μν λΆλΆμ νμ΅ν μ μκ² νμ¬ κ³Όμ ν©μ λ°©μ§νκ³ , λͺ¨λΈμ μΌλ°ν μ±λ₯μ λμΌ μ μλ€λ κ²μ νμΈνμμ΅λλ€. μ΄λ₯Ό ν΅ν΄ λμ± μ λ’°ν μ μλ νκ° μ§νλ₯Ό μ»μ μ μμμ΅λλ€.
- λ°μ΄ν° λΆμμ ν΅ν΄ μ¦κ° μ λ΅μ μΈμ°κ³ μ€μ μ±λ₯ κ°μ μ νμΈν κ²μ λ§€μ° μ μ΅ν κ²½νμ΄μμ΅λλ€. λ°μ΄ν°μ λ§λ μ¦κ° μ λ΅μ μ€μμ±μ μ΄ν΄νκ³ , κ·Έ ν¨κ³Όλ₯Ό 체κ°ν μ μλ κΈ°νμμ΅λλ€.
- λ§μ£Όν νκ³λ 무μμ΄λ©°, μμ¬μ λ μ μ 무μμΈκ°?
- μ΄κΈ° EDAμμ λ°μ΄ν°μ νΉμ±κ³Ό ν¨ν΄μ μ΄ν΄νλλ° μ΄λ €μμ λκΌκ³ Inductive biasλ₯Ό κΈ°λ°μΌλ‘ ν λͺ¨λΈλ§ λ°©ν₯μ μ€μ νλλ° μ΄λ €μμ κ²ͺμμ΅λλ€.
- μ½λ μμ± λ°©μκ³Ό νμ λ°©μμμ ν¬λ‘μ€μ²΄ν¬λ₯Ό νμ§ λͺ»ν΄ μ¬μν μ€μκ° ν¬κ² νΌμ Έλκ° μΌμ΄ μμλ€. λ€μν νμ ν΄μ μ¬μ©νμ¬ μ½κ² νμΈν μ μμλ μ€μλ₯Ό λΉ λ₯΄κ² νμΈνμ§ λͺ»ν κ²μ΄ μμ½λ€.
- νκ³/κ΅νμ λ°νμΌλ‘ λ€μ νλ‘μ νΈμμ μλν΄λ³Ό κ²μ 무μμΈκ°?
- μ΄ν νλ‘μ νΈμμλ EDA λΆμμ λμ± μ§μ€νμ¬ λ°μ΄ν° νΉμ±μ μ νν νμ νκ³ , inductive biasμ representationμ κΈ°λ°μΌλ‘ μ μ ν λͺ¨λΈμ μ νν κ²μ λλ€.
- κ°μΈμ΄ μμ±ν μ½λλ₯Ό νμλ€κ³Ό μ½λ 리뷰λ₯Ό ν΅ν΄ νΉμ μ€μν λΆλΆμ΄ μλμ§ νμΈνλ κ³Όμ μ κ±°μΉ κ²μ λλ€.
- Gitκ³Ό κ°μ λ²μ κ΄λ¦¬ μμ€ν κ³Ό λ΄λΆ ν΄μ μ κ·Ή νμ©νμ¬ νμλ€κ³Όμ μνν μν΅κ³Ό μ½λ 곡μ λ₯Ό ν΅ν΄ μμ μ μΈ λ² μ΄μ€λΌμΈμ ꡬμΆνκ³ λΈλμΉ μ λ΅μ ν¨μ¨μ μΌλ‘ νμ©νμ¬ νμ ν¨μ¨μ±μ λμΌ κ²μ λλ€.