【问题标题】:Keras explanation: number of nodes in input layerKeras解释:输入层的节点数
【发布时间】:2018-10-27 22:15:05
【问题描述】:

我试图理解一个简单的感知器和一个在使用 keras Sequence 类时得到的神经网络之间的关系。

我了解到神经网络感知器是这样的:

第一层中的每个“节点”都是样本 x_1、x_2、...、x_n 的特征之一

有人能解释一下我在下面的 Keras 包中找到的神经网络的跳转吗? 由于输入层有四个节点,这是否意味着网络由四个感知器网络组成?

【问题讨论】:

    标签: neural-network keras


    【解决方案1】:

    对于什么是感知器似乎存在误解。感知器是一个单一的单元,它将输入与权重相乘,将它们相加并应用一个激活函数:

    现在,您拥有的图表称为多层感知器 (MLP),由分层组织的感知器堆栈组成,wiki。在 Keras 中,没有明确的感知器概念,而是将感知器层实现为Dense 层,因为这些层是密集连接的,即每个输出都连接到层之间的每个输入。第二个图对应于:

    model = Sequential()
    model.add(Dense(4, activation='sigmoid', input_dim=3))
    model.add(Dense(4, activation='sigmoid'))
    model.add(Dense(1, activation='sigmoid'))
    

    假设您有 sigmoid 激活。在这种情况下,通过指定input_dim=3,输入层是隐式的,最后一层将是输出层。

    【讨论】:

    • 你确定第二张图会对应吗?首先,input_dim 可以是任何东西,对吧?第二行也应该是 "...Dense(3..." ?
    • 是的,我敢肯定,您混淆了输入层和隐藏层。第二个图的输入暗淡为 3,因为您有 3 个输入节点。然后这些连接到具有 4 个感知器的第一个隐藏层,因此 Dense(4..)
    • 啊哈,我明白了!所以第二个图是一个神经网络(MLP?),它接受三维数据,对吗?
    • 是的,确实这两个图都是神经网络 (MLP),每一列/每一层就像一个多维向量。在 Keras 中,您可以为给定层指定输出维度。
    • 谢谢!我想我明白了。我也很困惑,“dim”(stackoverflow.com/questions/44747343/…) 下的答案表明即使输入 input_dim = 3,数据也是“一维的”
    猜你喜欢
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 2017-09-19
    • 2018-03-30
    • 2018-11-04
    • 2021-05-20
    • 1970-01-01
    相关资源
    最近更新 更多