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
_______________________________________
·
Enter the sample input into the existing network and
compute the output for each node in the system.
·
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.