Paper Review - Evaluation of Features for Leaf Classification in Challenging Conditions

Paper Review - Evaluation of Features for Leaf Classification in Challenging Conditions

이 포스트에서는 2015년 IEEE Winter Conference on Applications of Computer Vision 에 실린 “Evaluation of Features for Leaf Classification in Challenging Conditions” 논문에 대해 살펴보겠습니다.

Key Point

  • examine the robustness of a range of features to a variety of condition variations including: translation, scaling, rotation, occlusion and shadowing
  • combined ConvNet features and HCFs

Dataset

  1. Flavia dataset[2]
    • 1,907개의 잎사귀 이미지가 포함되어 있음
    • 32개의 식물 종으로 구성되며, 각각의 식물 종당 약 50개의 이미지가 포함됨

Approach & Model

  1. Base Network로 CaffeNet을 사용해서 ConvNet feature로 사용함
  2. 기존에 사용된 Hand-Crafted shape and statistical features 중, scale 변화에 강인한 특징들을 골라서 ScaleRobust HCFs로 구성함
출처: www.semanticscholar.org
  1. ConvNet feature와 ScaleRobust HCFs를 Random Forest Classifier를 이용해서 분류처리함
출처: www.semanticscholar.org

Experiments

  1. 기존의 특징들(HCF, HoCS, 등)을 이용한 분류 방법과, ConvNet + ScaleRobust HCFs 와의 비교 분석을 수행함
    • 이 때, 모델들의 강인함(Robustness) 정도를 측정하기 위해서, 테스트 데이터에 대해 다양한 조건(translation, scaling, rotation, occlustion 등등)들을 설정해서 실험함
출처: www.semanticscholar.org
출처: www.semanticscholar.org
출처: www.semanticscholar.org
출처: www.semanticscholar.org
출처: www.semanticscholar.org
출처: www.semanticscholar.org

References

[1] Evaluation of Features for Leaf Classification in Challenging Conditions, 2015 [paper]
[2] Flavia leaf Dataset [site]

Study - Deep Learning

Deep Learning

이 책은 딥 러닝의 기초부터 비교적 최근 모델들까지 전반적인 딥러닝에 대한 내용을 다루고 있으며 목차는 다음과 같습니다. 본 포스트 시리즈에서는 Deep Learning을 공부한 후, 다음 목차별로 정리할 계획입니다.

  1. Introduction

    Part I: Applied Math and Machine Learning Basics

  2. Linear Algebra
  3. Probability and Information Theory
  4. Numerical Computation
  5. Machine Learning Basics

    Part II: Modern Practical Deep Networks

  6. Deep Feedforward Networks
  7. Regularization for Deep Learning
  8. Optimization for Training Deep Models
  9. Convolutional Networks
  10. Sequence Modeling: Recurrent and Recursive Nets
  11. Practical Methodology
  12. Applications

    Part III: Deep Learning Research

  13. Linear Factor Models
  14. Autoencoders
  15. Representation Learning
  16. Structured Probabilistic Models for Deep Learning
  17. Monte Carlo Methods
  18. Confronting the Partition Function
  19. Approximate Inference
  20. Deep Generative Models

References

[1] Ian Goodfellow and Yoshua Bengio and Aaron Courville, Deep Learning, 2016 [site]

Learning Meterials

Learning Meterials

Books

Deep Learning

  • Deep Learning [site]
    • Ian Goodfellow and Yoshua Bengio and Aaron Courville, 2016
  • Neural Networks and Deep Learning [site]
    • Michael Nielsen, 2017

Sound Processing

  • Spoken Language Processing_ A Guide to Theory, Algorithm, and System Development
    • Xuedong Huang, Alex Acero, Hsiao-Wuen Hon, 2001
  • Automatic Speech Recognition: A Deep Learning Approach
    • Dong Yu, Li Deng, 2015

Natural Language Processing

  • Neural Machine Translation and Sequence-to-sequence Models: A Tutorial
    • Graham Neubig, 2017
Study - Automatic Speech Recognition`:` A Deep Learning Approach

Automatic Speech Recognition: A Deep Learning Approach

Automatic Speech Recognition (ASR) 은 사람의 음성과 기계간의 상호 작용을 꾀하기 위한 기술로, 다음과 같은 다양한 기술이 적용됩니다.

  • Gaussian mixture models (GMMs)
  • hidden Markov models (HMMs)
  • mel-frequency cepstral coefficients (MFCCs) and their derivatives
  • ngram language models (LMs)
  • discriminative training, and various adaptation techniques
  • GMM-HMM sequence discriminative training

이 책에서는 앞서 나열된 ASR 을 위한 기술들을 소개 및 설명하고 있습니다.

