已经提出了哪些算法来学习深度神经网络的架构?

时间:2014-02-01 21:16:33

标签: machine-learning neural-network genetic-algorithm deep-learning

Yoshua Benhgio的Learning Deep Architectures for AI书提到

  

我们应该努力开发使用数据来确定最终架构深度的学习算法。

有人知道到目前为止提出的任何算法都能达到这个目的吗?

这个问题与成功的算法无关 - 实际上目前似乎没有。这个问题的目的是汇总所有提议的算法,以便任何对该主题感兴趣的人都不需要花费数月的时间来找到它们。

到目前为止,我遇到过:


  • tiling algorithm
    • 优势:添加图层和单位
    • 警告:仅用于学习布尔函数,这些函数与应用问题不太相关。

3 个答案:

答案 0 :(得分:4)

可以说,最常用的学习神经网络架构的算法是由Scott Fahlman和Christian Lebiere开发的Cascade Correlation。

Here你可以找到描述,我之前也看到了一个C实现,但是不记得在哪里。

答案 1 :(得分:3)

还有其他流行的遗传算法,如NEAT和EANT都“成长”神经网络。搜索最近的论文,以便对其他方法(相关工作)有一个很好的概述。

除了增长之外,另一种方法是从一个巨大的完全连接的网络和修剪连接开始,直到健身受到打击。 Mitchells关于机器学习的书籍提供了很好的概述。

当然,有各种算法同时使用增长和修剪。它们有时涉及“修复”网络的某些已建立的部分,因此不再需要考虑固定权重进行优化。

答案 2 :(得分:2)

我使用成功的遗传算法,使用我自己的程序(称为TSAGANN)搜索神经网络的最佳配置(单位一级)。

这里有paper(抱歉,但是是西班牙语)。

我的工作重点是:

  • 研究通过bacpropagation训练的ANN型前馈神经网络的结构(单位数和隐藏水平);

  • 模拟退火(SA)(相当人工神经网络)的研究。

结果是SA对于所研究的问题而言作为ANN表现良好,并且计算的密集程度较低。

进一步的工作(从未完成)是用GA直接优化ANN的结构和权重。在这种情况下,不需要反向传播,因为权重是通过GA优化而不是通过ANN优化的。 Traing set用于仅计算任何特定配置的错误。 GA最小化二次误差的变体。在这个意义上的初步研究是非常有希望的(目标是避免人工神经网络的训练算法,非常非常慢)。

论文用PROBEN1报告结果,PROBEN1是一个涵盖分类和近似问题的基准。

“全局优化”(包括权重)对于时间序列分析似乎非常有前途,以便在不使用递归人工神经网络的情况下进行预测。