机器学习 -- 梯度下降算法

熵桥薄雾
• 阅读 236

梯度下降算法

在机器学习中,梯度下降算法常用于最小化代价函数(或损失函数),以此来优化模型的参数。代价函数衡量的是模型预测值与实际值之间的差异。通过最小化这个函数,我们可以找到模型预测最准确的参数。

代价函数

代价函数(Cost Function)或损失函数(Loss Function),是用来衡量模型预测值与真实值之间差异的一个函数。在回归问题中,一个常见的代价函数是均方误差
机器学习 -- 梯度下降算法
其中n是样本数量,yi是样本的真实值,被减去的则是预测值,这个值越小,说明预估越接近真实值。

实际案例:从简单线性回归理解梯度下降算法

假设我们有一组数据,表示房屋的大小与其价格的关系。我们想要构建一个简单的线性回归模型来预测房价,模型形式为
y=wx+b,其中 y 是房价,x 是房屋大小,w 是斜率,b 是截距。
第一步要做的是:初始化模型参数:随机选择w 和 b 的初始值,比如 w=0 和 b=0。计算代价函数的梯度:首先,我们需要定义代价函数,这里我们使用均方误差。然后,计算代价函数关于每个参数的梯度。
我们随意给出一组数据:
(1,2),(2,4),(3,6)
我们的目的是尽量用y=wx+b去拟合这些数据。w梯度计算公式是:
机器学习 -- 梯度下降算法
b的则是
机器学习 -- 梯度下降算法
w=0,b=0得出得梯度分别是: -56/3和 -8。
这个线性模型是一条 y=0的直线,显然无法拟合这些数据.我们此时设置 w=0.1,b=0.1来拟合,又得到了两个梯度,可能这次的线性模型拟合度会好一些,那么再设置w=0.2,b=0.2,会不会又好一点呢?我们每次选用w,b都会得到一个预测值,然后我们可以算出他的代价函数(误差)值,我们就可以画出这样一张图。
机器学习 -- 梯度下降算法
其中我们要找的点就是误差最低的那一个点,我们可能会从任何地方出发,去找那个点,这个过程运用到的就是梯度下降算法

正式介绍

通过上面那个小例子,我们已经知道了,梯度下降算法常用于最小化代价函数(或损失函数),以此来优化模型的参数。代价函数衡量的是模型预测值与实际值之间的差异。通过最小化这个函数,我们可以找到模型预测最准确的参数。

抽象

我们可以抽象这个过程:想象一下,你在山顶,目标是以最快的速度下到山脚。因为你被蒙上了眼睛,看不见周围的环境,所以你只能通过感觉脚下的坡度来判断下一步该往哪个方向走。这个“感觉坡度”的过程,就有点像梯度下降算法的工作原理。

梯度的含义

“梯度”(Gradient)其实就是指函数在某一点上的斜率,或者说是这一点最陡的上升方向。梯度告诉你,如果你想让函数值增加得最快,应该往哪个方向走。相应地,梯度的反方向就是函数值下降最快的方向。

梯度下降的工作原理

梯度下降算法的核心思想就是:在当前位置计算梯度(即斜率),然后沿着梯度的反方向走一小步,重复这个过程,直到到达山脚(即找到函数的最小值点)。

梯度下降--专属案例

假设我们有一个函数
y=x^2这个求最小值,这个案例不是让你使用高中数学去解答,你可以不假思索回答是0,但是不是我想要学习的。
让我们以梯度下降的方式求解,初始化: 假设我们随机选择一个起点,x=2。计算梯度: 对f(x) 求导得到它的梯度 f(x)=2x。在x=2 处的梯度是4。此时我们更新x,我们假设我们走一小步,0.1那么此时x应该是:x = x - 学习率 梯度 = 2 - 0.1 4 = 1.6 计算此时的梯度,重复这个过程,直到x的更新值很小很小,无限趋近于0,此时实际上x的值(在y=x^2中)也无限趋近于0,y也趋近于0了。

注意事项

学习率的选择:学习率太大可能导致“跨过”最低点,甚至发散;学习率太小又会导致收敛速度很慢。因此,选择一个合适的学习率非常关键。收敛条件:通常会设置一个阈值,当连续两次迭代的x值变化非常小(小于这个阈值)时,我们就认为算法已经收敛。

结束

