铁佛 发表于 2025-4-15 10:19:32

机器学习02——RNN

一、RNN的基本概念



[*]界说

[*]循环神经网络(Recurrent Neural Network,RNN)是一种用于处理序列数据的神经网络架构。它与传统的前馈神经网络(如多层感知机)差异,RNN具有“记忆”功能,能够使用前一时间的信息来影响当前时间的输出。
[*]比方,在自然语言处理中处理文本序列时,RNN可以使用前面单词的信息来更好地明确当前单词的含义。

[*]结构特点

[*]RNN的焦点是循环结构,它包含一个隐藏状态(hidden state),这个隐藏状态在每个时间步都会更新,而且会传递到下一个时间步。
[*]从数学角度来看,假设输入序列为 (x_1, x_2, \dots, x_t),隐藏状态序列为 (h_1, h_2, \dots, h_t),输出序列为 (y_1, y_2, \dots, y_t),那么在每个时间步 (t),隐藏状态的更新公式可以表现为 (h_t = f(W_h h_{t - 1} + W_x x_t + b)),其中 (f) 是激活函数(如tanh或ReLU),(W_h)、(W_x) 和 (b) 是网络的参数。
[*]这种循环结构使得RNN能够捕捉序列中的时间依赖关系。

二、RNN的应用场景



[*]自然语言处理

[*]语言模型:预测下一个单词或字符。比方,给定一个句子“我本日去”,RNN可以预测下一个大概的词是“公园”“学校”等。
[*]机器翻译:将一种语言的文本翻译成另一种语言。RNN可以对源语言文本进行编码,然后天生目的语言的翻译结果。
[*]文本天生:天生文本内容,如文章、故事等。通过学习大量的文本数据,RNN可以根据给定的开头天生后续的内容。

[*]语音识别

[*]将语音信号转换为笔墨。RNN可以处理语音信号中的时间序列信息,识别出语音中的单词和句子。

[*]时间序列预测

[*]预测股票代价、天气变革等时间序列数据。RNN可以根据历史数据的序列关系来预测将来的值。

三、RNN的训练方法



[*]损失函数

[*]在序列预测任务中,通常使用交叉熵损失函数来衡量模型的预测输出和真实标签之间的差异。比方,在语言模型中,对于每个时间步的输出 (y_t) 和真实标签 (y_t^{true}),交叉熵损失可以表现为 (L = -\sum_{t} y_t^{true} \log(y_t))。

[*]反向传播(BPTT)

[*]RNN的训练采用反向传播算法,但由于其循环结构,必要进行特殊的处理,称为“反向传播通过时间”(Backpropagation Through Time,BPTT)。
[*]具体来说,将RNN在时间序列上睁开,然后对每个时间步的损失进行反向传播,更新网络的参数。比方,对于一个长度为 (T) 的序列,从时间步 (T) 开始,逐个时间步向前计算梯度,并更新参数 (W_h)、(W_x) 和 (b)。

四、RNN的范围性



[*]梯度消散和梯度爆炸

[*]在训练RNN时,经常会出现梯度消散和梯度爆炸的问题。当序列长度较长时,反向传播过程中梯度大概会变得非常小(梯度消散),导致模型难以学习到长期依赖关系;或者梯度大概会变得非常大(梯度爆炸),导致模型参数更新过大,训练不稳定。
[*]比方,在一个很长的文本序列中,假如要根据很前面的单词来预测后面的单词,由于梯度在传播过程中的衰减,模型很难捕捉到这种长期的依赖关系。

[*]训练速率慢

[*]RNN的训练过程比较复杂,计算量较大,尤其是对于长序列数据,训练速率相对较慢。

五、RNN的改进模型



[*]长短期记忆网络(LSTM)

[*]LSTM是RNN的一种改进版本,它通过引入门控机制来办理梯度消散和梯度爆炸的问题。LSTM包含输入门、忘记门和输出门,这些门可以控制信息的活动,使得模型能够更好地学习长期依赖关系。
[*]比方,忘记门可以根据当前输入和隐藏状态来决定哪些信息必要忘记,输入门可以决定哪些新信息必要存储,输出门可以决定哪些信息必要输出。

[*]门控循环单元(GRU)

[*]GRU是另一种改进的RNN模型,它在结构上比LSTM更简朴,但也能有效地办理梯度问题。GRU通过更新门和重置门来控制信息的更新和重置,从而实现对长期依赖关系的学习。
[*]比方,更新门可以决定隐藏状态中哪些部门必要更新,重置门可以决定哪些部门必要重置,使得模型能够更好地捕捉序列中的时间依赖关系。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 机器学习02——RNN