Questions tagged «convnet»

有关“卷积神经网络”(CNN)的问题

10
什么是反卷积层?
我最近读了乔纳森·朗(Jonathan Long),埃文·谢尔哈默(Evan Shelhamer)和特雷弗·达雷尔(Trevor Darrell)撰写的用于语义分割的全卷积网络。我不了解“反卷积层”的作用/作用方式。 相关部分是 3.3。向上采样是向后跨步的卷积 将粗略输出连接到密集像素的另一种方法是插值。例如,简单的双线性插值通过仅依赖于输入和输出像元的相对位置的线性映射从最近的四个输入计算每个输出。 从某种意义上讲,使用因子进行的上采样是具有1 / f的分数输入步幅的卷积。只要f是整数,向上采样的自然方法就是以输出步幅f向后进行卷积(有时称为反卷积) 。这样的操作很容易实现,因为它简单地反转了卷积的前进和后退。yijyijy_{ij}fff˚Fffffff 因此,通过从像素方向的损失进行反向传播,在网络中执行上采样以进行端到端学习。 注意,在这样的层中的去卷积滤波器不必是固定的(例如,固定为双线性上采样),而是可以学习的。一堆解卷积层和激活函数甚至可以学习非线性上采样。 在我们的实验中,我们发现网络内上采样对于学习密集预测是快速有效的。我们最好的分割架构使用这些层来学习上采样,以进行第4.2节中的精确预测。 我不认为我真的了解卷积层是如何训练的。 我想我了解的是,内核大小为卷积层学习大小为过滤器。卷积层的内核大小为,步幅为和过滤器的输出的尺寸为。但是,我不知道卷积层的学习是如何工作的。(如果有帮助,我知道简单的MLP如何通过梯度下降来学习)。ķ × ķ ķ 小号∈ Ñ Ñkkkk×kk×kk \times kkkks∈Ns∈Ns \in \mathbb{N}nnnInput dims2⋅nInput dims2⋅n\frac{\text{Input dim}}{s^2} \cdot n 因此,如果我对卷积层的理解是正确的,我不知道如何将其逆转。 有人可以帮我理解反卷积层吗?

4
1x1卷积与完全连接的层如何相同?
我最近阅读了Yan LeCuns对1x1卷积的评论: 在卷积网中,没有“全连接层”之类的东西。只有带有1x1卷积内核和完整连接表的卷积层。 ConvNets不需要固定大小的输入,这是一个非常罕见的事实。您可以在碰巧产生单个输出矢量(没有空间范围)的输入上训练它们,然后将它们应用于更大的图像。然后,您将获得输出矢量的空间图,而不是单个输出矢量。每个向量都会在输入的不同位置看到输入窗口。 在这种情况下,“完全连接的层”实际上充当1x1卷积。 我想看一个简单的例子。 例 假设您具有完全连接的网络。它只有一个输入层和一个输出层。输入层有3个节点,输出层有2个节点。这个网络具有3 ⋅ 2 = 63⋅2=63 \cdot 2 = 6参数。为了更加具体,可以说您在输出层和权重矩阵中具有ReLU激活功能 Wb=(021315)∈R2×3=(813)∈R2W=(011235)∈R2×3b=(813)∈R2 \begin{align} W &= \begin{pmatrix} 0 & 1 & 1\\ 2 & 3 & 5\\ \end{pmatrix} \in \mathbb{R}^{2 \times 3}\\ b &= \begin{pmatrix}8\\ 13\end{pmatrix} \in \mathbb{R}^2 \end{align} f(x)=ReLU(W⋅x+b)f(x)=ReLU(W⋅x+b)f(x) = ReLU(W \cdot x + b)x∈R3x∈R3x …

2
如何为神经网络准备/增强图像?
我想使用神经网络进行图像分类。我将从训练有素的CaffeNet开始,然后为我的应用程序对其进行训练。 我应该如何准备输入图像? 在这种情况下,所有图像都属于同一物体,但具有变化(请考虑:质量控制)。它们的比例/分辨率/距离/照明条件略有不同(很多情况下我不知道比例)。同样,在每个图像中,目标对象周围都有一个区域(已知),网络应该忽略该区域。 我可以(例如)裁剪每个图像的中心,以确保其中包含感兴趣对象的一部分而没有忽略区域。但这似乎会浪费掉信息,而且结果的范围也不尽相同(可能是1.5倍的变化)。 数据集扩充 我听说过通过随机裁剪/镜像/等方式创建更多训练数据,是否有标准方法?它对分类器的准确性有何改善?

