台湾大学深度学习课程 学习笔记 lecture3-1 Recurrent Neural Network (RNN)

这篇博客介绍了台湾大学深度学习课程中的RNN内容,主要讨论了RNN在Language Modeling中的应用,包括N-Gram Language Modeling、Feed-Forward Neural Language Model和RNNLM。文章探讨了RNN解决传统方法的局限性,如梯度消失和梯度爆炸问题,并介绍了RNN的定义、训练方法(BPTT)以及解决训练问题的策略。此外,还提到了RNN在序列输入和输出场景中的应用。

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

以下内容和图片均来自台湾大学深度学习课程。
课程地址:https://www.csie.ntu.edu.tw/~yvchen/f106-adl/syllabus.html

Recurrent Neural Network (RNN)循环神经网络常被用到的领域是Language Modeling,下面就从Language Modeling方法的发展,引入RNN。

Language Modeling

多个word组成一句话,根据一句话出现的概率可以得到更符合语法结构和有意义的句子。
比如根据给出的一段语音,可以得到两种完全不同的句子“recognize speech”、“wreck a nice beach”,但是“recognize speech”出现的可能性更大。

Language Modeling

N-Gram Language Modeling

想要估算出word sequence的概率,首先介绍了N-Gram Language Model 方法,是一种传统处理的方法。只考虑前面 (n1) 个words出现的概率。比如句子“我是谁”,令 n=2 ,“谁”这个字只考虑前面的“是”。

N-Gram

那么如何确定概率呢?
这需要先收集大量的训练资料使用机器学习的方法去训练得到概率。

概率计算

还有一个问题,假如搜集的训练集中有些sequences并没有出现,而恰好这些sequences就出现在了测试数据中。那么sequences概率就是0,这就会导致上面连乘公式 P(w1,w2,...,wm)=0 。哪怕其他概率再大,只要出现一个未知的0,最终结果也是0 。

解决方法也很简单,叫 Smoothing,就是对这些没有出现,后面计算概率是直接赋予一个比较小的结果,比如“0.0001”。在一些情况下,效果还是不错的,但是这种简单粗暴的方法总是会存在一些问题,首先准确度不够,其次不同的情况赋予值是相同的。

解决方法

以上就是传统的处理方法,存在一些局限性。下面介绍使用深度学习的方法。

Feed-Forward Neural Language Model

假设我们已经有了一个训练好的神经网络模型,可以输入数据然后的到各种word出现的概率。
下图中,输入不同的vector(黄色),经过相同的神经网络模型(蓝色区域)进行预测,得到不同word出现的概率,选择所需的概率 P 。例如,输入 vector of “wreck”,选择对应的 “a”出现的概率 P(next word is a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值