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

【RNN】循环神经网络RNN学习笔记

时间序列任务场景:

  1. 语音识别
  2. 生成一段音乐
  3. 情感分析
  4. DNA序列分析
  5. 机器翻译

如何理解时间序列:特点:前后关联强,前因后果,后面产生的结果依赖于之前的结果

标准神经网络建模的弊端:

  1. 输入和输出在不同例子中可能有不同的长度
  2. 一个像这样单纯的神经网络结构,并不共享从文本不同位置上学习到的特征
  3. 参数量巨大(输入的网络特征往往是one hot 或者embedding向量,维度巨大)
  4. 没有办法体现出时序上的前因后果

在这里插入图片描述

RNN神经网络:
网络结构:
在这里插入图片描述
RNN特点:
在这里插入图片描述

RNN前向传播公式:
在这里插入图片描述
损失函数:
在这里插入图片描述
整个时间序列损失函数可以理解为单个时间步损失函数相加

反向传播:
单个单元梯度公式:
在这里插入图片描述

RNN缺点:
在这里插入图片描述
RNN梯度爆炸与梯度消失:
在这里插入图片描述
在这里插入图片描述
根据公式来看,梯度消失的原因并不是中间的连乘项,而是WS,当WS很小的时候会出现梯度消失情况,当大于一值较大的时候会出现梯度爆炸的情况。WS是需要训练的参数,我们并不能控制。
RNN可以通过梯度裁剪的方式解决梯度爆炸的问题,但是无法解决梯度消失问题。

假设T=20时候:
在这里插入图片描述

为什么需要RNN?

之前的网络只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。
比如,当我们在理解一句话意思时,孤立的理解这句话的每个词是不够的,我们需要处理这些词连接起来的整个序列;当我们处理视频的时候,我们也不能只单独的去分析每一帧,而要分析这些帧连接起来的整个序列。

第一个状态初始化方法

  1. 随机初始化
  2. 全零初始化
  3. 可学习状态初始化

本文参考:https://www.bilibili.com/video/BV1e5411K7oW/?spm_id_from=333.999.0.0&vd_source=cf0b4c9c919d381324e8f3466e714d7a


http://www.kler.cn/a/282539.html

相关文章:

  • 【ict基础软件赛道】真题-50%openGauss
  • Opengl光照测试
  • 基于Matlab的碎纸片的自动拼接复原技术
  • Tiktok对接和内容发布申请流程
  • Android Settings 单元测试 | 如何运行单元测试?
  • 字节青训营 数字魔法的加一操作
  • FaceFormer嘴形同步论文复现
  • 指令微调的训练策略
  • Spring Cloud Stream与Kafka(二)
  • 基于RK3568智慧交通-雷达视频融合一体机,支持鸿蒙
  • 量子计算与未来的渗透技术(壹)
  • protostuff序列化方式学习
  • 第一个go程序
  • matlab实现模拟退火算法
  • 不确定性环境下的自动驾驶汽车行为决策方法
  • 全能型与专精型AI模型:平衡的艺术
  • 【WPF】WPF学习之面试常问问题
  • Windows10系统中安装Maven 3.8.8的步骤
  • 第T10周:使用TensorFlow实现数据增强
  • 【赵渝强老师】使用Docker Machine远程管理Docker
  • 第42篇 使用数码管实现计数器<三>
  • TCP、HTTP以及RPC的梳理
  • Python将Word文档转为PDF
  • npm报错信息集合——基础积累
  • vue3如何监听reactive对象是哪个属性发生的变化
  • 东华医疗协同办公系统templateFile接口存在任意文件读取漏洞 附POC