machine-learning
  • Welcome
  • 动手学深度学习
    • 1. 前言
    • 2. 预备知识
    • 3. 线性神经网络
    • 4. 多层感知机
    • 5. 深度学习计算
    • 6. 卷积神经网络
    • 7. 现代卷积神经网络
    • 8. 循环神经网络
    • 9. 现代循环神经网络
    • 10. 注意力机制
    • 11. 优化算法
    • 12. 计算性能
    • 13. 计算机视觉
    • 14. 自然语言处理:预训练
    • 15. 自然语言处理:应用
    • 16. 附录:深度学习工具
  • 百面机器学习
    • 1. 特征工程
    • 2. 模型评估
    • 3. 经典算法
    • 4. 降维
    • 5. 非监督学习
    • 6. 概率图模型
    • 7. 优化算法
    • 8. 采样
    • 9. 前向神经网络
    • 10. 循环神经网络
    • 11. 强化学习
    • 12. 集成学习
    • 13. 生成式对抗网络
    • 14. 人工智能的热门应用
  • 百面深度学习
    • 1. 卷积神经网络 CNN
    • 2. 循环神经网络 RNN
    • 3. 图神经网络 GNN
    • 4. 生成模型
    • 5. 生成式对抗网络 GAN
    • 6. 强化学习 RL
    • 7. 元学习
    • 8. 自动化机器学习 AutoML
    • 9. 计算机视觉 CV
    • 10. 自然语言处理 NLP
    • 11. 推荐系统
    • 12. 计算广告
    • 13. 视频处理
    • 14. 计算机听觉
    • 15. 自动驾驶
  • 统计学习方法
  • 推荐系统实践
    • 1. 推荐系统
    • 2. 特征工程
    • 3. Embedding
    • 4. 精排
    • 5. 召回
    • 6. 粗排/重排
    • 7. 多任务/多场景
    • 8. 冷启动
    • 9. 评估调试
    • 10. 自我修养
  • 深度学习推荐系统
    • 1. 推荐系统
    • 2. 进化之路
    • 3. 深度学习的应用
    • 4. Embedding
    • 5. 多角度审视
    • 6. 工程实现
    • 7. 评估方法
    • 8. 前沿实践
    • 9. 知识框架
  • 强化学习的数学原理
    • 1. 基础概念
    • 2. 贝尔曼公式
    • 3. 贝尔曼最优公式
    • 4. 值迭代与策略迭代
    • 5. 蒙特卡洛方法
    • 6. 随机近似与随机梯度下降
    • 7. 时序差分方法
    • 8. 值函数近似
    • 9. 策略梯度方法
    • 10. Actor-Critic方法
Powered by GitBook
On this page
  • 2.1 RNN 与序列建模 **
  • 2.2 RNN 中的 Dropout ***
  • 2.3 RNN 中的长期依赖问题 **
  • 2.4 长短期记忆网络 LSTM ****
  • 2.5 Seq2Seq 架构 ***
  1. 百面深度学习

2. 循环神经网络 RNN

2.1 RNN 与序列建模 **

  • RNN 结构

    • 隐藏状态 ht=σ(Uxt+Wht−1+b)h_t=\sigma(Ux_t+Wh_{t-1}+b)ht​=σ(Uxt​+Wht−1​+b),通常 tanh

    • 输出状态 ot=g(Vht+c)o_t=g(Vh_t+c)ot​=g(Vht​+c)

    • 损失 L=∑tLt=∑tLoss(ot,yt)L=\sum_t L_t=\sum_t Loss(o_t,y_t)L=∑t​Lt​=∑t​Loss(ot​,yt​)

    • 基于时间的反向传播(Back Propagation Through Time, BPTT)

  • CNN 对序列建模

    • TextCNN:文本序列 -> 二维网格数据

    • 时间卷积网络:因果卷积、空洞卷积

2.2 RNN 中的 Dropout ***

  • Dropout 作用(正则化)

    • 近似 Bagging,但不同网络共享参数

    • 减少神经元共适应关系,更加泛化

  • RNN 中的 Dropout

    • 前馈连接:t => t,循环连接:t => t+1

    • 直观思路:Dropout 前馈连接,但效果不理想,因为大量参数在 循环连接

    • 基于变分推理的 Dropout:所有时刻的循环连接上,采用相同的丢弃方法

    • Zoneout

2.3 RNN 中的长期依赖问题 **

  • 梯度消失 / 爆炸:Wt−t0W^{t-t_0}Wt−t0​

    • 最大特征值>1,梯度爆炸,梯度裁剪(超过阈值等比收缩)

    • 最大特征值<1,梯度消失,LSTM / GRU

  • 解决方案:初始化1,激活函数,正则化,跳跃连接,LSTM

2.4 长短期记忆网络 LSTM ****

长期依赖问题

  • LSTM

    • 输入门 it=σ(Wixt+Uiht−1+bi)i_t=\sigma(W_ix_t+U_ih_{t-1}+b_i)it​=σ(Wi​xt​+Ui​ht−1​+bi​),当前状态,多大程度更新到记忆单元中

    • 遗忘门 ft=σ(Wfxt+Ufht−1+bf)f_t=\sigma(W_fx_t+U_fh_{t-1}+b_f)ft​=σ(Wf​xt​+Uf​ht−1​+bf​),之前记忆单元中的信息,多大程度被遗忘掉

    • 输出门 ot=σ(Woxt+Uoht−1+bo)o_t=\sigma(W_o x_t+U_o h_{t-1}+b_o)ot​=σ(Wo​xt​+Uo​ht−1​+bo​),当前输出,多大程度取决于当前记忆单元

    • 内部记忆单元 c~t=tanh⁡(Wcxt+Ucht−1)\tilde c_t=\tanh(W_cx_t+U_ch_{t-1})c~t​=tanh(Wc​xt​+Uc​ht−1​),于是 ct=ft⊙ct−1+it⊙c~tc_t=f_t\odot c_{t-1}+i_t\odot \tilde c_tct​=ft​⊙ct−1​+it​⊙c~t​

    • ht=ot⊙tanh⁡(ct)h_t=o_t\odot \tanh(c_t)ht​=ot​⊙tanh(ct​)

  • GRU(用更新门 ztz_tzt​ 实现 遗忘+记忆)

    • 重置门 rt=σ(Wrxt+Urht−1)r_t=\sigma(W_rx_t+U_rh_{t-1})rt​=σ(Wr​xt​+Ur​ht−1​),先前是否被忽略

    • 更新门 zt=σ(Wzxt+Ufzt−1)z_t=\sigma(W_zx_t+U_fz_{t-1})zt​=σ(Wz​xt​+Uf​zt−1​),当前是否被更新

    • h~t=tanh⁡(Whxt+Uh(rt⊙ht−1))\tilde h_t=\tanh(W_hx_t+U_h(r_t\odot h_{t-1}))h~t​=tanh(Wh​xt​+Uh​(rt​⊙ht−1​)),于是 $h_t=(1-z_t)h_{t-1}+z_t \tilde h_t$

2.5 Seq2Seq 架构 ***

机器翻译、语音识别、自动对话

  • 思想:输入序列 - 编码 - 解码 - 输出序列

  • 核心是 解码环节(贪心法、集束搜索、注意力机制)

  • 信息丢失:序列翻转、注意力机制

Previous1. 卷积神经网络 CNNNext3. 图神经网络 GNN

Last updated 3 years ago