进化算法和神经网络是否用于同一领域? [英] Are evolutionary algorithms and neural networks used in the same domains?

查看:31
本文介绍了进化算法和神经网络是否用于同一领域?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试了解各类机器学习算法之间的差异.

我知道进化算法的实现与神经网络的实现有很大不同.

然而,它们似乎都适合从一组潜在的嘈杂训练/历史数据中确定输入和输出之间的相关性.

从定性的角度来看,与进化算法相比,是否存在更适合作为神经网络目标的问题域?

我浏览了一些建议以互补方式使用它们的文章.有没有像样的用例示例?

解决方案

事情是这样的:在机器学习问题中,您通常有两个组成部分:

a) 模型(函数类等)

b) 拟合模型的方法(优化算法)

神经网络是一个模型:给定布局和权重设置,神经网络会产生一些输出.存在一些拟合神经网络的规范方法,例如反向传播、对比发散等.但是,神经网络的重要意义在于,如果有人给您正确"的权重,您就可以很好地解决问题.

进化算法解决了第二部分——拟合模型.同样,有一些与进化算法相配的规范模型:例如,进化编程通常会尝试优化特定类型的所有程序.然而,EA 本质上是一种为特定模型寻找正确参数值的方法.通常,您以这样一种方式编写模型参数,即交叉操作是合理的做法,并转动 EA 曲柄以获得合理的参数设置.

现在,例如,您可以使用进化算法来训练神经网络,而且我确信它已经完成了.然而,EA 需要工作的关键是交叉操作必须是一件合理的事情——通过从一个合理的设置中获取部分参数,从另一个合理的设置中获取其余的参数,你经常会得到一个更好的参数设置.大多数情况下使用 EA,情况并非如此,它最终类似于模拟退火,只会更加混乱和低效.

I am trying to get a feel for the difference between the various classes of machine-learning algorithms.

I understand that the implementations of evolutionary algorithms are quite different from the implementations of neural networks.

However, they both seem to be geared at determining a correlation between inputs and outputs from a potentially noisy set of training/historical data.

From a qualitative perspective, are there problem domains that are better targets for neural networks as opposed to evolutionary algorithms?

I've skimmed some articles that suggest using them in a complementary fashion. Is there a decent example of a use case for that?

解决方案

Here is the deal: in machine learning problems, you typically have two components:

a) The model (function class, etc)

b) Methods of fitting the model (optimizaiton algorithms)

Neural networks are a model: given a layout and a setting of weights, the neural net produces some output. There exist some canonical methods of fitting neural nets, such as backpropagation, contrastive divergence, etc. However, the big point of neural networks is that if someone gave you the 'right' weights, you'd do well on the problem.

Evolutionary algorithms address the second part -- fitting the model. Again, there are some canonical models that go with evolutionary algorithms: for example, evolutionary programming typically tries to optimize over all programs of a particular type. However, EAs are essentially a way of finding the right parameter values for a particular model. Usually, you write your model parameters in such a way that the crossover operation is a reasonable thing to do and turn the EA crank to get a reasonable setting of parameters out.

Now, you could, for example, use evolutionary algorithms to train a neural network and I'm sure it's been done. However, the critical bit that EA require to work is that the crossover operation must be a reasonable thing to do -- by taking part of the parameters from one reasonable setting and the rest from another reasonable setting, you'll often end up with an even better parameter setting. Most times EA is used, this is not the case and it ends up being something like simulated annealing, only more confusing and inefficient.

这篇关于进化算法和神经网络是否用于同一领域?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