Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
机器学习入门教学——梯度下降、梯度上升
2023-11-19
1、简介
梯度
表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(梯度的方向)变化最快,变化率(梯度的模)最大,
可理解为导数
。
梯度上升和梯度下降是优化算法中常用的两种方法,主要目的是通过迭代找到目标函数的最大值和最小值。
例如:
想象我们在一座很高的山上,怎么才能以最快的速度下山?我们可以先选择坡度最倾斜的方向走一段距离,然后再重新选择坡度最倾斜的方向,再走一段距离。以此类推,我们就可以以最快的速度到达山底。
(梯度的方向,就是我们要选择的方向)
2、梯度下降
梯度下降:梯度下降是一种迭代算法,用于寻找函数的局部最小值或全局最小值。它的核心思想是
沿着函数梯度的负方向进行迭代更新
,以逐步接近最小值点。在每一次迭代中,根据当前位置的梯度方向来更新参数或变量值,使目标函数值减小。梯度下降算法广泛应用于求解机器学习中的优化问题,如线性回归、逻辑回归、神经网络等。
这里我将模拟整个机器学习的流程来解释什么是梯度下降。
2.1、预测函数
假设,我们需要建立一个模型用来预测房价。我们拥有一些样本点,现在需要对这些样本点进行拟合。
拟合方法:我们可以先随机选一条过原点的直线,然后计算所有样本点和它的偏离程度(误差),再根据误差大小来调整直线的斜率w。其中,
为
预测函数
。
2.2、代价函数
在调整预测函数斜率前,我们需要量化数据的偏离程度,即量化误差。最常见的方法是
均方误差
,即误差平方和的平均值。
假设,样本点p1(x1,y1)对应的误差为e1。
,展开为
同理,
均方误差为:
,合并同类项得:
用字母代替不同项的系数。
其中,
即为
代价函数
。
代价函数是用来衡量机器学习模型在给定训练集上的表现的函数,它反映了模型对训练集的拟合程度,可以衡量模型的预测输出与真实输出之间的差异。
我们可以看出该代价函数是一个二元函数,图像为抛物线。这样的话,我们就可以
把预测函数的拟合过程,转换为代价函数寻找最小值的过程
。
(代价越小,拟合程度越高)
我们要做的就是不断地更新参数w,找到一个w让预测函数值最小。
2.3、计算梯度
机器学习的目标是拟合出最接近训练数据分布的直线,也就是找到使得误差代价最小的参数w,对应在代价函数图像上就是它的最低点。
寻找最低点的过程就会使用到梯度下降
。
假设起始点如图所示,我们只要选择向陡峭程度最大的方向走,就能更快地到达最低点。
陡峭程度就是梯度,是代价函数的导数,也是抛物线的曲线斜率。
【注】因为这里的代价函数只是二维平面,所以抛物线的斜率即为梯度。而实际应用中,代价函数的图形可能是三维四维的,这时的梯度就是沿着某个方向取得最大值的导数了。
所以,计算梯度就是计算代价函数在某个方向取得最大值的导数。
2.4、按学习率前进
确定方向以后就需要前进了,这时我们需要确定
步长,即更新参数w时的大小和速度
。
步长太大或太小对梯度下降算法的效果都是不好的。步长太大,函数无法收敛到最小值;步长太小,收敛速度较慢。所以需要找到合适的步长,使其在收敛速度和稳定性之间达到平衡。
我们尝试使用
斜率(梯度)
来作为步长。好处是,斜率较大时,步长稍大些,可以快速收敛;斜率较小时,步长稍小些,收敛的越精准。但在实际过程中,w左右反复横跳,依然无法收敛到最小值,原因是开始时的步长太大。如下图所示。
我们让斜率乘以一个非常小的值,即缩小斜率后再当作步长,如0.1,结果就非常顺滑了。这个非常小的值就是
学习率
。
【注】斜率是有正负的,当起始点在最低点左侧时,斜率为负,w逐渐增大;当起始点在最低点右侧时,斜率为正,w逐渐减小。
2.5、循环迭代
每次迭代即计算一次梯度,按照梯度的方向前进一段步长。循环迭代就是重复计算梯度和按学习率前进的步骤,直到找到最低点。
3、梯度上升
梯度上升:梯度上升是一种迭代算法,用于寻找函数的局部最大值或全局最大值。它的核心思想是
沿着函数梯度的正方向进行迭代更新
,以逐步接近最大值点。在每一次迭代中,根据当前位置的梯度方向来更新参数或变量值,使目标函数值增大。梯度上升算法适用于求解优化问题中的约束最优化、最大似然估计等。
梯度上升和梯度下降类似,只不过方向不同,结合下面公式理解。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)
机器学习
人工智能
机器学习入门教学——梯度下降、梯度上升 的相关文章
用通俗易懂的方式讲解:图解 Transformer 架构
文章目录 用通俗易懂方式讲解系列 1 导语 2 正文开始 现在我们开始 编码 从宏观视角看自注意力机制 从微观视角看自注意力机制 通过矩阵运算实现自注意力机制
【多源数据融合】基于Dempster-Shafer理论的信念对数相似度测量及其在多源数据融合中的应用(Matlab代码实现)
欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现
【图像融合】基于联合双边滤波和局部梯度能量的多模态医学图像融合研究(Matlab代码实现)
欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 图像 文章
【路径规划】基于A*算法路径规划研究(Matlab代码实现)
欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现
蒙特卡洛在发电系统中的应用(Matlab代码实现)
欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现
蒙特卡洛在发电系统中的应用(Matlab代码实现)
欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现
【多源数据融合】基于Dempster-Shafer理论的信念对数相似度测量及其在多源数据融合中的应用(Matlab代码实现)
欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现
利用CHAT写实验结论
问CHAT 通过观察放置在玻璃表面上的单个水滴 人们可以观察到水滴充当成像系统 探究这样一个透镜的放大倍数和分辨率 CHAT回复 实验报告标题 利用玻璃表面的单一水滴观察成像系统的放大倍数和分辨率 一 实验目的 通过对比和测量 研究和探索玻
基于java的ssh医院在线挂号系统设计与实现
基于java的ssh医院在线挂号系统设计与实现 I 引言 A 研究背景和动机 基于Java的SSH医院在线挂号系统设计与实现的研究背景和动机 随着信息技术的迅速发展和应用 医院在线挂号系统已成为医院管理的重要组成部分 传统的挂号方式存在许多
打造完美人像,PixCake像素蛋糕助您一键修图
您是否曾经为自己的人像照片需要进行繁琐的修图而感到困扰 是否曾经想要打造出完美的自拍照 却不知道该如何下手 现在 我们为您推荐一款强大的人像处理技术修图软件 PixCake像素蛋糕 PixCake像素蛋糕是一款基于AI人像处理技术的修图软件
基于opencv的大米计数统计(详细处理流程+代码)
在我每周的标准作业清单中 有一项是编写计算机视觉算法来计算该图像中米粒的数量 因此 当我的一个好朋友M给我发了一张纸上的扁豆照片 显然是受到上述转发的启发 请我帮他数一下谷物的数量时 它勾起了我怀旧的回忆 因此 我在我的旧硬盘上寻找很久以前
毕业设计- 基于深度学习的小样本时间序列预测算法 - Attention
目录 前言 课题背景与意义 课题实现 一 数据集 二 设计思路 三 相关代码示例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着准备考研 考公 考教资或者实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校
毕业设计:基于卷积神经网络的图像分类系统 python人工智能
目录 前言 设计思路 一 课题背景与意义 二 算法理论原理 2 1 卷积神经网络 2 2 SVM算法 三 检测的实现 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力
台积电再被坑,2纳米光刻机优先给Intel和三星,美国太霸道了
外媒指出今年ASML的10台2纳米光刻机分配已经基本确定了 Intel拿到6台 三星获得3台 台积电只能得到一台 考虑到美国对ASML的强大影响力 外媒的这些消息应该有较高的可信性 Intel在先进工艺制程方面 自从2014年量产14纳米之
2024 人工智能与大数据专业毕业设计(论文)选题指导
目录 前言 毕设选题 选题迷茫 选题的重要性 更多选题指导 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生
2023最新pytorch安装(超详细版)
前言 一 判断是否有Nvidia 英伟达显卡 二 CPU版 2 1 安装Anaconda 2 2 创建虚拟环境 2 3安装pytorch 2 4 验证pytorch是否安装成功 三 GPU版 3 1 安装Anaconda 3 2 创建虚拟环
AI-基于Langchain-Chatchat和chatglm3-6b部署私有本地知识库
目录 参考 概述 部署安装 环境准备 原理和流程图 一键启动 启动WebAPI 服务 启动WebUI服务 Docker部署
基于节点电价的电网对电动汽车接纳能力评估模型研究(Matlab代码实现)
欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据
基于节点电价的电网对电动汽车接纳能力评估模型研究(Matlab代码实现)
欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据
实力认证!鼎捷软件荣膺“领军企业”和“创新产品”两大奖项
近日 由中国科学院软件研究所 中科软科技股份有限公司联合主办的 2023中国软件技术大会 于北京成功举办 本届大会以 大模型驱动下的软件变革 为主题 数十位来自知名互联网公司和软件巨头企业的技术大咖 不同领域行业专家 畅销书作者等分享嘉宾
随机推荐
筛选素数之欧拉筛法 python实现 附带证明
返回类型 列表 说明 返回小于upperBound的所有素数 def ouLaShai upperBound filter False for i in range upperBound 1 primeNumbers for num in
Java学习心得10——多态
多态 一种类型的变量可以掌管多种类型的对象 这就是多态 说人话 直观理解成多种形态 人类就是多态的 黄种人 白种人 黑种人都是属于人类 人类这一个类可以表示黄种人 白种人 黑种人这三个类 这不就是多态多种形态吗 回到编程 Animal 动物
【华为OD机试真题 python】数字加减游戏【2022 Q4
题目描述 数字加减游戏 小明在玩一个数字加减游戏 只使用加法或者减法 将一个数字s变成数字t 在每个回合中 小明可以用当前的数字加上或减去一个数字 现在有两种数字可以用来加减 分别为a b a b 其中b没有使用次数限制 请问小明最少可以用
第四章 Flume专题-日志采集工具
一 Flume专题之组件及架构介绍 1 Flume概述 1 1 Flume定义 Flume是一种分布式的 高可靠的和高可用的服务 用于有效地收集 聚合和移动大量日志数据框架 Flume是一个简单灵活的基于流数据的体系结构 1 2 Flume
Delphi ListView 的用法
Delphi ListView 的用法 常用技巧 增加 i ListView1 Items Count with ListView1 do begin ListItem Items Add ListItem Caption IntToStr
Vite搭建react+ts项目
创建一个react项目 首先需要打开终端 进行vite的引入 yarn create vite 使用react模板创建项目 yarn create vite react test template react cd react test y
Float与二进制之间的转化(Java实现)
在线转化 http www binaryconvert com 2 3 import java text DecimalFormat 4 5 6 public class SinglePrecision 7 8 浮点到二进制 9 publi
采用通信方式控制台达B2伺服驱动器运行在速度模式
目录 前言 一 伺服驱动器恢复出厂设置 二 伺服驱动器设置为速度模式 三 关闭告警信息 四 通讯功能设置 五 采用通信功能控制伺服驱动器按速度模式运行 总结 前言 最近 使用台达B2伺服驱动器做项目 项目中用伺服电机的速度模式驱动一个螺杆按
Linux笔记--查看Linux系统自动Kill掉的进程
目录 1 前言 2 查看系统日志 3 参考 1 前言 今天在服务器训练一个模型 程序无任何错误 但一段时间后挂在后台的进程莫名被Kill掉 原因在于服务器 linux 系统的运行内存不足 为了避免系统奔溃 系统主动 kill 内存占用最大的
Python项目创建(Pycharm程序)
点击 新建项目 创建一个新的项目 这一步重点在Python解释器的选择 一个是新建虚拟环境 另一个是使用已有环境 使用此工具新建环境 Virtualenv 新建后在项目根目录下会出现 venv 的文件夹 相当于把Python解释器复制过去一
RANSAC算法实现 + 直线拟合
一 RANSAC算法 1 参考资料 1 题目来源与解析 商汤科技SLAM算法岗的RANSAC编程题 2 牛客网题目 编程题 线性回归 3 牛客网解答参考 商汤科技某算法岗的编程题有点过分了啊 4 RANSAC算法原理 RANSAC翻译 经典
TOPIAM 社区版 1.0.0 发布,开源 IAM/IDaaS 企业身份管理平台
文章目录 产品概述 系统架构 功能列表 管理端 门户端 技术架构 后续规划 相关地址 Hi 亲爱的朋友们 今天是传统 24 节气中的立秋 秋天是禾谷成熟 收获的季节 经过长时间优化和迭代 TOPIAM 企业身份管控平台也迎来了当下的成长和收
[Redis]-四种部署方式
森格 2022年11月 本文是对Redis部署方式的学习 主要学习基本原理 以及几种方式的优缺点 一 部署方式概况 对于Redis的安装部署主要可以分为单机版 主从同步 Sentinel哨兵 Cluster集群部署四种方式 下面一起看下几种
AutoCAD 2022 for Mac v2022(24.1.50.899)中文版介绍
CAD2022 Mac是一款针对苹果电脑打造的CAD设计软件 用于二维绘图 详细绘制 设计文档和基本三维设计 广泛应用于机械设计 工业制图 工程制图 土木建筑 装饰装潢 服装加工等多个行业领域 CAD2022新特征 改进了桌面 Web和移动
一个全网最详细的Python教程,不信你来学一学!2023Python入门教程完整版,无偿分享
近几年 编程越来越火 网上也是铺天盖地的免费教程 中小学生都开始投入到学习中 编程学习从娃娃抓起 甚至有些小学生都做起了 UP 主 教大家学编程 PS 我落下了柠檬的眼泪 小小年纪就学得一手好编程 光从编程的难易度来说 Python 简单
IDEA进行了Pull操作,Merge时选择了他们的优先,但自己的代码没有Push导致自己未提交的代码没了,头脑发热我差点哭出来解决方案
IDEA进行了Pull操作 Merge时选择了他们的优先 但自己的代码没有Push导致自己未提交的代码没了 头脑发热我差点哭出来解决方案 问题背景 解决方案 心得 Lyric 沉默是因为包容 问题背景 我和胖哥同时在一个项目里面开发 我让他
华为OD机试 - 判断字符串子序列(Java)
题目描述 给定字符串 target和 source 判断 target是否为 source 的子序列 你可以认为target和 source 中仅包含英文小写字母 字符串 source 可能会很长 长度 500 000 而 target是个
python笔记(爬虫 微爬取微信信息)
views py import time import json import re import requests from bs4 import BeautifulSoup from flask import Blueprint ren
DevExpress ASP.NET GridView在Edit时弹出新窗体
1 设置setting editing属性 选择PopupEditForm 2 如果在源代码中设置的话 如下
机器学习入门教学——梯度下降、梯度上升
1 简介 梯度表示某一函数在该点处的方向导数沿着该方向取得最大值 即函数在该点处沿着该方向 梯度的方向 变化最快 变化率 梯度的模 最大 可理解为导数 梯度上升和梯度下降是优化算法中常用的两种方法 主要目的是通过迭代找到目标函数的最大值和最
热门标签
作图
生成spwm
高可用架构
实验数据
深度学习论文阅读
区块链文件转储系统
mysql建立班级表
臭虫集
keypress
VisSim
PLECS
GATE71安装
基础巩固
SSHTunnel
雷诺方程
Reynolds
机械人生
马克思
马克思主义
火山图
React全家桶
C 算法专栏
编辑博客
java 邮件