Questions tagged «deep-learning»

机器学习研究的一个新领域,涉及用于学习数据的分层表示的技术,主要是通过深度神经网络(即具有两个或多个隐藏层的网络)完成的,但也与某种概率图形模型有关。

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

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

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



5
使用ARIMA和LSTM进行时间序列预测
我要处理的问题是预测时间序列值。我正在一次查看一个时间序列,例如,基于15%的输入数据,我想预测其未来值。到目前为止,我遇到了两种模型: LSTM(长期短期记忆;一类递归神经网络) 有马 我都尝试过并阅读了一些文章。现在,我试图更好地了解如何比较两者。到目前为止,我发现了什么: 如果我们要处理大量数据并且有足够的训练数据,那么LSTM会更好地工作,而ARIMA对于较小的数据集则更好(这是正确的吗?) ARIMA需要一系列(p,q,d)必须基于数据计算的参数,而LSTM不需要设置此类参数。但是,我们需要为LSTM调整一些超参数。 编辑:我在这里读到一篇很棒的文章时注意到的两者之间的主要区别是,ARIMA只能在固定时间序列(没有季节性,趋势等)下表现良好,如果需要,想要使用ARIMA 除了上述特性之外,我找不到其他可以帮助我选择最佳模型的要点或事实。如果有人能帮助我找到文章,论文或其他东西,我将非常感谢(到目前为止,还没有运气,只是到处都是一些一般性意见,而没有基于实验的内容。) 我不得不提到,最初我是在处理流数据,但是现在我使用的是NAB数据集,其中包括50个数据集,最大大小为2万个数据点。

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表现如何如此糟糕?我该怎么办?

3
LSTM模型中的参数数量
一个堆叠的LSTM有几个参数?参数的数量对所需的训练示例的数量施加了下限,并且还影响训练时间。因此,了解参数数量对于使用LSTM训练模型很有用。

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

4
为什么在所有训练数据中,最小批次大小比单个“批次”更好?
我经常读到,在使用深度学习模型的情况下,通常的做法是在几个训练时期内应用小批量(通常是32/64的小批量)。我无法真正理解背后的原因。 除非我没有记错,否则批大小是模型在训练迭代期间看到的训练实例的数量;当模型已经看到每个训练实例时,纪元就轮到了。如果是这样,我看不到对训练实例的几乎无关紧要的子集进行多次迭代的优势,而与通过将每个回合中所有可用的训练实例暴露给模型来应用“最大批次”相反(当然,假设足够记忆)。这种方法的优势是什么?

3
Keras中的batch_size对结果的质量有影响吗?
我将要训练一个包含2-3百万篇文章的大型LSTM网络,并且正面临着内存错误(我使用AWS EC2 g2x2large)。 我发现一种解决方案是减少batch_size。但是,我不确定此参数是否仅与内存效率问题有关,还是会影响我的结果。实际上,我还注意到batch_size示例中使用的通常是2的幂,我也不理解。 我不介意我的网络需要花费更长的时间来训练,但是我想知道是否减少batch_size会降低我的预测质量。 谢谢。

3
“同等翻译”和“同等翻译”有什么区别
我很难理解翻译的等变量和翻译的不变量之间的区别。 在《深度学习》一书中。麻省理工学院出版社,2016年(I. Goodfellow,A。Courville和Y. Bengio),在卷积网络上可以找到: [...]参数共享的特定形式导致该图层具有一个称为“ 等值转换” 的属性 [...]池有助于使代表成为大致不变的输入小的平移 它们之间是否有区别,或者这些术语可以互换使用?


6
交叉熵损失的解释
假设我建立了一个用于分类的NN。最后一层是具有softmax激活的密集层。我有五个不同的班级来分类。假设有一个训练示例,true label则[1 0 0 0 0]预测为[0.1 0.5 0.1 0.1 0.2]。我将如何计算此示例的交叉熵损失?

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.