Recent

Author Topic: Conscious Artificial Intelligence - How to Start  (Read 2951 times)

schuler

  • Full Member
  • ***
  • Posts: 223
Re: Conscious Artificial Intelligence - How to Start
« Reply #15 on: December 12, 2019, 04:30:45 pm »
I've been obsessed with https://github.com/joaopauloschuler/neural-api/tree/master/examples/GradientAscent and Generative Adversarial Networks (GANs). Anyway, will look at this thread today.
« Last Edit: December 12, 2019, 04:34:27 pm by schuler »

schuler

  • Full Member
  • ***
  • Posts: 223
Re: Conscious Artificial Intelligence - How to Start
« Reply #16 on: December 12, 2019, 05:41:52 pm »
Your input training (train_output.csv) data is unbalanced. The second class has 14 elements and the third class has only 3 elements. You need the same number of entries for each class.

There is a problem at CreateNetwork: the last layer should be softmax. The layer preceding softmax should be a linear fully connected.

Code: Pascal  [Select][+][-]
  1.   _NNet.AddLayer( TNNetFullConnectLinear.Create(Length(TOutputArray)) );
  2.   _NNet.AddLayer( TNNetSoftMax.Create());

Recommend having your training output set with TVolume.SetClassForSoftMax and inferring the class should be with TVolume.GetClass().

You can re-encode the training output with:
Code: Pascal  [Select][+][-]
  1. _Output.SetClassForSoftMax(_Output.GetClass());

Having only 3 elements for a class isn't enough. For hard problems (such as image classification), I like having from 5000 to 10000 elements per class as minimum. How many training elements per class do you need? I don't know but I know that 3 isn't enough.

If, after these changes, model is still not converging towards a good solution, please feel free to ask for further help.
« Last Edit: December 12, 2019, 06:12:30 pm by schuler »

 

TinyPortal © 2005-2018