Questions tagged «optimization»

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



3
优化技术是否映射到采样技术?
从任何通用采样算法中,可以得出一种优化算法。 事实上,为了最大化任意函数,其足以从绘制样品克〜ë ˚F / Ť。对于足够小的T,这些样本将落在函数f的全局最大值(或实践中的局部最大值)附近。F:x → f(x)F:X→F(X)f: \textbf{x} \rightarrow f(\textbf{x})G〜êF/吨G〜ËF/Ťg \sim e^{f/T}ŤŤTFFf 我所说的“采样”是指从给定一个对数似然函数的分布中抽取一个伪随机样本。例如,MCMC采样,Gibbs采样,波束采样等。“优化”是指尝试找到使给定函数的值最大化的参数。 反过来可能吗?给定启发式查找函数或组合表达式的最大值,是否可以提取有效的采样过程? 例如,HMC似乎利用了梯度信息。我们能否构造一个利用类似于BFGS的Hessian近似的采样程序?(编辑:显然是:http : //papers.nips.cc/paper/4464-quasi-newton-methods-for-markov-chain-monte-carlo.pdf)我们可以在组合问题中使用MCTS,我们可以翻译一下吗?进入抽样程序? 背景:采样困难通常是大部分概率分布都位于非常小的区域内。有一些有趣的技术可以找到这样的区域,但是它们并不能直接转化为无偏采样程序。 编辑:我现在有一种挥之不去的感觉,即这个问题的答案在某种程度上等同于等价类#P和NP的相等,使得答案可能是“否”。它确实解释了为什么每种采样技术都会产生优化技术,但反之则不然。



3
批量大小如何影响SGD的收敛,为什么?
我在许多讨论中都得出了类似的结论,即随着小批量生产的规模变大,SGD的收敛实际上变得越来越困难,例如本文和这个答案。我也听说有人在早期使用小学习率或批量大小之类的技巧来解决大批量问题。 但是,这似乎是违反直觉的,因为小批量的平均损失可以认为是数据分布上预期损失的近似值 1个| X|∑X ∈ Xl (x ,w )≈ ÈX 〜 pd一个牛逼一[ l (x ,w )]1个|X|∑X∈X升(X,w)≈ËX〜pd一种Ť一种[升(X,w)]\frac{1}{|X|}\sum_{x\in X} l(x,w)\approx E_{x\sim p_{data}}[l(x,w)] 较大的批量大小的更准确它应该是。为什么实际上不是这样? 以下是我的一些想法(可能是错误的),试图加以解释。 模型的参数彼此高度依赖,当批处理变得太大时,它会同时影响太多的参数,以至于参数很难达到稳定的固有依赖性?(如批处理规范化文件中提到的内部协变量偏移问题) 还是当几乎所有参数都在每次迭代中负责时,它们将倾向于学习冗余的隐式模式,从而降低了模型的容量?(我的意思是说,对于数字分类问题,某些图案应负责点,某些图案应负责边缘,但是当发生这种情况时,每个图案都应负责所有形状)。 还是因为当批的大小接近训练集的规模时,由于相关小批的可能性很大,所以小批不再从数据分布中被视为同小异? 更新 正如Benoit Sanchez的答案所指出的,一个重要的原因是大型微型批次需要更多的计算才能完成一次更新,并且大多数分析都使用固定数量的训练时期进行比较。 但是,这篇论文(Wilson和Martinez,2003年)表明,即使有足够的训练时间,较大的批次规模仍然略有不利。通常是这样吗?

2
是否应在不进行替代的情况下抽取随机抽取的用于小批量训练神经网络的训练样本?
我们定义一个时期为已经遍历所有可用训练样本的全部,而最小批量大小则是我们求平均值以找到下降梯度所需的权重/偏差的样本数。 我的问题是,我们是否应该从训练示例集中取而代之,以便在一个时期内生成每个小批量生产。我觉得我们应该避免替换,以确保我们实际上“抽取了所有样本”以满足时代的要求,但是很难以一种或另一种方式找到确定的答案。 我已经尝试使用Google搜索和阅读Ch。Nielsen的《神经网络与深度学习》中的 1种,但没有找到明确的答案。在该文本中,尼尔森(Nielsen)没有指定随机抽样而不进行替换,而是暗示这样做。 如果需要,可以在这里找到更清晰的正式培训形式-https: //stats.stackexchange.com/a/141265/131630 编辑:这个问题似乎与我相似,但目前尚不清楚如何将期望的线性对独立性无视的事实应用于这种情况- 是否应在有或没有替代的情况下进行抽样

2
梯度下降可以应用于非凸函数吗?
我只是在学习优化,而难以理解凸优化和非凸优化之间的区别。根据我的理解,凸函数是“函数图上任意两点之间的线段位于图的上方或上方”的凸函数。在这种情况下,可以使用梯度下降算法,因为存在一个最小值,并且梯度将始终使您达到该最小值。 但是,该图中的功能如何: 此处,蓝线段在红色功能下方交叉。但是,该函数仍具有一个最小值,因此梯度下降仍将您带到该最小值。 所以我的问题是: 1)该图中的函数是凸的还是非凸的? 2)如果不是凸的,那么是否仍然可以使用凸优化方法(梯度下降)?


