Re: Machine learning
- From: "Nils Haeck" <bla@xxxxxxx>
- Date: Wed, 14 Mar 2007 02:02:08 +0100
Neural networks are officially called "Artificial Neural Networks", or ANN.
They usually consist of neurons, or nodes. There's normally 3 layers: the
input layer, the intermediate layer and the output layer. The nodes in the
intermediate layer are each connected to *all* inputs, the nodes in the
output layer are each connected to *all* intermediate layer nodes.
The nodes' "tentacles" (also called receptors) have weights, which determine
how much influence an input has on this node. The calculation of the final
node value is not a linear function, but a non-linear one (for good
reasons). It is the sum of all weight * input values, then put through the
"sigmoid" function.
The way the ANN calculates its result is by taking the inputs, and
calculating all intermediate values, then output values. Of course, with
initial "identity" weights, the outputs make no sense. So in order to make
the network do something useful, you must train it. If an output has an
error compared to what it should give as output, you feed back this error
into the network using a method called "back-propagation". After a while
(usually a *lot* of training samples), your network will start to be "smart"
and useful. So a ANN basically emulates how a biological network of neurons
work, or popularly said, it emulates a "brain". Of course, the human brain
has perhaps billions of neurons, and they all work in parallel, modern
computer hardware does not yet come near that performance.
One example:
- The inputs are the pixels of an 8x8 block of pixels (64 inputs),
containing gray scale values, the 8x8 block being e.g. a character.
- There are 26 outputs, for characters A..Z.
- Train the network until it recognises characters reliably.. So that when
the input block has a letter "A", the output for A is 1 and the rest is 0.
- After the training you can use the network to recognise characters, taking
the output with the highest value as the character most reliably recognised.
In your case, the inputs should basically be all the parameters for a packet
that you can think of, and the output can be just one, the priority I
proposed. The intermediate layer usually contains about 10% the number of
nodes as the input layer, or some reasonable number inbetween the
input/output node count.
If you want to read up, I'd advise you to read chapter 26 from the book
"Guide to Digital Signal Processing", which is available online.
http://www.dspguide.com/pdfbook.htm
Nils
"Jonathan Neve[Microtec]" <jonathan@xxxxxxxxxxx> schreef in bericht
news:xn0f3nz7e39uqs6000jmn_microtec@xxxxxxxxxxxxxxxxxxxxx
Hi Nils,
Thanks for the interesting answer.
Nils Haeck wrote:
You can do this most easily (I think) with a neural network. There
are some Delphi implementations around.
I don't know much about that -- would you care to expound? :)
--
Best regards,
Jonathan Neve
_______________
CopyTiger - advanced database replicator for Interbase/Firebird!
Web : http://www.microtec.fr/copycat/ct
_______________________________________
CopyCat - database replication components for Delphi/C++Builder!
Web : http://www.microtec.fr/copycat/cc
.
- Follow-Ups:
- Re: Machine learning
- From: Jonathan Neve[Microtec]
- Re: Machine learning
- References:
- Machine learning
- From: Jonathan Neve[Microtec]
- Re: Machine learning
- From: Nils Haeck
- Re: Machine learning
- From: Jonathan Neve[Microtec]
- Machine learning
- Prev by Date: Re: Looking for help file creator
- Next by Date: Re: DevExpress
- Previous by thread: Re: Machine learning
- Next by thread: Re: Machine learning
- Index(es):
Relevant Pages
|