首页 > 其他分享 >深度学习入门- 梯度(Gradient)(三)

深度学习入门- 梯度(Gradient)(三)

时间:2024-11-25 16:30:43浏览次数:10  
标签:x1 uy 入门 Gradient 梯度 x2 X1 ux

一. 手算梯度

1.计算下列函数的梯度,并写明过程。

       理论依据是前面两文学习过的:

       链式法则:复合函数的导数可以用构成复合函数的各个函数的导数的乘积表示。

       偏导数是多元函数时:将某一个变量定为目标变量,并将其他变量固定为某个值。

       根据上述理论,我们先看下手写数学计算过程:

  • step1:求偏导数

     F(x1,x2)对x1的偏导数为:

      F(x1,x2)对x2的偏导数为:

  • step2:在点(2,3)处求值

     将x1=2,x2=3带入上式:

  • step3:形成梯度向量

      该函数在点(2,3)处的梯度向量为:

故:以上二元函数在点(2,3)处的梯度向量为(108,144)。

二.绘制梯度3D图

      从不同的视角来看梯度:

      view(2) 设置默认二维视图 :

       view(3) 设置默认三维视图:

       附上matlab脚本:

[X1, X2] = meshgrid(-5:0.1:5, -5:0.1:5);

F = (3*X1 + 4*X2).^2;

[GX, GY] = gradient(F);

figure;

surf(X1, X2, F);

hold on;

% 为了绘制梯度场箭头,我们需要遍历网格点

% 但由于梯度箭头可能会非常密集且难以看清,我们可以选择性地绘制一些箭头

step = 5; % 设置步长

for i = 1:step:size(X1,1)

    for j = 1:step:size(X1,2)

        % 提取当前网格点的坐标和梯度值

        x = X1(i,j);

        y = X2(i,j);

        z = F(i,j);

        ux = GX(i,j);

        uy = GY(i,j); 

        % 归一化梯度向量(可选步骤,用于控制箭头长度)

        norm_factor = sqrt(ux^2 + uy^2);

        if norm_factor ~= 0

            ux = ux / norm_factor;

            uy = uy / norm_factor;

        end

        % 设置箭头长度(可以根据需要调整)

        arrow_length = 0.5;

        % 绘制梯度箭头

        quiver3(x, y, z, arrow_length * ux, arrow_length * uy, 0, 'r', 'LineWidth', 0.5);

    end

end

xlabel('x1');

ylabel('x2');

zlabel('f(x1, x2)');

title('3D Plot of f(x1, x2) = (3x1 + 4x2)^2 and its Gradient Field');

grid on;

axis tight; 

view(3); % 设置视角

hold off;

本文仅为个人学习使用所写。

标签:x1,uy,入门,Gradient,梯度,x2,X1,ux
From: https://blog.csdn.net/sx52013/article/details/144030143

相关文章

  • 梧桐数据库v5版本的基本使用-入门篇
    一、命令行登录客户端在开始使用梧桐数据库之前,你需要通过命令行客户端工具登录到数据库。打开你的终端或命令提示符,使用以下命令登录:psql-hipaddress-pport-Uusername-ddatabasename这里的ipaddress是数据库的ip地址,port指的是数据库开放连接的端口号,username是......
  • Shiro权限控制入门
    本文分享自天翼云开发者社区《Shiro权限控制入门》,作者:l****nShiro权限控制是一款优秀的Java安全框架,可用于对Java应用程序进行身份验证、授权、加密和会话管理等功能。本文将简要介绍Shiro权限控制框架的几个关键概念和使用方法。1.认证Shiro的认证功能通常是用户登录系统的第......
  • 【人工智能】基于PyTorch的深度强化学习入门:从DQN到PPO的实现与解析
    《PythonOpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门!深度强化学习(DeepReinforcementLearning)是一种结合深度学习和强化学习的技术,适用于解决复杂的决策问题。深度Q网络(DQN)和近端策略优化(PPO)是其中两种经典的算法,被广泛应用于游戏、机器人控制等任务中。本......
  • python中的包和模块(非常详细),零基础入门到精通,看这一篇就够了
    文章目录一、包与模块二、第三方包的安装2.1pipinstall2.2使用curl+管道2.3其他安装方法三、导入单元的构成3.1pip的使用3.2模块的缓存3.3源码包与二进制包四、setup.py的编写零基础入门AI大模型1.学习路线图2.视频教程3.技术文档和电子书4.LLM面试题和面经合......
  • Qwen2大模型微调入门实战,零基础入门到精通,收藏这一篇就够了
    Qwen2大模型微调入门实战Qwen2是通义千问团队最近开源的大语言模型,由阿里云通义实验室研发。以Qwen2作为基座大模型,通过指令微调的方式做高精度文本分类,是学习LLM微调的入门任务。在本文中,我们会使用Qwen2-1.5b-Instruct模型在复旦中文新闻数据集上做指令微调训练,同......
  • 信息安全专业哪个方向发展比较好?(非常详细),零基础入门到精通,看这一篇就够了
    前言关于开发、评估、加固、审计、密码学之类的,信息安全专业目前向哪个方向发展比较好?这边推荐密码学方向密码学方向工作岗位一般都在大厂实验室,例如天融信的天璇实验室、阿尔法实验室等。技术水平相当,学历高薪资起点就高,未来的升职空间也更广。一、可从事岗位:(1)逆向工......
  • vite.config.js配置入门详解
    一,搭建vite项目兼容性注意:Vite需要 Node.js 版本14.18+,16+。然而,有些模板需要依赖更高的Node版本才能正常运行,当你的包管理器发出警告时,请注意升级你的Node版本。通过下面的命令行可以创建指定项目名称和你想要使用的模板的vue项目#npm6.xnpmcreatevite@......
  • 【WPF】入门学习
     一、学习资源: WPF中文网:https://www.wpfsoft.com/ VisualStudio2022:https://visualstudio.microsoft.com/zh-hans/vs/ VS2022 激活密钥:https://www.cnblogs.com/soarowl/p/18200602学习参照教程:https://www.bilibili.com/video/BV1mJ411F7zG二、VS2022激活:【帮助】......
  • C#入门简介
    文章目录前言一、起源与发展背景二、开发环境搭建VisualStudioVisualStudioCode三、C#的特性面向对象编程(OOP)特性类型安全自动内存管理(垃圾回收)四、应用领域Windows桌面应用开发游戏开发企业级应用开发移动应用开发(借助Xamarin)五、与其他语言的比较与Java的比......
  • python-爬虫入门指南
    前言:由于个人负责的运维组,其中有个同事每回在某个项目发版更新后,需手动在k8s容器平台web界面上复制出几百个微服务的名称以及镜像版本等信息,用来更新微服务清单,个人决定抽时间写个爬虫脚本自动完成手动执行的任务。由于公司信息需保密,这里介绍个简单入门的爬虫脚本做为范例......