其他算法
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
这样,我们就可以将为三角形的边界得到(如下图)

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



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

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

4866

被折叠的 条评论
为什么被折叠?



