Questions tagged «conv-neural-network»

卷积神经网络是一种神经网络,其中只有层之间可能存在的连接的子集存在才能创建重叠区域。它们通常用于视觉任务。

2
神经网络在权宜之计上是否存在卷积的数学原因?
在卷积神经网络(CNN)中,在进行卷积之前,每一步的权重矩阵都需要翻转其行和列以获得内核矩阵。Hugo Larochelle 在以下一系列视频中对此进行了解释: daccess-ods.un.org daccess-ods.un.org计算隐藏映射将对应于使用内核矩阵对来自上一层的信道进行离散卷积,并且该内核是根据隐藏权重矩阵WijWijW_{ij},我们在其中翻转行和列。 如果像其他类型的NN一样将卷积的减少步长与常规矩阵乘法进行比较,权宜之计将是一个明确的解释。但是,这可能不是最相关的比较... 在数字成像处理中,将滤镜卷积到图像上(对于实际直觉来说这是一个很棒的youtube视频)似乎与以下内容有关: 该事实卷积是缔合而(交叉)的相关是没有的。 由于时域中的卷积等效于频域中的乘法(卷积定理),因此可以在图像的频域中将滤波器作为乘法应用。 在这种特定的技术环境中,DSP 相关定义为: F∘I(x,y)=∑j=−NN∑i=−NNF(i,j)I(x+i,y+j)F∘I(x,y)=∑j=−NN∑i=−NNF(i,j)I(x+i,y+j)F\circ I(x,y)=\sum_{j=-N}^{N}\sum_{i=-N}^N\, F(i,j)\,I(x+i, y+j) 这实际上是Hadamard乘积中所有单元的总和: F∘I(x,y)=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢F[−N,−N]I[x−N,y−N]⋮F[0,−N]I[x,y−N]⋮F[N,−N]I[x+N,y−N]⋯⋱⋯⋱⋯F[−N,0]I[x−N,y−N]⋮F[0,0]I[x,y]⋮F[N,0]I[x+N,y]⋯⋱⋯⋱⋯F[−N,N]I[x−N,y+N]⋮F[0,N]I[x,y+N]⋮F[N,N]I[x+N,y+N]⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥F∘I(x,y)=[F[−N,−N]I[x−N,y−N]⋯F[−N,0]I[x−N,y−N]⋯F[−N,N]I[x−N,y+N]⋮⋱⋮⋱⋮F[0,−N]I[x,y−N]⋯F[0,0]I[x,y]⋯F[0,N]I[x,y+N]⋮⋱⋮⋱⋮F[N,−N]I[x+N,y−N]⋯F[N,0]I[x+N,y]⋯F[N,N]I[x+N,y+N]]\small F\circ I(x,y)=\Tiny\begin{bmatrix}F[-N,-N]\,I[x-N,y-N]&\cdots&F[-N,0]\,I[x-N,y-N]&\cdots& F[-N,N]\,I[x-N,y+N]\\ \vdots&\ddots&\vdots&\ddots&\vdots\\ F[0,-N]\,I[x,y-N]&\cdots&F[0,0]\,I[x,y]&\cdots& F[0,N]\,I[x,y+N]\\ \vdots&\ddots&\vdots&\ddots&\vdots\\ F[N,-N]\,I[x+N,y-N]&\cdots&F[N,0]\,I[x+N,y]&\cdots& F[N,N]\,I[x+N,y+N]\\ \end{bmatrix} 其中是一个滤波函数(表示为矩阵),而I (x ,y )是位置(x ,y )上图像的像素值:F(i,j)F(i,j)F(i,j)I(x,y)I(x,y)I(x,y)(x,y)(x,y)(x,y) 互相关的目的是评估探针图像与测试图像的相似程度。互相关图的计算依赖于卷积定理。 另一方面,卷积定义为: F∗I(x,y)=∑j=−NN∑i=−NNF(i,j)I(x−i,y−j)F∗I(x,y)=∑j=−NN∑i=−NNF(i,j)I(x−i,y−j)F* I(x,y)=\sum_{j=-N}^{N}\sum_{i=-N}^N\, F(i,j)\,I(x-i, y-j) 只要过滤器是对称的,就与过滤器的行和列翻转的相关操作相同: F∗I(x,y)=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢F[N,N]I[x−N,y−N]⋮F[0,N]I[x,y−N]⋮F[−N,−N]I[x+N,y−N]⋯⋱⋯⋱⋯F[N,0]I[x−N,y−N]⋮F[0,0]I[x,y]⋮F[−N,0]I[x+N,y]⋯⋱⋯⋱⋯F[N,−N]I[x−N,y+N]⋮F[0,−N]I[x,y+N]⋮F[−N,−N]I[x+N,y+N]⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥F∗I(x,y)=[F[N,N]I[x−N,y−N]⋯F[N,0]I[x−N,y−N]⋯F[N,−N]I[x−N,y+N]⋮⋱⋮⋱⋮F[0,N]I[x,y−N]⋯F[0,0]I[x,y]⋯F[0,−N]I[x,y+N]⋮⋱⋮⋱⋮F[−N,−N]I[x+N,y−N]⋯F[−N,0]I[x+N,y]⋯F[−N,−N]I[x+N,y+N]]\small F* I(x,y)=\Tiny\begin{bmatrix}F[N,N]\,I[x-N,y-N]&\cdots&F[N,0]\,I[x-N,y-N]&\cdots& F[N,-N]\,I[x-N,y+N]\\ \vdots&\ddots&\vdots&\ddots&\vdots\\ F[0,N]\,I[x,y-N]&\cdots&F[0,0]\,I[x,y]&\cdots& F[0,-N]\,I[x,y+N]\\ \vdots&\ddots&\vdots&\ddots&\vdots\\ F[-N,-N]\,I[x+N,y-N]&\cdots&F[-N,0]\,I[x+N,y]&\cdots& F[-N,-N]\,I[x+N,y+N]\\ …


