Questions tagged «neural-network»

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

3
选择用于训练神经网络的优化器的准则
我已经使用神经网络已有一段时间了。但是,我经常遇到的一件事就是选择用于训练网络的优化器(使用反向传播)。我通常要做的只是从一个开始(例如标准的SGD),然后随机尝试其他一些。我想知道是否有更好的(且随机性较低)的方法来找到好的优化器,例如,从以下列表中查找: SGD(有或没有动力) 阿达达 阿达格拉德 RMSProp 亚当 我特别感兴趣的是,鉴于训练数据具有某些属性(例如,稀疏),是否有某种理论上的理由可以选拔另一个。我也可以想象某些优化器在特定领域比其他优化器工作得更好,例如,在训练卷积网络与前馈网络或分类与回归时。 如果你们中的任何人已经对如何选择优化程序制定了一些策略和/或直觉,那么我将非常感兴趣。此外,如果有一些工作提供了理论上的选择的依据,那就更好了。

4
使用Keras(Python)进行LSTM-RNN的超参数搜索
来自Keras RNN教程的文章:“ RNN 很棘手。批大小的选择很重要,损耗和优化器的选择很重要,等等。某些配置无法融合。” 因此,这是关于在Keras上调整LSTM-RNN的超参数的一个普遍问题。我想知道一种为您的RNN查找最佳参数的方法。 我从Keras'Github上的IMDB示例开始。 主要模型如下: (X_train, y_train), (X_test, y_test) = imdb.load_data(nb_words=max_features, test_split=0.2) max_features = 20000 maxlen = 100 # cut texts after this number of words (among top max_features most common words) batch_size = 32 model = Sequential() model.add(Embedding(max_features, 128, input_length=maxlen)) model.add(LSTM(128)) model.add(Dropout(0.5)) model.add(Dense(1)) model.add(Activation('sigmoid')) # try using …

4
S形函数在神经网络中的作用导数
我试图了解S型函数的导数在神经网络中的作用。 首先,我绘制了sigmoid函数,并使用python定义了所有点。该衍生物的确切作用是什么? import numpy as np import matplotlib.pyplot as plt def sigmoid(x): return 1 / (1 + np.exp(-x)) def derivative(x, step): return (sigmoid(x+step) - sigmoid(x)) / step x = np.linspace(-10, 10, 1000) y1 = sigmoid(x) y2 = derivative(x, 0.0000000000001) plt.plot(x, y1, label='sigmoid') plt.plot(x, y2, label='derivative') plt.legend(loc='upper left') plt.show()

1
为什么ReLU比其他激活功能更好
这里的答案指的是sigmoid像激活函数一样已经消失的梯度和爆炸的梯度,但是我猜Relu它有一个缺点,那就是它的期望值。对的输出没有限制Relu,因此其期望值不为零。我记得之前的时间普及Relu这tanh是最流行之间机器学习专家,而不是sigmoid。原因是的期望值tanh等于零,并且有助于更深层次的学习,从而在神经网络中更快地学习。Relu没有这个特性,但是如果我们不考虑它的派生优势,为什么它会如此出色。而且,我猜导数也可能会受到影响。因为激活(输出Relu)用于计算更新规则。

3
深度神经网络中的装袋与辍学
套袋是多个预测变量的生成,可以像单个预测变量一样进行混淆。辍学是一种教导神经网络求平均所有可能子网的技术。在最重要的Kaggle比赛中,这两种技术经常一起使用。除了实际的实现,我看不到任何理论上的差异。谁能解释我为什么在任何实际应用程序中都应同时使用它们?以及为什么同时使用它们时性能会提高?

4
神经网络中的额外输出层(十进制到二进制)
我正在研究在线书中的一个问题: http://neuralnetworksanddeeplearning.com/chap1.html 我可以理解,如果额外的输出层是5个输出神经元,那么我可能会将前一层的偏倚设置为0.5,权重分别为0.5和0.5。但是现在的问题是需要新的四个输出神经元层-足以代表处的10个可能的输出。24242^{4} 有人可以指导我完成理解和解决此问题的步骤吗? 练习题: 通过在上面的三层网络中增加一个额外的层,可以确定数字的按位表示。额外的层将前一层的输出转换为二进制表示,如下图所示。查找新输出层的一组权重和偏差。假设神经元的前3层是这样,即第三层(即旧的输出层)中的正确输出具有至少0.99的激活,而错误的输出具有小于0.01的激活。