我们计算房价,假设线性模型,求w,b,我们使用均方误差(MSE)作为代价函数,来衡量模型预测值与实际值之间的差异,我们使用梯度下降模型计算w,b的梯度,得到了误差,我们通过控制迭代次数和学习率,不断的修改w,b,以使得误差越来越小,误差越来越小,即w,b的变化非常小或达到一个预设的迭代次数。这就是梯度下降算法。对于不同类型的机器学习问题,成本函数的选择也会不同。例如:回归问题:常用的成本函数是均方误差(Mean Squared Error, MSE),它计算的是预测值与实际值之间差异的平方的平均值。这个值越小,表示模型的预测越准确。分类问题:对于二分类问题,一个常见的成本函数是交叉熵(Cross-Entropy),它量化的是实际标签与预测概率之间的差异。
在梯度下降算法中,我们的目标是找到模型参数的值,这些参数值能使成本函数的值最小化。换句话说,我们希望找到的参数能让模型的预测尽可能接近实际情况,从而最小化误差。通过迭代地更新模型参数,梯度下降算法能够逐步逼近这个最优参数组合,实现成本的最小化。

点赞
收藏
评论区
推荐文章
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
深度学习技术开发与应用
关键点1.强化学习的发展历程2.马尔可夫决策过程3.动态规划4.无模型预测学习5.无模型控制学习6.价值函数逼近7.策略梯度方法8.深度强化学习DQN算法系列9.深度策略梯度DDPG,PPO等第一天9:0012:0014:0017:00一、强化学习概述1.强化学习介绍2.强化学习与其它机器学习的不同3.强化学习发展历史4.强化学习典
哈希游戏搭建开发主要原理
区块链的算法主要有两个部分,一个是哈希算法,一个是非对称加密。哈希(Hash)是一种加密算法,也称为散列函数或杂凑函数。哈希函数是一个公开函数,可以将任意长度的消息M映射成为一个长度较短且长度固定的值H(M),称H(M)为哈希值、散列值(HashValue)、杂凑值或者消息摘要。它是一种单向密码体制,即一个从明文到密文的不可逆映射,只有加密过程,没有解密过
Stella981 Stella981
3年前
JS 对象数组Array 根据对象object key的值排序sort,很风骚哦
有个js对象数组varary\{id:1,name:"b"},{id:2,name:"b"}\需求是根据name或者id的值来排序,这里有个风骚的函数函数定义:function keysrt(key,desc) {  return function(a,b){    return desc ? ~~(ak
Stella981 Stella981
3年前
HIVE 时间操作函数
日期函数UNIX时间戳转日期函数: from\_unixtime语法:   from\_unixtime(bigint unixtime\, string format\)返回值: string说明: 转化UNIX时间戳(从19700101 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式举例:hive   selec
Stella981 Stella981
3年前
Python+OpenCV图像处理之图像梯度
图像梯度可以把图像看成二维离散函数,图像梯度其实就是这个二维离散函数的求导OpenCV提供了三种不同的梯度滤波器,或者说高通滤波器:Sobel,Scharr和Lapacian。Sobel,Scharr其实就是求一阶或二阶导。Scharr是对Sobel的部分优化。Laplacian是求二阶导。python实现importcv2i
Wesley13 Wesley13
3年前
AI金融知识自学偏量化方向
前提:统计学习(统计分析)和机器学习之间的区别金融公司采用机器学习技术及招募相关人才要求第一个问题:  机器学习和统计学都是数据科学的一部分。机器学习中的学习一词表示算法依赖于一些数据(被用作训练集),来调整模型或算法的参数。这包含了许多的技术,比如回归、朴素贝叶斯或监督聚类。但不是所有的技术都适合机器学习。例如有一种统计和数
Stella981 Stella981
3年前
AStar寻路1
A星算法是一种启发式的搜索方法,通过一个路径评估函数,来动态确定最佳路径。这点和广度搜索不同。基本思想是有2个列表,open和close,open列表里面的节点表示待搜索周围点的节点,close列表里面记录着不需要搜索的节点。启发式函数fgh;f表示该路径的代价,g表示起点到搜索的点的该条路径的实际值,h表示该搜索的点到终点的估计值。h的
Wesley13 Wesley13
3年前
N数码问题的启发式搜索算法
一、启发式搜索:A算法1)评价函数的一般形式:f(n)g(n)h(n)g(n):从S0到Sn的实际代价(搜索的横向因子)h(n):从N到目标节点的估计代价,称为启发函数(搜索的纵向因子);特点:效率高,无回溯, 搜索算法OPEN表:存放待扩展的节点.CLOSED表:存放已被扩展过的节点
搭建平台吧 搭建平台吧
2年前
哈希竞猜的未来趋势
哈希(Hash)是一种加密算法,也称为散列函数或杂凑函数。哈希函数是一个公开函数,可以将任意长度的消息M映射成为一个长度较短且长度固定的值H(M),称H(M)为哈希值、散列值(HashValue)、杂凑值或者消息摘要。它是一种单向密码体制,即一个从明文到密文的不可逆映射,只有加密过程,没有解密过程。一致性hash算法提出了在动态变化的Cache环境中,判定
熵桥薄雾
熵桥薄雾
Lv1
希望所有烦恼,都离屏幕前的这个小笨蛋远一点。
文章
6
粉丝
0
获赞
0