1

I have recently implemented a basic algorithm of PSO which when provided with a function of 2 variables(x,y) would return the minima of the function within a range.

Now the issue is - the function is not known. My PS is to be fed with data sets (the data sets could be from various domains - like mobile computing). For instance let it be tuples of the form: (x,y,f(x,y)). [During the learning phase the optimum value is provided too.] After some 1000s of sample data, the PS would be tested with another set of data. The PS should supposedly return the optimum value, i.e. given (x,y) return f(x,y).

The problems seems to me very similar as ANN. I have no idea how to proceed on this - should my PS try and generate a polygon?

Andreas
  • 6,447
  • 2
  • 34
  • 46
letsc
  • 2,075
  • 5
  • 24
  • 43
  • What is a "polygon of 2 variables" and what would the minima of a polygon be? A polygon is a 2 dimensional figure with an arbitrary number of edges. Please explain. – Andreas Nov 12 '11 at 08:49
  • Are you confusing Particle Swarm Optimisation with Machine Learning? PSO finds the optimum of a particular problem. ML tries to learn patterns within data to classify (or evaluate) new data. – mitch Nov 16 '11 at 19:14
  • Actually I am trying to make a neuro-genetic Hybrid System. – letsc Nov 27 '11 at 14:04

1 Answers1

0

From your description, I understand you intend to use PSO for function approximation. So that for a dataset containing many lines of values x, y, z; you want to use a PSO to find a function f(x, y) which approximates z (i.e. the error |z - f(x,y)| is small). I think you might have some of the terms wrong, though; particularly, I imagine by polygon, you mean 'polynomial'. And yes, you can use polynomials for function approximation. For instance, if you want to keep it simple at first, you can start with the linear polynomial f(x,y) = ax + by + c. The PSO would then attempt to produce values for a, b, and c. The cost function to minimise for each particle of value would then be the sum of the squared error (f(x,y) - z)^2 for each in the dataset.

Eventually, you'll likely also want to look in splitting your data into a training and validation set to avoid over-fitting...

Peace Makes Plenty
  • 856
  • 10
  • 13