matlab: fminunc 返回 ‘用户目标函数返回复数;尝试新的点…’

当启用 ‘iter-detailed’ 选项时,fminunc 返回 ‘用户目标函数返回复数;尝试新的点…’。我知道这是因为我的成本函数出现了问题,原因是它返回了一个复数部分(确切地说是 J = NaN + NaNi)。你们有关于为什么会这样以及如何修复的建议吗?附注:我有一组非常大的特征(约1000个),这是否可能超过了最大值或精度?附注:成本函数和梯度如下:

hyp = sigmoid(X * theta);reg = (lambda/(2*m))*sum((theta(2:end).^2));J = (1/m * sum((-y .* log(hyp)) - ((1-y) .* log(1-hyp)))) + reg;grad(1) = (1/m * ((hyp-y)' * X(:,1)))';grad(2:end) = (1/m * ((hyp-y)' * X(:,2:end)))' + (lambda/m * theta(2:end));

回答:

你是否遇到了以下奇怪的错误组合情况:

  • sigmoid(X*theta) 为负数或大于1(这会在第3行取对数时产生复数部分);并且
  • m 或 y 是 NaN?

我之前没有注意到这一点,但如果 NaN 与复数交互,你会得到一个“复数”NaN。

>> (1+2i) * nanans =      NaN +    NaNi

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注