Questions tagged «optimization»

将此标记用于统计信息中的优化用途。



1
为什么“宽松套索”与标准套索不同?
如果我们开始与一组数据的,应用套索给它,将获得的溶液β 大号,我们可以再次应用套索到数据集(X 小号,ÿ ),其中小号是一组非零的指标β 大号,以得到溶液,β - [R 大号,被称为“放松套索”的解决方案(如果我错了指正!)。将溶液β 大号必须满足Karush-库恩-塔克(KKT)条件下对(X ,ÿ )(X,Y)(X,Y)(X,Y)βLβL\beta^L(XS,Y)(XS,Y)(X_S, Y)SSSβLβL\beta^LβRLβRL\beta^{RL}βLβL\beta^L(X,Y)(X,Y)(X,Y),但考虑的KKT条件的形式它是否也满足这些条件?如果是这样,第二次做LASSO有什么意义?(XS,Y)(XS,Y)(X_S, Y) 该问题是针对以下问题的后续措施: 做“双套索”或两次执行套索的优势?

1
GLM中的对数似然性是否可以保证收敛到全局最大值?
我的问题是: 是否可以保证广义线性模型(GLM)收敛到全局最大值?如果是这样,为什么? 此外,链接函数对确保凸性有哪些约束? 我对GLM的理解是它们最大化了高度非线性的似然函数。因此,我可以想象有几个局部最大值,您收敛到的参数集取决于优化算法的初始条件。但是,在进行了一些研究之后,我没有找到一个单一的来源来表明存在多个局部最大值。此外,我对优化技术不是很熟悉,但是我知道Newton-Raphson方法和IRLS算法非常容易出现局部最大值。 请尽可能在直观和数学的基础上进行解释! 编辑:dksahuji回答了我的原始问题,但我想在上面添加后续问题[ 2 ]。(“链接函数上有什么约束可确保凸性?”)

2
如何选择合适的优化算法?
我需要找到一个函数的最小值。在http://docs.scipy.org/doc/scipy/reference/optimize.html上阅读文档,我发现有几种算法可以完成相同的工作,即找到最小的算法。我怎么知道我应该选择哪一个? 列出了一些算法 使用下坡单纯形算法最小化功能。 使用BFGS算法最小化功能。 使用非线性共轭梯度算法最小化函数。 使用Newton-CG方法将函数f最小化。 使用修改的Powell方法最小化功能。 我的函数是线性的。维度约为232750(这是我每次必须计算多少个不同的渐变),一次计算渐变和成本大约需要2分钟,因此并不便宜。我认为我没有约束。它是确定性的和连续的。

2
为什么期望最大化对于混合模型很重要?
有许多文献强调混合模型(高斯混合模型,隐马尔可夫模型等)上的期望最大化方法。 为何EM重要?EM只是一种优化方法,并未广泛用作基于梯度的方法(梯度体面或牛顿/准牛顿法)或此处讨论的其他无梯度方法。此外,EM仍然存在局部极小问题。 是因为该过程是直观的并且可以轻松地转换为代码吗?还是其他原因?

1
与标准梯度下降相比,随机梯度下降如何节省时间?
标准梯度下降将为整个训练数据集计算梯度。 for i in range(nb_epochs): params_grad = evaluate_gradient(loss_function, data, params) params = params - learning_rate * params_grad 对于预定义的时期数,我们首先使用参数向量参数为整个数据集计算损失函数的梯度向量weights_grad。 相反,随机梯度下降为每个训练示例x(i)和标签y(i)执行参数更新。 for i in range(nb_epochs): np.random.shuffle(data) for example in data: params_grad = evaluate_gradient(loss_function, example, params) params = params - learning_rate * params_grad SGD据说要快得多。但是,我不明白如果仍然对所有数据点进行循环,那么如何更快。GD中梯度的计算是否比分别为每个数据点计算GD慢得多? 代码来自这里。

1
关于感知器规则与梯度下降与随机梯度下降实现的说明
我对不同的Perceptron实现进行了一些实验,并希望确定我是否正确理解了“迭代”。 罗森布拉特的原始感知器规则 据我了解,在罗森布拉特的经典感知器算法中,权重在每个训练示例之后通过 Δw(t+1)=Δw(t)+η(target−actual)xiΔw(t+1)=Δw(t)+η(target−actual)xi\Delta{w}^{(t+1)} = \Delta{w}^{(t)} + \eta(target - actual)x_i 其中是这里的学习规则。目标和实际都被阈值化(-1或1)。我将其实现为1次迭代= 1次遍历训练样本,但是权重向量在每次训练样本后都会更新。Ë 吨一ËŤ一种eta 我将“实际”值计算为 sign(wwTxx)=sign(w0+w1x1+...+wdxd)sign(wwTxx)=sign(w0+w1x1+...+wdxd) sign ({\pmb{w}^T\pmb{x}}) = sign( w_0 + w_1 x_1 + ... + w_d x_d) 随机梯度下降 Δw(t+1)=Δw(t)+η(target−actual)xiΔw(t+1)=Δw(t)+η(target−actual)xi\Delta{w}^{(t+1)} = \Delta{w}^{(t)} + \eta(target - actual)x_i 相同感知规则,但是,target并actual没有阈值处理,但真正的价值。另外,我将“迭代”视为训练样本上的路径。 在这种线性可分离的情况下,SGD和经典感知器规则都收敛,但是,我在梯度下降实现方面遇到了麻烦。 梯度下降 在这里,我查看了训练样本并总结了训练样本1次传递后的权重变化,然后更新了权重,例如, 对于每个训练样本: Δwnew+=Δw(t)+η(target−actual)xiΔwnew+=Δw(t)+η(target−actual)xi\Delta{w_{new}} \mathrel{{+}{=}} \Delta{w}^{(t)} + \eta(target - actual)x_i ... 经过1次训练后: …

2
手工进行ARIMA估算
我试图了解如何在ARIMA建模/ Box Jenkins(BJ)中估算参数。不幸的是,我所遇到的书都没有详细描述估计程序,例如对数似然估计程序。我发现该网站/教学材料非常有帮助。以下是来自上面引用的来源的公式。 L L (θ )= − n2日志(2 π)− n2日志(σ2)- Σt = 1ñË2Ť2个σ2大号大号(θ)=-ñ2日志⁡(2π)-ñ2日志⁡(σ2)-∑Ť=1个ñËŤ22σ2 LL(\theta)=-\frac{n}{2}\log(2\pi) - \frac{n}{2}\log(\sigma^2) - \sum\limits_{t=1}^n\frac{e_t^2}{2\sigma^2} 我想自己学习ARIMA / BJ估计。因此,我使用编写了用于手工估算ARMA的代码。下面是我在做,[R[R[RR[R[RR 我模拟了ARMA(1,1) 将上面的方程写成函数 使用模拟数据和优化函数来估计AR和MA参数。 我还在stats软件包中运行ARIMA,并通过手工比较了ARMA参数。 比较如下: **以下是我的问题: 为什么估计变量和计算变量之间存在细微差异? ARIMA是否在R反向广播中起作用,或者估算程序与我的代码中以下概述的有所不同? 我已将观测值1的e1或错误指定为0,这是正确的吗? 还有没有一种方法可以使用优化的粗略估计来估计预测的置信范围? 一如既往的感谢您的帮助。 下面是代码: ## Load Packages library(stats) library(forecast) set.seed(456) ## Simulate Arima y <- arima.sim(n = 250, list(ar = …

1
CNN如何避免消失的梯度问题
我已经阅读了很多有关卷积神经网络的文章,并且想知道它们如何避免消失的梯度问题。我知道深度信任网络会堆叠单级自动编码器或其他经过预先训练的浅层网络,因此可以避免此问题,但是我不知道如何在CNN中避免这种情况。 根据维基百科: “尽管存在上述“消失的梯度问题”,但GPU的优越处理能力使普通的反向传播对于多层多层前馈神经网络来说是可行的。” 我不明白为什么GPU处理会消除此问题?

1
为什么不能将glmer(family = binomial)输出与手动实现的Gauss-Newton算法匹配?
我想将lmer(really glmer)的输出与一个玩具二项式示例进行匹配。我读过小插曲,并相信自己了解发生了什么事。 但是显然我没有。卡住后,我根据随机效应固定了“真相”,然后单独估计了固定效应。我在下面包含此代码。要查看其合法性,您可以注释掉+ Z %*% b.k它,并将其与常规glm的结果匹配。我希望借用一些聪明才智来弄清楚为什么在包含随机效果的情况下我无法匹配lmer的输出。 # Setup - hard coding simple data set df <- data.frame(x1 = rep(c(1:5), 3), subject = sort(rep(c(1:3), 5))) df$subject <- factor(df$subject) # True coefficient values beta <- matrix(c(-3.3, 1), ncol = 1) # Intercept and slope, respectively u <- matrix(c(-.5, .6, .9), ncol = …

1
为什么单个ReLU无法学习ReLU?
作为我神经网络甚至无法学习欧几里德距离的后续操作,我进一步简化了方法,并尝试将单个ReLU(具有随机权重)训练为单个ReLU。这是目前最简单的网络,但有一半时间未能融合。 如果初始猜测与目标的方位相同,则它会快速学习并收敛到正确的权重1: 如果最初的猜测是“向后”,则它的权重为零,并且永远不会经过它到达较低损失的区域: 我不明白为什么。梯度下降不应该轻易遵循损耗曲线达到全局最小值吗? 示例代码: from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, ReLU from tensorflow import keras import numpy as np import matplotlib.pyplot as plt batch = 1000 def tests(): while True: test = np.random.randn(batch) # Generate ReLU test case X = test Y = test.copy() Y[Y < 0] …

1
为什么为深度学习的Adam优化器包括偏差校正项很重要?
我正在阅读有关深度学习的Adam优化器的内容,并在Begnio,Goodfellow和Courtville撰写的新书Deep Learning中遇到了以下句子: 亚当包括对一阶矩(动量项)和(无心)二阶矩的估计值的偏差校正,以说明它们在原点处的初始化。 似乎包含这些偏差校正项的主要原因是,它以某种方式消除了和的初始化偏差。米Ť= 0mt=0m_t = 0vŤ= 0vt=0v_t = 0 我不是100%知道这是什么意思,但在我看来,这很可能意味着第一和第二时刻从零开始,并以某种方式从零开始倾斜,以不公平(或有用)的方式使值接近零。 ? 虽然我很想知道这意味着什么,以及它如何损害学习。特别是,在优化方面,不偏向优化器有哪些优势? 这如何帮助训练深度学习模型? 另外,无偏见是什么意思?我很熟悉无偏标准偏差的含义,但是我不清楚在这种情况下这意味着什么。 偏差校正真的很重要吗?还是亚当优化器论文过度夸大了它? 就是这样,人们知道我已经非常努力地理解原始论文,但是我从阅读和重新阅读原始论文中受益匪浅。我认为其中一些问题可能会在此处得到解答,但我似乎无法解析答案。

3
使用归一化梯度和梯度的区别
在梯度下降算法的常规设置中,我们有,其中是当前点,是步长,是梯度在评估。 xn+1=xn−η∗gradientxnxn+1=xn−η∗gradientxnx_{n+1} = x_{n} - \eta * gradient_{x_n}xnxnx_nηη\etagradientxngradientxngradient_{x_n}xnxnx_n 我已经在某种算法中看到,人们使用归一化梯度而不是gradient。我想知道使用归一化渐变和简单渐变有什么区别。

1
为什么我们不使用非恒定学习率来实现除神经网络以外的其他事物的梯度体面?
在梯度下降中使用非恒定的学习率,深度学习文学充满了巧妙的技巧。像指数衰减,RMSprop,Adagrad等之类的东西很容易实现,并且在每个深度学习包中都可用,但是在神经网络之外似乎并不存在。有什么理由吗?如果只是人们根本不在乎,是否有理由为什么我们不必在神经网络之外关心?

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.