七、深度学习——RNN

一、RNN网络原理

  • 文本数据是具有序列特性的。为了表示出数据的序列关系,需要使用循环神经网络(Recurrent Nearal Networks,RNN)来对数据进行建模,RNN是一个作用于处理带有序列特点的样本数据

1.RNN的计算过程

  • h表示隐藏状态,每一次的输入都会包含两个值:上一个时间步的隐藏状态,当前状态的输入值,输出当前时间步的隐藏状态和当前时间步的预测结果

实际上,字是重复输入到同一个神经元中的

2.神经元内部的计算过程

ht=tanh(Wihxt+bih+Whhht−1+bhh)h_t= tanh(W_{ih}x_t+b_{ih}+W_{hh}h_{t-1}+b_{hh})ht=tanh(Wihxt+bih+Whhht−1+bhh)

  • WihW_{ih}Wih表示输入数据的权重
  • bihb_{ih}bih表示输入数据的偏置
  • WhhW_{hh}Whh表示输入隐藏状态的权重
  • bhhb_{hh}bhh表示输入隐藏状态的偏置
  • 最后对输出结果使用tanh激活函数进行计算,得到该神经元的输出

3.API

python 复制代码
RNN = torch.nn.RNN(input_size, hidden_size, num_layer)
  • input_size:输入数据的维度,一般设为词向量的维度
  • hidden_size:隐藏层h的维数,也是当前层神经元的输出维度
  • num_layer:隐藏层h的层数,默认为1

将RNN实例化就可以将数据送入进行处理,处理方式如下:

python 复制代码
output, hn = RNN(x, h0)
  • 输入数据:输入主要包括词嵌入的x,初始的隐藏层h0

    • x的表示形式为seq_len, batch, input_size,即句子的长度,batch的大小,词向量的维度
    • h0的表示形式为num_layers, batch, hidden_size,即隐藏层的层数, batch的大小,隐藏层h的维数(初始化设置为全0)
  • 输出结果:主要包括输出结果output,最后一层的hn

    • output的表示形式为seq_len, batch, input_size,即句子的长度,batch的大小,词向量的维度
    • hn的表示形式为num_layers, batch, hidden_size,即隐藏层的层数, batch的大小,隐藏层h的维数
相关推荐
Tom·Ge38 分钟前
【AI前沿】2026.08.17 SpaceX 600亿收购Cursor正式完成·DeepSeek V4 Pro万亿开源·人形机器人生态全面爆发
人工智能·大模型·ai前沿
郑州光合科技余经理1 小时前
本地生活服务系统:成品模块和定制接口怎么划界
java·前端·人工智能·后端·系统架构·php·ai编程
2603_965148111 小时前
家居百货蓝海:API挖掘高复购率生活小商品
大数据·服务器·人工智能·python·生活
2501_930472442 小时前
踩坑|CodeBuddy权限配置:AI误删文件、乱跑命令、.env泄露怎么防
人工智能·ai编程
小淮AI5 小时前
从“刷题”到“追问”:AI课堂正在重塑哪些学习旧习惯?
人工智能·学习
cui_ruicheng5 小时前
LangChain 应用开发(十四):Agent 上下文与记忆机制
服务器·人工智能·python·langchain
飞哥数智坊5 小时前
直播半小时,我聊了聊 Agent 最常见的 3 个疑问
人工智能
ggb喔6 小时前
AI 原生攻防时代:2026 年渗透测试与逆向开发的范式重构
人工智能·重构
宸津-代码粉碎机6 小时前
AI攻防战升级!基于Spring AI构建Java应用自动免疫安全体系
java·大数据·开发语言·人工智能·python·安全·spring
克里斯蒂亚诺更新7 小时前
机器学习库sklearn的主要任务
人工智能·机器学习·sklearn