- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在 MATLAB 中执行逻辑回归,对文本数据进行 L2 正则化。我的程序适用于小型数据集。对于更大的集合,它会无限运行。
我看到了可能重复的问题 ( matlab fminunc not quitting (running indefinitely) )。在那个问题中,初始 theta 的成本是 NaN 并且控制台中打印了一个错误。对于我的实现,我得到了一个真正有值(value)的成本,即使将详细参数传递给 fminunc() 也没有错误。因此,我相信这个问题可能不会重复。
我需要帮助将其扩展到更大的集合。我目前正在处理的训练数据的大小大约是 10k*12k(10k 个文本文件累计包含 12k 个单词)。因此,我有 m=10k 个训练示例和 n=12k 个特征。
我的成本函数定义如下:
function [J gradient] = costFunction(X, y, lambda, theta)
[m n] = size(X);
g = inline('1.0 ./ (1.0 + exp(-z))');
h = g(X*theta);
J =(1/m)*sum(-y.*log(h) - (1-y).*log(1-h))+ (lambda/(2*m))*norm(theta(2:end))^2;
gradient(1) = (1/m)*sum((h-y) .* X(:,1));
for i = 2:n
gradient(i) = (1/m)*sum((h-y) .* X(:,i)) - (lambda/m)*theta(i);
end
end
我正在使用 MATLAB 的 fminunc() 函数执行优化。我传递给 fminunc() 的参数是:
options = optimset('LargeScale', 'on', 'GradObj', 'on', 'MaxIter', MAX_ITR);
theta0 = zeros(n, 1);
[optTheta, functionVal, exitFlag] = fminunc(@(t) costFunction(X, y, lambda, t), theta0, options);
我在具有这些规范的机器上运行这段代码:
Macbook Pro i7 2.8GHz / 8GB RAM / MATLAB R2011b
成本函数似乎表现正确。对于初始 theta,我得到可接受的 J 值和梯度。
K>> theta0 = zeros(n, 1);
K>> [j g] = costFunction(X, y, lambda, theta0);
K>> j
j =
0.6931
K>> max(g)
ans =
0.4082
K>> min(g)
ans =
-2.7021e-05
该程序运行时间非常长。我开始分析保持 MAX_ITR = 1 for fminunc()。对于单次迭代,程序甚至在几个小时后仍未完成执行。我的问题是:
我在数学上做错了什么吗?
我应该使用任何其他优化器而不是 fminunc() 吗?在 LargeScale=on 的情况下,fminunc() 使用信赖域算法。
这个问题是集群规模的,不应该在单机上运行吗?
任何其他一般提示将不胜感激。谢谢!
这有助于解决问题:我能够通过在 fminunc() 中将 LargeScale 标志设置为“关闭”来使其正常工作。据我所知,LargeScale = 'on' 使用信任域算法,而将其保持为 'off' 使用准牛顿法。使用准牛顿方法并传递梯度对于这个特定问题的处理速度要快得多,并给出了非常好的结果。
最佳答案
我能够通过在 fminunc() 中将 LargeScale 标志设置为“关闭”来实现此功能。据我所知,LargeScale = 'on' 使用信任域算法,而将其保持为 'off' 使用准牛顿法。使用准牛顿方法并传递梯度对于这个特定问题的处理速度要快得多,并给出了非常好的结果。
关于MATLAB fminunc() 未完成大型数据集。适用于较小的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16696459/
是否可以告诉hive某个表“很小”,即应将其复制到所有节点并在RAM中进行操作? 最佳答案 尝试以下提示: /*+ MAPJOIN(small_table) */ UPDATE 顺便说一句,还有其他
给定的是一个大(但不是巨大)的字符串数组(数量为 1000-5000 个单个字符串)。我想对这些字符串执行一些计算和其他操作。因为在处理那个大数组时它总是停止工作,所以我重写了我的函数以递归地获取较小
当我在大小为 (640,480) 的 JFrame 中添加 JPanel 时,JPanel 的大小为 (638449)。我需要 JPanel 与 JFrame 完全匹配! 我发现的一个临时解决方法是将
我目前正在尝试响应设计。我需要在父 div 变小的同时保持图像居中。 见图片说明: 我不想用它作为背景。下面的代码会一直把它放在div框的左上角 #img_wrap {
当我必须捕获生成器中可能发生的异常时,如何使 try block 尽可能小? 典型的情况是这样的: for i in g(): process(i) 如果 g() 可以引发我需要捕获的异常,第一种
目前尝试让 Accordion 项目在 Bootstrap 中工作一切都很好,直到我尝试关闭所有 Accordion 菜单。突然之间,标题比未折叠时小得多。 当一个打开时 当全部关闭时 我正在使用指南
目前尝试让 Accordion 项目在 Bootstrap 中工作一切都很好,直到我尝试关闭所有 Accordion 菜单。突然之间,标题比未折叠时小得多。 当一个打开时 当全部关闭时 我正在使用指南
一个应用程序托管一个具有三个接口(interface)的 Web 服务,用于三个单独且独立的操作,所有这些操作都在应用程序的不同组件中实现,彼此独立,例如在不同的包等中,所以他们对彼此了解不多,只共享
我正在尝试使用 border-radius 属性设计一个主要内容容器具有圆 Angular 的网站。但是,我保持侧边栏和顶部导航栏固定,因此当用户向上或向下滚动时它们不会移动。它类似于在 Google
我正在构建我网站的响应式版本。 虽然我很高兴大多数 float 的 div 被迫在屏幕下方,但有一些 div 我需要保持彼此相邻,即使屏幕区域小于这些 div 的总宽度。在这种情况下,我想按比例缩小它
我正在为我的元素使用 Twitter Bootstraps 网格。我有以下 HTML: Some text Some text
我有一个小宽度的 div 并且可以看到溢出。我有一个更大的表,里面只有一个单元格和一个文本: A small text with spaces...
我有一个设计得很好的架构,其中 Controller 转到访问与数据库通信的存储库的服务。 因此, Controller 中的逻辑保持在最低限度,但我仍然有非常微妙的代码片段来执行一些任务,例如 验证
我在一个布局中有两个 View 。我将分别称它们为 View A 和 View B。 ┌──────┐ │┌─┐┌─┐│ ││A││B││ │└─┘└─┘│ └──────┘ 父布局(包括View A
整个页面的父元素是一个居中的 div,最大宽度限制为 960px。页面上的所有其他元素都是该父 div 的子元素。简化结构如下: 虽然父 div 的宽度不应超过 960px,但我
我应该链接到完整的 jQuery UI -还是-提供精简的自定义副本? 来自 Google 等 CDN 的完整 jQuery-UI 与提供定制的最小版本之间存在非常显着的大小差异。此外,还可以将 jQ
我正在尝试制作一条图像拇指的“线”,它在鼠标移动时滚动。我让它工作了,但我现在的问题是我想在侧面做一个“填充”,这样我就不必将鼠标一直拉到侧面才能看到第一个/最后一个拇指。但我真的无法让它工作:/ 这
我是一名优秀的程序员,十分优秀!