问题标签 [regularized]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
941 浏览

neural-network - 如何在具有不同批量大小的多个输入输出数据集的 keras 中训练模型

我有一个使用 Keras 功能 API 解决的监督学习问题。

由于这个模型正在预测物理系统的状态,我知道监督模型应该遵循额外的约束。

我想将其添加为一个额外的损失项,它会惩罚模型做出不遵循这些约束的预测。不幸的是,监督学习问题的训练示例数>>约束示例数。

基本上,我正在尝试这样做:

型号汇总

最小化监督学习误差和作为辅助损失的约束误差。

我不相信在每个数据集上交替训练批次会成功,因为梯度一次只会捕获一个问题的错误,而我真的希望物理约束充当监督学习任务的正则化。(如果我的解释有误,请告诉我)。

我知道这可以在纯 Tensorflow 或 Theano 中实现,但我不愿离开让其他一切变得如此方便的 Keras 生态系统。如果有人知道如何训练批量大小因输入而异的模型,我将非常感谢您的帮助。

0 投票
1 回答
5516 浏览

machine-learning - 如何调整 Sklearn 的 RandomForest?max_depth 与 min_samples_leaf

max_depthVSmin_samples_leaf

在多次max_depth尝试min_samples_leaf使用GridSearchCV. 据我了解,这两个参数都是控制树木深度的一种方式,如果我错了,请纠正我

max_features

我正在做一个非常简单的分类任务,更改min_samples_leaf似乎对 AUC 分数没有影响;但是,调整深度可以将我的 AUC 从 0.79 提高到 0.84,非常显着。似乎没有其他任何影响它。我认为我应该调整的主要内容是max_features,但是,最佳结果值离sqrt(n_features).

scoring='roc_auc'

另一个问题,我注意到如果在更改树的数量时所有参数都固定,GridSearchCV将始终选择最大数量的树。这是可以理解的,但由于某种原因,AUC 略有下降scoring='roc_auc'。为什么会这样?它是否考虑 oob_score 。

请随时分享任何有助于理解如何系统地调整随机森林的资源,因为似乎几乎没有相互影响的相关参数。

0 投票
1 回答
795 浏览

python - 对小批量更新执行 L1 正则化

我目前正在阅读神经网络和深度学习,但我遇到了一个问题。问题是更新他提供的代码以使用 L1 正则化而不是 L2 正则化。

使用 L2 正则化的原始代码是:

可以看出它self.weights是使用 L2 正则化项更新的。对于 L1 正则化,我相信我只需要更新同一行来反映

l1 正则化的权重更新

书中说我们可以估计

在此处输入图像描述

使用小批量平均值的术语。这对我来说是一个令人困惑的陈述,但我认为这意味着每个小批量都使用nabla_w每一层的平均值。这导致我对代码进行了以下编辑:

但我得到的结果几乎只是噪声,准确率约为 10%。我是在解释语句错误还是我的代码错误?任何提示将不胜感激。

0 投票
3 回答
300 浏览

python - 如何在 CNTK 中应用自定义正则化(使用 python)?

你知道如何将自定义正则化函数应用于 CNTK 吗?

特别是,我想将函数对输入的导数添加到损失中;就像是

其中 F 是模型学习的函数,输入是模型的输入。

如何在 CNTK 中实现这一点?我不知道如何访问输入的梯度,以及如何将梯度 wrt 用于正则化器的权重。

0 投票
1 回答
235 浏览

python - 我想在 CNTK 中实现正则化技术“Shakeout”

有一篇论文“Shakeout: A New Approach to Regularized Deep Neural Network Training”可以在这里找到:http: //ieeexplore.ieee.org/abstract/document/7920425/

本文介绍了一种新的正则化技术,它可以以更实用的方式替换 dropout 层。我正在研究一个深度学习问题,为此我想实施“Shakeout”技术,但问题是我无法完全理解论文中的实际管道。有太多的数学,我仍在努力理解。