3
R中的glm函数使用哪种优化算法?
可以使用以下代码在R中执行logit回归: > library(MASS) > data(menarche) > glm.out = glm(cbind(Menarche, Total-Menarche) ~ Age, + family=binomial(logit), data=menarche) > coefficients(glm.out) (Intercept) Age -21.226395 1.631968 看来优化算法已经收敛-存在有关费舍尔评分算法的步数的信息: Call: glm(formula = cbind(Menarche, Total - Menarche) ~ Age, family = binomial(logit), data = menarche) Deviance Residuals: Min 1Q Median 3Q Max -2.0363 -0.9953 -0.4900 0.7780 1.3675 Coefficients: …

1
Python中的Jenks自然断裂:如何找到最佳断裂数目?
我找到了Jenks Natural Breaks算法的这个Python实现,可以使其在Windows 7计算机上运行。考虑到我的地理数据的大小,它非常快并且可以在很短的时间内找到中断点。在将这种聚类算法用于数据之前,我使用的是(此处)算法。我使用KMeans遇到的问题是找到最佳K值参数,但是我“解决”了它,针对不同的K值启动了算法,并使用(此处)找到了最佳K。sklearn.clustering.KMeans sklearn.metrics.silhouette_score 我的问题是:如果我告诉Natural Breaks算法找到5个类(即K),那么如何确定这是最匹配我的数据的类数?如何验证我选择了最佳的休息时间? 谢谢!

2
当我在逻辑回归设置中使用平方损失时,这里发生了什么?
我正在尝试使用平方损失对玩具数据集进行二进制分类。 我正在使用mtcars数据集,使用英里/加仑和重量来预测传输类型。下图显示了两种不同颜色的传输类型数据,以及由不同损失函数生成的决策边界。平方损失是 ∑i(yi−pi)2∑i(yi−pi)2\sum_i (y_i-p_i)^2,其中yiyiy_i是地面实况标签(0或1)和pipip_i是预测概率pi=Logit−1(βTxi)pi=Logit−1(βTxi)p_i=\text{Logit}^{-1}(\beta^Tx_i)。换句话说,我将逻辑损失替换为分类设置中的平方损失,其他部分相同。 对于一个玩具的例子 mtcars数据,在很多情况下,我得到的模型与逻辑回归相似(请参见下图,随机种子为0)。 但是在某些方面(如果我们这样做 set.seed(1)),平方损失似乎效果不佳。 这是怎么回事 优化不收敛?与平方损失相比,逻辑损失更易于优化?任何帮助,将不胜感激。 码 d=mtcars[,c("am","mpg","wt")] plot(d$mpg,d$wt,col=factor(d$am)) lg_fit=glm(am~.,d, family = binomial()) abline(-lg_fit$coefficients[1]/lg_fit$coefficients[3], -lg_fit$coefficients[2]/lg_fit$coefficients[3]) grid() # sq loss lossSqOnBinary<-function(x,y,w){ p=plogis(x %*% w) return(sum((y-p)^2)) } # ---------------------------------------------------------------- # note, this random seed is important for squared loss work # ---------------------------------------------------------------- set.seed(0) x0=runif(3) x=as.matrix(cbind(1,d[,2:3])) y=d$am opt=optim(x0, lossSqOnBinary, …

