Artificial Intelligence Algorithms Question:
What is Back propagation in Neural Networks?
Answer:
A back-propagation neural network is only practical in
certain situations. Following are some guidelines on when
you should use another approach:
Can you write down a flow chart or a formula that
accurately describes the problem? If so, then stick with a
traditional programming method.
Is there a simple piece of hardware or software that
already does what you want? If so, then the development
time for a NN might not be worth it.
Do you want the functionality to "evolve" in a direction
that is not pre-defined? If so, then consider using a
Genetic Algorithm (that's another topic!).
Do you have an easy way to generate a significant number of
input/output examples of the desired behavior? If not, then
you won't be able to train your NN to do anything.
Is the problem is very "discrete"? Can the correct answer
can be found in a look-up table of reasonable size? A look-
up table is much simpler and more accurate.
Are precise numeric output values required? NN's are not
good at giving precise numeric answers.
Conversely, here are some situations where a BP NN might be
a good idea:
A large amount of input/output data is available, but
you're not sure how to relate it to the output.
The problem appears to have overwhelming complexity, but
there is clearly a solution.
It is easy to create a number of examples of the correct
behavior.
The solution to the problem may change over time, within
the bounds of the given input and output parameters (i.e.,
today 2+2=4, but in the future we may find that 2+2=3.8).
Outputs can be "fuzzy", or non-numeric.
certain situations. Following are some guidelines on when
you should use another approach:
Can you write down a flow chart or a formula that
accurately describes the problem? If so, then stick with a
traditional programming method.
Is there a simple piece of hardware or software that
already does what you want? If so, then the development
time for a NN might not be worth it.
Do you want the functionality to "evolve" in a direction
that is not pre-defined? If so, then consider using a
Genetic Algorithm (that's another topic!).
Do you have an easy way to generate a significant number of
input/output examples of the desired behavior? If not, then
you won't be able to train your NN to do anything.
Is the problem is very "discrete"? Can the correct answer
can be found in a look-up table of reasonable size? A look-
up table is much simpler and more accurate.
Are precise numeric output values required? NN's are not
good at giving precise numeric answers.
Conversely, here are some situations where a BP NN might be
a good idea:
A large amount of input/output data is available, but
you're not sure how to relate it to the output.
The problem appears to have overwhelming complexity, but
there is clearly a solution.
It is easy to create a number of examples of the correct
behavior.
The solution to the problem may change over time, within
the bounds of the given input and output parameters (i.e.,
today 2+2=4, but in the future we may find that 2+2=3.8).
Outputs can be "fuzzy", or non-numeric.