What are ANNs good at?

Started by
6 comments, last by Russell 20 years, 3 months ago
What kinds of things are ANNs good at doing, and what are they not good at? Obviously there is some point at which they aren''t as useful, since I know they can learn bitwise OR (pretty simple), but can''t play chess very well (pretty difficult, even for some of us humans ). The reason I ask is because I see a lot of people (not necessarily in this forum, but I see it here some) immediately jump to ANNs as the solution to any problem involving intelligent behaviour of the computer, and frankly, I don''t know what their limits are either
Advertisement
They recognise patterns in a set of data. That''s pretty much all they do. However this is obviously a very desirable feature as pretty much any sort of system requires some degree of perception before choosing a reaction. They''re good in situations where you have potentially noisy data or data that doesn''t fit into nice discrete values, as a well-trained ANN should be weighted in such a way that the important information is extracted. But obviously they are not planning algorithms and do not exhaustively cover every possiblity when guessing an output based on the inputs. In a game like chess, 2 almost-identical board positions with just 1 pawn in a different place could imply assured victory for a different side in each case, and situations like this where a small change in input can mean a drastic change in output are likely to be hard for any basic pattern-classifier to recognise, I expect.

[ MSVC Fixes | STL Docs | SDL | Game AI | Sockets | C++ Faq Lite | Boost
Asking Questions | Organising code files | My stuff | Tiny XML | STLPort]
Wouldn''t it be possible to implement some sort of recurse/iterative logic by having neurons fire backwards (as in to a previous layer)? And perhaps a memory system, by having a cluster of neurons that are "charged", with a layer of control neurons that take input passes on to the cluster..
I''m all new to AI btw, so I''m really just airing ideas to see how silly they are
Sounds like recurrent neural networks to me. But to speak of ''iterative'' logic is perhaps a bit misleading, as you still just get an input->output mapping without any kind of repetition.
I was thinking more in the lines of getting a system to for example approximate sums of series of number, or the sum of all numbers from n to m.. those two being the input, the system would need some sort of iterative logic to "compute" the end result

[edited by - BiTwhise on January 13, 2004 8:31:44 PM]
quote:Original post by Kylotan
They recognise patterns in a set of data.


That''s a little misleading Kylotan. ANNs are classifiers, nothing more, nothing less. They can be trained to partition an input space along classification boundaries and thus, given a previously unseen instance of data that falls within the training domain they can determine which side of each of the boundaries the datum resides, thus uniquely identifying the class membership. One of their strengths, which is also one of their weaknesses, is their ability to formulate boundaries in the presense of noisy data. The network topology dictates the extent to which the class boundaries are affected by noise.

Other than that, Kylotan is correct in saying that ANNs are useful where you need to determine how a perception relates to previous perceptions you have seen (or been trained on). This is a fundamental task in AI. However, ANNs are not the only, nor necessarily the best tool to use in every such situation.


quote:Original post by BiTwhise
Wouldn''t it be possible to implement some sort of recurse/iterative logic by having neurons fire backwards (as in to a previous layer)? And perhaps a memory system, by having a cluster of neurons that are "charged", with a layer of control neurons that take input passes on to the cluster..


Three words: spiked neural networks . Also known as neuronal networks. In biological neuronal systems, encoded information can be observed by the number and frequency of discharge spikes propogating in a neuron. (Side note: it''s not strictly true to say all information is encoded in spikes, because some information is also encoded in the local concentration gradients of intra-cellular and extra-cellular ions, while other information is encoded in the time varying phase synchronisation between neuronal clusters). SNNs and neuronal networks include inhibitatory and excitatory network connections in a non-layered topology, meaning that information isn''t solely propogated from inputs to outputs, but also around network loops. In this way, they exhibit a kind of time-local memory. Of course, they''re also harder to work with than typical feed-forward networks.

I hope this helps with your understanding.

Cheers,

Timkin
quote:Original post by Russell
What kinds of things are ANNs good at doing, and what are they not good at?



First, realize that there are many (!) neural architectures. They can be used for a number of information processing tasks, but the most common by far is estimation/classification (including the distinct subsets of reinforcement learning and anomaly detection). A smaller number are used for clustering, and a tiny number have been used for other stuff like optimization, oscillation, etc.

Restricting our attention to the most common estimators/classifiers, they: almost always are constructed through a training process (an advantage in data rich, knowledge poor environments) and are typically better at "shallow" problems (those not requiring long chains of inference, although some work has been done along these lines).

In statistical applications, being non-parametric, artificial neural networks are less powerful (statistical sense) than parametric models, but involve less assumptions.

Contrary to popular opinion, they need not be slow to train or execute, although there are many potential pitfalls in their construction for people unused to empirical modeling (which includes most game programmers I''ve encountered).

-Predictor
http://will.dwinnell.com





Yeah, when I said patterns, that implies some sort of sequence, which is not what I meant. What I actually meant is more that it is not limited to looking at inputs in isolation but can classify things based on the relationships between the input elements. I was not using the ''classification'' terminology but that is exactly what I meant.

This topic is closed to new replies.

Advertisement