Questions tagged «optimization»

在统计中,这是指通过最大化或最小化数据的某些功能来选择参数的估计量。一个非常常见的示例是选择一种估计器,该估计器将观测数据的联合密度(或质量函数)最大化,称为最大似然估计(MLE)。

8
选择学习率
我目前正在SGD使用反向传播为神经网络实现随机梯度下降,尽管我了解其目的,但我对如何选择学习率的值存在一些疑问。 学习率是否与误差梯度的形状有关,因为它决定了下降率? 如果是这样,您如何使用此信息来告知您有关价值的决定? 如果不是那样,我应该选择哪种值,以及如何选择它们? 似乎您希望使用较小的值来避免过冲,但是如何选择一个值以免陷入局部最小值或花很长时间下降呢? 保持恒定的学习速度有意义吗?还是应该在接近梯度最小值时使用一些指标来更改其值? 简而言之:如何选择SGD的学习率?

4
如果有新的观察结果,是否应该对模型进行重新训练?
因此,我尚未找到有关此主题的任何文献,但似乎值得深思: 如果有新的观察结果,那么模型训练和优化的最佳实践是什么? 在预测开始下降之前,有什么方法可以确定重新训练模型的周期/频率吗? 如果针对聚合数据重新优化参数,是否过度拟合? 注意,学习不一定是在线的。在最近的预测中观察到重大差异后,不妨升级现有模型。


4
梯度下降是否总是收敛到最佳状态?
我想知道是否存在梯度下降不会收敛到最小的情况。 我知道,梯度下降并不能始终保证收敛到全局最优值。我也知道,如果步长太大,它可能会偏离最佳值。但是,在我看来,如果它偏离某个最佳值,那么它将最终达到另一个最佳值。 因此,将保证梯度下降收敛到局部或全局最优。那正确吗?如果没有,您能否提供一个粗略的反例?

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

2
深度学习中的局部极小值与鞍点
我听过Andrew Ng(不幸的是,在视频中我找不到)谈论关于深度学习问题中的局部最小值的理解已经发生了改变,因为它们现在被认为问题较少,因为在高维空间中(遇到深度学习),关键点更有可能是鞍点或平稳状态,而不是局部最小值。 我看过一些论文(例如本篇论文)讨论了“每个局部最小值都是一个全局最小值”的假设。这些假设都是相当技术性的,但是据我了解,它们倾向于在神经网络上施加某种使其线性的结构。 在深度学习(包括非线性体系结构)中,高原比局部极小概率更有可能是正确的说法吗?如果是这样,它背后是否有(可能是数学上的)直觉? 关于深度学习和鞍点,有什么特别之处吗?




1
使用随机森林采样多少个特征
引用“统计学习的要素”的维基百科页面显示: 通常,对于具有特征的分类问题 ,每个分割中都使用特征。⌊ √ppp⌊ p–√⌋⌊p⌋\lfloor \sqrt{p}\rfloor 我知道这是一个相当有根据的猜测,并且可能已得到经验证据的证实,但是还有其他原因导致人们选择平方根吗?那里有统计现象吗? 这是否有助于减少误差的方差? 回归和分类是否相同?

1
R中MLE的Fisher评分v / s坐标下降
R基函数glm()将Fisher评分用于MLE,而glmnet似乎使用坐标下降法来求解相同的方程。坐标下降比费舍尔计分法更省时,因为费舍尔计分法除了计算某些其他矩阵运算外,还计算二阶导数矩阵。这使得执行成本很高,而坐标下降可以在O(np)时间内完成相同的任务。 为什么R基函数使用Fisher评分?与其他优化方法相比,此方法是否有优势?协调血统和费舍尔评分如何比较?我在这个领域比较陌生,因此任何帮助或资源都会有所帮助。

3
最佳科学计算语言[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 似乎大多数语言都具有一定数量的科学计算库。 Python有 Scipy Rust 有 SciRust C++有几个包括ViennaCL和Armadillo Java具有Java Numerics和Colt其他几个 且不说像语言R和Julia明确的科学计算而设计。 有这么多种选择,您如何选择适合任务的最佳语言?另外,哪种语言的性能最高?Python并且R似乎在该领域具有最大的吸引力,但从逻辑上讲,编译语言似乎是一个更好的选择。会有什么表现胜过Fortran?此外编译语言往往有GPU加速,而解释性语言如R并Python没有。选择一种语言时应该考虑什么?哪些语言可以在效用和性能之间取得最佳平衡?还有我错过的具有重要科学计算资源的语言吗?
10 efficiency  statistics  tools  knowledge-base  machine-learning  neural-network  deep-learning  optimization  hyperparameter  machine-learning  time-series  categorical-data  logistic-regression  python  visualization  bigdata  efficiency  classification  binary  svm  random-forest  logistic-regression  data-mining  sql  experiments  bigdata  efficiency  performance  scalability  distributed  bigdata  nlp  statistics  education  knowledge-base  definitions  machine-learning  recommender-system  evaluation  efficiency  algorithms  parameter  efficiency  scalability  sql  statistics  visualization  knowledge-base  education  machine-learning  r  python  r  text-mining  sentiment-analysis  machine-learning  machine-learning  python  neural-network  statistics  reference-request  machine-learning  data-mining  python  classification  data-mining  bigdata  usecase  apache-hadoop  map-reduce  aws  education  feature-selection  machine-learning  machine-learning  sports  data-formats  hierarchical-data-format  bigdata  apache-hadoop  bigdata  apache-hadoop  python  visualization  knowledge-base  classification  confusion-matrix  accuracy  bigdata  apache-hadoop  bigdata  efficiency  apache-hadoop  distributed  machine-translation  nlp  metadata  data-cleaning  text-mining  python  pandas  machine-learning  python  pandas  scikit-learn  bigdata  machine-learning  databases  clustering  data-mining  recommender-system 

2
为什么学习率导致我的神经网络的权重急剧上升?
我正在使用tensorflow编写简单的神经网络以进行一些研究,并且在训练时遇到“ nan”权重的许多问题。我尝试了许多不同的解决方案,例如更改优化器,更改丢失,数据大小等,但无济于事。最后,我注意到学习速度的变化使我的体重产生了难以置信的变化。 使用.001(我认为是非常保守的)的学习率,最小化函数实际上将成倍地增加损失。一个世纪之后,损失可能从数千个跃升至一万亿个,然后达到无穷大('nan')。当我将学习率降低到.0001时,一切正常。 1)为什么单个数量级会产生这种影响? 2)为什么最小化函数实际上会执行与其功能相反的操作,并使损失最大化?在我看来,无论学习速度如何,都不应该发生这种情况。
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.