吴恩达机器学习——优化算法(高级算法使用+多类别分类)

 

其他算法

Conjugate descent

BFGS

L-BFGS

特点:

不需要手动计算学习率

比梯度下降效率更高

缺点:

更加的复杂

 

如何调度高级算法优化代价函数

Matlab实现方法

实例:

假设已知代价函数,我们通过代价函数求得了偏导数

首先,完成代价函数的实现(代码如下)

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

第一个参数为GradObj:on意为设置目标参数为打开,意为要给该算法设置一个梯度

第二个参数为MaxLter:100意为最大迭代次数为100

 

initialTheta = zeros(2,1);

θ初始值

 

 [optTheta,functionVal,exitFlag] = fminunc(@costFunction,initialTheta,options);

Fminunc是一个高级算法,第一个参数为代价函数,无需设置学校效率,该算法会自动计算出相应的学习效率。

 

计算结果如下:

OptTheta为最终计算得到的theta的结果,exitflag=1表示结果为收敛的,同样functionVal表示最终的代价函数的值。

 

 

通用格式:

注意在用matlab实现的时候是从1到n+1因为在matlab中数组是从下标1开始计数。

 

 

 

 

多类数据分类图形

 

1、创建伪类

首先是针对为三角形的类别

将为三角形的y设置为1,不为三角形的样本设置为0

这样,我们就可以将为三角形的边界得到(如下图)

 

 

同样的方法应对于正方形和叉叉,然后得到分类的边界线

 

通过这种方式,我们得到三个分类器

 

最终,我们把样本最可能为的值在三种类型中,归纳出来

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值