美文网首页
一起学习用Keras做深度学习项目(2)

一起学习用Keras做深度学习项目(2)

作者: efe64f2928d5 | 来源:发表于2020-05-21 17:27 被阅读0次

    在前一篇里我们简单地学习用Keras完成了深度学习的项目,基本上理清了深度学习的过程。

    在这一篇里我们将就一个问题做些探讨。

    如何在定义模型时设置神经网络的层数和节点数?

    人工神经网络有两个主要的超参数来控制网络的结构或拓扑:层数每个隐含层的节点数。

    怎么做呢?

    最可靠的方法是通过使用可靠的测试工具进行系统试验。

    1 术语

    有用于描述神经网络的形状和功能的术语;例如:

    大小:模型中的节点数。

    宽度:某一层中的节点数。

    深度:神经网络中的层数。

    容量:网络配置可以学习的功能的类型或结构。有时称为“代表能力”。

    拓扑结构:神经网络的拓扑结构,也就是层和节点的排列方式。

    2 层数

    我们遵循传统的方式,认为输入层并不作为完整的一层来计算,只是将输入作为一种变量考虑。

    因此,对于一个简单包含一个输入层、一个隐藏层、一个输出层,就记为2层多层感知器。

    3 为何多层

    多层感知器可以用来表示凸区域。这意味着,实际上,他们可以学习在一些高维空间中围绕示例绘制形状,这些示例可以对它们进行分离和分类,从而克服线性可分离性的限制。

    我们简单地理解,认为多层就意味着能解决更复杂的问题。

    4 如何选择层数?

    1)试验

    通过一系列可靠的测试工具和受控的试验来获得参数。

    2) 直觉

    3) 尽可能多的隐层

    4) 向别人学习

    5) 自动搜索

    从文献和直觉中获得灵感。

    一些流行的搜索策略包括:

    随机:尝试对层和每层节点进行随机配置。

    网格:尝试对每层的层数和节点数进行系统搜索。

    启发式:尝试对配置进行定向搜索,例如遗传算法或贝叶斯优化。

    详尽无遗:尝试使用所有层和节点数的组合;对于小型网络和数据集可能是可行的。

    对于大型模型,大型数据集以及两者的组合,这可能是具有挑战性的。减少或管理计算负担的一些想法包括:

    在训练数据集的较小子集上拟合模型以加快搜索速度。

    积极地限制搜索空间的大小。

    跨多个服务器实例并行搜索(例如,使用Amazon EC2服务)。

    建议在时间和资源允许的情况下保持系统性。

    总体上而言:

    试验,尽可能多地尝试

    可以参考下面的文献:

    https://stats.stackexchange.com/questions/181/how-to-choose-the-number-of-hidden-layers-and-nodes-in-a-feedforward-neural-netw

    http://www.faqs.org/faqs/ai-faq/neural-nets/part3/section-9.html

    相关文章

      网友评论

          本文标题:一起学习用Keras做深度学习项目(2)

          本文链接:https://www.haomeiwen.com/subject/icktahtx.html