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

深度学习-梯度下降算法-NLP(五)

梯度下降算法

  • 深度学习中梯度下降算法简介
    • 找极小值问题
      • 数学上求最小值
      • 梯度
      • 梯度下降算法
    • 找极小值问题在深度学习流程中
      • 深度学习整体流程图
      • 求解损失函数的目标
      • 权重的更新

深度学习中梯度下降算法简介

找极小值问题

引子: 我们训练一个人工智能模型,简单点说,就是根据数据,调整模型的参数,使模型预测的值和我们数据的值一样。但一开始肯定不一样,所以我们引入损失函数,用它来计算,还差多少;差多少我们求出来,我们怎么调整原有模型里面的参数呢?

哎! 调整原有模型的参数目的就是为了使得预测的值和要求值一样嘛,是不是求一个模型参数可以使得计算出的预测值和要求值之间的差距最小呢?===》这就是找极小值问题

所以本质上就是求损失函数的极小值。

数学上求最小值

在这里插入图片描述
拆解示意:
目标: 找到合适的x值,使得f(x)最小。
逻辑

1.任取一点x0,计算在这一点的导数值f(x0)
2.根据导数的正负,决定x0应当调大还是调小;导数为正,那么就调小x;因为增大,y也会增大;导数为负,增大x
3.迭代进行1,2步直到导数为0;或者导数变号了。
什么情况下导数为变号?
那就函数的值,之前在减小,现在在增大了,所以导数就会编号,那么最小值就在其中(救赎之道,就在其中)

梯度

梯度: 可以直接理解就是导数,只是在深度学习中,通常不是一个导数,即对多元函数进去求导。
在这里插入图片描述
举个例子:
一元函数:

原函数:y=5x^2
导函数:y= 10x
即在x=1时,导数值为10

多元函数

三元函数:y=2x^2 + 6z^2 + 7m^3
导函数(即对三个未知数进行偏导求解):y={4x,12z,21m^2}
在[1,1,1]处的梯度为[4,12,21];并且梯度是个向量

都是对函数进行求导,可以用导数去理解梯度

梯度下降算法

释义: 梯度下降算法就是计算出模型在输入数据的梯度,然后通过学习率对模型原有的权重参数进行更新的一个逻辑,其中使用的算法有多类,我们会介绍到
在这里插入图片描述

找极小值问题在深度学习流程中

深度学习整体流程图

如下示意图即为深度学习的流程图,其中找极小值问题价值就对应着损失函数–>优化器–>模型
在这里插入图片描述

求解损失函数的目标

1.损失函数越小,模型越好
2.学习的目标就是损失函数最小化
3.模型的权重影响损失函数
4.通过梯度下降来找最优权重

权重的更新

更新的逻辑

1.根据输入的x与模型当前的权重,计算预测值y1
2.根据y1和y使用loss函数算计loss
3.根据loss计算模型的权重的梯度
4.使用梯度和学习率,根据优化器来调整模型的权重

更新的方式:

1.所有的样本一起计算梯度(累加)Gradient descent
2.每次使用一个样本计算梯度 Stochastic gradient descent
3.每次使用n个样本计算梯度(累加)Mini-batch gradient descent

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Ubuntu24.04清理常见跟踪软件tracker
  • Unity Addressable魔改
  • Android 列表视频滑动自动播放—滑动过程自动播放(实现思路)
  • tableau范围-线图与倾斜图绘制 - 14
  • CSS 中的 ::before 和 ::after 伪元素
  • 同三维T80006EH2-4K30编码器视频使用操作说明书:高清HDMI编码器,高清SDI编码器,4K超清HDMI编码器,双路4K超高清编码器
  • vue3项目中浏览器打开本地文档或者下载本地应用的方法(2024-07-11)
  • clean code-代码整洁之道 阅读笔记(第十七章 终章)
  • 【排序 - 快速排序】
  • 大模型/NLP/算法面试题总结9——从普通注意力换成多头注意力会导致参数暴涨吗?
  • 渔人杯——RE
  • git批量删除本地包含某字符串的特定分支
  • 04.ffmpeg打印音视频媒体信息
  • linux从入门到精通
  • 性能测试的流程(企业真实流程详解)(二)
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 2019年如何成为全栈工程师?
  • angular2 简述
  • Debian下无root权限使用Python访问Oracle
  • echarts的各种常用效果展示
  • Flex布局到底解决了什么问题
  • Java 23种设计模式 之单例模式 7种实现方式
  • MySQL数据库运维之数据恢复
  • MySQL用户中的%到底包不包括localhost?
  • Nacos系列:Nacos的Java SDK使用
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • Vue.js-Day01
  • 从零开始在ubuntu上搭建node开发环境
  • 给第三方使用接口的 URL 签名实现
  • 工作手记之html2canvas使用概述
  • 基于web的全景—— Pannellum小试
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 前端设计模式
  • 思维导图—你不知道的JavaScript中卷
  • 王永庆:技术创新改变教育未来
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • MyCAT水平分库
  • #微信小程序:微信小程序常见的配置传旨
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (07)Hive——窗口函数详解
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (搬运以学习)flask 上下文的实现
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)计算机毕业设计高校学生选课系统
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (四)Android布局类型(线性布局LinearLayout)
  • (一)Thymeleaf用法——Thymeleaf简介
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • .axf 转化 .bin文件 的方法
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .net MySql
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】