当前位置:网站首页>机器学习—梯度下降Gradient Descent Optimization—c语言实现
机器学习—梯度下降Gradient Descent Optimization—c语言实现
2022-07-30 05:30:00 【Jack Ju】
1.Introduction
梯度下降是最优化理论中的一个寻找最佳解的方法,目的是希望用梯度下降发找到函数的局部最小值。
本文将介绍如何根据梯度下降的基本原理自己实现一个梯度下降求解器,重点侧重于如何实现。
2.一元函数的梯度下降法
首先从简单的入手,只考虑一元函数,我们该如何实现梯度下降法?
优化函数为:f(x) = x^2-10x+1
梯度下降法步骤:
x(t+1) = x(t) - Y*df(x(t))/dx(t),
通过此迭代公式去计算x(0),x(1),x(2),x(3),…,我们通过f(x) = x^2-10x+1可以去求解f(0),f(1),f(2),f(3),…,当f(k+1)-f(k)的值很小时,我们认为此时x(k+1)就是我们要找的解。
因此对于优化函数为:f(x) = x^2-10x+1,其迭代公式是:
x(k+1) = x(k) - Y*(2*x(k)-10),其中Y是学习率,一般取0-1之间的数。
对于本例的实现的c语言代码为:
/* * Description:Gradient Descent Optimization * x(t+1) = x(t) - Y*df(x(t))/dx *f(x) = x^2-10x+1 */
边栏推荐
猜你喜欢
Unity stepping on the pit record - the use of GetComponent
Usage when saving pointers in std::vector
“幻核”跑路,数字藏品路在何方?
翻译 | Kubernetes 将改变数据库的管理方式
Us to raise interest rates by 75 basis points in "technical recession"?Encryption market is recovering
mysql 中 in 的用法
Golang——从入门到放弃
力扣541-反转字符串2——双指针法
pycharm上的tensorflow环境搭载
postman 请求 post 调用 传 复合 json数据
随机推荐
Mysql8.+学习笔记
力扣344-反转字符串——双指针法
postman 请求 post 调用 传 复合 json数据
面试题 17.13. 恢复空格(字典树)
nacos-2.0.3启动报错出现no datasource set的坑
容器化 | 在 K8s 上部署 RadonDB MySQL Operator 和集群
SQL连接表(内连接、左连接、右连接、交叉连接、全外连接)
并发编程复习
解读 Kylin 3.0.0 | 更敏捷、更高效的 OLAP 引擎
WeChat payment and payment callback
Internet (software) company project management software research report
从想当亿万富翁到职场、创业、爱情、抑郁、学医学武,我的程序人生
微信支付及支付回调
容器化 | 在 KubeSphere 中部署 MySQL 集群
mysql高阶语句(一)
上交所行情文件解析之mktdt04
如何使用FirewallD限制网络访问
el-table中加入el-input框和el-input-number框,实现el-table的可编辑功能
【小程序项目开发 -- 京东商城】uni-app 商品分类页面(下)
curl (7) Failed connect to localhost8080; Connection refused