首页 > 其他分享 >梯度下降、Mini-Batch梯度下降、动量梯度下降、Adam

梯度下降、Mini-Batch梯度下降、动量梯度下降、Adam

时间:2023-10-07 09:25:21浏览次数:42  
标签:Mini 梯度 Batch 下降 Adam 动量

梯度下降、Mini-Batch梯度下降、动量梯度下降以及Adam都是用于训练机器学习模型的优化算法。

梯度下降 (Gradient Descent):

梯度下降是一种优化算法,用于调整模型参数以最小化损失函数。
想象一下你站在山上,想要找到山底的最低点。你每一步都沿着最陡峭的下坡方向走,直到到达最低点。
在梯度下降中,你计算损失函数对于模型参数的梯度(即斜率),然后按照这个梯度的反方向,更新模型参数,使损失函数逐渐减小,最终达到最低点。
Mini-Batch梯度下降:

Mini-Batch梯度下降是一种梯度下降的变体,它不是在整个数据集上计算梯度,而是在数据集中随机选择一小部分数据(称为小批量),然后计算这个小批量上的梯度。
这样做有助于加快训练过程,特别是在大规模数据集上。它可以充分利用现代计算硬件的并行处理能力。
动量梯度下降 (Momentum Gradient Descent):

动量梯度下降是一种梯度下降的改进版,通过考虑之前的梯度信息来帮助模型更快地收敛。
想象一辆车在山坡上滚动,动量梯度下降就像车子有一定的速度和惯性,可以帮助它跨越一些小的坑洼或平坦区域。
动量梯度下降会在更新参数时考虑之前的梯度方向,从而在梯度方向不断改变的情况下更加平稳地前进,加快了收敛速度。
Adam:

Adam是一种自适应学习率的优化算法,结合了梯度下降和动量梯度下降的思想。
Adam不仅根据当前梯度来更新参数,还根据每个参数的历史梯度信息来动态调整学习率,以便在训练的早期和后期都表现出色。
它通常在很多机器学习任务中表现出色,不需要手动调整学习率,因此受到广泛使用。
简而言之,这些算法都是为了更有效地训练机器学习模型而设计的,它们在不同情况下有不同的优点,可以根据任务需求来选择使用哪种优化算法。

标签:Mini,梯度,Batch,下降,Adam,动量
From: https://www.cnblogs.com/wzbzk/p/17745495.html

相关文章

  • minikube の 安装
    本文以ubuntu22.04为例,讲述如何安装minikube安装dockerexportDOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/docker-ce"#如您使用curlcurl-fsSLhttps://get.docker.com/|sudo-Esh#如您使用wgetwget-O-https://get.docker.com/|sudo-Esh在/e......
  • 设计一个指数衰减函数, 描述物料出炉温度随时间下降的曲线, 并且受到车间温度, 物料宽
    这是一个有趣的问题。指数衰减函数可以用来描述物料出炉温度随时间下降的曲线。该函数的形式为:$$T(t)=T_0e^{-kt}$$其中$T_0$是初始温度,$k$是衰减常数,$t$是时间。车间温度、物料宽度、物料厚度和物料重量都会影响衰减常数$k$。这些因素的影响可能是复杂的,因此需要更......
  • 感性理解梯度下降 GD、随机梯度下降 SGD 和 SVRG
    MLTheory太魔怔了!!!!!从微积分课上我们学到对一个\(\mathscrC^2\)函数,其二阶泰勒展开的皮亚诺余项形式\[f(\bmw')=f(\bmw)+\langle\nablaf(\bmw),\bmw'-\bmw\rangle+o(\|\bmw'-\bmw\|)\]这说明只要\(\bmw'\)和\(\bmw\)挨得足够接近,我们就可......
  • 【ASP.NET Core】在 Mini-API 中注入服务
    经过版本更新,MiniAPI的功能逐步完善,早期支持得不太好的miniAPI现在许多特性都可以用了,比如灰常重要的依赖注入。咱们先来个相当简单的注入测试。来,定义一个服务类,为了偷懒,老周这里就不使用接口+实现类的方式了。publicclassMyService:IDisposable{publicMy......
  • C. Assembly via Minimums
    C.AssemblyviaMinimums找规律首先根据题意,B组数据的顺序是完全没有关系的,因为可以随意打乱,所以a组的值一定在b组里找,这不是废话。其次我们观察数据可知,最小值出现的次数是n-1,比较好理解的方法是:分别把最小值放在开头和结尾,因为要取最小值所以在B组出现的次数一定是n-1。接......
  • 深度学习梯度与反向传播
    梯度与反向传播1、梯度(方向向量)1.1什么是梯度梯度:是一个向量,导数+变化最快的方向(学习的前进方向)目标:通过梯度调整(学习)参数$$w$$,尽可能的降低$$loss$$一般的,随机初始一个$$w0$$,通过优化器在学习率和梯度的调整下,让$$loss$$函数取到最小值。1.2$$w$$的更新方法1.......
  • 小批量梯度下降
    在小批量梯度下降中,试分析为什么学习率要和批量大小成正比在标准的梯度下降中,参数的更新公式是:θ=θ−η∇θJL(θ)\theta=\theta-\eta\nabla_\thetaJL(\theta)θ=θ−η∇θ​JL(θ)其中,η\etaη是学习率,∇θJL(θ)\nabla_\thetaJL(\theta)∇θ​JL(θ)是损失函数JL......
  • aws awswrangler 集成minio 简单试用
    awsawswrangler现在已经改名为aws-sdk-pandas,但是对于python使用的时候安装已经是使用awswrangler名称以下是一个简单的集成minio的测试,核心是配置环境变量,这个也比较符合aws对于相关资源的集成玩法环境准备docker-compose文件 version:'3'services......
  • 在Jupyter中运行Rust(需要安装Minicconda、JupyterLab和Rust)
    安装Miniconda有许多不同的方法可以在一个方便我们工作的环境中启动和运行。我可以推荐的一种方法是安装和使用Miniconda。Miniconda是一个免费的最小安装程序。它是Anaconda的一个小的引导版本,仅包含conda、Python、它们所依赖的包,以及少量其他有用的包,包括pip、zlib和其......
  • 宝塔安装minio
    docker安装minio先下载minio镜像dockerpullminio/minio镜像安装指令dockerrun-d\-p9000:9000\-p9090:9090\--nameminio1\-d--restart=always\-eMINIO_ACCESS_KEY=minio\-eMINIO_SECRET_KEY=minio@321\-v/data/docker/minio/data:/data\-v/data......