Answers.Body: <p>What you are referring to are called evolutionary methods/genetic algorithms/zero order optimizers/many other names.</p>
  <p>However, it all depends on what you do with them. The core idea of evolution, and thus of this class of algorithms, is to &quot;apply some small perturbation, and only the strongest survive&quot;.</p>
  <p>However, you need small enough perturbation not to generate degenerate solutions, and given that they are indeed small enough, then in the continuous case, you can see these methods as some sort of finite difference methods for the optimization of a non differentiable system (your environment)</p>
  <p>In other words, if back propagations gives you <span class="math-container">$\nabla f(x)$</span> in closed form and exact (or with some stochasticity due by the minibatch), evolutionary methods estimate <span class="math-container">$\nabla f(x)\approx \frac{f(x+h)-f(x)}{h}$</span> given <span class="math-container">$h$</span> small enough</p>
  <p>To conclude... backpropagation is just a way to calculate the gradient of a network, and by itself it has no specific problems, and evolutionary methods are just another way to estimate that same gradient (thus if you were referring to exploding/vanishing gradients, consider that that is a problem of the model, not of the algorithm behind the calculation of the gradient)</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-05-19T19:57:30.733Z
Answers.LastActivityDate: 2024-05-19T19:57:30.733Z
Answers.UserDisplayName: Alberto
Body: <p>Can we create a learning algorithm that solves all the problems of backpropagation through evolution?</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-05-18T22:28:04.217Z
Comments.Text: This is a very vague question. Specifically backpropagation is a method for calculating gradients in a neural network architecture. I am not sure whether you want to evolve an efficient backpropagation algorithm, or something that solves a learning problem in a way that backpropagation would not be required (those are two very different things)? You should also be clear what the "problems of backpropagation" are that you want to address
Comments.UserDisplayName: Neil Slater
Tags: <backpropagation><evolutionary-algorithms>
Title: Creating a replacement for backpropagation through evolution
UserDisplayName: Display name
ThreadText: # Creating a replacement for backpropagation through evolution
  
  (Asked by: username_0 on 2024-05-18)
  
  Can we create a learning algorithm that solves all the problems of backpropagation through evolution?
  
  **Tags:** backpropagation, evolutionary-algorithms
  
  > **Comments:**
  > **username_1**: This is a very vague question. Specifically backpropagation is a method for calculating gradients in a neural network architecture. I am not sure whether you want to evolve an efficient backpropagation algorithm, or something that solves a learning problem in a way that backpropagation would not be required (those are two very different things)? You should also be clear what the "problems of backpropagation" are that you want to address  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_2 on 2024-05-19. Score: 1
  
  What you are referring to are called evolutionary methods/genetic algorithms/zero order optimizers/many other names.
  
  However, it all depends on what you do with them. The core idea of evolution, and thus of this class of algorithms, is to "apply some small perturbation, and only the strongest survive".
  
  However, you need small enough perturbation not to generate degenerate solutions, and given that they are indeed small enough, then in the continuous case, you can see these methods as some sort of finite difference methods for the optimization of a non differentiable system (your environment)
  
  In other words, if back propagations gives you $\nabla f(x)$ in closed form and exact (or with some stochasticity due by the minibatch), evolutionary methods estimate $\nabla f(x)\approx \frac{f(x+h)-f(x)}{h}$ given $h$ small enough
  
  To conclude... backpropagation is just a way to calculate the gradient of a network, and by itself it has no specific problems, and evolutionary methods are just another way to estimate that same gradient (thus if you were referring to exploding/vanishing gradients, consider that that is a problem of the model, not of the algorithm behind the calculation of the gradient)
  
  
  ---
  
  