modelarts实验
收藏回复举报
modelarts实验
发表于2023-10-10 19:38:18
0 查看
  1. 实验内容简介

实验要求:

  1. 请基于pytorch和mindspore平台,利用文本情感分析(aclImdb_v1.tar.gz)数据集,构建一个包含3个隐藏层的深度循环神经网络模型(3选1:RNN/LSTM/GRU),实现文本情感分类,并以分类的准确度和混淆矩阵为衡量指标,分析模型的分类精度。

要求:pytorch可与tensorflow替换,但mindspore为必选平台。(mindspore 可以在华为云ModelArts上实现);但总体分类准确度需要在87%以上记为合 格(不扣分)。

实验数据:

IMDB是一个与国内豆瓣比较类似的与电影相关的网站,而本次实验用到的数 据集是这个网站中的一些用户评论。IMDB数据集共包含50000项影评文字, 训练数据和测试数据各25000项,每一项影评文字都被标记为正面评价或负 面评价,所以本实验可以看做一个二分类问题。

实验目的:

1.熟练掌握延迟器、门控单元概念;

2.熟练掌握循环神经网络RNN的基本原理;

3.熟练掌握LSTM和GRU网络框架单元;

4. 了解深层循环神经网络的结构。

  1. 实验算法原理简介

本次实验选取LSTM模型,在pytorch和mindspore平台上实现。

LSTM:

基本构成:

长短期记忆网络(Long Short-Term Memory,LSTM)是一种常用的循环神经 网络(RNN)变体,用于处理序列数据和解决传统RNN中的梯度消失问题。 LSTM通过引入一种特殊的记忆单元和门控机制,能够更好地捕捉和保留长期 依赖关系。

LSTM的核心思想是引入一个记忆单元(cell),它可以在不同时间步之间传 递信息并决定何时保留或忘记信息。记忆单元类似于RNN中的隐藏状态,但 具有更强的记忆能力。

LSTM单元由三个关键部分组成:

  1. 输入门(Input Gate):决定从当前输入中提取多少信息,并更新记忆单元的状态。
  2. 遗忘门(Forget Gate):决定从先前的记忆单元状态中保留多少信息。
  3. 输出门(Output Gate):决定记忆单元的当前状态对当前时间步的输出有多少贡献。

结构图:

计算过程:

LSTM的计算过程可以概括为以下几个步骤:

  1. 计算遗忘门,决定哪些信息从上一时刻的细胞状态中遗忘掉,公式为 f t = σ ( W f [ h t − 1 , X t ] + b f ) ,其中 σ 是sigmoid函数, W f 和 b f 是参数矩阵和偏置向量。
  2. 计算输入门,决定哪些信息从当前输入中添加到细胞状态中,公式为 i t = σ ( W i [ h t − 1 , X t ] + b i ) 和 C t ′ = tanh ( W C [ h t − 1 , X t ] + b C ) ,其中 tanh 是双曲正切函数, W i , W C 和 b i , b C 是参数矩阵和偏置向量。
  3. 计算当前时刻的细胞状态,结合遗忘门和输入门的结果,更新细胞状态,公式为 C t = f t ⊙ C t − 1 + i t ⊙ C t ′ ,其中 ⊙ 是逐元素相乘的操作。
  4. 计算输出门,决定哪些信息从细胞状态中输出到隐层状态中,公式为 o t = σ ( W o [ h t − 1 , X t ] + b o ) 和 h t = o t ⊙ tanh ( C t ) ,其中 W o 和 b o 是参数矩阵和偏置向量。

算法步骤:

  1. 导入必要的数据分析、可视化、神经网络模块,如numpy, pandas, matplotlib, keras等。
  2. 读取并处理数据,如归一化,划分训练集和测试集,构造时间窗口等。
  3. 构建LSTM模型,使用Sequential类来创建序贯模型,使用add方法来添加LSTM层和全连接层,指定输入输出维度,激活函数,返回序列等参数。
  4. 编译和训练LSTM模型,选择合适的损失函数,优化器,评估指标等,使用fit方法来进行批量训练,指定训练轮数,批次大小等。
  5. 预测和评估LSTM模型,使用predict方法来对测试集或新数据进行预测,使用inverse_transform方法来还原归一化的数据,使用plot方法来可视化预测结果和真实值的对比,使用metrics方法来计算预测误差,计算混淆矩阵等。

我要发帖子