Questions tagged «neural-networks»

人工神经网络(ANN)是一类广泛的基于生物神经网络的计算模型。它们包括前馈NN(包括“深度” NN),卷积NN,递归NN等。

2
如何初始化过滤矩阵的元素?
我试图通过编写不依赖库的Python代码(例如Convnet或TensorFlow)来更好地理解卷积神经网络,并且我陷入了如何选择内核矩阵值的文献中。在图像上执行卷积。 我试图在下图显示CNN图层的功能图之间的步骤中了解实现细节。 根据此图: 内核矩阵内核在图像上“步进”,创建特征图,其中每个像素是内核(或滤波器矩阵)的每个权重与输入图像的相应像素值之间的所有按元素乘积的总和。 我的问题是:我们如何初始化内核(或过滤器)矩阵的权重? 在上面的演示中,它们只是1和0,但是我认为这是从图中简化的。 是否在某些预处理步骤中对这些权重进行了训练?还是由用户明确选择?

1
Keras,SGD学习率衰减如何起作用?
如果您查看文档http://keras.io/optimizers/,则SGD中有一个用于衰减的参数。我知道随着时间的推移,这会降低学习率。但是,我无法弄清楚它是如何工作的。它是一个乘以学习率的值,例如lr = lr * (1 - decay) 指数吗?另外,如何查看模型使用的学习率?当我model.optimizer.lr.get_value()经过几次拟合后进行打印时,即使我设置了衰减,它也会恢复原始的学习速度。 我还必须设置nesterov = True来使用动量,还是可以使用两种不同类型的动量?例如这样做有一点意义sgd = SGD(lr = 0.1, decay = 1e-6, momentum = 0.9, nesterov = False)

1
如何解释TensorBoard中TensorFlow给出的直方图?
我最近正在跑步并学习张量流,并得到了一些我不知道如何解释的直方图。通常我将条形的高度视为频率(或相对频率/计数)。但是,没有像通常的直方图那样没有条形的事实以及事物被阴影化的事实使我感到困惑。似乎一次也有很多行/高度? 是否有人知道如何解释以下图表(也许提供了很好的建议,它们通常可以帮助阅读张量流中的直方图): 也许还有其他值得讨论的事情,如果原始变量是矢量,矩阵或张量,那么张量流实际上显示了什么,就像每个坐标的直方图一样?另外,也许引用如何获取这些信息以使人们自给自足会很好,因为我现在在文档上很难找到有用的东西。也许一些教程示例等?也许一些关于操纵它们的建议也会很好。 作为参考,这里摘录了给出此代码的代码: (X_train, Y_train, X_cv, Y_cv, X_test, Y_test) = data_lib.get_data_from_file(file_name='./f_1d_cos_no_noise_data.npz') (N_train,D) = X_train.shape D1 = 24 (N_test,D_out) = Y_test.shape W1 = tf.Variable( tf.truncated_normal([D,D1], mean=0.0, stddev=std), name='W1') # (D x D1) S1 = tf.Variable( tf.constant(100.0, shape=[]), name='S1') # (1 x 1) C1 = tf.Variable( tf.truncated_normal([D1,1], mean=0.0, stddev=0.1), name='C1' ) …


3
堆叠卷积自动编码器的体系结构是什么?
因此,我正在尝试使用卷积网络对人的图像进行预训练。我阅读了论文(Paper1和Paper2)以及这个stackoverflow链接,但是我不确定我是否了解网络的结构(在论文中没有很好地定义)。 问题: 我可以让我的输入,然后是噪波层,接着是conv层,再是池化层-之后-在提供输出之前是否要进行解池(与输入图像相同)? 假设我有几张(135,240)张图片。如果使用32(12,21)个内核,然后使用(2,2)池化,则最终将得到32(62,110)个特征图。现在,我是否要分解以获取32(124、220)个特征图,然后对其进行展平?给我的(135,240)输出层之前? 如果我有多个这样的转换池层,是否应该一一训练它们-就像在堆叠的去噪自动编码器中一样?或者-我可以有类似input-conv-pool-conv-pool-conv-pool-output(输出与输入相同)的东西吗?在那种情况下,应该如何管理池化,池化?我是否应该仅在输出之前的最后一个池层中解池?再说一遍,该分池的调整大小因素应该是什么?是否打算将要素图恢复为输入的形状? 我应该在每个conv-pool-depool层之后引入噪声层吗? 然后在进行微调时-我是否应该只删除去池层,其余的保持不变。还是应该同时删除噪声层和去池化层 谁能指出我的网址/论文,其中详细介绍了这种堆叠式卷积自动编码器的架构,可以对图像进行预训练?

1
为什么神经网络的成本函数是非凸的?
这里有一个类似的线程(神经网络的成本函数是非凸的?),但我无法理解那里答案的要点,我再次询问的原因希望这可以澄清一些问题: 如果我使用差额成本函数平方和,那么我最终将优化形式的某物,其中是训练期间的实际标签值相位,是预测标签值。由于它具有正方形形式,因此应该是凸成本函数。那么,什么会使它在NN中不凸?Σñ我= 1(y一世- ÿ一世^)2Σi=1N(yi−yi^)2 \Sigma_{i=1}^{N}(y_i - \hat{y_i})^2ÿyyy^y^\hat{y}

