梯度下降matlab程序,梯度下降法 matlab实现
function [k ender]=steepest(f,x,e)
% f=x1-x2+2*x1^2+2*x1*x2+x2^2; 假设f等于
% x=[0;0];
% e=10^(-20);
syms x1 x2 m; %m为学习率
d=-[diff(f,x1);diff(f,x2)] %分别求x1和x2的偏导数,即下降的方向
% - 4*x1 - 2*x2 - 1
% 1 - 2*x2 - 2*x1
flag=1; %循环标志
k=0; %迭代次数
while(flag)
d_temp=subs(d,x1,x(1)) ; %分别对x1,x2求一阶偏导数值
%先把x1带入二阶导函数
d_temp=subs(d_temp,x2,x(2)); %再把x2带入1阶导函数
%以上求出1阶偏导数在x1,x2的函数值
nor=norm(d_temp)%范数 求出此时的偏导数范数
if(nor>=e) %因为在局部最优点偏导数接近0,所以拿来和误差比较
x_temp=x+m*d_temp ; %改变初始点x的值
% 开始迭代x的路径,而且此路径和 该点到数值有关
f_temp=subs(f,x1,x_temp(1)); %将改变后的x1和x2代入目标函数
f_temp=subs(f_temp,x2,x_temp(2))
%分别把更新后的x1,x2带代入 f
h=diff(f_temp,m) %代入含有rate m的x1,x2后的f 对m求导
%此时 是关于m的一元函数,g(m)与f不同,是由(x1,x2)处梯度和f 产生,找到g(m)的最小值,如果最小值不是梯度近似为0,则进行下一次迭代
m_temp=solve(h) ; %求方程,得到当次m 。找出极值
x=x+m_temp*d_temp ;%更新起始点x
%正式求出m并带入 迭代x的方程,求出第二个点
k=k+1 %迭代次数更新
else
flag=0;
end
end
ender=double(x); %此时是满足条件的更新后的 x
end
测试
syms x1 x2;
f=(x1-2)^2+2*(x2-1)^2; %f可以为任意可微的函数
x=[1;3];
e=10^(-20);
[k ender]=steepest(f,x,e)
原文:https://www.cnblogs.com/china520/p/11615225.html
梯度下降matlab程序,梯度下降法 matlab实现相关推荐
- 最小二乘法、迭代优化、坐标轴下降法(Coordinate Descent, CD)、坐标下降和梯度下降对比、梯度下降法/最速下降法
最小二乘法.迭代优化.坐标轴下降法(Coordinate Descent, CD).坐标下降和梯度下降对比.梯度下降法/最速下降法 目录
- 梯度下降法和随机梯度下降法的区别
这几天在看<统计学习方法>这本书,发现 梯度下降法 在 感知机 等机器学习算法中有很重要的应用,所以就特别查了些资料. 一.介绍 梯度下降法(gradient descent)是求解无约 ...
- 梯度下降法和随机梯度下降法
1. 梯度 在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度.比如函数f(x,y), 分别对x,y求偏导数,求得的梯度向量就是(∂f/∂x, ∂f/∂y) ...
- 梯度下降算法_批梯度下降法,Minibatch梯度下降法和随机梯度下降法之间的区别...
什么是梯度下降法? 梯度下降法是一种机器学习中常用的优化算法,用来找到一个函数(f)的参数(系数)的值,使成本函数(cost)最小. 当参数不能解析计算时(如使用线性代数),并且必须通过优化算法搜索时 ...
- 大白话5分钟带你走进人工智能-第十一节梯度下降之手动实现梯度下降和随机梯度下降的代码(6)...
第十一节梯度下降之手动实现梯度下降和随机梯度下降的代码(6) 我们回忆一下,之前咱们讲什么了?梯度下降,那么梯度下降是一种什么算法呢?函数最优化 ...
- 梯度下降和随机梯度下降为什么能下降?
梯度下降和随机梯度下降为什么能下降? 标签: 深度学习梯度下降SGD 2016-02-22 19:19 663人阅读 评论(1) 收藏 举报 本文章已收录于: 分类: Deep Learning ...
- 梯度、梯度下降,随机梯度下降
一.梯度gradient http://zh.wikipedia.org/wiki/%E6%A2%AF%E5%BA%A6 在标量场f中的一点处存在一个矢量G,该矢量方向为f在该点处变化率最大的方向,其 ...
- 【深度学习】——梯度下降优化算法(批量梯度下降、随机梯度下降、小批量梯度下降、Momentum、Adam)
目录 梯度 梯度下降 常用的梯度下降算法(BGD,SGD,MBGD) 梯度下降的详细算法 算法过程 批量梯度下降法(Batch Gradient Descent) 随机梯度下降法(Stochastic ...
- 【stanford】梯度、梯度下降,随机梯度下降
一.梯度gradient http://zh.wikipedia.org/wiki/%E6%A2%AF%E5%BA%A6 在标量场f中的一点处存在一个矢量G,该矢量方向为f在该点处变化率最大的方向,其 ...
- 梯度下降和随机梯度下降
梯度下降和随机梯度下降 目标函数 大多数机器学习或者深度学习算法都涉及某种形式的优化. 优化指的是改变 以最小化或最大化某个函数 f(x) 的任务. 我们通常以最小化 f(x) 指代大多数最优化问题. ...
最新文章
- Web开发领域最热门的话题之混搭
- spring-cloud Finchley.SR2版本 升级微服务到springboot 2.0
- 百度智能云开物再收“一个奖状”
- 工作289:父子组件传值控制弹窗关闭
- mysql rsync复制,mysql复制又同步
- c语言作业ce是什么错误代码,[求助]C语言实现ce搜索功能的两道题
- mysql ef 一对多 更新数据库_Entity Framework_成功针对多种数据库使用实体框架(EF)...
- 75 ----平面二次曲线方程的化简、移轴变换、转轴变换、伸缩变换
- 我常去的编程技术网站[最近更新:2011.07.10
- Elasticsearch版本客户端与服务端版本不一致问题
- 程序员也要学英语——印欧语音变规律总结
- 测试大佬带你揭秘功能测试的内幕
- N维数组( ndarray)
- Cluster analysis :Basic Concepts and Algorithms -- Part 1 Overview
- 基于STM32的Flash擦除方式
- 安装centos7遇到问题记录:nouveau xxx unknown chipset
- 泰拉瑞亚服务器插件注册,泰拉瑞亚服务器 House 圈地教程(Tshock 插件)
- 基于java的springboot疫情下社区健康评估系统毕业设计springboot开题报告
- Android App开发实战项目之模仿美图秀秀的抠图工具(附源码和演示视频 简单易懂 可直接使用)
- 守护石谈学习Java之路