Neural Networks e Genetic Algorithms + "little" explanation
Posted: Wed May 24, 2017 8:04 pm
Well, the title says it all, I was wondering if any of you got to meet these fantastic algorithms which can improve a software in a very good way with a lot of pros, like making it faster reducing rendering time or code-writing time.
It can be used in games, now, Idk how much UT99 would be a good example, we know that when we code into UE we have big limitations cause of the bad-written standard code and the programming language used, but most of these algorithms could break some of these limitations, simulating what we would like to se, focalizing on the idea instead than writing it.
About the last thing, it is a problem cause these algorithms are seen as black-boxes, indeed you cannot understand how they solved a problem, you just know the way they elaborate data.
About UT99, dreaming is not so bad, for example, right today I was watching this vid:
jDxsGW5KUP0
Wouldn't that be cool into Unreal Engine games?
For those who don't know well what ANNs (Artificial Neural Neworks) and Genetic Algorithms are, here's a very little overview:
ANN: Simulates a biological neural network using virtual neurons which elaborate input data (that can be given by, let's say, "senses" or by the output of other neurons). Neurons are disposed in layers, respectively an Input layer; one or more Hidden layers; Output layer. Any layer is a feature, cause depending on the path the data ran into, from a neuron of the prev layer to one of the next one, since every connection has a "weight" that is changed over time (I'm not gonna explain it all, I said a very little overview lol) the data, neuron by neuron, is elaborate differently. One of the problems about ANNs is that they work like ours NNs, they tend to find the Local Minima/Maxima instead of the Global ones, it's like when you peel a banana, you learn to do it in a way and since it works well, you don't try to find better ways to do that.
Genetic Algorithm: Simulates the genetic evolution, with all of its consequential features, like natural selection. It gives a DNA (which is usually a string composed by "genotypes" [difference by "genotypes" and "phenotypes" is that a genotype is the code that generates a phenotype, so a genotype is an encoded phenotype] which is usually a bunch of characters or digits usually.
It gives these DNAs to some entities into a so called "generation", basing on how good they went, a score is given to each of them, the ones with the best scores will reproduce meanwhile the others will "die" (this is so called Natural Selection [not so natural in this case since it's all virtual]). Reproduction works this way: One or more entities DNA's get splitted at certain points (crossover) and different pieces of these DNA's get concatenated and then a mutation happens (which, naturally, is a DNA error), a Genetic Algorithm works even without the crossover, this creates a new generation. As you can see, it leads to find the Global Minima/Maxima without stopping into Local ones, cause the natural selection will always choose the best individuals.
ANN and Genetic Algorithm: To avoid letting an ANN to fall into a Local Minima/Maxima, you can use a Genetic Algorithm which will set a DNA for a generation of clones of the same Neural Network. Usually the phenotypes are the ANNs connections weights. This leads to discard the ANNs which didn't do well as much as the others, making the ones who did survive and reproduce.
It can be used in games, now, Idk how much UT99 would be a good example, we know that when we code into UE we have big limitations cause of the bad-written standard code and the programming language used, but most of these algorithms could break some of these limitations, simulating what we would like to se, focalizing on the idea instead than writing it.
About the last thing, it is a problem cause these algorithms are seen as black-boxes, indeed you cannot understand how they solved a problem, you just know the way they elaborate data.
About UT99, dreaming is not so bad, for example, right today I was watching this vid:
jDxsGW5KUP0
Wouldn't that be cool into Unreal Engine games?
For those who don't know well what ANNs (Artificial Neural Neworks) and Genetic Algorithms are, here's a very little overview:
ANN: Simulates a biological neural network using virtual neurons which elaborate input data (that can be given by, let's say, "senses" or by the output of other neurons). Neurons are disposed in layers, respectively an Input layer; one or more Hidden layers; Output layer. Any layer is a feature, cause depending on the path the data ran into, from a neuron of the prev layer to one of the next one, since every connection has a "weight" that is changed over time (I'm not gonna explain it all, I said a very little overview lol) the data, neuron by neuron, is elaborate differently. One of the problems about ANNs is that they work like ours NNs, they tend to find the Local Minima/Maxima instead of the Global ones, it's like when you peel a banana, you learn to do it in a way and since it works well, you don't try to find better ways to do that.
Genetic Algorithm: Simulates the genetic evolution, with all of its consequential features, like natural selection. It gives a DNA (which is usually a string composed by "genotypes" [difference by "genotypes" and "phenotypes" is that a genotype is the code that generates a phenotype, so a genotype is an encoded phenotype] which is usually a bunch of characters or digits usually.
It gives these DNAs to some entities into a so called "generation", basing on how good they went, a score is given to each of them, the ones with the best scores will reproduce meanwhile the others will "die" (this is so called Natural Selection [not so natural in this case since it's all virtual]). Reproduction works this way: One or more entities DNA's get splitted at certain points (crossover) and different pieces of these DNA's get concatenated and then a mutation happens (which, naturally, is a DNA error), a Genetic Algorithm works even without the crossover, this creates a new generation. As you can see, it leads to find the Global Minima/Maxima without stopping into Local ones, cause the natural selection will always choose the best individuals.
ANN and Genetic Algorithm: To avoid letting an ANN to fall into a Local Minima/Maxima, you can use a Genetic Algorithm which will set a DNA for a generation of clones of the same Neural Network. Usually the phenotypes are the ANNs connections weights. This leads to discard the ANNs which didn't do well as much as the others, making the ones who did survive and reproduce.