Octave 里的 fminunc

Posted jude_python

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Octave 里的 fminunc相关的知识,希望对你有一定的参考价值。

options = optimset(‘GradObj‘, ‘on‘, ‘MaxIter‘, ‘100‘);
initialTheta = zeros(2,1);
[optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options);
  • 1
  • 2
  • 3

fminunc表示Octave里无约束最小化函数,调用这个函数时,需要传入一个存有配置信息的变量options。上面的代码中,我们的设置项中’GradObj’, ‘on’,代表设置梯度目标参数为打开状态(on),这也意味着你现在确实要给这个算法提供一个梯度。’MaxIter’, ‘100’代表设置最大迭代次数为100次。initialTheta代表我们给出的一个θ的猜测初始值。

然后我们调用fminunc这个函数,传入三个参数,其中第一个参数@costFunction这里的@符号代表指向之前我们定义的costFunction函数的指针。后面两个参数分别是我们定义的thetatheta初始值和配置信息options。

当我们调用这个fminunc函数时,它会自动的从众多高级优化算法中挑选一个来使用(你也可以把它当做一个可以自动选择合适的学习速率aa的梯度下降算法)。

最终我们会得到三个返回值,分别是满足最小化代价函数J(θ)的θ值optTheta,costFunction中定义的jVal的值functionVal,以及标记是否已经收敛的状态值exitFlag,如果已收敛,标记为1,否则为0。

以上是关于Octave 里的 fminunc的主要内容,如果未能解决你的问题,请参考以下文章

八度:逻辑回归:fmincg 和 fminunc 之间的差异

先进的优化

python里面类似于Matlab中的fminunc方法或minfunc方法叫啥名字,怎么调用

MATLAB 函数 fminunc 生成错误

是否由MATLAB fmincon报告了Hessian矩阵,fminunc是平均Hessian矩阵?

Octave Tutorial(《Machine Learning》)之第二课《数据移动》