matlab中fminunc函數的使用

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)

end

    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步

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章