Neural Network Approach to Bird Song Recognition and Response

An independent study by Derek Messie under Professor Bart Selman

 

Project Overview

This project involves developing a machine that will identify individual banded wren bird songs that it has learned to recognize through a neural network backpropagation strategy. Learning will occur through the introduction of many sample inputs of each distinct song sample. The machine will analyze each input song to determine if it has learned it in the past. If it has, it will respond with an appropriate bird song reply. Otherwise, it will notify the user that the song is not yet learned.

 

Project Objectives

  Implement a successful stochastic gradient descent algorithm to accomplish the machine learning requirements of the project. Analyze the major strengths and weaknesses of the algorithm as they are revealed throughout project development.

  Organize a network of nodes into an efficient backpropagation pattern that is capable of carrying out the goal of bird song recognition.

 

Inputs / Outputs

Input will be received from actual field recording samples that have been translated into a numeric frequency analysis from a spectrum analyzer developed by John Burt with the Bioacoustics program at the Lab of Ornithology. Both frequency and amplitude components are evaluated at set time intervals for the duration of each song.

Output will be delivered by playing a recording of the appropriate bird song response.

 

Algorithms

The project will use a stochastic gradient descent version of the backpropagation algorithm to update node weights until the defined songs are learned and can be recognized consistently. The general backpropagation layout can be found in figure 1, while the specific gradient descent algorithm (Mitchell, 1997) is in figure 2.

 

 

figure 1

 

_______________________________________

  1. Initialize all initial network weights to small random numbers.
  2. For each set of sample input and expected output, perform the following :
  1. Propagate the input forward through the network :

·        Enter the sample input into the existing network and compute the output for each node in the system.

  1. Propagate the errors backward through the network :

·        Calculate the error term d k for each network output unit.

·        d k ¬ ok(1- ok) (tk- ok)

·        Calculate the error term d h for each hidden network unit.

·          d h ¬ oh(1- oh) å kÎ outputs wkhd k

·        Update each network weight wji .

·        wji ¬ wji + change(wji),

where change(wji) = h d jxji

 

d k : error term for each network output unit

ok : observed output of output network node

tk : target output of network node

d h : error term for each hidden network unit

oh : observed output of hidden network node

wji : weight from unit i to unit j

xji : input from unit i into unit j

_______________________________________

figure 2 (Mitchell, 1997)

 

 

 

References

 

Churchland, Paul M., The Engine of Reason, the Seat of the Soul, MIT Press, 1995.

Kompe, Ralph, Prosody in Speech Understanding Systems, Springer-Verlag Berlin Heidelberg, 1997

McClelland, James L., Rumelhart, David E., Parallel Distributed Processing : Explorations in the Microstructure of Cognition, MIT Press, 1988.

Mitchell, Tom M., Machine Learning, McGraw-Hill Companies, Inc., 1997.