在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
本文问题出自Stanford大学 Andrew Ng老师的机器学习week 3 Logistic Regression Model 中出现如下高级函数: 该过程涉及matlab两个函数 fminunc 和options。
1、自定义函数 以图上的自定义函数function [jVal,gradient] = costFunction(theta) 为例。该自定义函数传入一个theta参数,并计算代价值(jVal) 和每次迭代的梯度值(gradient)。
2、fminun函数
形式:[x,fval,exitflag] = fminunc(fun,x0,options)
该方法需要定义3个输入参数fun,x0和options。 第一个输入参数 fun 定义为 @costFunction。该“@”符号涉及句柄知识, 第二个输入参数 x0 定义为 initialTheta ,该参数为一个 2x1矩阵(2个元素的列向量)。该列向量为用户自定义梯度下降法的输出参数,使用前要预先初始化。 第三个输入参数为 options。该参数的的作用包括是否使用用户自定义的梯度下降公式(GradObj)以及迭代次数(MaxIter)。如上例中,options = optimset('GradObj','on','MaxIter','100'),表示使用了自定义的梯度下降公式并且把迭代次数设为迭代100次。
该方法的3个输出参数x,fval和exitflag。 第一个输出参数x为上面function [jVal,gradient] = costFunction(theta)中的第二个返回值graient 第二个输出参数fval为costFunction函数的第一个返回值jVal 第三个输出exitflag返回值为0或1,表示在theta点定义的Jval函数是否收敛 例子中使用了自定义的梯度下降公式(costFunction中的gradient返回值),并且把迭代次数设为迭代100次。
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论