当前位置: 首页 > news >正文

3-2 梯度与反向传播

3-2 梯度与反向传播

主目录点这里
梯度的含义
在这里插入图片描述
可以看到红色区域的变化率较大,梯度较大;绿色区域的变化率较小,梯度较小。
在二维情况下,梯度向量的方向指向函数增长最快的方向,而其大小表示增长的速率。
梯度的计算
在这里插入图片描述
在这里插入图片描述
当然我们不必学太深的纯运算,来看看python是怎么解决的

import numpy as np
import matplotlib.pyplot as plt
import sympy as sp
def gradient(f, variables, point):gradients = [sp.diff(f, var) for var in variables]gradient_at_point = [grad.evalf(subs=dict(zip(variables, point))) for grad in gradients]return gradient_at_point# 定义变量
x, y = sp.symbols('x y')# 定义函数 f(x, y)
f = x**2 + y**2# 定义点
point = (3, 4)# 计算梯度
grad = gradient(f, [x, y], point)# 函数表达式转换为可计算的 lambda 函数
f_lambda = sp.lambdify((x, y), f, 'numpy')# 创建 x, y 数据
X = np.linspace(-5, 5, 400)
Y = np.linspace(-5, 5, 400)
X, Y = np.meshgrid(X, Y)# 计算 z 数据
Z = f_lambda(X, Y)# 创建图形
fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection='3d')# 绘制表面图
ax.plot_surface(X, Y, Z, cmap='viridis', alpha=0.7)# 绘制梯度向量
# 在 point 点绘制梯度
ax.quiver(point[0], point[1], f_lambda(point[0], point[1]),grad[0], grad[1], 0, color='r', length=1.5, arrow_length_ratio=0.2)# 标记点
ax.scatter(point[0], point[1], f_lambda(point[0], point[1]), color='r', s=100)# 设置标签
ax.set_xlabel('X axis')
ax.set_ylabel('Y axis')
ax.set_zlabel('Z axis')# 标题
ax.set_title('Surface plot of f(x, y) = x^2 + y^2 with gradient vector at (3, 4)')plt.show()

在这里插入图片描述

反向传播
在这里插入图片描述

http://www.lryc.cn/news/393097.html

相关文章:

  • 【qt】如何获取本机的IP地址?
  • 芯片的PPA-笔记
  • 2024阿里巴巴全球数学竞赛决赛中的数列题解析(分析与方程方向第4题)
  • 学java的第3天 后端商城小程序工作
  • DevOps实战:使用GitLab+Jenkins+Kubernetes(k8s)建立CI_CD解决方案
  • Apache Seata配置管理原理解析
  • 深入理解C# log4Net日志框架:功能、使用方法与性能优势
  • BDD 100K dataset 的标签数据结构(json文件)
  • AcWing 1550:完全二叉搜索树
  • 使用kali Linux启动盘轻松破解Windows电脑密码
  • Vue2中跨组件共享公共属性的方法、优缺点与实现
  • 2024亚太杯数学建模竞赛(B题)的全面解析
  • 【PWN · ret2syscall | GoPwn】[2024CISCN · 华中赛区]go_note
  • 关于学习方法的优化
  • 万界星空科技MES系统中的排版排产功能
  • kubeadm离线部署kubernetesv1.30.0
  • 【PYG】dataloader和densedataloader
  • 完美解决ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)
  • ForkJoinPool 简介
  • 复现YOLO_ORB_SLAM3_with_pointcloud_map项目记录
  • Docker:Docker网络
  • Ubuntu 24.04-自动安装-Nvidia驱动
  • 【CSAPP】-attacklab实验
  • docker部署onlyoffice,开启JWT权限校验Token
  • Hive排序字段解析
  • 3101.力扣每日一题7/6 Java(接近100%解法)
  • virtualbox窗口和win10窗口的切换
  • 卫星轨道平面简单认识
  • IP-Guard定制函数配置说明
  • C++常用类