MATLAB - 如何实现此优化?

时间:2013-02-26 17:48:24

标签: matlab regression mathematical-optimization

我正在关注文本并希望在MATLAB中实现一部分代码,但是我不明白该怎么做。它的目标是优化一组值,这些值将根据一些输入更好地预测输出。

这是功能:

enter image description here

我已经实现了L功能。虽然我理解'd'意味着一个非常小的变化,但我不确定如何在MATLAB中实现它。我需要指定这个值吗?如果是这样,变化只能朝一个方向发展?

对于背景,以下是论文:http://www.ee.kth.se/php/modules/publications/reports/2006/IR-EE-SB_2006_026.pdf具有此特定公式。

1 个答案:

答案 0 :(得分:0)

虽然您的公式与该链接中给出的公式不同,但您似乎正在实现Newton的方法来优化多维数字函数http://en.wikipedia.org/wiki/Newton's_method_in_optimization。无论如何,方括号中的项是Hessian的逆,它本身是成本函数L的第二偏导数矩阵。最后一项是梯度,它是成本函数L的第一个偏导数的向量。你需要将gradient和Hessian实现为单独的函数,这可能并不容易。然后,您可以在Matlab中使用反斜杠运算符,而不是采用Hessian的反函数并通过渐变进行乘法:inv(A)*x等效于A\x