梯度下降法
来源:互联网 发布:淘宝聊天自动生成 编辑:程序博客网 时间:2024/06/05 11:34
引用
线性回归
梯度下降法,方向导数求极值
梯度下降法简介
梯度下降法是一种最优化算法,用于最快搜索极大值。线性回归最小二乘法的误差函数(损失函数)为最小二乘法线性回归指标,为此需要最小化误差函数以获得最优回归系数。因此,我们可以利用梯度下降法沿梯度回归负方向探寻回归系数。
梯度下降法求解函数极值流程
梯度下降过程计算方法:
只有1个变量x的条件下:
举例说明:
利用梯度下降法求函数
y=1/2∗x2−2∗x 的最小值
1.设置参数α=0.9,ϵ=0.01,x0=−4;
2.当前位置(−4,16)求导dy/dx=(−4)−2=−6;
3.修改位置:x′=x−α∗dy/dx=(−4)−0.9∗(−6)=1.4,对应位置为(1.4,−1.82);
4.Δx=x′−x=−α∗dy/dx=−(0.9)∗(−6)=5.4,迭代次数n=1;
5.当前位置为(1.4,−1.82)求导dy/dx=(1.4)−2=−0.6;
6.修改位置:x′=x−α∗dy/dx=(1.4)−0.9∗(−0.6)=1.94,对应位置为(1.94,−1.9982);
7.Δx=x′−x=−α∗dy/dx=−(0.9)∗(−0.6)=0.54,迭代次数n=2;
8.当前位置为(1.94,−1.9982)求导dy/dx=(1.94)−2=−0.06;
9.修改位置:x′=x−α∗dy/dx=(1.94)−0.9∗(−0.06)=1.994,对应位置为(1.994,−1.999982);
10.Δx=x′−x=−α∗dy/dx=−(0.9)∗(−0.06)=0.054,迭代次数n=3;
11.当前位置为(1.994,−1.999982),求导dy/dx=(1.994)−2=−0.006;
12.修改位置:x′=x−α∗dy/dx=(1.994)−0.9∗(−0.06)=1.9994,对应位置为(1.9994,−1.99999982);
13.Δx=x′−x=−α∗dy/dx=−(0.9)∗(−0.006)=0.0054<ϵ,迭代次数n=3,停止;
matlab脚本
syms x by=1/2*x^2-2*x;grad=diff(y,x);alpha=0.9;eps=0.01;x0=-4;N=20;x_=zeros(1,N);x_(1)=x0;delta=1;i=1;while (i<N|delta>eps) grad0=subs(grad,x,x_(1,i)); x_(1,i+1)=x_(1,i)-alpha*grad0; delta=-alpha*grad0; i=i+1;end
有若干变量x的条件下:
举例说明:
利用梯度下降法求函数
matlab脚本代码
syms x1 x2y=2*(x1-2)^2+(x2-4)^2;grad=[diff(y,x1) diff(y,x2)];alpha=0.05;eps=1e-3;x0=[0,0];N=100;x=zeros(2,N);x(:,1)=x0;delta=[1;1];i=1;while (i<N|delta>eps) grad0=subs(grad,[x1,x2],x(:,i)'); x(:,i+1)=x(:,i)-alpha*grad0'; delta=-alpha*grad0'; i=i+1;endy_=subs(y,[x1,x2],x(:,end)');disp(x);disp(y_);
PS:梯度下降法,方向导数求极值:方向导数太复杂,还在学习。
- 梯度下降法
- 梯度下降法
- 梯度下降法
- 梯度下降法
- 梯度下降法 简记
- 梯度下降法一
- 梯度下降法二
- 梯度下降法三
- 梯度下降法
- 梯度下降法实例
- 梯度下降法
- 梯度下降法
- 随机梯度下降法
- 梯度下降法
- 梯度下降法
- 梯度下降法
- 梯度下降法入门
- 梯度下降法
- linux jdk版本随时切换
- JS学习笔记(12)正则表达式
- Kaggle 机器学习竞赛冠军及优胜者的源代码汇总
- django-crontab 定时执行任务方法
- 超级表格专业版回归
- 梯度下降法
- CASE WHEN 及 SELECT CASE WHEN的用法、SUM函数中的数字参数(转)
- poj 1470 LCA倍增 裸
- vue组件命名问题
- CSS 单位与属性
- 事件接收与忽略
- 在opencv3中的机器学习算法练习:对OCR进行分类
- Android Study 之 玩转GreenDao 3.2.2 点滴提升逼格~
- Druid-----初次接触德鲁伊,数据库阿里连接池配置详解及应用