Questions tagged «neural-network»

人工神经网络(ANN)由“神经元”组成-模仿生物神经元特性的编程结构。神经元之间的一组加权连接允许信息通过网络传播以解决人工智能问题,而无需网络设计人员拥有真实系统的模型。

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 因此,如果我对卷积层的理解是正确的,我不知道如何将其逆转。 有人可以帮我理解反卷积层吗?


5
神经网络中的“垂死的ReLU”问题是什么?
参阅有关视觉识别的卷积神经网络的斯坦福课程笔记,一段内容如下: “不幸的是,ReLU单元在训练过程中可能很脆弱,并且可能“死亡”。例如,流过ReLU神经元的大梯度可能导致权重更新,从而使神经元再也不会在任何数据点上激活。如果发生这种情况,那么从该点开始流过该单元的梯度将永远为零,也就是说,ReLU单元在训练过程中可能会不可逆地死亡,因为它们可能会从数据流形上脱落下来。例如,您可能会发现多达40个如果学习率设置得太高,您的网络中的%可能是“死亡”的(即永远不会在整个训练数据集中激活的神经元)。通过适当设置学习率,这通常不会成为问题。 这里的神经元死亡意味着什么? 您能否以更简单的方式提供直观的说明。

6
何时在LSTM上使用GRU?
GRU和LSTM之间的主要区别在于,GRU具有两个门(重置和更新门),而LSTM具有三个门(即输入,输出和忘记门)。 当我们显然通过LSTM模型对网络具有更多控制权时(因为我们有三个闸门),为什么要使用GRU?在哪种情况下,GRU优于LSTM?

8
选择学习率
我目前正在SGD使用反向传播为神经网络实现随机梯度下降,尽管我了解其目的,但我对如何选择学习率的值存在一些疑问。 学习率是否与误差梯度的形状有关,因为它决定了下降率? 如果是这样,您如何使用此信息来告知您有关价值的决定? 如果不是那样,我应该选择哪种值,以及如何选择它们? 似乎您希望使用较小的值来避免过冲,但是如何选择一个值以免陷入局部最小值或花很长时间下降呢? 保持恒定的学习速度有意义吗?还是应该在接近梯度最小值时使用一些指标来更改其值? 简而言之:如何选择SGD的学习率?



