机器学习吴恩达Matlab实现代价函数(1)

机器学习吴恩达Matlab实现代价函数(1)

我今天学习了第六章的高级优化,是用matlab实现的

首先是我们的代价函数costFunction

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);

然后我是使用的matlab7.1 所以就保存的是名字就是函数名字,然后传入参数theta

然后就是实现最优化其中有


options=optimset('GradObj','on','MaxIter',100); % 这里是设置的参数,我这里没有显示
initialTheta=zeros(2,1);
[optTheta,functionVal,exitFlag]=fminunc(@costFunction,initialTheta,options)

optimset是matlab自带的一个函数,主要是设置options,所以我们的参数名通常也设置为options

options=optimset('GradObj','on','MaxIter',100);
就是设置是否使用用户自己定义的梯度下降公式——(GradObj=’on‘,就是打开),还有设置迭代次数 *(MaxIter=100,这里的100不能打引号,否则就会报错)
自己也可以使用help optimset看一下帮助文件
在这里插入图片描述

fminunc 的输出参数中[optTheta,functionVal,exitFlag]

  1. 第一个 返回值 为我们定义的costFunction 中的gradient值
  2. 第二个返回值就是返回我们的costFunction中的第一个值jVal,这两个关系很重要
  3. 第三个返回值是为0或者1 表示子啊theta点定义的Jval是否收敛

写到最后我们一起加油,暑假把我们的机器学习学明白点,有想交流的小伙伴我们可以一起交流,我的qq:3022949790

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值