2
为什么同时使用验证集和测试集?
考虑一个神经网络: 对于给定的数据集,我们将其分为训练,验证和测试集。假设我们以经典的60:20:20的比例进行操作,然后通过在验证集上检查网络来验证网络,以防止过度拟合。那么,需要在测试仪上对其进行测试以检查其性能吗? 测试集上的错误与验证集上的错误会不会有些相同,因为对于网络来说,它是一个看不见的数据,就像验证集一样,并且两者的数量都相同? 相反,我们不能通过将测试集合并到训练集上来增加训练集,以使我们拥有更多的训练数据并且网络训练得更好,然后使用验证集来防止过度拟合吗?我们为什么不这样做呢?

1
深度神经网络-使用ReLU进行反向传播
我在使用ReLU进行反向传播时遇到了一些困难,并且做了一些工作,但是我不确定自己是否走对了。 成本函数:12(y−y^)212(y−y^)2\frac{1}{2}(y-\hat y)^2,其中yyy是真正的值,并且 ÿ是一个预测值。还要假设x> 0总是。y^y^\hat yxxx 1层ReLU,其中第一层的权重为w1w1w_1 dCdw1=dCdRdRdw1dCdw1=dCdRdRdw1\frac{dC}{dw_1}=\frac{dC}{dR}\frac{dR}{dw_1} dCw1=(y−ReLU(w1x))(x)dCw1=(y−ReLU(w1x))(x)\frac{dC}{w_1}=(y-ReLU(w_1x))(x) 2层ReLU,其中第一层的权重为w2w2w_2,第二层的权重为w1w1w_1,我想更新第一层的权重w2w2w_2 dCdw2=dCdRdRdw2dCdw2=dCdRdRdw2\frac{dC}{dw_2}=\frac{dC}{dR}\frac{dR}{dw_2} dCw2=(y−ReLU(w1∗ReLU(w2x))(w1x)dCw2=(y−ReLU(w1∗ReLU(w2x))(w1x)\frac{dC}{w_2}=(y-ReLU(w_1*ReLU(w_2x))(w_1x) 由于ReLU(w1∗ReLU(w2x))=w1w2xReLU(w1∗ReLU(w2x))=w1w2xReLU(w_1*ReLU(w_2x))=w_1w_2x 3层ReLU,其中第一层的权重为,第二层的权重为w 2和第三层的权重为w 1w3w3w_3w2w2w_2w1w1w_1 dCdw3= dCd[Rd[Rdw3dCdw3=dCd[Rd[Rdw3\frac{dC}{dw_3}=\frac{dC}{dR}\frac{dR}{dw_3} dCw3=(y−ReLU(w1∗ReLU(w2(∗ReLU(w3)))(w1w2x)dCw3=(y−[RË大号ü(w1∗[RË大号ü(w2(∗[RË大号ü(w3)))(w1w2X)\frac{dC}{w_3}=(y-ReLU(w_1*ReLU(w_2(*ReLU(w_3)))(w_1w_2x) 由于ReLU(w1∗ReLU(w2(∗ReLU(w3))=w1w2w3xReLU(w1∗ReLU(w2(∗ReLU(w3))=w1w2w3xReLU(w_1*ReLU(w_2(*ReLU(w_3))=w_1w_2w_3x 由于链规则仅持续2个导数,而S型曲线则可能长达个层。nnn 假设我想更新所有3层权重,其中是第三层,w 2是第二层,w 1是第三层w1w1w_1w2w2w_2w1w1w_1 dCw1=(y−ReLU(w1x))(x)dCw1=(y−ReLU(w1x))(x)\frac{dC}{w_1}=(y-ReLU(w_1x))(x) dCw2=(y−ReLU(w1∗ReLU(w2x))(w1x)dCw2=(y−ReLU(w1∗ReLU(w2X))(w1X)\frac{dC}{w_2}=(y-ReLU(w_1*ReLU(w_2x))(w_1x) dCw3=(y−ReLU(w1∗ReLU(w2(∗ReLU(w3)))(w1w2x)dCw3=(y−ReLU(w1∗ReLU(w2(∗ReLU(w3)))(w1w2x)\frac{dC}{w_3}=(y-ReLU(w_1*ReLU(w_2(*ReLU(w_3)))(w_1w_2x) 如果这个推导是正确的,那么如何防止消失呢?与Sigmoid相比,Sigmoid在方程式中有很多乘以0.25,而ReLU没有任何常数值乘法。如果有成千上万的图层,则由于权重会产生很多乘法,那么这会不会导致梯度消失或爆炸?

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 

2
我们也应该对测试数据应用归一化吗?
我正在做一个关于作者识别问题的项目。我已经将tf-idf规范化用于训练数据,然后在该数据上训练了一个svm。 现在,当使用分类器时,我也应该标准化测试数据。我认为规范化的基本目的是使学习算法在学习时更加重视更重要的功能。因此,一旦经过培训,它就已经知道哪些功能很重要,哪些功能不重要。那么,是否还需要将规范化应用于测试数据? 我是这个领域的新手。因此,请忽略该问题是否显得愚蠢?

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 …

2
如何选择神经网络的特征?
我知道这个问题尚无明确答案,但让我们假设我有一个庞大的神经网络,其中包含大量数据,并且我想在输入中添加新功能。“最佳”方法是使用新功能测试网络并查看结果,但是有没有方法可以测试该功能是否异常有用?像相关度量(http://www3.nd.edu/~mclark19/learn/CorrelationComparison.pdf)等?

3
如何结合分类和连续输入特征进行神经网络训练
假设我们有两种输入功能,即分类输入和连续输入。分类数据可以表示为单热码A,而连续数据只是N维空间中的向量B。似乎仅使用concat(A,B)并不是一个好选择,因为A,B是完全不同的数据。例如,与B不同,A中没有数字顺序。因此,我的问题是如何组合这两种数据,或者是否有任何常规方法来处理它们。 实际上,我提出了一个朴素的结构,如图所示 如您所见,前几层用于将数据A更改(或映射)到连续空间中的某个中间输出,然后将其与数据B合并,形成连续空间中新的输入要素,供以后的层使用。我不知道这是合理的还是仅仅是“试错”的游戏。谢谢。

8
我如何学习神经网络?
我是一名新生,目前正在使用神经网络进行研究(这是提法的,因此您可能会原谅我的陌生感)。根据我教授的指导,我已经编码了一个三节点神经网络(有效)。但是,我想从事AI和数据科学领域的工作,并且想深入地自学这些知识。是否有任何书籍或资源可以教我更多有关神经网络结构,深度学习等的知识。是否有任何建议? 注意:我精通Java,Python,Bash,JavaScript,Matlab,并且懂一点C ++。

2
旋转角度的参数化回归
假设我有一个自上而下的箭头图片,并且我想预测该箭头所成的角度。这将在到度之间,或者在到。问题在于该目标是圆形的,度和度是完全相同的,这是我希望在目标中纳入的不变性,这将有助于显着地推广(这是我的假设)。问题是我没有找到解决这个问题的干净方法,是否有任何论文试图解决这个问题(或类似的问题)?对于它们的潜在缺点,我确实有一些想法:0003603603600002π2π2\pi000360360360 使用S形或tanh激活,将其缩放到(范围,并将圆形属性合并到损失函数中。我认为这将相当困难,因为如果它在边界上(最差的预测),则只有很小的噪音会推动砝码向另一方向移动。而且,更接近于和边界的值将更难达到,因为绝对预激活值将需要接近无穷大。0,2π)0,2π)0, 2\pi)0002π2π2\pi 回归到和这两个值,并根据这两个值所成的角度计算损耗。我认为这有更大的潜力,但此向量的范数不受限制,这可能会导致数值不稳定,并可能导致训练过程中爆炸或趋于零。可以通过使用一些怪异的正则化函数来防止此规范离1太远,从而解决此问题。xxxyyy 其他选项可能会对正弦和余弦函数有所帮助,但我感觉到这样的事实,即多个预激活映射到相同的输出也会使优化和泛化变得非常困难。

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.