gradient-descent相关内容

梯度下降似乎失败了

我实现了一种梯度下降算法,以最小化成本函数,从而获得用于确定图像质量是否良好的假设.我是在Octave中做到的.这个想法以某种方式基于Andrew Ng的机器学习课程中的算法> 因此,我有880个值"y",其中包含从0.5到〜12的值.而且我在"X"中有880个值(从50到300)可以预测图像的质量. 可悲的是,该算法似乎失败了,在一些迭代之后,theta的值是如此之小,以至于theta0 ..
发布时间:2020-05-04 08:58:54 AI人工智能

梯度下降的代码在哪里?

使用TensorFlow进行一些实验,想看看一些功能的实现,只是为了确切地了解如何完成某些事情,从tf.train.GradientDescentOptimizer的简单情况开始.从github下载了完整源代码的zip,对源树进行了一些搜索,然后转到: C:\tensorflow-master\tensorflow\python\training\gradient_descent.py c ..

pytorch-loss.backward()和optimizer.step()之间的连接

optimizer和loss之间的显式连接在哪里? 优化器如何知道在没有调用的情况下从何处获得损耗的梯度? -更多上下文- 当我将损失降到最低时,我不必将梯度传递给优化器. loss.backward() # Back Propagation optimizer.step() # Gardient Descent 解决方案 在不深入研究pytorch内部的情况下,我可 ..

Caffe:如果只有一小部分内存可以怎么办?

我正在尝试训练一个非常大的模型.因此,我只能将非常小的批处理大小放入GPU内存中.使用小批量生产的结果非常嘈杂的梯度估计. 我该怎么做才能避免这个问题? 解决方案 您可以在求解器参数中更改iter_size. Caffe在每个随机梯度下降步骤中的iter_size x batch_size实例上累积梯度. 因此,当由于内存有限而无法使用大的batch_size时,增加iter_size也 ..

Caffe中的"weight_decay"元参数是什么?

查看示例 'solver.prototxt' ,发布在BVLC/caffe git上,其中有一个训练元参数 weight_decay: 0.04 此meta参数是什么意思?我应该给它赋什么值? 解决方案 weight_decay元参数控制神经网络的正则化项. 在训练期间,将正则化项添加到网络的损耗中以计算反向传播梯度. weight_decay值确定此正则项在梯度计算中的主 ..

为什么将神经网络的权重初始化为随机数?

我正在尝试从头开始构建神经网络. 在所有AI文献中都达成共识,即权重应初始化为随机数,以使网络更快收敛. 但是为什么神经网络的初始权重被初始化为随机数? 我在某处读过,这样做是为了“打破对称性",这使神经网络学习得更快.如何打破对称,使其更快的学习? 将权重初始化为0会不是一个更好的主意?这样,权重就能更快地找到其值(正数或负数)? 在权重随机化之后,除了希望它们在初始化时 ..

训练过程中出现Nans的常见原因

我已经注意到,在训练期间经常出现NAN. 通常情况下,它似乎是在内部产品/完全连接或卷积层爆炸中通过权重引入的. 是否由于梯度计算被炸开而发生?还是因为权重初始化(如果这样,为什么权重初始化会产生这种效果)?还是可能是由于输入数据的性质引起的? 这里的首要问题很简单:在训练过程中发生NAN的最常见原因是什么?其次,有什么方法可以消除这种情况(为什么它们起作用)? 解决方案 好 ..

成本函数训练目标与准确性目标

当我们训练神经网络时,我们通常使用梯度下降,这依赖于连续的,可微分的实值成本函数.例如,最终成本函数可能采用均方误差.或换种说法,梯度下降隐式地假设最终目标是回归-以最大程度地减少实值误差度量. 有时候,我们希望神经网络要做的是执行分类-给定输入,将其分类为两个或多个离散类别.在这种情况下,用户关心的最终目标是分类的准确性-正确分类的案例所占的百分比. 但是,当我们使用神经网络进行分类 ..

如何使用Spark正确获取合成数据集的权重?

我正在针对综合数据集在Spark上执行LogisticRegressionWithSGD.我已经使用香草梯度下降法在Matlab上计算了误差,R值为5%.我得到了用于生成y的模型中使用的相似权重.数据集是使用此示例生成的. 尽管我最终可以通过不同的步长调整获得非常接近的错误率,但是各个功能的权重并不相同.实际上,它变化很大.我尝试了LBFGS来产生火花,它能够在几次迭代中正确预测误差和重量. ..

为什么Logistic回归成本变为负数并且不正确?

我正在Matlab中实现逻辑回归.数据已标准化(均值和标准差).我了解,根据您的学习速度,您可能会超出最佳点.但这是否意味着您的费用开始上涨?就我而言,成本变成了负数,我不明白为什么. 这是我认为是标准的成本和重量更新规则 function J = crossEntropyError(w, x, y) h = sigmoid(x*w); J = (-y'*log(h) - (1 ..

八度中fminunc的Java实现

我试图在Java中找到八度的fminunc(函数最小化不受限制)库的Java版本.目的是将其用于逻辑回归. 当前,我正在使用梯度下降的自制版本以使成本最小化,并且我希望能够使用一个已经存在的库(在Java中)为我做到这一点.这与我从 Coursera机器学习 Java课程. 解决方案 啊,您可以检查以下几项内容的适用性: http://dev.davidsoergel.com/ ..

"warm_start"参数及其对计算时间的影响

我有一个后勤回归模型,一组定义的参数(warm_start=True). 和往常一样,我呼叫LogisticRegression.fit(X_train, y_train),然后使用该模型预测新的结果. 假设我更改了某些参数,例如C=100,并使用相同的训练数据再次调用.fit方法. 从理论上讲,我认为第二次.fit与使用warm_start=False的模型相比,应该花费更少的 ..

梯度下降的替代方法是什么?

梯度下降存在局部极小值的问题.我们需要运行梯度下降指数时间来找到全局最小值. 有人能告诉我有关梯度下降的其他选择吗? 谢谢. 解决方案 与使用的方法相比,将函数最小化要解决的问题更多,如果找到真正的全局最小值很重要,则使用诸如模拟的方法退火.这样就可以找到全局最小值,但是可能要花很长时间. 在神经网络的情况下,局部极小值不一定是一个大问题.某些局部最小值是由于您可以通过置 ..

Logistic回归中的成本函数得出NaN作为结果

我正在使用批量梯度下降实现逻辑回归.输入样本分为两类.类是1和0.在训练数据时,我正在使用以下Sigmoid函数: t = 1 ./ (1 + exp(-z)); 其中 z = x*theta 我正在使用以下成本函数来计算成本,以确定何时停止培训. function cost = computeCost(x, y, theta) htheta = sigmoid( ..