Connexions

You are here: Home » Content » Neural Networks
Content Actions
Lenses

What is a lens?

Lenses

A lens is a custom view of Connexions content. You can think of it as a fancy kind of list that will let you see Connexions through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to Connexions materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual Connexions member, a community, or a respected organization.

This content is ...
Affiliated with (?)
This content is either by members of the organizations listed or about topics related to the organizations listed. Click each link to see a list of all content affiliated with the organization.
  • This module is included inLens: Rice University ELEC 301 Project Lens
    By: Rice University ELEC 301As a part of collection:"ECE 301 Projects Fall 2003"

    Click the "Rice University ELEC 301 Projects" link to see all content affiliated with them.

    Rice University ELEC 301 Projects
  • This module is included inLens: Rice University OpenCourseWare
    By: OpenCourseWare ConsortiumAs a part of collections:"Music Classification by Genre", "ECE 301 Projects Fall 2003"

    Click the "Rice University OCW" link to see all content affiliated with them.

    Rice University OCW
Tags

(?)

These tags come from the endorsement, affiliation, and other lenses that include this content.

Neural Networks

Module by: Mitali Banerjee

Summary: Neural networks are a different paradigm for computing based on the parallel architecture of animal brains.

At their core, neural networks are pattern recognition systems. They predict an output given a sequence of inputs and their corresponding classification. They are based on biological nervous systems, in which there are many inputs and numerous outputs to a single neuron. On the highest level, the neural network is a primitive learning machine that can be used to process data such as stock market quotes, DNA sequences, and in our case, music classification.
Neural networks are systems that take a lengthy input, process the data, and predict an output.
neuralnet.gif
Figure 1
The processing is done by multiple, weighted layers of nodes. Each node is connected to every node in the next layer, and at each interface between nodes are connecting fibers weighted by a sum. Neural networks are given a vector of inputs, usually longer than the output. The first layer of nodes is the same length as the input. The nodes at each successive layer sum their inputs, weight the sum, and produce an output. The output of the final layer is the output of the system. In this manner, an output is predicted given an input.
The remaining question is how the weights are determined. The use of neural networks is twofold: you must first "train" the network by giving it inputs and their corresponding outputs, and then you may test the network by giving it inputs with no outputs. The training determines the weighting on the nodes. For example, we train the neural network by giving it the vectors of signal processing data (bandwidth, power spectral density, etc.) as well as the corresponding classification of music. Classical music is denoted as [1 0 0 0 0 0], jazz is denoted as [0 1 0 0 0 0], etc., as shifted delta functions.
There are many methods to train neural networks, but the one we use is called backpropogation. The neural network takes the input and feeds it through the system, evaluating the output. It then changes the weights in order to get a more accurate output. It continues to run the inputs through the network multiple times until the error between its output and the output you gave it is below a defined tolerance level.
After training is completed, we test the neural network with songs that it has never seen before. It predicts a classification of genre based on the weights it created during training.
To train the neural network, we used the method of back propagation. There were 15 nodes in the hidden layer, and we used an adaptive learning rate training function. This means that the network analyzed its learning rate after each iteration, changing it to remain relatively constant. For instance, if the learning curve is too steep, and the network is learning too quickly, it decreases its learning rate, and vice-versa. This is a graph of the error (learning rate) versus time:
errorvsiteration.gif
Figure 2: Error in the neural network decreases with each successive iteration.

Comments, questions, feedback, criticisms?

Send feedback