3-2 梯度与反向传播

news/2024/10/5 16:31:41/

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.ppmy.cn/news/1473532.html

相关文章

51单片机第2步_printf()函数应用

在51单片机中&#xff0c;printf()函数是最常用的函数。 #include <REG51.h> //包含头文件REG51.h,使能51内部寄存器; #include <stdio.h> //包含头文件stdio.h //_getkey();从串口读入一个字符; signed char Char_Value; signed int Int_Value; signed lon…

Python数据分析案例50——基于EEMD-LSTM的石油价格预测

案例背景 很久没更新时间序列预测有关的东西了。 之前写了很多CNN-LSTM&#xff0c;GRU-attention&#xff0c;这种神经网络之内的不同模型的缝合&#xff0c;现在写一个模态分解算法和神经网络的缝合。 虽然eemd-lstm已经在学术界被做烂了&#xff0c;但是还是很多新手小白或…

CEPH client.admin key获取

通过初始化完毕后&#xff0c;admin节点会在/etc/ceph目标下生成对应的配置文件和对应的key文件&#xff0c;通过ceph orch host add 增加的默认是没有的 如果很不幸admin节点挂了&#xff0c;怎么在其它节点使用ceph -s 命令呢 启蒙方法(比较实用) key可以通过ceph auth expor…

第一天(点亮led灯+led灯闪烁)——Arduino uno R3 学习之旅

​ 常识: 一般智能手机的额定工作电流大约为200mA Arduino Uno板上I/0(输入/输出)引脚最大输出电流为40 mA Uno板控制器总的输出电流为200 mA 点亮LED灯 发光二极管介绍 发光二极管(Light Emitting Diode&#xff0c;简称LED)是一种能够将电能转化为光能的固态的半导体器件…

GPT提示词模板

BRTR 原则 # 背景&#xff08;Background&#xff09; - 描述任务的背景信息&#xff0c;包括任务的起因、目的、相关的历史信息或当前状况。 - 提供足够的背景信息以便让ChatGPT理解任务的上下文。 # 角色&#xff08;Role&#xff09; - 定义ChatGPT在任务中所扮演的角色&…

应用密码学—(扩展)欧几里得、DES、RSA、SHA-1算法

1. 欧几里得算法 1.1 分析算法的实现原理 欧几里德&#xff08;Euclid&#xff09;算法&#xff0c;也既常说的“辗转相除法”&#xff0c;公式为gcd(m, n) { return gcd(n, m%n); }&#xff0c;对于任意两个正整数m、n&#xff0c;每次求的一个数字r m % n&#xff0c;然后把…

Sass 语法

文章目录 编译变量 \$嵌套 {} > \~导入 import注释 // /*\* \**/混入 mixin/include继承 extend数据类型运算控制 if/for/each/while函数 function媒体查询 media根发出 at-root警告warn/错误error/调试debug 编译 编译命令 单文件转换命令 sass input.scss output.css单…

【基于R语言群体遗传学】-6-表型计算等位基因频率、最大似然估计方法

到目前为止&#xff0c;我们主要讨论了等位基因和基因型频率&#xff0c;以及我们如何可以从一个推断出另一个。但是&#xff0c;如果我们不知道等位基因频率&#xff0c;只知道种群中存在哪些表型呢&#xff1f;如果我们足够幸运&#xff0c;知道哪些表型对应哪些基因型&#…