首页 > 编程语言 >梯度下降算法入门

梯度下降算法入门

时间:2023-09-03 14:44:08浏览次数:41  
标签:误差 入门 梯度 下降 ---- 算法 函数

提到梯度下降我们知道梯度下降算法是很多机器学习算法、深度学习算法的基础。
首先我们需要明确一些概念什么是梯度:
梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。
梯度的数学定义可以看这里梯度的概念

梯度下降的基本思想

1、确定一个小目标----预测函数
就比如说我们现在有一些二维平面的样本点,横纵坐标有相关性,我们的任务就是设计一种算法让机器拟合数据

2、找到差距----代价函数
如何才能找到最优的拟合函数呢?
首先我们需要量化数据的偏离程度误差(我们比较常用的是均方误差)

其余所有点的误差都是一样的,而我们的目的是求所有点的误差的平方的平均值

我们将上面的所有式子求和再求平均值就可以得到均方误差

由于上面式子中的xi、yi都是已知的为常量,我们可以用a、b、c来代替简化上面的式子

经过上面的操作之后我们就可以得到一个形式简洁的一元二次函数,这个误差函数就表示了我们学习需要付出的代价因此常常被称为代价函数

因为a是所有横坐标的平方和所以一定为正数,这个关于w的二次函数的图像开口应向上类似下图

3、明确搜索方向----梯度计算
我们机器学习的目标是拟合出最接近训练数据的直线,也就是找到使得误差代价最小的参数w,对应在函数图像上就是最低点,这个寻找最低点的过程就是梯度下降需要完成的任务
4、大胆的往前走吗?----学习率
5、不达目标不罢休----循环迭代

梯度下降法的变体

1、BGD(批量梯度下降法)
用全部训练样本参与训练
优点是精确度高,缺点是很慢搜索代价很大
2、SGD(随机梯度下降)
每次只用一个样本进行计算
优点是速度快,缺点同样也很明显精确度不高
3、MBGD(小批量梯度下降)
综合了1和2

标签:误差,入门,梯度,下降,----,算法,函数
From: https://www.cnblogs.com/cxy8/p/17674953.html

相关文章

  • vue3入门_demo
    新建项目参考:Vuevscode创建vue项目流程【超详细】_vuevscode创建vue项目流程【超详细】_怎么用vscode写vue_一颗不甘坠落的流_一颗不甘坠落的流星的博客-CSDN博客项目结构:App.vue<template><Main></Main></template><script>importMainfrom"./components......
  • Lnton 羚通算法算力云平台在环境配置中 Windows10-YOLOv8 运行报错是什么原因
    在配置Windows10环境下运行YOLOv8时,报错可能有多种原因。以下是一些可能导致错误的常见原因:缺少依赖项:YOLOv8可能需要一些额外的依赖项,如OpenCV、CUDA、cuDNN等。请确保你已经正确安装了这些依赖项,并且版本与YOLOv8的要求相匹配。文件路径错误:检查你的文件路径是否正确。确保模型......
  • 排序算法性能总结(时间复杂度)
    学习:https://blog.csdn.net/weixin_43207025/article/details/114902065......
  • C++算法之旅、05 基础篇 | 第二章 数据结构
    常用代码模板2——数据结构-AcWing笔试用数组模拟而不是结构体使用结构体指针,newNode()非常慢,创建10万个节点就超时了,做笔试题不会用这种方式(优化是提前初始化好数组,但这样跟数组模拟没区别了,而且代码量很长)单链表(数组)使用两个数组,e存储val,ne存储next。空节点next用-1表......
  • 『算法小记』SAM
    引入  daduoli最近对自己的名字很感兴趣,于是他开始研究自己的名字。知周所众,搞清楚一个字符串的最好方法就是把他的所有子串列出来(误),所以daduoli开始尝试列举他名字中所有的子串。  列了好一会,daduoli发现子串太多了,于是尝试把它们拼在一起。拼了好一会儿,他拼出来一个奇怪的......
  • Java使用有限状态机算法实现判断字符串是否合法
    题目描述请根据给出的正则表达式来验证邮箱格式是否合法,如果用户输入的格式合法则输出「邮箱格式合法」,否则输出「邮箱格式不合法」。正确格式对应的正则表达式"[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+";输入:[email protected]输出:邮箱格式合法分析最容易想到的是正则表达......
  • 11种常用滤波算法程序
    来源:嵌入式情报局一、限幅滤波法(程序判断滤波法)1/*2A、名称:限幅滤波法(又称程序判断滤波法)3B、方法:4根据经验判断,确定两次采样允许的最大偏差值(设为A),5每次检测到新值时判断:6如果本次值与上次值之差<=A,则本次值有效,7如果本次值与上次值之差>......
  • Java:使用javax.crypto.Cipher的AES算法实现数据加密解密
    AES算法加密Stringalgorithm="AES/ECB/PKCS5Padding";//定义加密算法Stringkey="1234567890123456";//这是待加密的信息Stringmessage="HelloWorld.";//这是待加密的信息Ciphercipher=Cipher.getInstance(algorithm);cipher.init(Cipher.ENCRYPT......
  • 代码随想录算法训练营第二十五天| 216.组合总和III 17.电话号码的字母组合
     216.组合总和III    卡哥建议:如果把 组合问题理解了,本题就容易一些了。    题目链接/文章讲解:https://programmercarl.com/0216.%E7%BB%84%E5%90%88%E6%80%BB%E5%92%8CIII.html   视频讲解:https://www.bilibili.com/video/BV1wg411873x  做题思路:......
  • 【DBN分类】基于北方苍鹰算法优化深度置信网络NGO-DBN实现轴承故障分类matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......