RNN学习笔记
RNN笔记
前景知识
在机器翻译或其他类似的场景下,为了更好地处理时序数据,我们需要将文本映射成一系列ID(数字),以便保留语境和单词及句子之间的关系,这样机器就能理解任何文本中的相关模式,并能弄清句子的上下文。文本编码就是一个将有意义的文本转换为数字/矢量表示的过程。
General RNN
因为传统的神经网络模型对每个输入特征都有单独的参数,因此它需要在句子的每个位置分别学习所有的语言规则,也就是说传统的神经网络模型难以做到基于“上文”对接下来的状态进行预测。然而,对时序数据建立模型是很重要的,如语音识别、机器翻译都依赖于这种模型。
RNN也称循环神经网络或递归神经网络,用于处理连续数据。RNN的结构使得当前信息可以被传递到网络的下一状态。
为了从多层网络到循环网络,我们需要利用1980年代机器学习和统计模型中的一个早期想法:在模型的不同部分共享参数。参数共享使我们有可能将模型扩展并应用到不同形式的例子上,并在它们之间进行归纳。
如果不进行参数共享,结果会怎么样?
如果我们对时间指数的每个值都有单独的参数,我们就不能概括到训练期间没有看到的序列长度,也不能在不同的序列长度和不同的时间位置上分享统计强度。
在某时刻,我们可以应用递归公式来更新当前隐藏层的状态
其中,
对于输出的计算,我们可以应用公式
其中,
Vanilla RNN是一种特殊的RNN,更新
这个112行的py实现了基于字符的Vanilla RNN模型,只使用了numpy,结构非常友善。
总的来说,RNN在一个包含向量
Reference
https://medium.com/analytics-vidhya/nlp-text-encoding-a-beginners-guide-fa332d715854
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律