2
optim和glm之间的残差标准误差
我尝试使用optim拟合glm甚至nlsR函数的简单线性回归的结果来重现。 参数估计是相同的,但是残差方差估计和其他参数的标准误差并不相同,尤其是在样本量较小时。我想这是在最大似然法和最小二乘法之间计算剩余标准误差的方式上的差异(除以n或除以n-k + 1参见示例中的波纹管)。 我从网上阅读的书中了解到优化不是一项简单的任务,但我想知道是否有可能以简单的方式重现glm使用时的标准误差估计optim。 模拟小型数据集 set.seed(1) n = 4 # very small sample size ! b0 <- 5 b1 <- 2 sigma <- 5 x <- runif(n, 1, 100) y = b0 + b1*x + rnorm(n, 0, sigma) 乐观估计 negLL <- function(beta, y, x) { b0 <- beta[1] b1 …

1
glmer中收敛警告的含义
我正在使用R中包中的glmer函数lme4,并且正在使用bobyqa优化器(即我的默认设置)。我收到警告,我很好奇这意味着什么。 Warning message: In optwrap(optimizer, devfun, start, rho$lower, control = control, : convergence code 3 from bobyqa: bobyqa -- a trust region step failed to reduce q 我搜索“信任区域步骤无法减少q”。在minqa程序包中找到了一些信息,上面写着 “请咨询Powell进行解释”。我做到了(如果需要,您也可以!请参见下面的参考资料和指向它们的链接),但是我不明白。实际上,我没有找到关于减少q的任何信息。 MJD Powell(2007)“ NEWUOA在无导数的无约束最小化方面的发展”,剑桥大学,应用数学和理论物理系,数值分析组,报告NA2007 / 05,http: //www.damtp.cam.ac.uk/ user / na / NA_papers / NA2007_05.pdf。 MJD Powell(2009),“没有导数的有界约束优化的BOBYQA算法”,报告号DAMTP 2009 / NA06,英国剑桥大学数学科学中心。http://www.damtp.cam.ac.uk/user/na/NA_papers/NA2009_06.pdf。 附言:我知道我可以更改优化器,并且我将查看是否可以得到没有警告或错误的输出。根据Ben Bolker的评论/答案,我还将检查渐变和粗麻布。我使用的是glmer内dredge从MuMIn,我不知道,如果本的答案没有一些额外的工作,修修补补,但我会在上面工作,一旦我的电脑上完成它在做什么,反正我离题了。 更新资料 …

3
下大注,更聪明
我一直在尝试编码一种算法,以建议在1X2(加权)游戏中下注。 基本上,每个游戏都有一组比赛(主队与客队): 1:主场胜利 X: 画 2:客胜 对于每个匹配项和符号(1,X和2),我将分配一个百分比,该百分比表示该符号正确匹配结果的机会/可能性。这是代表结构的数组: $game = array ( 'match #1' => array // stdev = 0.0471 ( '1' => 0.3, // 30% home wins 'X' => 0.4, // 40% draw '2' => 0.3, // 30% away wins ), 'match #2' => array // stdev = 0.4714 ( …

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.