matlab求最优超平面,使用matlab用优化后的梯度下降法求解达最小值时参数

matlab可以用

-Conjugate gradient

-BFGS

-L-BFGS

等优化后的梯度方法来求解优化问题。当feature过多时,最小二乘计算复杂度过高(O(n**3)),此时

这一些列优化版梯度下降算法就成为了解优化问题的更优选择。

它们的优点为:

不需要像对原始梯度下降那样手动选择学习速率α

一般比梯度下降收敛速度要快

相应的缺点为:比梯度下降要复杂得多

好在,我们可以直接用matlab内置函数进行计算。

例子如下:

c310e74dc1ecdbffacb87b9fc00ebe66.png

我们需要输入cost function J 及其偏导数:

function [jVal, gradient]

= costFunction(theta)

jVal =

(theta(1)-5)^2 + ...           (theta(2)-5)^2;

gradient = zeros(2,1);

gradient(1)

= 2*(theta(1)-5);

gradient(2) = 2*(theta(2)-5);

之后设置θ初始值及收敛条件

options = optimset(‘GradObj’, ‘on’, ‘MaxIter’, ‘100’);

initialTheta = zeros(2,1);

之后就可以通过调用

[optTheta, functionVal, exitFlag] ...

= fminunc(@costFunction, initialTheta, options);

来求解最优问题了。

注:返回值中的exitFlag表示是否收敛

时间: 11-12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值