또한, 책에서는 ASR과 Deep Learning에 관련된 다양한 교재들도 소개하고 있습니다.

  • Deep Learning: Methods and Applications, by Li Deng and Dong Yu (June 2014)
  • Automatic Speech and Speaker Recognition: Large Margin and Kernel Methods, by Joseph Keshet, Samy Bengio (January 2009)
  • Speech Recognition Over Digital Channels: Robustness and Standards, by Antonio Peinado and Jose Segura (September 2006)
  • Pattern Recognition in Speech and Language Processing, by Wu Chou and Biing-Hwang Juang (February 2003)
  • Speech Processing—A Dynamic and Optimization-Oriented Approach, by Li Deng and Doug O’Shaughnessy (June 2003)
  • Spoken Language Processing: A Guide to Theory, Algorithm and System Development, by Xuedong Huang, Alex Acero, and Hsiao-Wuen Hon (April 2001)
  • Digital Speech Processing: Synthesis, and Recognition, Second Edition, by Sadaoki Furui (June 2001)
  • Speech Communications: Human and Machine, Second Edition, by Douglas O’Shaughnessy (June 2000)
  • Speech and Language Processing—An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition, by Daniel Jurafsky and James Martin (April 2000)
  • Speech and Audio Signal Processing, by Ben Gold and Nelson Morgan (April 2000)
  • Statistical Methods for Speech Recognition, by Fred Jelinek (June 1997)
  • Fundamentals of Speech Recognition, by Lawrence Rabiner and Biing-Hwang Juang (April 1993)
  • Acoustical and Environmental Robustness in Automatic Speech Recognition, by Alex Acero (November 1992).

이 포스트의 시리즈에서는 이 책에서 다루는 다양한 내용들을 공부하고 정리한 내용들을 작성할 계획입니다. 책의 목차의 대제목은 다음과 같습니다.

  1. Introduction

    Part 1 Conventional Acoustic Models

  2. Gaussian Mixture Models
  3. Hidden Markov Models and the Variants

    Part 2 Deep Neural Networks

  4. Deep Neural Networks
  5. Advanced Model Initialization Techniques

    Part 3 Deep Neural Network-Hidden Markov Model Hybrid Systems for Automatic Speech Recognition

  6. Deep Neural Network-Hidden Markov Model Hybrid Systems
  7. Training and Decoding Speedup
  8. Deep Neural Network Sequence-Discriminative Training

    Part 4 Representation Learning in Deep Neural Networks

  9. Feature Representation Learning in Deep Neural Networks
  10. Fuse Deep Neural Network and Gaussian Mixture Model Systems
  11. Adaptation of Deep Neural Networks

    Part 5 Advanced Deep Models

  12. Representation Sharing and Transfer in Deep Neural Networks
  13. Recurrent Neural Networks and Related Models
  14. Computational Network
  15. Summary and Future Directions

References

[1] Dong Yu, Li Deng, Automatic Speech Recognition: A Deep Learning Approach, 2015

Paper Review - FaceNet

Paper Review - FaceNet

이 포스트에서는 2015년 IEEE Computer Society Conference on Computer Vision and Pattern Recognition에 실린 “FaceNet: A Unified Embedding for Face Recognition and Clustering” 논문에 대해 살펴보겠습니다.

Key Point

  • apply triplet network to Face recognition/verification/clustering
  • propose new triplet sampling(selection) methods

introduce triplet network

이 논문에서는 지난 포스트 [Paper Review - Deep Ranking][Paper Review - DEEP METRIC LEARNING USING TRIPLET NETWORK] 에서 살펴봤던 Triplet Network를 얼굴 이미지 데이터셋에 적용해서, 해당 데이터가 누구의 얼굴 이미지인지 검출하는 Face Recognition, DB내 얼굴 이미지 데이터에 포함된(와 같은) 이미지인지 검증하는 Face verification , 그리고 여러 데이터셋에서 해당 사람 얼굴을 찾는(?) Face clustering을 수행합니다.

논문의 내용은 기본적으로 이전 포스트들에서 다뤘던 Triplet Network의 동작과 매우 유사합니다.

두 이미지 데이터 쌍간의 유사성은 squared L2 distance를 이용해서 정의했고,
verification은 Triplet Network를 이용해서 얻어낸 embedding vector의 distance를 임계값을 두어, 임계값 이내이면 True, 아니면 False의 형태로 검증하고,
recognition은 embedding vector에 대해서 k-NN classification을 적용해서 누구의 얼굴인지 검출하도록 했으며,
clustering은 embedding vector에 대해서 k-means 를 적용해서 clustering 했습니다.

이 논문에서 주목할 점은 대용량 데이터을 대상으로 triplet network를 적용하기 위한 Triplet Selection 방법을 제안한 것입니다.

Triplet Selection

Triplet은 어떤 기준이 되는 샘플 데이터 anchor example( \(x_i^a\) )와 기준 샘플 데이터와 유사한(혹은 동일한 카테고리의) positive example( \(x_i^p\) ), 그리고 기준 샘플 데이터와 유사하지 않은(혹은 다른 카테고리의) negative example( \(x_i^n\) ) 으로 구성됩니다.

또한, Triplet Network는 샘플링한 Triplet이 다음의 수식(1)을 만족하도록 network parameter를 최적화(학습)시켜야 합니다.

