<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Bird Classi cation using Ensemble Classi ers</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Leng Yi Ren</string-name>
          <email>yrleng@i2r.a-star.edu.sg</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jonathan William Dennis</string-name>
          <email>jonathan-dennis@i2r.a-star.edu.sg</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tran Huy Dat</string-name>
          <email>hdtran@i2r.a-star.edu.sg</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institute for Infocomm Research</institution>
          ,
          <addr-line>A</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>STAR</institution>
          ,
          <country country="SG">Singapore</country>
        </aff>
      </contrib-group>
      <fpage>654</fpage>
      <lpage>661</lpage>
      <abstract>
        <p>This working note summarizes our submission to the LifeCLEF 2014 Bird Task which combines the outputs from a Python and Matlab classi cation system. The features used for both systems include Mel-Frequency Cepstral Coe cients (MFCC), time-averaged spectrograms and the provided meta-data. The Python subsystem combines a large ensemble of di erent classi ers with di erent subsets of the features while the Matlab subsystem is an ensemble of the Random Forest and Linear Discriminant Analysis (LDA) classi ers using local spectral and meta features. By combining this disparate set of features and classi ers, we managed to achieve a Mean Average Precision (MAP) score that is far superior to what is possible with any single classi er.</p>
      </abstract>
      <kwd-group>
        <kwd>ensemble</kwd>
        <kwd>audio</kwd>
        <kwd>classi cation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        LifeCLEF 2014 Bird Task (BirdCLEF)[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] involves 14027 audio recordings
