首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >序贯模型层中细胞数的理解

序贯模型层中细胞数的理解
EN

Data Science用户
提问于 2020-12-06 13:36:28
回答 2查看 269关注 0票数 2

我想教自己RNN,但我有个问题。

所以,想象两层:一个有三个神经元的输入层,一个有2个神经元的经典递归层,以及一个激活函数f。我将写出递归层每个神经元的输出。ht1 = f (W * [x1, [0, 0, N]] + b) ht2 = f (W * [x2, ht1] + b)。结果发现没有使用x3,在这种情况下该怎么办?

另外,让我们想象一下一个稍微不同的RNN体系结构。

两个神经元的输入层(x1, x2)和3个神经元的经典递归层和激活函数f。我将写出递归层每个神经元的输出。ht1 = f (W * [x1, [0, 0, N] + bias]) ht2 = f (W * [x2, ht1] + bias)。原来RNN层的第三个神经元没有被使用,在这种情况下该怎么办?

请帮我弄清楚神经网络在这种情况下是如何工作的。谢谢!

UPD:我意识到,如果递归层中的神经元数量不等于(!=)输入数,我就会发现,我不知道递归神经网络是如何工作的:输入的数量必须总是RNN层中的神经元数量相等。但下面的代码与我的猜测相矛盾。

代码语言:javascript
复制
model = Sequential()
model.add(Embedding(maxWordsCount, 256, input_length = inp_words))
model.add(SimpleRNN(128, activation='tanh'))
model.add(Dense(maxWordsCount, activation='softmax'))
model.summary()

这是预测下一个单词的模型。

EN

回答 2

Data Science用户

回答已采纳

发布于 2020-12-07 14:29:51

神经网络细胞与神经元

的比较

你在RNN细胞和神经元之间犹豫不决。我知道你在问题中提到了RNN细胞。因此,传统上,序列模型的任何层都会有与序列长度或嵌入大小相同的单元格数。

见细胞与神经元的区别:细胞状态与隐藏状态的差异

参见此处序列模型的输入大小:如何将展开的RNN想象成一个普通的前馈网络?

Re;代码片段

SimpleRNN中,第一个参数是每个细胞中单位的数目,即每个细胞中的神经元数目。单元格的数量不是顺序层中的参数,总是等于输入序列的长度或嵌入层的大小。

代码语言:javascript
复制
model = Sequential()
model.add(Embedding(maxWordsCount, 256, input_length = inp_words))
# Below, 128 is the neurons of each cell, and relates to the cell memory capacity.
model.add(SimpleRNN(128, activation='tanh'))
票数 1
EN

Data Science用户

发布于 2020-12-08 15:47:36

SimpleRNN内部,通过矩阵乘法将输入(维数256)投影到维数128的表示空间。RNN操作具有这些大小为128的向量。如果查看源代码SimpleRNN,可以看到投影矩阵存储在名为kernel的成员变量中。您可以看到在方法SimpleRNNCell.call 最重要的事情之一中如何使用K.dot(inputs, self.kernel)来投影输入。

P.D.:对我来说,“神经元”的类比一直是误导人的。我喜欢从可微矩阵运算的角度来考虑神经网络:矩阵乘法、矩阵加法、乙状结肠、双曲切线、ReLU等位置变换,这使得对每个计算步骤的输入和输出的维数更容易进行推理。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/86327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档