是进化算法,并在同一个域中使用神经网络? [英] Are evolutionary algorithms and neural networks used in the same domains?

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

问题描述

我想感受一下各阶级的机器学习算法之间的差异.

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)的模型(函数类等)

a) The model (function class, etc)

B)拟合模型(optimizaiton算法的方法)

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.

进化算法解决第二部分-拟合模型.同样,也有一些经典机型,随着进化算法去:例如,进化规划通常试图优化在特定类型的所有程序.然而,中介公司实际上是为特定的模型找到合适的参数值的方法.通常,您以一种合理的方式编写模型参数,以便进行交叉操作,然后转动EA曲柄以获取合理的参数设置.

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.

现在,你可以,例如,使用进化算法来训练神经网络,我敢肯定,它已经完成.然而,EA需要对工作至关重要的一点是,交叉操作必须做一个合理的事情 - 通过采取从一个合理的设置,从另一个合理的设置,其余的部分参数,你会经常落得一个甚至更好的参数设置.使用EA大多数时候,不是这种情况并且它最终被类似模拟退火,只有更混乱和低效的.

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天全站免登陆