循环神经网络的进阶 深度循环神经网络 深度循环神经网络 假设在时间步\(t\)有一个小批量的输入数据\(\mathbf{X}_t\in\mathbb{R}^{n\times d}\)(样本数:\(n\),每个样本中的输入数:\(d\))。同时,将\(l^{\mathrm{th}}\)隐藏层(\(l=1, \cdots, L\))的隐藏状态设为\(\mathbf{H}_t^{(l)}\in\mathbb{R}^{ 2025-04-19 深度学习 > 理论基础 #人工智能 #神经网络 #深度学习
注意力机制 注意力机制的引入 在生物学中,注意力受到非自主性提示恶化自主性提示有选择地引导。 非自主性提示是基于环境中物体的突出性和易见性。比如,对于五个物品:一份报纸、一篇研究论文、一杯咖啡、一本笔记和一本书,所有纸制品都是黑白印刷的,但咖啡杯是红色的。这个咖啡杯在这种视觉环境中是显眼和突出的,人本的注意力被不由自主地被吸引,所以我们会把视力最敏锐的地方放到咖啡上。 如果我们的主观意愿是读一本书,那么此时 2025-04-19 深度学习 > 理论基础 #人工智能 #神经网络 #深度学习
使用注意力机制的Seq2Seq 引入 在使用注意力机制的Seq2Seq模型中,Key和Value都是编码器最后一层所有时间步的隐藏单元数据,编码器使用双向循环神经网络,num_layers=l,batch_size=n,hidden_size=h,src_len=s,则: \[ \mathbf{K} = \mathbf{V} = \mathbf{H}^{(l)}\in\mathbb{R}^{n\times s\times 2h 2025-04-19 深度学习 > 理论基础 #人工智能 #神经网络 #深度学习 #NLP
LSTM和GRU GRU 引入 在循环神经网络RNN中,较长的时间步在反向传播中可能导致梯度消失或者梯度爆炸(梯度爆炸可以使用梯度裁剪,而梯度消失则是导致RNN性能瓶颈的主要原因),因此只能选用较小的时间步或者在长序列上使用截断时间步。传统RNN因为梯度消失的问题,在超过20步时记忆能力显著下降。 在一个长序列中,并不是每个时间步的信息都非常重要,因此,有些时间步上的信息可以不给予太多的关注,而有些时间步上的信息则 2025-04-03 深度学习 > 理论基础 #人工智能 #神经网络 #深度学习
循环神经网络的多卡训练 对于DataParallel,会默认将数据按照dim=0的维度进行拆分,输出也将按照dim=0的维度进行拼接。 如果传入隐藏状态,常规方式就会出现问题:hidden会被当成输入数据处理,程序会将hidden按照dim=0的维度拆分后传入模型,比如,如果hidden的维度是(num_layers, batch_size, hidden_size),如果有\(n\)张显卡,那么一张显卡上的模型得到的h 2025-04-03 深度学习 > PyTorch #人工智能 #神经网络 #深度学习 #PyTorch
RNN通过时间反向传播 循环神经网络的梯度分析 循环神经网络(RNN)的前向传播满足: \[ \begin{aligned} &\mathbf{h}_t = \phi(\mathbf{x}_t\mathbf{W}_{xh} + \mathbf{h}_{t-1}\mathbf{W}_{hh} + \mathbf{b}_h)\\ &\mathbf{o}_t = \mathbf{h}_t\mathbf{W}_{ 2025-04-02 深度学习 > 理论基础 #人工智能 #神经网络 #深度学习
文本预处理 文本可以认为是一个时间序列,对于文本中的每个字或者词都可以认为是一个向量,这些向量之间有先后顺序关系。 对于一个文本序列,我们可以进行字符级语言建模或者词级语言建模:字级建模就是将每个字当成一个时间步的数据,比如“我要学习英语”,字符级语言建模会将其拆分为“我”、“要”、“学”、“习”、“英”、“语”;词级语言建模会将文本拆分成一个一个的词语,以此为最小单位作为每个时间步的数据,比如“我要学英语” 2025-03-30 深度学习 > PyTorch #人工智能 #神经网络 #深度学习 #PyTorch
循环神经网络(RNN) 循环神经网络的引入 循环神经网络(RNN)本质上就是一个隐变量自回归模型(latent autoregressive models),循环神经网络通过引入时间维度的循环连接,使网络具备记忆能力。其核心结构包括输入层、隐层和输出层,隐层的输出不仅传递给当前时刻的输出层,还会传递给下一时刻的隐层,形成时间展开的动态结构。 RNN 可以认为\(\mathbf{H}_t\)中就存储了之前时刻输入的 2025-03-30 深度学习 > 理论基础 #人工智能 #神经网络 #深度学习
环境变量 什么是环境变量 环境变量是系统或者用户级别的动态值,用于定义程序运行时的环境信息(如路径、语言等)。 查看环境变量 printenv:列出所有环境变量 printenv 变量名:查看指定变量值,如printenv PATH echo $变量名:查看指定变量值,如echo $PATH env或set:显示所有变量(包括局部变量和函数) 常见的环境变量 PATH 作用:定义可执行文件的所搜路径,系 2025-03-19 Linux > Ubuntu #Linux #Ubuntu #服务器 #后端 #自定义命令
pymysql Python与数据库的连接 简介 pymysql提供了Python与MySQL数据库进行交互的API,我们可以使用pymysql对数据库进行读写操作 安装 1pip install pymysql 使用 连接数据库 使用pymysql.connect()函数建立与数据库的连接: 12345678910import pymysqldb = pymysql.connect( host='localhost 2025-03-17 编程 > Python > 数据库 #编程 #Python #自动化 #数据库