RNN 梯度消失梯度爆炸 变体

本文介绍了如何在Linux系统上配置PyTorch的GPU环境,包括安装CUDA和驱动,以及解决服务器重启后显卡未自动驱动的问题。此外,讨论了RNN模型中梯度消失和梯度爆炸的现象,提出LSTM和GRU作为解决方案。同时,概述了神经机器翻译中的seq2seq模型和Attention机制,并列出了后续学习和研究的方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux系统上pytorch环境的配置
  1. 需要GPU的时候,在具备GPU硬件的前提下,首先需要下载GPU相应版本的驱动程序(diver)以及CUDA。CUDA可以理解为GPU相关的API,pytorch能够自动调用这些接口来应用GPU。cat /usr/local/cuda/version.txt可以查看已安装CUDA的版本。
  2. 安装torch、torchvision、torchaudio库。这一步在pytorch的官网会提供不同版本相应的命令,主页默认为最新的版本,如果需要旧版本,可以再旧版本的链接里边找到相关的命令。
  • attention:
    在实际配置环境的过程中,我遇到一个问题,服务器在重启后显卡并没有被自动的驱动起来。
    NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
    nvidia命令不存在,说明显卡并没有被正常的驱动起来,故需要手动的去驱动显卡。
    step1: sudo apt-get install dkms
    step2:sudo dkms install -m nvidia -v 410.79(这里-v后边跟的是diver程序的版本,必须是已经下载在服务器上的,驱动程序的源码下载在路径/usr/src/nvidia-***.**下,可以查看版本号)
RNN的梯度消失以及梯度爆炸
  1. 首先要明确一个问题,梯度消失以及梯度爆炸不仅仅在RNN框架中出现,在很多的网络框架下都会出现。
  2. 对于出现梯度消失以及梯度爆炸的原因,根据链式求导法则,在求相应参数的偏导数时,中间会出现很多偏导的连乘,而这些由于L2范数有关,牵扯到一个不等式,它会呈指数增长也会呈指数缩减。
  3. 梯度消失会导致,参数更新时更新值非常的小,越远的输入梯度越小,对输出的影响力也就越小。这就是长依赖问题,我们可能会丢失对结果影响力较大的输入,应有可能学习的梯度不准确。
  4. 梯度爆炸会导致,在参数更新的时候,每一步都迈的非常大,很有可能直接更新到了损失最大的位置,也很可能离最优解非常的远。可以通过梯度切片来解决梯度爆炸的问题,就是在梯度超过某一阈值的时候,适当的将其缩小。
  5. 为了解决梯度消失的问题,两种新型的RNN出现了:LSTM & GRU。相比之下,LSTM参数规模更大,比较适合训练数据量较大的任务;GRU相对简单,训练速度相对更快。
多种多样的RNN
  1. LSTM & GRU
  2. Bi-RNN,双向的循环神经网络,既可以考虑到前向传播的信息,又可以考虑到后向传播的信息。
  3. 多层循环神经网络,这是一个非常powerful的神经网路框架,参数规模很大。
Neural Machine Translation
  1. seq2seq模型
  2. Encoder - Decoder模型,其中Encoder负责将输入的源语言编码,是一个Bi-LSTM。Encoder最后时刻的输出是Decoder的输入,两个方向最后时刻的隐状态的结合,以及同样细胞状态的结合。
  3. Decoder引入Attention机制。
  4. 损失函数为交叉熵 Cross Entropy。
遗留问题
  1. 学习seq2seq + attention的NMT模型并实现。
  2. 图神经网络源码的熟悉。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值