3
通过最大池层反向传播?
这是一个概念上的小问题,困扰了我一段时间:我们如何通过神经网络中的最大池层反向传播? 在本教程中使用Torch 7的nn库时,我遇到了最大池化层。该库为深度网络的每一层抽象了梯度计算和前向传递。我不明白最大池层的梯度计算是如何完成的。 我知道,如果您有一个输入进入第层的神经元,则(定义为的计算公式为: zilzil{z_i}^liiilllδilδil{\delta_i}^lδil=∂E∂zilδil=∂E∂zil{\delta_i}^l = \frac{\partial E}{\partial {z_i}^l}δil=θ′(zil)∑jδjl+1wl,l+1i,jδil=θ′(zil)∑jδjl+1wi,jl,l+1 {\delta_i}^l = \theta^{'}({z_i}^l) \sum_{j} {\delta_j}^{l+1} w_{i,j}^{l,l+1} 因此,最大池化层将接收下一层的;但是由于最大池神经元的激活函数接受了一个值(在其上最大)的向量作为输入,因此不再是单个数字,而是一个向量(必须替换为)。此外,作为最大函数的就其输入而言是不可区分的。δjl+1δjl+1{\delta_j}^{l+1}δilδil{\delta_i}^{l}θ′(zjl)θ′(zjl)\theta^{'}({z_j}^l)∇θ({zjl})∇θ({zjl})\nabla \theta(\left\{{z_j}^l\right\})θθ\theta 所以....应该如何精确计算呢?

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 …

3
RNN vs CNN的高水平
我一直在考虑递归神经网络(RNN)及其变种以及卷积神经网络(CNN)及其变种。 这两点是否可以公平地说: 使用CNN将组件(例如图像)分解为子组件(例如图像中的对象,例如图像中对象的轮廓等) 使用RNN创建子组件的组合(图像标题,文本生成,语言翻译等) 如果有人想指出这些陈述中的任何错误之处,我将不胜感激。我的目标是在CNN和RNN的使用上建立更清晰的基础。

2
何时在统一初始化上使用(He或Glorot)正常初始化?批处理规范化有什么影响?
我知道残留网络(ResNet)使He正常的初始化很流行。在ResNet中,使用He常规初始化,而第一层使用He统一初始化。 我浏览过ResNet论文和“深入整流器”论文(他的初始化论文),但是我没有发现任何有关普通init和统一init的信息。 也: 批处理规范化使我们可以使用更高的学习率,而对初始化则不必那么小心。 在批处理规范化论文的摘要中,可以说批处理规范化使我们在初始化时不那么小心。 ResNet本身仍在关注何时使用普通init和统一init(而不是仅使用统一init)。 所以: 何时使用(He或Glorot)正态分布初始化而不是统一初始化? 批处理归一化的正态分布初始化效果是什么? 除了注释: 使用正常的init和Batch Normalization进行押韵,但是我还没有找到支持这一事实的论文。 我知道ResNet使用He init而不是Glorot init,因为He init在深度网络上的性能更好。 我了解Glorot初始化与He初始化。 我的问题是关于普通vs统一初始化。

3
如何解决深度神经网络中的欠拟合问题
当我开始使用人工神经网络(NN)时,我认为必须克服过度拟合作为主要问题。但是实际上,我什至无法让我的神经网络通过20%的错误率障碍。我什至无法在随机森林中超越我的分数! 我正在就如何使NN开始捕获数据趋势寻求一些非常笼统或不那么笼统的建议。 为了实现NN,我将Theano Stacked Auto Encoder与教程中的代码结合使用,该代码非常有用(错误率低于5%),可以对MNIST数据集进行分类。它是一个多层感知器,顶部有softmax层,每个隐藏的层后来被预先训练为自动编码器(在第8章的教程中有完整介绍)。有〜50个输入要素和〜10个输出类别。NN具有乙状神经元,所有数据均标准化为[0,1]。我尝试了许多不同的配置:隐藏层和神经元的数量(100-> 100-> 100、60-> 60-> 60、60-> 30-> 15等),不同的学习和预训练费率等 我能得到的最好的结果是,验证集的错误率是20%,测试集的错误率是40%。 另一方面,当我尝试使用Random Forest(来自scikit-learn)时,在验证集上我容易得到12%的错误率,在测试集上得到25%(!)。 我的具有预训练的深层NN表现如何如此糟糕?我该怎么办?

4
神经网络:使用哪个成本函数?
我正在使用TensorFlow主要用于神经网络的实验。尽管现在我已经做了大量的实验(XOR问题,MNIST,一些回归的东西……),但是我为特定的问题选择“正确的”成本函数很困难,因为总的来说我可以被认为是一个初学者。 在上TensorFlow之前,我自己使用Python和NumPy编写了一些完全连接的MLP和一些递归网络,但大多数情况下,我遇到了一个简单的平方误差和简单的梯度设计就足够了的问题。 但是,由于TensorFlow本身提供了很多成本函数以及构建自定义成本函数的功能,所以我想知道是否存在某种专门针对神经网络上的成本函数的教程?(我已经完成了一半的TensorFlow官方教程,但它们并没有真正解释为什么特定成本函数或学习者用于特定问题-至少对于初学者而言) 举一些例子: cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y_output, y_train)) 我猜想它在两个输入上都应用了softmax函数,以便一个向量的总和等于1。但是对数与logits的交叉熵到底是什么呢?我以为它会汇总值并计算交叉熵...那么一些度量标准度量值呢?如果我对输出进行归一化,求和并求平方误差,这是否会完全相同?此外,为什么将其用于MNIST(甚至更困难的问题)?当我想分类为10个甚至1000个类时,汇总这些值是否会完全破坏有关输出实际上是哪个类的任何信息? cost = tf.nn.l2_loss(vector) 这个是来做什么的?我以为l2损失几乎是平方误差,但TensorFlow的API告诉它输入只是一个张量。根本不知道这个主意吗? 此外,我经常看到这种用于交叉熵的方法: cross_entropy = -tf.reduce_sum(y_train * tf.log(y_output)) ...但是为什么要使用它?数学上的交叉熵损失不是: -1/n * sum(y_train * log(y_output) + (1 - y_train) * log(1 - y_output)) 哪里是(1 - y_train) * log(1 - y_output)在最TensorFlow例子的一部分?它不丢失吗? 答:我知道这个问题是很开放的,但是我不希望得到详细列出每个问题/成本函数的10页。我只需要简短总结一下何时使用哪个成本函数(一般而言还是在TensorFlow中,对我来说并不重要),以及有关此主题的一些解释。和/或一些初学者的资源;)

1
LeakyReLU和PReLU有什么区别?
我认为PReLU和Leaky ReLU都是 f(x)=max(x,αx) with α∈(0,1)f(x)=max(x,αx) with α∈(0,1)f(x) = \max(x, \alpha x) \qquad \text{ with } \alpha \in (0, 1) 但是Keras在docs中具有这两个功能。 泄漏的ReLU LeakyReLU的来源: return K.relu(inputs, alpha=self.alpha) 因此(请参阅relu代码) f1(x)=max(0,x)−αmax(0,−x)f1(x)=max(0,x)−αmax(0,−x)f_1(x) = \max(0, x) - \alpha \max(0, -x) 预备 PReLU的来源: def call(self, inputs, mask=None): pos = K.relu(inputs) if K.backend() == 'theano': neg = (K.pattern_broadcast(self.alpha, …

4
向时间序列模型LSTM添加功能
一直在阅读有关LSTM及其在时间序列上的用法的文章,虽然有趣但同时又很困难。我一直难以理解的一件事是向时间序列功能列表中添加其他功能的方法。假设您的数据集是这样的: t-3,t-2,t-1,输出 现在说您知道您有一个确实会影响输出的功能,但不一定是时间序列功能,比如说外面的天气。您可以添加一下这些内容吗,LSTM就能区分出时间序列方面和什么方面?

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.