Matlab中fminuch函数的使用方法
1.介绍
fminunc是matlab中的一个优化求解器,可以找到无约束函数的最小值。
2.输入
参数的初始值,例如J(θ)函数的θ的初值
对应的函数和梯度值
例子:
求解逻辑回归的最佳参数
1. 计算代价函数和梯度值
function
[J, grad] = costFunction(theta, X, y)
m = length(y);
J = 0;
h = sigmoid(X*theta);
J = -1/m*sum((y.*log(h)+(1-y).*log(1-h)));
grad = zeros(size(theta));
grad = (1/m)*X’*(h-y)
e
nd
2.
调用
fminuch
函数
options = optimset(
‘GradObj’
,
‘on’
,
‘MaxIter’
, 400);
[theta, cost] = (@(t)(costFunction(t, X, y)), initial_theta,options);
在这段代码片段中,首先定义了与fminunc一起使用的设置选项。将GradObj选项设置为on,它告诉fminunc我们定义的函数返回成本和梯度。 这允许fminunc到在最小化功能时使用梯度下降。 此外,我们设定了MaxIter选项为400,所以fminunc将运行最多400步