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

深度学习_02_卷积神经网络循环神经网络

卷积神经网络

1. 卷积神经网络

神经元存在局部感受区域----感受野
.
第一个卷积神经网络雏形----新认知机

缺点:没有反向传播算法更新权值,模型性能有限

第一个大规模商用卷积神经网络----Lenet-5

缺点:没有大量数据和高性能计算资源。

第一个全面的卷积神经网络----AlexNet

2. 卷积操作

图像识别的特点

1.特征具有局部性
2.特征可能出现在任何位置
3. 下采样图像不会改变图像目标

填充(Padding)

在输入图像的周围添加额外的行/列

作用:

1.使卷积后的图像分辨率不变
2.弥补边界信息的丢失

步幅(stride)

卷积核滑动的行数和列数,控制输出特征图的大小,被缩小1/s倍。
公式:
F o = ∣ F i n − k + 2 p s ∣ + 1 \color{red}F_o =| \frac{F_{in}-k+2p}{s}|+1 Fo=sFink+2p+1
参数:

F i n : \color{green}F_{in}: Fin:输入特征图的大小
k : \color{green}k: k:Kernel的大小(一般长和宽是保持一致的)
p : \color{green}p: p:填充值大小
s : \color{green}s: s:步幅值大小
F o : \color{green}F_o: Fo:输出特征图的大小

多通道卷积:

在这里插入图片描述

3. 池化操作

池化:

一个像素表示一块区域的像素值,降低图像的分辨率

池化方法:

1.Max poolling(1取最大值)
2.Average Pooling(取平均值)

目前很多网络模型不需要使用池化操作,直接使Stride步长等于2就可以代替池化操作。
在这里插入图片描述

池化的作用:

1.缓解卷积层对位置的过度敏感

在这里插入图片描述

2.减少冗余
3.降低图像的分辨率,从而减少参数数量

循环神经网络

1.序列数据

前后的数据具有关联性

2.语言模型

1.文本在NLP中通常被看作是离散时间序列,长度为T的文本的词分别为:w1、w2… w T w_T wT,其中 w t ( 1 < = t < = T ) w_t(1<=t<=T) wt(1<=t<=T)是时间步t的输出或标签
2.语言模型用于计算序列概率P(w1、w2、w3…wT)

3.RNN-循环神经网络

优点:

1.循环使用网络层参数,避免时间步增大带来的参数激增
2.引入隐藏状态,记录历史信息,有效地处理数据前后的关联性
在这里插入图片描述

激活函数使用Tanh,将输出值域限制在(-1,1),防止数值呈指数性变化

RNN特性:

1.隐藏状态可以保存截止当前时间步的序列的历史信息
2.循环神经网络的模型参数数量不会随着时间步的增加而增强

RNN的通过(穿越)时间反向传播:

公式:

∂ L ∂ h t = ∑ i = 1 T ( W h h T ) T − i W q h T ∂ L ∂ O T + t − i \color{red}\frac{\displaystyle\partial {L}}{\displaystyle\partial h_t} = \sum_{i=1}^{T}(W_{hh}^T)^{T-i}W_{qh}^T\frac{\partial L}{\partial O_{T+t-i}} htL=i=1TWhhTTiWqhTOT+tiL
∂ L ∂ W h x = ∑ t = 1 T p r o d ( ∂ L ∂ h t , ∂ h t ∂ W h x ) = ∑ t = 1 T ∂ L ∂ h t x t T \color{red}\frac{\partial L}{\partial W_{hx}} = \sum_{t=1}^Tprod(\frac{\partial L}{\partial h_t},\frac{\partial h_t}{\partial W_{hx}}) = \sum_{t=1}^T\frac{\partial L}{\partial h_t}{x_t}^T WhxL=t=1Tprod(htL,Whxht)=t=1ThtLxtT
∂ L ∂ W h h = ∑ t = 1 T p r o d ( ∂ L ∂ h t , ∂ h t ∂ W h h ) = ∑ t = 1 T ∂ L ∂ h t h t − 1 T \color{red}\frac{\partial L}{\partial W_{hh}} = \sum_{t=1}^Tprod(\frac{\partial L}{\partial h_t},\frac{\partial h_t}{\partial W_{hh}}) = \sum_{t=1}^T\frac{\partial L}{\partial h_t}{h_{t-1}}^T WhhL=t=1Tprod(htL,Whhht)=t=1ThtLht1T
梯度随时间t呈指数变化,容易引发梯度消失和爆炸
在这里插入图片描述

4.GRU-门控循环单元

1.引入门的循环网络

在这里插入图片描述
需要注意的是:
1.门控循环单元是为了解决RNN梯度消失的问题!
2.重置门和更新门的计算公式里,四个权重参数是不一样的!
3.此处使用的激活函数是Sigmoid函数!

2.候选隐藏状态

用来辅助计算隐藏状态的!
在这里插入图片描述
在这里插入图片描述
Tips:

RNN最终的隐藏状态 = 候选隐藏状态 + 上一时间隐藏状态组合

3.GRU

在这里插入图片描述

5.LSTM-长短期记忆网络

1.三个门

在这里插入图片描述
2.候选记忆细胞
在这里插入图片描述
3.记忆细胞和隐藏状态
在这里插入图片描述
4.LSTM
在这里插入图片描述

相关文章:

  • 【加密与解密】【01】网络安全体系
  • 修改west扩展命令的路径
  • Unity DOTS技术(二)ECS
  • Nginx通过转发代理解决跨域问题
  • Matlab 2024a 建模基础知识全面指南
  • ArrayList——简单洗牌算法
  • uni-app基础框架搭建(vue3+ts+vite)
  • 【杂记-浅谈Internet、Intranet、Extranet】
  • 抖音素材网站有哪些?抖音素材下载网站分享
  • mongodb集群
  • LeetCode|938. Range Sum of BST
  • Python中的列表推导式和字典推导式:优雅且高效的数据结构生成方式
  • 每天坚持写java锻炼能力---第一天(6.4)
  • javaweb的新能源充电系统的设计
  • 【JS】JavaScript编程语言-(Object)对象属性标志与对象属性描述符(2024-06-05)
  • 2017届校招提前批面试回顾
  • 2019年如何成为全栈工程师?
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • pdf文件如何在线转换为jpg图片
  • React系列之 Redux 架构模式
  • React中的“虫洞”——Context
  • Theano - 导数
  • 安卓应用性能调试和优化经验分享
  • 复杂数据处理
  • 和 || 运算
  • 回流、重绘及其优化
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 如何在 Tornado 中实现 Middleware
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 深度学习中的信息论知识详解
  • 提醒我喝水chrome插件开发指南
  • 为视图添加丝滑的水波纹
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #{}和${}的区别是什么 -- java面试
  • #FPGA(基础知识)
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (12)Hive调优——count distinct去重优化
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (三)c52学习之旅-点亮LED灯
  • (转)关于多人操作数据的处理策略
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (转载)CentOS查看系统信息|CentOS查看命令
  • .bashrc在哪里,alias妙用
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .net 使用ajax控件后如何调用前端脚本
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .NET构架之我见
  • /deep/和 >>>以及 ::v-deep 三者的区别