dunno if I understood you right, but in my opinion these suspicious random values and 10.000.000 neurons sounds very very weird. Did you already check the cascade correlation algorithm ? your approach may be similar to this ...
@$3.1415rin
Neuron generator
I''ve just read about it. It''s still a bit differant, because i am changing the adjustment ( magnitude if thats a better word for it ) for each unit, depending on the best unit. I didnt read that though, but for the rest, its almost the same.
Creating a construction algorithm isn''t that big of a deal. Creating one that does not under or over generalize, maintains a minimal number of neurons, and can learn the two-spirals problem is interesting.
Try your ''neuron generator'' on a problem that isn''t 1 dimensional and let us know the results.
- mongrelProgrammer
Try your ''neuron generator'' on a problem that isn''t 1 dimensional and let us know the results.
- mongrelProgrammer
- I hate these user ratings. Please rate me down. (Seriously) -
Already did such thing, but not with the neuron generator though. The options where "food" and "water". After a while it goes well. And it only had a few neurons.
do you really think anybody understands what you mean when you talk about "water" and "food" ? If you want to tell us about your project, please be a bit more specific. thx
btw, results of the two spirals problem would be really nice :D
@$3.1415rin
btw, results of the two spirals problem would be really nice :D
@$3.1415rin
quote: Original post by AIRmichael
Already did such thing, but not with the neuron generator though. The options where "food" and "water". After a while it goes well. And it only had a few neurons.
I am not surprised that you were able to construct a design by hand, but I am more interested in your ''neuron generator''.
I am not sure what you mean by ''food'' and ''water''. If these are two possible decisions that are represented by opposite ends of the output spectrum then the problem could still be (and probably is) linear. I am looking for a highly dimensional problem to test your ''neuron generator'' (hence my sugestion of the two-spirals problem). I would be interested to see the results of such a problem, or perhaps, a more indepth description of your ''food'' & ''water'' problem.
- mongrelProgrammer
- I hate these user ratings. Please rate me down. (Seriously) -
Unfortunately, I can''t even figure out what on earth what the OP is talking about! I mean, what exactly is a "neuron generator"?
I see English isn''t your first language so it must be difficult to get your idea across sometimes. Is it possible to illustrate your idea with a little code?
Stimulate
I see English isn''t your first language so it must be difficult to get your idea across sometimes. Is it possible to illustrate your idea with a little code?
Stimulate
My Website: ai-junkie.com | My Books: 'Programming Game AI by Example' & 'AI Techniques for Game Programming'
I forgot to mention... if you don''t know what the two spiral problem is have a look here:
http://www.faqs.org/faqs/ai-faq/neural-nets/part3/section-10.html
Stimulate
http://www.faqs.org/faqs/ai-faq/neural-nets/part3/section-10.html
Stimulate
My Website: ai-junkie.com | My Books: 'Programming Game AI by Example' & 'AI Techniques for Game Programming'
I''ll read about the 2 spiral problem later on, its to hot to read that much
Either way, the food and water prob was still linear though. Allthough I also did something else for the "food" problem. I layed the food at differant area''s. The chosen food was just picked randomnly. With only the "speed" neuron, it goes faster/slower at situations where the food was close and further away. Combined with the distance, it afcourse goes faster and faster.
Heres a piece of code btw of the neurons being added (not the food/water prob):
void Neurons::neuronGen(int scanned_neuron)
{
neuron_gen_output[scanned_neuron] = (rand()%random) * 1.0f + adjustment_gen[scanned_neuron];
// calculate the score
if (neuron_gen_output[scanned_neuron] > desired_gen_output)
{
neuron_gen_score[scanned_neuron] = neuron_gen_output[scanned_neuron] - desired_gen_output;
}
if (neuron_gen_output[scanned_neuron] < desired_gen_output)
{
neuron_gen_score[scanned_neuron] = desired_gen_output - neuron_gen_output[scanned_neuron];
}
etc...
Find the best neuron...
for (int n = 0; n < neuron_gen_number; n++)
{
adjustment_gen[n] = adjustment_gen[neuron_gen_best];
}
Signal strength ( not finished atm )
void Neurons::signalStrength()
{
signal_strength = neuron_precision_float + (rand()%10 / 10.0f) + signal_adjustment;
// improvement
if (brain_improvement < brain_improvement_old)
{
if (signal_strength > signal_strength_old)
signal_adjustment += 1.0f;
if (signal_strength < signal_strength_old)
signal_adjustment -= 1.0f;
}
// not a improvement
if (brain_improvement > brain_improvement_old)
{
if (signal_strength > signal_strength_old)
signal_adjustment -= 1.0f;
if (signal_strength < signal_strength_old)
signal_adjustment += 1.0f;
}
signal_strength_old = signal_strength;
}
This is just a part of the code though
Either way, the food and water prob was still linear though. Allthough I also did something else for the "food" problem. I layed the food at differant area''s. The chosen food was just picked randomnly. With only the "speed" neuron, it goes faster/slower at situations where the food was close and further away. Combined with the distance, it afcourse goes faster and faster.
Heres a piece of code btw of the neurons being added (not the food/water prob):
void Neurons::neuronGen(int scanned_neuron)
{
neuron_gen_output[scanned_neuron] = (rand()%random) * 1.0f + adjustment_gen[scanned_neuron];
// calculate the score
if (neuron_gen_output[scanned_neuron] > desired_gen_output)
{
neuron_gen_score[scanned_neuron] = neuron_gen_output[scanned_neuron] - desired_gen_output;
}
if (neuron_gen_output[scanned_neuron] < desired_gen_output)
{
neuron_gen_score[scanned_neuron] = desired_gen_output - neuron_gen_output[scanned_neuron];
}
etc...
Find the best neuron...
for (int n = 0; n < neuron_gen_number; n++)
{
adjustment_gen[n] = adjustment_gen[neuron_gen_best];
}
Signal strength ( not finished atm )
void Neurons::signalStrength()
{
signal_strength = neuron_precision_float + (rand()%10 / 10.0f) + signal_adjustment;
// improvement
if (brain_improvement < brain_improvement_old)
{
if (signal_strength > signal_strength_old)
signal_adjustment += 1.0f;
if (signal_strength < signal_strength_old)
signal_adjustment -= 1.0f;
}
// not a improvement
if (brain_improvement > brain_improvement_old)
{
if (signal_strength > signal_strength_old)
signal_adjustment -= 1.0f;
if (signal_strength < signal_strength_old)
signal_adjustment += 1.0f;
}
signal_strength_old = signal_strength;
}
This is just a part of the code though
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement