深度学习之梯度下降算法

news/2025/3/15 10:18:16/

0.1 学习视频源于:b站:刘二大人《PyTorch深度学习实践》

0.2 本章内容为自主学习总结内容,若有错误欢迎指正!

1 线性模型

1.1 通过简单的线性模型来举例:

 

1.2 如图,简单的一个权重的线性模型,首先通过随机取w的值来找到与true line重合的w,其中通过MSE来判断w取值是否合理。(最简单的通过评价指标来判断模型的效果如何)

1.3 但是对于多个权重来说,搜索权重w的数量呈幂函数增长。此时可以想到分治方法,通过分治法减少首次搜索次数,找到MSE较小的点在进行一定区间范围内的权重w搜索。但是这种方法对于大部分的MSE曲线(不规则,非凸函数),会因为第一轮的分治取值不当导致错过最优点。

2 梯度下降

2.1 所以引入梯度下降算法寻找最小MSE值。

2.2 Q:什么是梯度?A:cost函数(本文为MSE)对权重求导。

2.3 梯度下降更新权重的方法:

(减去学习率×导数,是因为如果寻找的导数为负值,说明该区间曲线递减,则w向后取值即w数值增加;如果为正,说明该区间曲线递增,则w向前取值即w数值减少。学习率:一般取值不宜太大,其控制MSE曲线上所取的w的跨越程度,学习率取值太大容易导致cost函数发散。) 

2.4 梯度下降为贪心算法,由于非凸函数存在多个最优点(局部最优),所以梯度下降算法很难找到全局最优,容易陷入局部最优点,但是在深度神经网络中并没有太多的局部最优点,即很难陷入局部最优,所以梯度下降算法依然被大量使用。同时梯度下降算法存在鞍点问题(梯度为0)。

 2.5 可以通过指数加权均值平滑cost函数,这样更容易观察曲线趋势。

3 随机梯度下降 

3.1 cost在本文中指MSE(所有样本的平均损失),而loss是指单个样本的损失。利用单个样本的loss函数之后增加了随机噪声,可以很大程度上解决鞍点问题。

 

3.2 梯度下降算法每个点的损失计算是可以并行的,但是随机梯度下降算法w的更新依赖于上次w更新的结果。所以梯度下降算法效率更高,随机梯度算法性能更好但是时间复杂度太高。

 

 

3.3 因此折中引入batch(mini-batch)(批量随机梯度下降)。随机梯度下降法(stochasticgradientdescent,SGD)算法默认使用批量随机梯度下降方法。

 


http://www.ppmy.cn/news/991329.html

相关文章

数据结构:栈和队列的实现和图解二者相互实现

文章目录 写在前面栈什么是栈栈的实现 队列什么是队列队列的实现 用队列实现栈用栈模拟队列 写在前面 栈和队列的实现依托的是顺序表和链表,如果对顺序表和链表不清楚是很难真正理解栈和队列的 下面为顺序表和链表的实现和图解讲解 手撕图解顺序表 手撕图解单链表 …

二维深度卷积网络模型下的轴承故障诊断

1.数据集 使用凯斯西储大学轴承数据集,一共有4种负载下采集的数据,每种负载下有10种 故障状态:三种不同尺寸下的内圈故障、三种不同尺寸下的外圈故障、三种不同尺寸下的滚动体故障和一种正常状态 2.模型(二维CNN) 使…

msvcp120.dll丢失的解决方法?有什么解决方法比较推荐?

第一:介绍几种可能导致msvcp120.dll文件丢失或损坏的原因 损坏的程序安装:在安装某个程序时,可能会出现意外中断或其他错误,导致msvcp120.dll文件未能正确地被安装或被破坏。这可能是由于软件安装过程中的错误、病毒感染或硬件问题…

04mysql查询之多表查询

# 1.显示所有员工的姓名,部门号和部门名称。 SELECT last_name,e.department_id,department_name FROM employees e LEFT JOIN departments d ON e.department_id d.department_id # 2.查询90号部门员工的job_id和90号部门的location_id SELECT e.job_id,d.locat…

OAuth机制_web站点接入微软azure账号进行三方登录

文章目录 ⭐前言⭐微软三方登录流程💖 web站点获取微软账号流程💖 node封装微软登录接口💖 webapp 自定义code换token💖 调用 Microsoft Graph API💖 前端唤醒authlink进行登录回调逻辑 ⭐结束 ⭐前言 大家好&#xf…

NO3.实验三:执行 Maven 的构建命令

执行 Maven 的构建命令 1、要求 运行 Maven 中和构建操作相关的命令时,必须进入到 pom.xml 所在的目录。如果没有在 pom.xml 所在的目录运行 Maven 的构建命令,那么会看到下面的错误信息: The goal you specified requires a project to ex…

centos7安装tomcat

安装tomcat 必须依赖 JDK 环境,一定要提前装好JDK保证可以使用 一、下载安装包 到官网下载 上传到linux 服务器 二、安装tomcat 创建tomcat 文件夹 mkdir -p /usr/local/tomcat设置文件夹权限 chmod 757 tomcat将安装包上传至 新建文件夹 解压安装包 tar zx…

vue中Swiper动态渲染swiper-slide后轮播图呆滞划不动的问题

因项目开发中很多都有用到轮播图的地方,然后选择用了swiper,记录一下,之前一直没有发布这个文章,现在官方好像已经优化了这个问题。 下载引入,具体参考官方文档Swiper演示 - Swiper中文网 问题描述:在图片…