4
后续的卷积层如何工作?
这个问题归结为“卷积层如何正确工作。 假设我有一个灰度图像。因此图像只有一个通道。在第一层中,我使用过滤器和填充进行卷积。然后我有另一个卷积层,其中有卷积和过滤器。我有多少个特征图?3 × 3 k 1 5 × 5 k 2n × 米n×mn \times m3 × 33×33\times 3ķ1个k1k_15 × 55×55 \times 5ķ2k2k_2 1型卷积 第一层被执行。之后,我有特征图(每个过滤器一个)。这些中的每一个的大小均为。通过从填充的输入图像中提取像素来创建每个像素。 Ñ × 米3 ⋅ 3 = 9ķ1个k1k_1n × 米n×mn \times m3 ⋅ 3 = 93⋅3=93 \cdot 3 = 9 然后第二层被应用。每个单个过滤器都分别应用于每个特征图。这将为每个特征图生成特征图。因此,第二层之后有特征图。每个新要素地图的每个像素都是通过从以前获取填充要素地图的 “像素”而创建的。ķ 1 ķ 1 × ķ …




2
Keras Convolution2d()使用的默认过滤器是什么?
我是神经网络的新手,但是我相当了解线性代数和卷积数学。 我试图理解我在网上各个地方找到的示例代码,用于训练带有MNIST数据的Keras卷积NN以识别数字。我的期望是,当我创建卷积层时,必须指定一个过滤器或一组过滤器以应用于输入。但是我发现的三个样本都创建了一个这样的卷积层: model.add(Convolution2D(nb_filter = 32, nb_row = 3, nb_col = 3, border_mode='valid', input_shape=input_shape)) 这似乎将总共32个3x3滤镜应用于CNN处理的图像。但是那些过滤器是什么?我将如何数学描述它们?keras文档没有帮助。 提前致谢,
18 convnet  keras 

5
扩大seaborn热图
我corr()用原始df 创建了df。该corr()DF出来70×70,这是不可能的可视化热图... sns.heatmap(df)。如果我尝试显示corr = df.corr(),则表格不适合屏幕,并且我可以看到所有相关性。它是打印整个df大小而不管其大小还是控制热图大小的方法吗?
17 visualization  pandas  plotting  machine-learning  neural-network  svm  decision-trees  svm  efficiency  python  linear-regression  machine-learning  nlp  topic-model  lda  named-entity-recognition  naive-bayes-classifier  association-rules  fuzzy-logic  kaggle  deep-learning  tensorflow  inception  classification  feature-selection  feature-engineering  machine-learning  scikit-learn  tensorflow  keras  encoding  nlp  text-mining  nlp  rnn  python  neural-network  feature-extraction  machine-learning  predictive-modeling  python  r  linear-regression  clustering  r  ggplot2  neural-network  neural-network  training  python  neural-network  deep-learning  rnn  predictive-modeling  databases  sql  programming  distribution  dataset  cross-validation  neural-network  deep-learning  rnn  machine-learning  machine-learning  python  deep-learning  data-mining  tensorflow  visualization  tools  sql  embeddings  orange  feature-extraction  unsupervised-learning  gan  machine-learning  python  data-mining  pandas  machine-learning  data-mining  bigdata  apache-spark  apache-hadoop  deep-learning  python  convnet  keras  aggregation  clustering  k-means  r  random-forest  decision-trees  reference-request  visualization  data  pandas  plotting  neural-network  keras  rnn  theano  deep-learning  tensorflow  inception  predictive-modeling  deep-learning  regression  sentiment-analysis  nlp  encoding  deep-learning  python  scikit-learn  lda  convnet  keras  predictive-modeling  regression  overfitting  regression  svm  prediction  machine-learning  similarity  word2vec  information-retrieval  word-embeddings  neural-network  deep-learning  rnn 