到目前为止,我看到了一个基于“Caffe”的开源实现,但我只是深度学习的新从业者,刚刚学习使用 CNTK。所以它不可能开始在 caffe 上工作。有没有人在cntk中实现了“Shakeout”?或者是否有人可以提供一个伪代码进行震荡?Caffe 上的 Shakeout 实现:https ://github.com/kgl-prml/shakeout-for-caffe

Github 问题:https ://github.com/kgl-prml/shakeout-for-caffe/issues/1

0 投票
0 回答
445 浏览

tensorflow - 具有 tensorflow dropout 的一致向前/向后传递

对于强化学习,通常对情节的每一步应用神经网络的前向传递来计算策略。之后可以使用反向传播计算参数梯度。我的网络的简化实现如下所示:

现在在训练期间,我将通过连续的前向传球(同样,简化版)首先推出这一集:

最后我将通过反向传递计算梯度:

(请注意,我可能在上面的某个地方犯了一个错误,试图尽可能多地删除与问题无关的原始代码)

所以最后的问题是:有没有办法确保对 sess.run() 的所有连续调用都会生成相同的 dropout 结构?理想情况下,我希望在每一集内都有完全相同的 dropout 结构,并且只在两集之间改变它。事情似乎运作良好,但我继续想知道。

0 投票
1 回答
1480 浏览

performance - 添加正则化会使性能变慢和变差

当我添加更强的正则化(例如,从 1 到 10 的 L2 正则化参数,或从 0.75 到 0.5 的 dropout 参数)时,它给了我更慢和更差的性能(例如,在 3000-4000 次迭代中,97-98% 的测试准确率只有 94-95% 3000-4000 次迭代的测试精度)。发生这种情况可能有原因吗?我可以确认一切都正确实施。谢谢!

编辑:我只想指出我的程序有过拟合(大约 1%),而且似乎无论有没有 dropout,训练和测试精度之间的差异也差不多。

0 投票
0 回答
659 浏览

python - scikit-learn 是否在其 Ridge 模块中支持通用 Tikhonov 正则化?

使用来自Wikipedia的符号, scikit-learn Ridge模块似乎使用单位矩阵的倍数作为 Tikhonov 矩阵 Gamma。因此,Tikhonov 矩阵由单个值 alpha 指定。这样做会导致所有系数都受到统一惩罚。我对我的解决方案应该是什么样子有一些先验知识,并且想让特定的系数变得特别小。我相信如果我的 Gamma 矩阵在我想缩小的系数的对角线上有更大的条目,我可以实现这一点。

是否有任何 scikit-learn 模块支持像我描述的那样不统一的惩罚?

0 投票
0 回答
45 浏览

regression - 为什么 lasso 可以进行特征选择而 ridge 方法不能?

谁能解释我为什么使用 L1 惩罚(套索)某些变量权重可以为 0,但使用岭方法永远不能为 0?

我知道套索使用绝对值惩罚和岭平方值,但我不明白为什么当你解方程时会发生这种情况。

问候

0 投票
1 回答
672 浏览

r - 如何在 R 中实现正则化/权重衰减

我对似乎没有正则化/lambda/权重衰减参数的 R 神经网络包的数量感到惊讶。我假设我错过了一些明显的东西。当我使用像 MLR 这样的包并查看集成学习器时,我没有看到用于正则化的参数。

例如:来自 deepnet 包的 nnTrain:
参数列表

我看到了几乎所有东西的参数——甚至辍学——但没有看到 lambda 或其他任何看起来像正则化的东西。

我对两者的理解caretmlr,它们基本上组织了其他 ML 包,并尝试提供与它们交互的一致方式。我没有在其中任何一个中找到 L1/L2 正则化。

我还进行了 20 次谷歌搜索,寻找具有正则化的 R 包,但一无所获。我错过了什么?谢谢!