SlideShare a Scribd company logo
1 of 25
Download to read offline
Nationality
recognition
AIU DEVCAMP TEAM 2
발표자 소개
박준영 (Junyeong Park)
◦ 한양대학교 컴퓨터소프트웨어학부 1학년 재학
◦ 참여 프로젝트
◦ RosettaStone
◦ Baba Is Agent
https://github.com/JYPark09
목차
◦ 신경망 모델링 (Network Modeling)
◦ 최적화 (Optimization)
◦ 여러 시도들
Network Modeling
주어진 문제는 얼굴 사진을 입력 받아 국적을 분류하는 것
→ 문제를 풀기 위해 CNN(Convolutional Neural Network)를 사용할 수 있음.
Network Modeling
일단 좋다는 건 다 해보자!
◦ 첫 번째 시도: Squeeze and Excitation Network
Network Modeling
일단 좋다는 건 다 해보자!
◦ 첫 번째 시도: Squeeze and Excitation Network
결과는...
Network Modeling
일단 좋다는 건 다 해보자!
◦ 두 번째 시도: Convolutional Block Attention Module
Network Modeling
일단 좋다는 건 다 해보자!
◦ 두 번째 시도: Convolutional Block Attention Module
결과는...
Network Modeling
왜 계속 망할까?
1. 데이터 개수가 적기 때문
총 데이터 개수: 4806개
MNIST: 테스트 데이터만 10,000개
CIFAR-10: 테스트 데이터만 10,000개
ImageNet: 1,281,167개 (ILSVRC 2012 기준)
Network Modeling
왜 계속 망할까?
1. 데이터 개수가 적기 때문
2. 그런데 모델은 엄청 크게 만듦
Parameters of SENet: 5,692,421 (20x128, reduction=16)
Parameters of CBAM: 5,675,910 (20x128, reduction=16)
Network Modeling
Overfitting을 막는 방법은
◦ 데이터를 더 늘린다 → 불가능
◦ 모델의 크기를 줄인다
◦ Dropout, Batch Normalization 등을 적용한다.
Network Modeling
그래서 최종적인 모델은...
5x5 conv, 64
batch normalization
3x3 conv, 64
batch normalization
1x1 conv, 1
batch normalization
fully connected
dropout, p=0.5
fully connected
Parameters: 633,352
(약 89% ↓)
Optimization
한 논문에 따르면 Adaptive 계열보단 SGD가 generalization 성능이 좋음.
→ 실제 실험 결과 데이터가 너무 부족해 Adaptive 계열은 쉽게 overfitting 됨
따라서 SGD 계열인 NAG(Nesterov Accelerated Gradient) 채택
* Nitish Shirish Keskar, Richard Socher, 2017, "Improving Generalization Performance by Switching from Adam to SGD"
𝑣 𝑡 = 𝛾𝑣 𝑡−1 + 𝜂∇ 𝜃 𝐽 𝜃 − 𝛾𝑣 𝑡−1
𝜃 = 𝜃 − 𝑣 𝑡
Optimization
여러 Hyper-parameter들
◦ Learning Rate: 10−1
, 10−2
, 10−3
, 10−4
◦ L2 Regularization: 10−4
◦ Softmax Temperature: 1
◦ Loss Function: Cross Entropy
Transfer Learning
→ 기존의 만들어진 모델을 사용하여 새로운 문제 해결 시 더 좋은 성능을 내기 위한 기법
아래에 있는 ImageNet을 이용해 학습된 모델들을 torchvision을 통해 받을 수 있다.
→ ImageNet엔 사람이 있으니 사람을 경험한 모델임
◦ VGG
◦ ResNeXt
◦ DenseNet
Transfer Learning
하지만, 결과는 처참...
◦ Test set에서 평균 정확도 41%
◦ 위 수치는 그냥 학습시켰을 때보다 낮은 성능임
→ 빠른 손절!
Data Augmentation
torchvision엔 여러 augmentation 수단이 마련 돼있다.
◦ RandomCrop
◦ RandomHorizontalFlip
◦ RandomVerticalFlip
◦ RandomRotation
Data Augmentation
RandomCrop
어느 나라 사람이게?
Data Augmentation
그래서 RandomCrop을 제외한 나머지를 모두 사용함
◦ RandomHorizontalFlip
◦ RandomVerticalFlip
◦ RandomRotation
→ 데이터를 대략 2 × 2 × 3 = 12배 뻥튀기
Knowledge Distillation
→ Teacher Network를 학습시킨 뒤, Student Network를 학습시키는 방식
Training Dataset
Teacher
Student
Knowledge Distillation
Teacher Network
◦ 일반적인 Network 학습 방법식으로 학습한다.
◦ Test set 정확도: 62.4%
Knowledge Distillation
Student Network
◦ Ring Loss 도입
ℒ 𝑅 =
𝜆
2𝑚
෍
𝑖=1
𝑚
ℱ 𝒙𝑖 2 − 𝑅 2
◦ 최종적으로 아래의 Loss function을 사용
ℒ 𝐾𝐷 𝑾 𝑺 = ℋ 𝒚true, 𝑷 𝑺 + 𝐷 𝐾𝐿(𝑷 𝑺| 𝑷 𝑻 + ℒ 𝑅
◦ Test set 정확도: 65.41%
Ensemble Neural Network
◦ weak learner를 조합하여 strong learner를 만드는 것이 목표
→ 집단 지성(?)
◦ 여기서는 여러 네트워크 출력값의 평균을 취하는 것으로 구현
Ensemble Neural Network
기존의 선택 방식
argmax 𝑐 𝑃 𝑐 𝒙
새로운 선택방식
argmax 𝑐
1
𝑁
෍
𝑖=1
𝑁
𝑃𝑖(𝑐|𝒙)
◦ 결과: 66.76%
감사합니다

More Related Content

Similar to Nationality recognition

111 n grinder-deview_day1_track1_session_1_ver_2
111 n grinder-deview_day1_track1_session_1_ver_2111 n grinder-deview_day1_track1_session_1_ver_2
111 n grinder-deview_day1_track1_session_1_ver_2
NAVER D2
 

Similar to Nationality recognition (20)

밑바닥부터 시작하는딥러닝 8장
밑바닥부터 시작하는딥러닝 8장밑바닥부터 시작하는딥러닝 8장
밑바닥부터 시작하는딥러닝 8장
 
Deep learning overview
Deep learning overviewDeep learning overview
Deep learning overview
 
180624 mobile visionnet_baeksucon_jwkang_pub
180624 mobile visionnet_baeksucon_jwkang_pub180624 mobile visionnet_baeksucon_jwkang_pub
180624 mobile visionnet_baeksucon_jwkang_pub
 
인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝
 
Imagination-Augmented Agents for Deep Reinforcement Learning
Imagination-Augmented Agents for Deep Reinforcement LearningImagination-Augmented Agents for Deep Reinforcement Learning
Imagination-Augmented Agents for Deep Reinforcement Learning
 
Image Deep Learning 실무적용
Image Deep Learning 실무적용Image Deep Learning 실무적용
Image Deep Learning 실무적용
 
Deep neural networks cnn rnn_ae_some practical techniques
Deep neural networks cnn rnn_ae_some practical techniquesDeep neural networks cnn rnn_ae_some practical techniques
Deep neural networks cnn rnn_ae_some practical techniques
 
Rainbow의 혈관 속 탐험 (The Rainbow's adventure in the vessel) (RL Korea)
Rainbow의 혈관 속 탐험 (The Rainbow's adventure in the vessel) (RL Korea)Rainbow의 혈관 속 탐험 (The Rainbow's adventure in the vessel) (RL Korea)
Rainbow의 혈관 속 탐험 (The Rainbow's adventure in the vessel) (RL Korea)
 
111 n grinder-deview_day1_track1_session_1_ver_2
111 n grinder-deview_day1_track1_session_1_ver_2111 n grinder-deview_day1_track1_session_1_ver_2
111 n grinder-deview_day1_track1_session_1_ver_2
 
한국인공지능연구소 강화학습랩 결과보고서
한국인공지능연구소 강화학습랩 결과보고서한국인공지능연구소 강화학습랩 결과보고서
한국인공지능연구소 강화학습랩 결과보고서
 
파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)
 
EveryBody Tensorflow module2 GIST Jan 2018 Korean
EveryBody Tensorflow module2 GIST Jan 2018 KoreanEveryBody Tensorflow module2 GIST Jan 2018 Korean
EveryBody Tensorflow module2 GIST Jan 2018 Korean
 
03.12 cnn backpropagation
03.12 cnn backpropagation03.12 cnn backpropagation
03.12 cnn backpropagation
 
[Tf2017] day4 jwkang_pub
[Tf2017] day4 jwkang_pub[Tf2017] day4 jwkang_pub
[Tf2017] day4 jwkang_pub
 
Anomaly detection practive_using_deep_learning
Anomaly detection practive_using_deep_learningAnomaly detection practive_using_deep_learning
Anomaly detection practive_using_deep_learning
 
Workshop 210417 dhlee
Workshop 210417 dhleeWorkshop 210417 dhlee
Workshop 210417 dhlee
 
Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical Methodology
 
carrier of_tricks_for_image_classification
carrier of_tricks_for_image_classificationcarrier of_tricks_for_image_classification
carrier of_tricks_for_image_classification
 
Multithread & shared_ptr
Multithread & shared_ptrMultithread & shared_ptr
Multithread & shared_ptr
 
딥러닝 기본 원리의 이해
딥러닝 기본 원리의 이해딥러닝 기본 원리의 이해
딥러닝 기본 원리의 이해
 

More from 준영 박

More from 준영 박 (8)

[2021 HAI Kaggle Study] Week5 project2 nlp
[2021 HAI Kaggle Study] Week5 project2 nlp[2021 HAI Kaggle Study] Week5 project2 nlp
[2021 HAI Kaggle Study] Week5 project2 nlp
 
[2021 HAI Kaggle Study] Week2 project1 cv
[2021 HAI Kaggle Study] Week2 project1 cv[2021 HAI Kaggle Study] Week2 project1 cv
[2021 HAI Kaggle Study] Week2 project1 cv
 
[2021 HAI Kaggle Study] Week1 kaggle basic
[2021 HAI Kaggle Study] Week1 kaggle basic[2021 HAI Kaggle Study] Week1 kaggle basic
[2021 HAI Kaggle Study] Week1 kaggle basic
 
Squeeze and excitation networks
Squeeze and excitation networksSqueeze and excitation networks
Squeeze and excitation networks
 
C# 고급 문법 part 2
C# 고급 문법 part 2C# 고급 문법 part 2
C# 고급 문법 part 2
 
C# 고급 문법 part 1
C# 고급 문법 part 1C# 고급 문법 part 1
C# 고급 문법 part 1
 
C# 기초 문법 part 2
C# 기초 문법 part 2C# 기초 문법 part 2
C# 기초 문법 part 2
 
C# 기초 문법 part 1
C# 기초 문법 part 1C# 기초 문법 part 1
C# 기초 문법 part 1
 

Nationality recognition

  • 2. 발표자 소개 박준영 (Junyeong Park) ◦ 한양대학교 컴퓨터소프트웨어학부 1학년 재학 ◦ 참여 프로젝트 ◦ RosettaStone ◦ Baba Is Agent https://github.com/JYPark09
  • 3. 목차 ◦ 신경망 모델링 (Network Modeling) ◦ 최적화 (Optimization) ◦ 여러 시도들
  • 4. Network Modeling 주어진 문제는 얼굴 사진을 입력 받아 국적을 분류하는 것 → 문제를 풀기 위해 CNN(Convolutional Neural Network)를 사용할 수 있음.
  • 5. Network Modeling 일단 좋다는 건 다 해보자! ◦ 첫 번째 시도: Squeeze and Excitation Network
  • 6. Network Modeling 일단 좋다는 건 다 해보자! ◦ 첫 번째 시도: Squeeze and Excitation Network 결과는...
  • 7. Network Modeling 일단 좋다는 건 다 해보자! ◦ 두 번째 시도: Convolutional Block Attention Module
  • 8. Network Modeling 일단 좋다는 건 다 해보자! ◦ 두 번째 시도: Convolutional Block Attention Module 결과는...
  • 9. Network Modeling 왜 계속 망할까? 1. 데이터 개수가 적기 때문 총 데이터 개수: 4806개 MNIST: 테스트 데이터만 10,000개 CIFAR-10: 테스트 데이터만 10,000개 ImageNet: 1,281,167개 (ILSVRC 2012 기준)
  • 10. Network Modeling 왜 계속 망할까? 1. 데이터 개수가 적기 때문 2. 그런데 모델은 엄청 크게 만듦 Parameters of SENet: 5,692,421 (20x128, reduction=16) Parameters of CBAM: 5,675,910 (20x128, reduction=16)
  • 11. Network Modeling Overfitting을 막는 방법은 ◦ 데이터를 더 늘린다 → 불가능 ◦ 모델의 크기를 줄인다 ◦ Dropout, Batch Normalization 등을 적용한다.
  • 12. Network Modeling 그래서 최종적인 모델은... 5x5 conv, 64 batch normalization 3x3 conv, 64 batch normalization 1x1 conv, 1 batch normalization fully connected dropout, p=0.5 fully connected Parameters: 633,352 (약 89% ↓)
  • 13. Optimization 한 논문에 따르면 Adaptive 계열보단 SGD가 generalization 성능이 좋음. → 실제 실험 결과 데이터가 너무 부족해 Adaptive 계열은 쉽게 overfitting 됨 따라서 SGD 계열인 NAG(Nesterov Accelerated Gradient) 채택 * Nitish Shirish Keskar, Richard Socher, 2017, "Improving Generalization Performance by Switching from Adam to SGD" 𝑣 𝑡 = 𝛾𝑣 𝑡−1 + 𝜂∇ 𝜃 𝐽 𝜃 − 𝛾𝑣 𝑡−1 𝜃 = 𝜃 − 𝑣 𝑡
  • 14. Optimization 여러 Hyper-parameter들 ◦ Learning Rate: 10−1 , 10−2 , 10−3 , 10−4 ◦ L2 Regularization: 10−4 ◦ Softmax Temperature: 1 ◦ Loss Function: Cross Entropy
  • 15. Transfer Learning → 기존의 만들어진 모델을 사용하여 새로운 문제 해결 시 더 좋은 성능을 내기 위한 기법 아래에 있는 ImageNet을 이용해 학습된 모델들을 torchvision을 통해 받을 수 있다. → ImageNet엔 사람이 있으니 사람을 경험한 모델임 ◦ VGG ◦ ResNeXt ◦ DenseNet
  • 16. Transfer Learning 하지만, 결과는 처참... ◦ Test set에서 평균 정확도 41% ◦ 위 수치는 그냥 학습시켰을 때보다 낮은 성능임 → 빠른 손절!
  • 17. Data Augmentation torchvision엔 여러 augmentation 수단이 마련 돼있다. ◦ RandomCrop ◦ RandomHorizontalFlip ◦ RandomVerticalFlip ◦ RandomRotation
  • 19. Data Augmentation 그래서 RandomCrop을 제외한 나머지를 모두 사용함 ◦ RandomHorizontalFlip ◦ RandomVerticalFlip ◦ RandomRotation → 데이터를 대략 2 × 2 × 3 = 12배 뻥튀기
  • 20. Knowledge Distillation → Teacher Network를 학습시킨 뒤, Student Network를 학습시키는 방식 Training Dataset Teacher Student
  • 21. Knowledge Distillation Teacher Network ◦ 일반적인 Network 학습 방법식으로 학습한다. ◦ Test set 정확도: 62.4%
  • 22. Knowledge Distillation Student Network ◦ Ring Loss 도입 ℒ 𝑅 = 𝜆 2𝑚 ෍ 𝑖=1 𝑚 ℱ 𝒙𝑖 2 − 𝑅 2 ◦ 최종적으로 아래의 Loss function을 사용 ℒ 𝐾𝐷 𝑾 𝑺 = ℋ 𝒚true, 𝑷 𝑺 + 𝐷 𝐾𝐿(𝑷 𝑺| 𝑷 𝑻 + ℒ 𝑅 ◦ Test set 정확도: 65.41%
  • 23. Ensemble Neural Network ◦ weak learner를 조합하여 strong learner를 만드는 것이 목표 → 집단 지성(?) ◦ 여기서는 여러 네트워크 출력값의 평균을 취하는 것으로 구현
  • 24. Ensemble Neural Network 기존의 선택 방식 argmax 𝑐 𝑃 𝑐 𝒙 새로운 선택방식 argmax 𝑐 1 𝑁 ෍ 𝑖=1 𝑁 𝑃𝑖(𝑐|𝒙) ◦ 결과: 66.76%