5
卷积神经网络过度拟合。辍学没有帮助
我在玩卷积网络。具体来说,我使用的是kaggle cats-vs-dogs数据集,该数据集包含25000张标记为猫或狗的图像(每张图像12500张)。 我设法在测试集上实现了约85%的分类精度,但是我设定了达到90%的精度的目标。 我的主要问题是过度拟合。它总是以某种方式最终发生(通常在第8-10阶段之后)。我的网络体系结构受到VGG-16的大致启发,更具体地说,我的图像被调整为128x128x3128x128x3128x128x3,然后运行: Convolution 1 128x128x32 (kernel size is 3, strides is 1) Convolution 2 128x128x32 (kernel size is 3, strides is 1) Max pool 1 64x64x32 (kernel size is 2, strides is 2) Convolution 3 64x64x64 (kernel size is 3, strides is 1) Convolution 4 64x64x64 (kernel size …

1
CNN中的反向传播
我有以下CNN: 我从5x5大小的输入图片开始 然后,我使用2x2内核和stride = 1进行卷积,生成大小为4x4的特征图。 然后,我将2x2 max-pooling应用于stride = 2,这会将要素图缩小为2x2。 然后我应用逻辑乙状结肠。 然后是一层完全连接的带有2个神经元的层。 并有输出层。 为了简单起见,假设我已经完成了前向通过并计算出δH1= 0.25和 δH2= -0.15 因此,在完成完全向前传递和部分完成向后传递之后,我的网络如下所示: 然后,我为非线性层(逻辑Sigmoid)计算增量: δ11= (0.25 * 0.61 + - 0.15 * 0.02 )* 0.58 * (1 - 0.58 )= 0.0364182δ12= (0.25 * 0.82 + - 0.15 * - 0.50 )* 0.57 * (1 - 0.57 …

3
ImageNet中是否有人类?有没有与人类有关的课程?
如果我查看Internet上Imagenet类的众多资源之一,就找不到一个与人类有关的类(不,收割者不是一个收割者,但这就是我所知的爸爸长腿,一种蜘蛛:-)。那怎么可能?我想至少有预期person类,甚至更具体的东西,例如man,woman,toddler等之类的没有。为什么?难道飞翡丽和她的团队有意识地选择不具有人的图像数据库?我看错文件了吗?为了解决这个问题,我们可以考虑ImageNet2014年以后的版本。

1
通过最大池化层进行反向传播
我对这个问题有一个小问题。 我了解到,在通过最大池化层进行反向传播时,梯度将以之前选择为max的上一层神经元获取所有梯度的方式路由回去。我不确定100%是下一层的渐变如何路由回到池化层。 因此,第一个问题是我是否将池化层连接到完全连接的层-如下图所示。 在计算池化层的青色“神经元”的梯度时,是否将来自FC层神经元的所有梯度求和?如果这是正确的,那么池化层的每个“神经元”都具有相同的梯度? 例如,如果FC层的第一个神经元的渐变为2,第二个神经元的渐变为3,第三个神经元的渐变为6,则池化层中蓝色和紫色“神经元”的渐变是什么?为什么? 第二个问题是池化层何时连接到另一个卷积层。那我该如何计算梯度呢?请参见下面的示例。 对于池化层中最右端的“神经元”(绿色框),我只是在下一个conv层中采用紫色神经元的梯度并将其路由回去,对吗? 那个绿色的怎么样?由于链式规则,我需要将下一层的神经元的第一列相乘?还是我需要添加它们? 请不要发布一堆方程式,并告诉我我的答案就在那儿,因为我一直在努力将方程式包围着我,但我仍然不太了解它,这就是为什么我要简单地问这个问题办法。


3
为什么卷积总是使用奇数作为filter_size
如果我们看一下使用CNN(ConvNet)发表的论文中有90-99%。他们中的绝大多数使用奇数号的过滤器大小:{1、3、5、7}最常用。 这种情况可能会导致一些问题:使用这些滤波器大小时,通常在填充为2(普通填充)的情况下卷积运算并不完美,并且在此过程中会丢失input_field的某些边缘... 问题1:为什么仅对卷积滤波器大小使用奇数? Question2:在卷积过程中忽略一小部分input_field实际上是一个问题吗?为什么这样/不呢?

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.