梯度下降法、坐标下降法、牛顿迭代法
2016-08-25 19:11
232 查看
1 梯度下降法
2 坐标下降法
1.首先给定一个初始点,如 X_0=(x1,x2,…,xn);2.for x_i=1:n
固定除x_i以外的其他维度
以x_i为自变量,求取使得f取得最小值的x_i;
end
3. 循环执行步骤2,直到f的值不再变化或变化很小.
3 牛顿迭代法
牛顿迭代法(Newton’s method)又称为牛顿-拉夫逊方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。把f(x)在x0点附近展开成泰勒级数 f(x) = f(x0)+(x-x0)f’(x0)+(x-x0)^2*f”(x0)/2! +… 取其线性部分,作为非线性方程f(x) = 0的近似方程,即泰勒展开的前两项,则有f(x0)+f’(x0)(x-x0)=0 设f’(x0)≠0则其解为x1=x0-f(x0)/f’(x0) 这样,得到牛顿法的一个迭代序列:x(n+1)=x(n)-f(x(n))/f’(x(n))。
4 最小二乘法与梯度下降法区别
最小二乘是构建目标函数中的一种方法;梯度下降是求解最优目标函数中的一种方法。
对于变量个数为2-3个的目标函数,可以直接用方程组的方式求解出来,这也就是我们常见的狭义上的最小二乘法。
对于变量个数多个的目标函数,这时,狭义的最小二乘法就难以胜任,而用梯度下降法求解就容易多了。
附录
梯度下降法matlab示例:function [k ender]=steepest(f,x,e) %梯度下降法,f为目标函数(两变量x1和x2),x为初始点,如[0;0] syms x1 x2 m; %m为学习率 d=-[diff(f,x1);diff(f,x2)]; %分别求x1和x2的偏导数,即下降的方向 flag=1; %循环标志 k=0; %迭代次数 while(flag) d_temp=subs(d,x1,x(1)); %将起始点代入,求得当次下降x1梯度值 d_temp=subs(d_temp,x2,x(2)); %将起始点代入,求得当次下降x2梯度值 nor=norm(d_temp); %范数 if(nor>=e) %梯度为0,说明达到极小点 x_temp=x+m*d_temp; %改变初始点x的值 f_temp=subs(f,x1,x_temp(1)); %将改变后的x1和x2代入目标函数 f_temp=subs(f_temp,x2,x_temp(2)); h=diff(f_temp,m); %对m求导,找出最佳学习率 m_temp=solve(h); %求方程,得到当次m x=x+m_temp*d_temp; %更新起始点x k=k+1; else flag=0; end end ender=double(x); %终点 end
调用函数:
syms x1 x2; f=(x1-1)^2+2*(x2-2)^2+x1; x=[3;0]; e=10^(-20); [k ender]=steepest(f,x,e)
相关文章推荐
- 梯度下降法、坐标下降法、牛顿迭代法
- 坐标下降与梯度下降
- 梯度下降法,牛顿法,坐标下降法
- 坐标下降与梯度下降
- 超分辨率重建——梯度下降、坐标下降、牛顿迭代
- 梯度下降法,牛顿法,高斯-牛顿迭代法,附代码实现
- 最大似然估计、梯度下降、EM算法、坐标上升
- 梯度下降法与牛顿法
- 关于梯度下降的的一些理解
- 机器学习第六课part2(梯度下降)
- 为什么通常牛顿法比梯度下降法能更快的收敛
- 转载自http://www.cnblogs.com/pinard/p/5970503.html---梯度下降讲解
- 第一讲.Liner_Regression and Gradient_Descent(Rui Xia) 单变量线性回归及梯度下降
- 梯度下降法推导总结
- 机器学习算法 原理、实现与实践 —— 感知机与梯度下降 神经网络
- 详细解释《机器学习实战》第5章logistic回归 第5-1程序(梯度下降法推导)和梯度下降法实现对率回归
- 逻辑回归:损失函数与梯度下降
- 机器学习-梯度下降IV(多维度的梯度下降算法的定义)
- 梯度下降,随机梯度下降,批量梯度下降,mini-batch 梯度下降
- 线性回归的梯度下降法