欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > 循环神经网络 - 机器学习任务之序列到类别模式

循环神经网络 - 机器学习任务之序列到类别模式

2025/4/9 4:39:07 来源:https://blog.csdn.net/liruiqiang05/article/details/146938192  浏览:    关键词:循环神经网络 - 机器学习任务之序列到类别模式

循环神经网络可以应用到很多不同类型的机器学习任务。根据这些任务的特点可以分为以下几种模式:序列到类别模式、同步的序列到序列模式、异步的 序列到序列模式。

本文我们来学习序列到类别模式,这种模式主要用于序列数据的分类问题:输入为序列,输出为类别。比如在文本分类中,输入数据为单词的序列,输出为该文本的类别。

一、概述

假设一个样本𝒙1∶𝑇 =(𝒙1,⋯,𝒙𝑇)为一个长度为𝑇的序列,输出为一个类别 𝑦 ∈ {1, ⋯ , 𝐶}。我们可以将样本 𝒙 按不同时刻输入到循环神经网络中,并得到不 同时刻的隐藏状态𝒉1,⋯,𝒉𝑇。

我们可以将𝒉𝑇 看作整个序列的最终表示(或特 征),并输入给分类器 𝑔(⋅) 进行分类,即

𝑦̂ = 𝑔(𝒉𝑇 ),

其中𝑔(⋅)可以是简单的线性分类器(比如Logistic回归)或复杂的分类器(比如 多层前馈神经网络)。

关于Logistic回归,请参考:线性模型 - Logistic 回归_logistic回归模型-CSDN博客线性模型 - Logistic回归(参数学习&具体示例)_logistic回归模型-CSDN博客

除了将最后时刻的状态作为整个序列的表示之外,我们还可以对整个序列 的所有状态进行平均,并用这个平均状态来作为整个序列的表示:

这里附一个序列到类别模式图,以直观的理解:

二、进一步理解“序列到类别”模式

“序列到类别”模式是指循环神经网络(RNN)接受一个完整的输入序列,然后输出一个类别标签,而不是为每个时间步生成一个输出。这种模式适用于需要对整个序列进行整体理解和分类的任务,例如情感分析、文本分类、语音识别中的说话人识别等。

如何理解“序列到类别”模式

  1. 输入序列
    网络接受一个由多个时间步组成的输入序列,每个时间步可以是单词、字符、语音帧等。这些时间步共同构成了序列的上下文信息。

  2. 循环处理
    循环神经网络逐步处理序列中的每个元素,并不断更新一个内部状态(隐藏状态),这个状态在理论上捕捉了整个序列的关键信息。也就是说,随着序列的展开,隐藏状态逐渐“总结”了之前所有输入的信息。

  3. 输出分类
    当整个序列处理完毕后,网络会将最终的隐藏状态作为整个序列的表示,接着通过一个全连接层(可能还会经过 softmax 激活函数)将其映射到预定义的类别空间,从而输出一个类别标签。关于softmax,可以参考;线性模型 - Softmax 回归_softmax函数决策边界-CSDN博客

 线性模型 - Softmax 回归(参数学习)_线性公式加softmax的参数更新-CSDN博客

具体例子:文本情感分类

任务描述
假设我们要对电影评论进行情感分析,将评论分为“正面”或“负面”。评论由多个单词组成,整个评论构成一个序列。

模型架构

  1. 输入层

    • 每个评论分解成一个单词序列,例如 “这部电影很精彩” 可以转化为单词向量序列 [v₁, v₂, v₃, v₄]。

  2. 嵌入层

    • 使用词嵌入将每个单词转换为固定维度的向量。

  3. 循环层

    • 使用一个 RNN(例如 LSTM 或 GRU)逐步处理嵌入序列。

    • 每个时间步更新隐藏状态,最终得到整个评论的隐藏状态 h(T)。

  4. 输出层

    • 将最终隐藏状态 h(T) 通过一个全连接层映射到 2 个神经元上,并用 softmax 输出类别概率。

    • 如果 softmax 输出的概率中,“正面”概率较高,则评论分类为正面;反之,则为负面。

训练过程

  • 网络根据评论的真实标签(正面或负面)计算损失,并通过反向传播更新参数。

  • 随着训练进行,隐藏状态能够捕捉评论中关键的情感信息,从而帮助正确分类整个评论。

三、关于情感分类的例子进一步理解

假设我们的任务是根据一句话判断情感(正面或负面)。我们用一个简单的 RNN 模型来处理这个任务,假设类别有两种:正面(1)和负面(0)。

1. 输入序列

例如,一句评论为:“这部电影真棒!”
在实际中,我们会先把这句话转换成一系列词向量(例如通过词嵌入)。假设转换后得到的输入序列为:

x(1), x(2), x(3), …, x(T)

其中 T 是句子中的单词数。

2. 隐藏状态的更新

RNN 的隐藏状态更新公式一般为:

其中 f 是激活函数(如 tanh⁡ 或 ReLU)。

  • 在 t=1 时,h(1) 只依赖于 x(1);

  • 在 t=2 时,h(2) 不仅取决于 x(2) ,也依赖于 h(1);

  • 如此递归,直到 t=T 时,我们得到最终的隐藏状态 h(T)。

这个 h(T) 就包含了整句话的上下文信息,是对整个句子的一种抽象表示。

3. 全连接层映射

接下来,将最终隐藏状态 h(T) 传入全连接层。假设全连接层的权重为 Why 和偏置为 by:

这里 z 是一个向量,其维度等于类别数(本例中为 2),表示对每个类别的“打分”。

4. Softmax 激活

为了将打分转换成概率,我们使用 softmax 函数:

得到正面和负面的概率分布。最终,选择概率较高的类别作为模型预测的情感标签。

具体数值例子

假设经过 RNN 处理后,最终隐藏状态为:

全连接层参数设定为:

计算输出打分 z:

接下来通过 softmax 计算概率:

计算数值:

因此,

这表示模型预测为类别 1(正面情感)的概率为 86%,即最终分类结果为正面。

这整个过程说明了如何:

  1. 利用 RNN 对输入序列进行时间递归处理,将整句的信息整合在最终隐藏状态 h(T) 中;

  2. 通过全连接层将 h(T) 映射到类别空间,生成类别打分;

  3. 经过 softmax 处理,将打分转换为概率,从而输出最终的类别标签。

这种“序列到类别”的模式在文本分类、情感分析、语音命令识别等任务中非常常见,它的核心思想就是将整个序列压缩成一个全局的表示,再进行分类决策。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词