\[||f(x_i^a) - f(x_i^p)||_2^2 + \alpha < ||f(x_i^a) - f(x_i^n)||_2^2\]

위 수식에서 \alpha는 각 example 쌍의 distance에 대한 margin을 의미합니다. network가 위 조건을 만족시키도록 최적화하기 위한 loss function은 다음과 같이 정의될 수 있습니다.

\[\sum^N_i[ ||f(x_i^a) - f(x_i^p)||_2^2 - ||f(x_i^a) - f(x_i^n)||_2^2 + \alpha ]\]

여기까지는 지난 두 포스트에서 살펴봤던 Triplet Network의 내용과 같습니다.

이제 triplet 을 샘플링하는 경우에 수의 대해서 살펴봅시다. 이전의 [Paper Review - Deep Ranking] 포스트에서 살펴본 바와 같이, 만약 데이터셋에 \(N\) 개의 데이터가 있을 경우 생성 가능한 triplet의 개수는 \(N^3\) 이 됩니다.

그런데 여기서 가장 큰 문제는, 대부분의 triplet이 위에서 살펴본 수식 (1)의 조건을 만족한다는 것입니다. 즉, triplet 이 수식 (1)의 조건을 만족할 경우, 해당 triplet에 대한 loss는 0이 될 것이고, 만약 batch 내에 이러한 triplet이 많으면 많을수록 전체 batch에 대한 loss가 0에 가까워지게 됩니다. loss가 0에 가까워진다는 것은, 학습 속도를 느리게 만드는 단점이 있으며, 이러한 단점은 대규모 데이터셋을 학습시키고자 할 경우 더욱 부각될 수 있습니다.

따라서, 이 논문에서는 이러한 문제들을 해결하기 위해서 triplet 을 샘플링하는 방법들을 제안합니다.

먼저 수식 (1)을 만족하지 않는 triplet을 샘플링하는 가장 간단한 방법에 대해서 생각해봅시다. 수식 (1)을 만족하지 않는 positive example을 샘플링하는 방법은 anchor example에 대응하는 모든 positive example간의 거리를 구한 후, 가장 거리가 큰 example (hard positive)을 샘플링하는 것이 될 수 있습니다.

\[argmax_{x_i^p}||f(x_i^a) - f(x_i^p)||_2^2\]

마찬가지로 negative example을 샘플링하는 방법은 anchor example에 대응하는 모든 negative example간의 거리를 구한 후, 가장 거리가 짧은 example (hard negative)을 샘플링하는 것이 될 것입니다.

\[argmin_{x_i^n}||f(x_i^a) - f(x_i^n)||_2^2\]

하지만 이러한 방법은 데이터 셋의 규모가 크면 클수록 실행이 불가능해집니다. 왜냐하면 데이터 셋에 포함된 모든 데이터의 (anchor-positive) 쌍과 (anchor-negative) 쌍에 대한 거리를 알아내기 위해서는, 데이터들을 모두 Triplet Network에 대입해서 embedding vector로 변환하고, 변환된 embedding vector들간에 거리를 계산해야 되기 때문입니다.

이러한 비효율적인 방법을 개선하기 위한 방법으로 다음과 같은 2가지 해결책이 있습니다.

  • generate triplet offline:
    network 학습의 n step마다, 가장 최근에 학습된 checkpoint network를 이용해서 데이터 셋의 임의의 일부 집합에 대해 hard positive (\(argmax\))와 hard negative (\(argmin\))을 구하는 방법
  • generate triplet online:
    network 학습 시, mini-batch 내의 샘플들에 대해서 hard positive와 hard negative example 들을 구하는 것

이 논문에서는 online triplet mining 방식으로 triplet 을 샘플링하는 것에 초점을 맞추어서 학습했으며, positive example의 경우, mini-batch 내에서 hard positive를 계산해서 샘플링 (batch bard)하지 않고, mini-batch 내에서 가능한 모든 positive example (batch all) 을 샘플링했습니다. 논문에 따르면 positive example 에서는 batch hard 보다는 batch all 방식으로 샘플링했을 때 학습 속도가 약간 더 빨랐다고 하네요.

negative example의 경우, hard negative example 만 샘플링해서 학습시킬 경우 \(f(x) = 0\) 이 될 수 있고, network 학습에서 bad local minima에 쉽게 빠지기 때문에, 논문에서는 다음 수식을 만족하는 semi-hard 방식으로 negative example을 샘플링했습니다.

\[||f(x_i^a) - f(x_i^p)||_2^2 < ||f(x_i^a) - f(x_i^n)||_2^2\]

이 방식으로 샘플링된 negative example 들은, anchor example을 기준으로 positive example 보다는 거리가 멀지만, negative 로 분류되기 어려운 샘플들로, 수식 (1)에서 margin \(\alpha\)에 놓여있는 샘플들을 의미합니다.

How to implement TRIPLET NETWORK?

// 향후 구현 예정 //

Results

// 향후 구현 예정 //

References

[1] FaceNet: A Unified Embedding for Face Recognition and Clustering, 2015 [paper]