1
通过ResNet跳过连接进行梯度反向传播
我很好奇如何使用ResNet模块/跳过连接通过神经网络向后传播梯度。我已经看到了关于ResNet的几个问题(例如,具有跳过层连接的神经网络),但是这个问题专门询问了训练过程中梯度的反向传播。 基本架构在这里: 我读了这篇论文《残差网络的图像识别研究》,在第2部分中,他们讨论了ResNet的目标之一是如何为梯度提供更短/更清晰的路径,使其反向传播至基础层。 谁能解释梯度如何流过这种类型的网络?我不太了解加法运算以及加法后缺少参数化图层如何实现更好的梯度传播。它是否与流经加法运算符时渐变不发生变化以及是否以无乘法方式重新分布有关? 此外,我可以理解,如果梯度不需要流过权重层,那么如何减轻消失的梯度问题,但是如果没有梯度流经权重,那么在向后传递之后如何更新它们?

3
Relu vs Sigmoid vs Softmax作为隐藏层神经元
我正在使用Tensorflow制作的只有一个隐藏层的简单神经网络,然后尝试对隐藏层进行不同的激活: 露露 乙状结肠 Softmax(嗯,通常在最后一层使用softmax。) Relu提供最佳的列车精度和验证精度。我不确定如何解释这一点。 我们知道Relu具有良好的品质,例如稀疏性(例如无梯度消失)等,但是 问:Relu神经元通常比乙状结肠/ softmax神经元好吗?我们是否应该几乎总是在NN(甚至CNN)中使用Relu神经元? 我认为,如果我们担心过度拟合,则更复杂的神经元会带来更好的结果,至少可以提高训练的准确性。 谢谢PS:该代码基本上来自“ Udacity-Machine learning -assignment2”,它是使用简单的1层-NN识别notMNIST的。 batch_size = 128 graph = tf.Graph() with graph.as_default(): # Input data. tf_train_dataset = tf.placeholder(tf.float32, shape=(batch_size, image_size * image_size)) tf_train_labels = tf.placeholder(tf.float32, shape=(batch_size, num_labels)) tf_valid_dataset = tf.constant(valid_dataset) tf_test_dataset = tf.constant(test_dataset) # hidden layer hidden_nodes = 1024 hidden_weights = …

3
为什么要对神经网络使用梯度下降?
当使用反向传播算法训练神经网络时,使用梯度下降法确定权重更新。我的问题是:与其使用梯度下降法相对于某个权重缓慢地定位最小点,不如我们只设置导数,并找到将误差最小化的权重的值?d(错误)dw= 0d(错误)dw=0\frac{d(\text{Error})}{dw}=0www 另外,为什么我们可以确定反向传播中的误差函数将是最小的?难道不是错误函数是最大值?压扁函数是否具有特定的特性,可以保证具有任意数量的具有任意权重和输入矢量的隐藏节点的网络将始终提供具有某些最小值的误差函数?


2
受限玻尔兹曼机器与多层神经网络
我一直想尝试使用神经网络来解决我面临的分类问题。我碰到了有关注重成果的管理的论文。但是据我了解,它们与拥有多层神经网络没有什么不同。这个准确吗? 此外,我与R合作,没有看到RBM的任何罐头包装。我确实碰到过有关深度学习网络的文献,这些深度学习网络基本上是堆叠的RBM,但不确定在R中实现它们是否值得努力。有人会提出任何建议吗?谢谢

9
如何确定神经网络预测的置信度?
为了说明我的问题,例如,假设我有一个训练集,其中输入具有一定程度的噪声,但输出却没有噪声。 # Training data [1.02, 1.95, 2.01, 3.06] : [1.0] [2.03, 4.11, 5.92, 8.00] : [2.0] [10.01, 11.02, 11.96, 12.04] : [1.0] [2.99, 6.06, 9.01, 12.10] : [3.0] 如果无噪声(不是实际的梯度),那么这里的输出就是输入数组的梯度。 训练网络后,对于给定的输入,输出应类似于以下内容。 # Expected Output [1.01, 1.96, 2.00, 3.06] : 95% confidence interval of [0.97, 1.03] [2.03, 4.11, 3.89, 3.51] : 95% …



2
受限玻尔兹曼机器:如何在机器学习中使用?
背景: 是的,可以使用受限玻尔兹曼机(RBM)来启动神经网络的权重。此外,它可以在一个“层-层”的方式被用于建立一个深信念网络(即,培养一个上的顶部第层(ñ - 1 )个层,然后训练ñ + 1上的顶层第ñ个层,漂洗和重复...) ññn(n − 1 )(ñ-1个)(n-1)n + 1ñ+1个n+1ññn。 关于如何使用RBM,可以从《受限玻尔兹曼机器》(RBM)的“ 良好”教程的线程中找到详细信息,在该 文章中可以找到一些论文和教程。 我的问题是: RBM是否真的用于工业项目或学术项目中 如果是,如何使用它以及在哪个项目上使用? 有没有流行的库(例如tensorflow,Caffe,Theono等)提供RBM模块? 感谢分享。我想知道成果管理制在实践中是否真的有用。

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.