containing 501 bird species. In comparison, the 9th annual MLSP competition[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
involves 645 recordings with 19 bird species while the Neural Information
Processing Scaled for Bioacoustics (NIPS4B) bird song competition[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] involves 1000
recordings with 87 bird species. The greatly increased size in both the available
data and the number of target classes for BirdCLEF introduces new challenges.
      </p>
      <p>The total size of the audio database for both the MLSP and NIPS4B
challenges amounts to around 1GB while the BirdCLEF data is over 20GB in size.
The winning methods for the MLSP and NIPS4B challenges performed image
segmentation on the audio spectrograms followed by template matching to
derive class models. Based on the di erence in data size and the number of classes,
it can be extrapolated that using the same methods for BirdCLEF will require at
least a hundred fold increase in computation time. Given that the time between
the release of the training data and the nal test submission is only around three
months, it would not be e cient to try to reproduce the above methods given
our limited computing resources.</p>
      <p>All of our experiments on BirdCLEF are performed on standard 4-core
desktop PCs with 8GB of RAM thus there are severe constraints on the possible
machine learning methods that can be applied. Instead of attempting to build
a strong learner using well-engineered features, we chose to work on building a
number of weak learners with simple features and nding the optimal
combination of such learners.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Front-end</title>
      <p>We make use of both audio and meta data for our feature front-end as they
provide complementary information to the classi er. The total memory used in
the computation is heavily dependent on the size of the feature used thus it is
important to select a compact representation.
2.1</p>
      <sec id="sec-2-1">
        <title>MFCC</title>
        <p>The MFCC features provided by the organizers consist of a single log energy
coefcient and 15 cepstral coe cients, appended with the rst and second derivatives
for a total of 48 dimensions per time frame. For each audio clip, we perform a
simple energy-based segmentation by dropping all the time frames where the
value of the log energy coe cient is below the median value. The remaining
frames are further reduced by taking the maximum value for each of the 48
dimensions to arrive at a nal 48 dimension feature.
2.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>Spectral features</title>
        <p>
          The spectral features we used are similar to the spectrum-summarizing features
described in [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. The audio clips are converted into spectrograms by windowing
the audio into overlapping 200ms windows at 100ms intervals. The frequency
dimension is binned into n dimensions using a simple mean. The time dimension
is eliminated by taking the maximum value similar to the MFCC feature. Finally,
the natural logarithm is applied to the n dimension spectral features to reduce
its dynamic range.
2.3
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>Meta features</title>
        <p>In addition to the audio features described above, we also make use of the
metadata represented by the following eight elds:</p>
        <p>Latitude; Longitude; Elevation; Y ear; M onth; M onth + Day; T ime; Author
The M onth + Day eld combines the two-digit M onth and Day elds into a
single four-digit eld as comparing the Day elds across di erent months is
illogical.</p>
        <p>
          One of the challenges of BirdCLEF compared to MLSP which also provides
meta-data in the form of a numerical location index[
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] is the presence of
unreliable and missing data. The completion of the meta-data elds by the BirdCLEF
data contributors is optional with no enforced format. Unreliable information
such as \afternoon" or \am" in the T ime eld and completely missing entries
have to be manually parsed into logical numeric values for use as features and
their presence will a ect the performance of the classi ers.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Back-end</title>
      <p>Although the o cial labels for the audio data only gives a single bird species
as the ground truth given by ClassId, the BackgroundSpecies eld often list
additional bird species. However, like the meta-data, this eld is unreliable as
there is no indication if no additional species are present or identi ed, or if the
author simply did not complete this particular eld. We can only assume that
an empty BackgroundSpecies eld indicates that only the single species given
by ClassId is present.</p>
      <p>Another problem that arises due to the BackgroundSpecies eld is the
presence of bird species that are outside of the 501 species to be classi ed. For
the given training data, there are over three hundred additional species and we
chose to retain the sixteen extra species that have over eleven examples each
for a total of 517 target species. The remaining labels are ignored since there
are insu cient examples to train proper models for them. By making use of the
extra information from BackgroundSpecies, the number of examples for the
501 original target classes is also increased and the task becomes a multi-label
classi cation problem.
3.1</p>
      <sec id="sec-3-1">
        <title>Python</title>
        <p>
          The classi ers used in the Python subsystem are built from the scikit-learn
toolkit (sklearn)[
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. In order to build an ensemble of classi ers, we require the
classi ers to output probability estimates for each of the target classes so that the
nal output is simply a mean of the individual classi er outputs. The subsequent
computation of the Mean Average Precision (MAP) is also straightforward with
such class probability outputs as opposed to max voting. Out of the available
classi ers in the toolkit, we selected the following list to evaluate:
From the above list, only ExtraT reesClassif ier, RandomF orestClassif ier
and KN eighborsClassif ier are able to handle multi-label classi cation by
default. The OneV sRestClassif ier is used to transform the remaining binary
classi ers into multi-label multi-class classi ers.
3.2
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>Matlab</title>
        <p>Two classi ers are used in the Matlab subsystem: Random Forests using the
T reeBagger function and LDA using the Classif icationDiscriminant:f it
function, both of which were trained in a one-vs-rest con guration. Both of these
classi ers output probability estimates through the predict function and the
nal output is the mean of the individual classi er outputs. The T reeBagger
function was modi ed such that each tree in the forest was trained with a
balanced amount of negative data, as this was found to considerably improve the
speed of the classi cation without a ecting performance. In particular, each tree
was trained with all of the positive class data, and a random subset of the
negative data containing twenty times as much as the positive data. The number of
variables to sample at each node was set to 3, while the number of trees was set
to 200 for the nal evaluation run.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Experiment Setup</title>
      <p>To evaluate the performance of a feature and classi er combination, 10-fold
cross-validation is used on the given training data. The objective is to maximize
the MAP score of the system.
4.1</p>
      <sec id="sec-4-1">
        <title>Python subsystem</title>
        <p>From the list of feature front-ends and the selected classi ers from sklearn,
combinations of feature and classi er pairs are evaluated. This step took up
the bulk of our time as it involves the optimizing of feature settings, classi er
settings and the combinations of the two to build the nal ensemble classi er.
Out of the available classi ers, the following six were selected:</p>
        <sec id="sec-4-1-1">
          <title>1. Linear Discriminant Analysis (LDA), LDA in sklearn 2. Logistic Regression (LR), LogisticRegression in sklearn 3. Support Vector Machines (SVM) with Radial Basis Function (RBF) kernel,</title>
          <p>SV C in sklearn
4. AdaBoost (AdaB), AdaBoostClassif ier in sklearn
5. K-Nearest Neighbours (KNN), KN eighborsClassif ier in sklearn
6. Random Forests (RanF), RandomF orestClassif ier in sklearn</p>
        </sec>
        <sec id="sec-4-1-2">
          <title>For the feature front-end, three combinations were selected:</title>
          <p>1. M eta + M F CC +</p>
          <p>SVM
2. M eta + M F CC + Spec10030, used with AdaB and KNN
3. M eta, used with RanF</p>
        </sec>
        <sec id="sec-4-1-3">
          <title>M F CC + Spec10 + Spec10030, used with LDA, LR and</title>
          <p>M F CC refers to the rst 16 dimensions of the described 48 dimension feature
while M F CC are the next 16 dimensions (indices 17 to 32) which represents
the rst derivatives or deltas. Spec10 refers to the spectral features with n = 10
and Spec10030 are the rst 30 dimensions of the spectral features with n = 100.
M eta refers to the eight dimension meta features.
4.2
Only one feature con guration is used with the Matlab subsystem. Using the
same terminology as above, the features can be denoted M eta + Spec40, with
n = 40 dimensions used for the spectral feature concatenated with the eight
dimensions of the meta features. However, instead of taking the maximum over
the whole time frame, as with the Python subsystem, local spectral features are
generated by taking the maximum within selected local windows. Each window is
0.5 seconds long, and the step is equivalent to the frame increment. The energy of
each window is calculated simply as the average log-energy over the window, and
is then used as a metric for selecting the windows for classi cation. Only those
windows that are represent local maxima in the energy function are retained,
with the remaining windows discarded. The idea is that the windows containing
local maxima in the energy will correspond to local instances of the bird song
in the clip, hence provide a complimentary source of information to the global
features used in the Python subsystem.
5</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Results and Discussion</title>
      <p>Although we train the classi ers on 517 target species, the results presented only
consider the actual 501 target species (MAP with k = 501).
5.1</p>
      <sec id="sec-5-1">
        <title>Python subsystem</title>
        <p>The results shown in Table 1 give a rough breakdown of the individual
components of the Python subsystem. For the sake of brevity, the other combinations
of the six selected classi ers are not shown. The Audio and M eta columns show
how each classi er performs when the complementary meta or audio features
are removed. For all but the KNN classi er, combining both audio and meta
0.220 0.195 0.274
features is shown to improve the classi er performance. Although the KNN
classi er is shown to give a better MAP score with the meta feature alone, when
combined with the other classi ers in an ensemble, adding the audio features is
found to result in a better score overall. It is interesting to note that using the
8-dimension meta features alone with the chosen classi ers can give a reasonable
score of 0.200, highlighting the value of using meta-data for classi cation tasks.</p>
        <p>Table 2 shows the approximate computation time for the Python subsystem.
One of our objectives is to design a system with a short turnaround time as
the search space for the system parameters is huge. With each new dataset, it
is likely that the optimal system con guration in terms of feature and classi er
choices will be di erent thus it will be necessary to retune the entire system
from scratch. There is a large discrepancy in the computation time required for
5 min 15 min 1h 10 min 11 min 17 sec 8 min
each of the classi ers chosen that is partly attributed to the di erent feature
combinations used. The strength of using an ensemble of classi ers is the option
to mix and match di erent combinations of the components to suit particular
demands for performance and computation cost. The three fastest classi ers
(LDA, KNN and RanF) combine to give an ensemble which runs in less than 15
minutes with a respectable score of 0.290. In contrast, removing RanF from the
six classi er ensemble only saves 8 minutes but reduces the score from 0.313 to
0.274. There are no general rules determining the performance of each speci c
combination, especially if the dataset is changed, thus it is usually necessary to
perform an exhaustive search to nd the optimal system.</p>
        <p>Another strength of the ensemble classi er is how the individual classi ers
complement each other. For most of the classi ers tested, it is possible to improve
the individual score at the cost of computation time by changing parameters
such as increasing the number of iterations or the number of neighbours to
query. However, these improvements do not necessarily transfer to the ensemble
classi er when they are combined as the individual gains are made obsolete
through the contributions of the other classi ers. Depending on the classi ers
used, it is often possible to replicate a computation-intensive performance gain
from a classi er.
5.2</p>
      </sec>
      <sec id="sec-5-2">
        <title>Matlab subsystem</title>
        <p>The results shown in Table 3 give a breakdown of the individual components
of the Matlab subsystem using the combined Audio + M eta features. It can be
seen that the LDA classi er is performing relatively poorly, perhaps due the
number of false positives in the features. These false positives arise from using
local features that are extracted from local maxima in the energy, and hence may
represent noise or other information that is not related to the target bird species.
On the other hand, the random forest classi er is able to select the features that
best separate the target classes, and this allows it to handle a large number
of false positives in the labelled data. Combining the two classi ers together
increases the score, giving an MAP of 0.222 on the cross-validation.</p>
        <p>Due to time constraints, we did not manage to evaluate the performance of
the combined Python and Matlab system through cross-validation. Table 4 shows
the nal results for our proposed systems on the evaluation data. Compared to
Table 1, the Python subsystem shows a 10% relative loss with the inclusion
of BackgroundSpecies. This might be due to the use of a lower k value when
evaluating the MAP score or a mismatch between the training and evaluation
data. The combined system is found to improve on the Python subsystem score
slightly despite the poor performance of the Matlab subsystem.</p>
        <p>Our system was trained as a multi-label classi er and this is re ected by the
lower score when the background species are removed (MAP 2). Interestingly,
we are the only group that has a lower MAP 2 score than MAP 1, indicating
that we are the only group that focussed only identifying the background species
as well as the dominant species.
6</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <p>The challenges presented by BirdCLEF include the large amount of provided
data, the large number of target species to be classi ed, incomplete or
inaccurate multi-class labels and missing and unreliable meta-data. The limited time
between the release of the training data and the nal submission and the
limited computing resources available to our group are additional obstacles we faced.
With these limitations in mind, we designed an ensemble classi er that combines
the output from a number of individually weak learners using simple features
that are fast to train and test. The nal system is shown to provide greatly
improved results over the component classi ers and the fast turnaround time
allows the setup to be quickly calibrated for new tasks and datasets.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Goeau, H.,
          <string-name>
            <surname>Glotin</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vellinga</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Rauber</surname>
          </string-name>
          , A.:
          <article-title>LifeCLEF Bird Identi cation Task 2014</article-title>
          .
          <source>CLEF working notes 2014</source>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Cappellato</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ferro</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Halvey</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Kraaij</surname>
          </string-name>
          , W., editors (
          <year>2014</year>
          ):
          <article-title>CLEF 2014 Labs and Workshops, Notebook Papers</article-title>
          .
          <source>CEUR Workshop Proceedings (CEURWS.org)</source>
          ,
          <source>ISSN 1613-0073</source>
          , http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>1180</volume>
          /
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Briggs</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          , et al.:
          <article-title>The 9th annual MLSP competition: New methods for acoustic classi cation of multiple simultaneous bird species in a noisy environment</article-title>
          .
          <source>Machine Learning for Signal Processing (MLSP)</source>
          ,
          <source>2013 IEEE International Workshop on</source>
          , pp.
          <volume>1</volume>
          ,
          <issue>8</issue>
          ,
          <fpage>22</fpage>
          -
          <lpage>25</lpage>
          Sept. 2013
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Glotin</surname>
            <given-names>H</given-names>
          </string-name>
          ,
          <string-name>
            <surname>LeCun</surname>
            <given-names>Y</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Artieres</surname>
            <given-names>T</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mallat</surname>
            <given-names>S</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tchernichovski</surname>
            <given-names>O</given-names>
          </string-name>
          , et al:
          <source>Proc. of Neural Information Processing Scaled for Bioacoustics: from Neurons to Big Data - NIP4B</source>
          ,
          <year>2013</year>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Pedregosa</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          , et al.:
          <article-title>Scikit-learn: Machine Learning in Python</article-title>
          .
          <source>Journal of Machine Learning Research</source>
          , vol
          <volume>12</volume>
          ,
          <volume>2825</volume>
          {
          <fpage>2830</fpage>
          ,
          <year>2011</year>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>