2
CNN Xavier权重初始化
在一些教程中,我发现有人说“ Xavier”权重初始化(论文:了解训练深度前馈神经网络的难度)是初始化神经网络权重的有效方法。 对于完全连接的层,这些教程中有一条经验法则: V一个[R (W ^)= 2ñ我ñ+ nØ ü Ť,更简单的选择:V一个[R (W ^)= 1ñ我ñV一种[R(w ^)=2ñ一世ñ+ñØüŤ,更简单的选择:V一种[R(w ^)=1个ñ一世ñVar(W) = \frac{2}{n_{in} + n_{out}}, \quad \text{simpler alternative:} \quad Var(W) = \frac{1}{n_{in}} 其中是图层的权重方差,使用正态分布进行初始化,,是父图层和当前图层中神经元的数量。ñ 我ñ Ñ Ò ù 吨V一个[R (W ^)V一种[R(w ^)Var(W)ñ我ññ一世ñn_{in}ñØ ü ŤñØüŤn_{out} 卷积层有类似的经验法则吗? 我正在努力找出最适合初始化卷积层权重的方法。例如在权重形状为的层中(5, 5, 3, 8),即内核大小为5x5,过滤三个输入通道(RGB输入)并创建8特征图...是否将被3视为输入神经元的数量?或者说75 = 5*5*3,因为输入是5x5每个颜色通道的色标? 我既可以接受一个明确的问题答案,也可以接受一个更“通用”的答案,这可以解释找到正确的权重初始化并最好链接源的一般过程。




5
是否有用于设计和应用神经网络/深度学习的可视工具?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为交叉验证的主题。 10个月前关闭。 我知道有很多用于机器学习和深度学习的库,例如caffe,Theano,TensorFlow,keras等。但是对我来说,我似乎必须了解我想使用的神经网络的体系结构。 是否有一个(可视的)工具可以试验不同的网络设计并将其应用于自己的数据? 我正在考虑使用TensorFlow Playground之类的东西,但是具有n维数据和不同的图层类型。 提前致谢!


4
在CNN中,升采样和转置卷积是否相同?
当您进行“反卷积”时,会同时使用“上采样”和“转置卷积”(<-不是一个好术语,但让我在这里使用它)。最初,我以为它们的意思是相同的,但是在我阅读这些文章后,在我看来它们是不同的。有人可以澄清一下吗? 转置卷积:当我们通过卷积神经网络传播损失时,似乎可以使用它。 http://andrew.gibiansky.com/blog/machine-learning/convolutional-neural-networks/#Backward-Propagation https://github.com/vdumoulin/conv_arithmetic https://arxiv.org/pdf/1312.6034v2.pdf,第4节“用于卷积层...” 升采样:想要在convnet-decovnet结构中从较小的输入到较大的输入进行升采样时,似乎可以使用它。 https://www.youtube.com/watch?v=ByjaPdWXKJ4&feature=youtu.be&t=22m

1
在深度学习中的深度残差网络中,残差学习块到底是什么?
我正在阅读论文《深度残差学习以进行图像识别》,但我很难100%地确定残差块在计算上的含义。阅读他们的论文,他们有图2: 它说明了残余块应该是什么。残差块的计算是否与以下内容完全相同: y=σ(W2σ(W1x+b1)+b2+x)y=σ(W2σ(W1x+b1)+b2+x) \mathbf{y} = \sigma( W_2 \sigma( W_1 \mathbf{x} + b_1 ) + b_2 + \mathbf{x} ) 或者是别的什么? 换句话说,也许是试图与论文的符号相匹配的是: F(x)+x=[W2σ(W1x+b1)+b2]+xF(x)+x=[W2σ(W1x+b1)+b2]+x \mathcal F(x) + x = \left[ W_2 \sigma( W_1 \mathbf{x} + b_1 ) + b_2 \right] + \mathbf{x} 真的吗? yy\mathbf{y} σ(F(x)+x)=σ([W2σ(W1x+b1)+b2]+x)σ(F(x)+x)=σ([W2σ(W1x+b1)+b2]+x) \sigma( \mathcal F(x) + x ) = \sigma( …


2
在CNN中选择过滤器大小,步幅等?
我一直在看斯坦福大学的CS231N讲座,我正在努力解决CNN架构中的一些问题。我要了解的是,是否存在一些用于选择卷积滤波器大小和步幅之类的通用准则,或者这是一门艺术而非一门科学? 据我了解,合并的存在主要是为了将某种形式的翻译不变性引入模型中。另一方面,我对如何选择步幅没有很好的直觉。除了试图压缩当前的层大小或试图为神经元获得更大的接受野外,还有其他指导方针吗?任何人都知道讨论此问题的好论文或类似文章吗?

3
卷积神经网络中最终Softmax层之前的非线性
我正在研究并尝试实现卷积神经网络,但是我想这个问题通常适用于多层感知器。 我网络中的输出神经元代表每个类别的激活:最活跃的神经元对应于给定输入的预测类别。为了考虑训练的交叉熵成本,我在网络的末端添加了softmax层,以便将每个神经元的激活值解释为概率值。 我的问题是:输出层中的神经元是否应该对输入应用非线性函数?我的直觉是没有必要: 如果第一世一世i个输出神经元的输入是向量(来自上一层)与该神经元权重之间的点积, X θ 我XŤθ一世XŤθ一世x^T\theta_iXXxθ一世θ一世\theta_i 如果我采用单调非线性函数(如S型或ReLU) 那么较大的激活输出仍将对应于最大,因此从这个角度来看,非线性函数不会改变预测。XŤθ一世XŤθ一世x^T\theta_i 这种解释有问题吗?我是否忽略了一些训练因素,这些因素使输出非线性成为必要? 如果我是对的,那么如果不是使用Sigmoid函数而是使用ReLU函数(不是严格单调的函数,会发生什么变化吗?最大值(0 ,XŤθ一世)最大值(0,XŤθ一世)\max(0,x^T\theta_i) 编辑 关于Karel的答案,其答案主要是“取决于”,这是对我的网络和疑问的更详细描述: 假设我有N个隐藏层,而我的输出层只是代表类的一组神经元上的softmax层(所以我的预期输出是输入数据属于每个类的概率)。假设第一个N-1层具有非线性神经元,那么在第N个隐藏层中使用非线性与线性神经元有什么区别?


2
为什么CNN以FC层结尾?
据我了解,CNN由两部分组成。第一部分(转换/池层)进行特征提取,第二部分(fc层)对特征进行分类。 由于完全连接的神经网络不是最佳分类器(即,大多数情况下它们的性能优于SVM和RF),因此CNN为什么以FC层作为结束,而不是说SVM或RF?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.