Neural Networks

What are Neural Networks?

Neural Networks are simplified computer simulation of neurons and synapses. There are several models of Neural Networks. The most popular is the BackPropagation model.

Trained vs Programmed

Although Neural Networks engines are either programmed or implemented in hardware with traditional programming techniques, the main advantage of Neural Networks is that they are trained to do their jobs rather than programmed to do their job. In traditional software projects, an analyst will devise a set of algorithms, data structures, object classes and their methods so that the application follows the programmed algorithms to perform the job.

 With Backpropagation Neural Networks, an architecture of neurons with their interconnections is designed in such a way that it can accept a set of input data and produce a set of output data from it. Then the Neural Network is trained from a large set of representative input data with their corresponding output data. The Neural Network gradually adjusts its interconnection strenghts until the proper outputs, with small enough errors, are produced when presented coresponding inputs.

Once training is completed, the Neural Network can be applied to the job.

Cope well with unknown

One benefit of using Neural Networks for some types of jobs is that they can easily and reliably cope with new or unexpected situations. With traditionally programmed applications, if unexpected data or situations arrise, then the application will either behave erraticaly, produce wrong results or even crash.

This is not the case with Neural Networks which will produce an output data compatible with the internal model ot the problem space even if the given data was never seen while training. 

Neural Networks produce results within a prespecified error range so they are not designed to produce precise results but rather good results. For this reason, there are applications where Neural Networks are not appropriate. For instance, I would not like to have a Neural Network compute my paycheck.

Distributed knowledge

Neural Networks don't manipulate symbols or numbers the way programmed applications do. Neural Networks produce a model of the problem space within their set of weighted neural interconnections. The model is distributed inside those interconnections and it is difficult to assign any human figurable meaning to any of the individual interconnections.

Because of this knowledge distribution, a Neural Network is very robust if damaged. Several interconnections may be broken before a Neural Network starts producing unusable data.

Applications of Neural Networks

I did my master's thesis on the use of Neural Networks for the detection and replacement of missing values in databases. For the thesis, I developped a Neural Networks evaluation shell in C++. Before working for Micro-Intel in the Multimedia business, I did work for a robotic company named Geyser Robotique Inc. and I developped, among other things, a mobile robot navigation system based on Neural Networks. The Network received its data from ultrasonic sensors and wiskers and controlled the steering and speed of the robot. With this navigation system, the robot could move in any static or dynamic environment and bypass the obstacles. It could even get out of dead-ends.

3D character animation

During those days, I also worked on Neural Networks control systems for articulated robots. I think that the techniques developped then would be applicable to the control of articulated 3D characters.

Another area of animation that would benefit fron Neural Networks is Lip-Sync. Currently, doing lip-sync on characters requires a lot of work from the animator because of the way lips position are merged when we speak. It should be possible to train a Neural Network that would automatically compute those merges given a series of syllables.

BRDF modeling

Another area where Neural Networks can be used in 3D computer graphics is to model BRDFs (Bidirectional Reflectance Distribution Function). BRDFs are multi-dimentional functions which represent the reflectance of an object surface. This is related to light and view directions and specific for each surface type. Several approaches have been tried to model BRDF and none of then perform better than a Backpropagation Neural Network would do. They could be used with equal success for isotropic or anisptropic BRDFs.

e-Learner profiling

Today, I believe that the Neural Networks could be efficiently used within Multimedia eLearning Environment User Interfaces to model learner profile and knowledge level, adapt to their learning strategies and even proactively suggest learning paths.

 
{Contents}