问题标签 [conv-neural-network]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
neural-network - 二维卷积作为矩阵-矩阵乘法
我知道,在 1D 情况下,两个向量a
和之间的卷积b
可以计算为,也可以计算为和conv(a, b)
之间的乘积,其中是对应的 Toeplitz 矩阵。T_a
b
T_a
a
是否有可能将这个想法扩展到二维?
给定a = [5 1 3; 1 1 2; 2 1 3]
和b=[4 3; 1 2]
,是否可以a
在 Toeplitz 矩阵中进行转换并计算 和 之间的矩阵-矩阵乘积T_a
,b
就像在一维情况下一样?
opencv - 如何计算神经网络输出层的二阶导数?
我正在尝试为卷积神经网络实现随机对角线 Levenberg-Marquardt 方法,以便反向传播学习权重。我是新手,很困惑,所以我有几个问题,希望你能帮助我。
1)如何从两个输出计算输出层的二阶导数。由于我在一阶导数中,我必须从所需的输出中减去输出并将其与输出的导数相乘。但是在二阶导数中我该怎么做?
2)在卷积神经网络的 MaxPooling 层中,我在 2x2 窗口中选择最大值,并将其乘以权重,现在我是否必须通过激活函数?
有人可以给我解释如何在opencv中做到这一点,或者如何用数学解释或任何显示数学的参考资料。提前致谢。
python - 在 Theano (CNN) 中添加附加功能
我正在使用 Theano 进行分类(卷积神经网络)
以前,我一直使用(展平)图像的像素值作为 NN 的特征。现在,我想添加其他功能。
有人告诉我,我可以将附加特征的向量连接到展平的图像特征,然后将其用作全连接层的输入,但我遇到了麻烦。
首先,这是正确的方法吗?
这是一些代码片段和我的错误:
类似于他们网站上提供的示例,但有一些修改
(来自构建模型的类)
下面,变量v
和rng
是先前定义的。重要的是layer2_input
:
(来自训练的班级)
但是,调用 train_model 时出现错误:
输入形状是否分别代表x
、y
和的形状f
?
如果是这样,第三个似乎是正确的(batchsize=5, 2 个额外特征),但为什么第一个是标量而第二个是矩阵?
更多细节:
我有正确的想法还是有更好的方法来实现这一点?关于我为什么会出错的任何见解?
machine-learning - 如何确定要在卷积神经网络层中使用的特征图的数量?
我一直在阅读有关 Conv Nets 的大量资料,甚至使用 Julia 的 Mocha.jl 包(它看起来很像 Caffe,但你可以在 Julia REPL 中使用它)。
在卷积网络中,卷积层之后是“特征图”层。我想知道的是,如何确定一个网络需要多少特征图才能解决某个特定问题?这有什么科学依据还是更多的艺术?我可以看到,如果您尝试进行分类,至少最后一层应该有特征图的数量 == 类的数量(除非你在网络的顶部有一个完全连接的 MLP,我想)。
就我而言,我并没有进行分类,而是试图为图像中的每个像素提出一个值(我想这可以看作是类别从 0 到 255 的分类)。
编辑:正如评论中所指出的,我正在尝试解决输出在 0 到 255 范围内(在这种情况下为灰度)的回归问题。尽管如此,问题仍然存在:如何确定在任何给定的卷积层使用多少特征图?这对于回归问题和分类问题有什么不同吗?
machine-learning - 卷积深度信念网络 (CDBN) 与卷积神经网络 (CNN)
最后,我开始学习神经网络,我想知道卷积深度信念网络和卷积网络之间的区别。在这里,有一个类似的问题,但没有确切的答案。我们知道卷积深度信念网络是 CNNs + DBNs。所以,我要做一个物体识别。我想知道哪一个比其他更好或它们的复杂性。我进行了搜索,但找不到任何可能做错的事情。
machine-learning - 卷积神经网络预测结果相同
我正在运行一个简单的卷积神经网络,进行回归并预测结果。它预测 30 个输出(浮点数)
无论输入如何,预测结果几乎相同。(收敛于训练输出的意思)
基于这个数据集,1000 次迭代后的训练收敛到 0.0107 的最大损失(这是一个很好的损失)。
我尝试将偏差设置为 1.0,它带来的变量很少,但下面仍然相同。当我将偏差设置为 0 时,结果要差得多,所有输出都是 100% 相同的。我已经在使用正则化 max(0,x),结果没有改善。
输出如下。如您所见,第一个、第二个、第三个数组几乎相同..
网络模型使用此参数运行
neural-network - Theano:在自动编码器中使用步幅(下采样)重建卷积
我想使用 Theano 训练一个简单的卷积自动编码器,效果很好。但是,我看不出conv2d
在使用二次采样(步幅)时如何反转命令。当使用 stride 时,是否有一种有效的方法来“反转”卷积命令,如下图所示?
例如,我想更改以下...
...进入的情况subsample = (2,2)
。第一层将按预期工作。然而,第二层将有效地“进行步幅为 1 的卷积,然后丢弃一半的输出”。这显然是与我正在寻找的不同的操作 -z
甚至不会具有与长度相同数量的神经元x
。第二个conv2d
命令应该是什么来“重建”原来的x
?
nlp - NLP 的时间卷积
我正在尝试关注 Kalchbrenner 等人。2014(http://nal.co/papers/Kalchbrenner_DCNN_ACL14)(基本上是过去 2 年将 CNN 应用于 NLP 任务的大部分论文)并实现了他们描述的 CNN 模型。不幸的是,虽然正确地进行了前向传递,但似乎我对渐变有问题。
我正在做的是输入与前向传递中每行、每核、每输入的 W 的完全卷积(未旋转,因此它实际上是一种相关性)。然后,对于 Wrt W 的梯度,输入与每行、每个内核、每个输入的前一个 delta 的有效卷积(同样,未旋转)。最后,对于 wrt x 的梯度,另一个有效卷积是渗透增量与 W,再次,每行,每核,每输入(无旋转)。
这将返回正确的大小和维度,但连接层时梯度检查确实关闭。当测试单个卷积层时,结果是正确的,当连接 2 个卷积层时 - 也是正确的,但是,当添加 MLP、池化等时,它开始看起来很糟糕。所有其他类型的层也分别进行了测试,它们也是正确的,因此,我假设问题从计算 grad 开始。wrt W_conv。
有没有人有类似实现的想法或有用的链接?
machine-learning - 卷积神经网络是否受到梯度消失的影响?
我想我在某处读到卷积神经网络不会像标准的层数增加的 sigmoid 神经网络那样遭受梯度消失问题的困扰。但我一直无法找到“为什么”。
它真的没有遇到问题还是我错了,它取决于激活函数?[我一直在使用 Rectified Linear Units,所以我从未测试过用于卷积神经网络的 Sigmoid Units]
neural-network - 如何用 theano 加速 GPU 模式的卷积神经网络?
我正在使用 theano 来实现卷积神经网络。我的 CPU RAM 是 32G,GPU RAM 是 2G,但数据也很大——几乎是 5G 的训练数据。
程序运行的时候,电脑好像死机了,每次操作真的很慢,甚至没有反应。CPU 模式似乎比 GPU 模式快至少 2 倍。
有什么方法可以加快 GPU 卷积神经网络的速度吗?