2023/4/30周报

news2024/11/29 2:32:48

目录

摘要

论文阅读

1、题目和现存问题

2、知识空间理论、GRU和自注意力机制

3、模型构建

4、实验准备

5、实验结果

深度学习

1、GRU

2、代码实例

3、GRU和GCN结合的可能性

总结


 

摘要

本周在论文阅读上,阅读了一篇基于自注意力机制和双向GRU神经网络的深度知识追踪优化模型的论文。通过将自注意力机制和双向GRU神经网络融合起来构建新的模型,提高深度知识追踪的预测精度,优于现有的知识追踪模型。在深度学习上,学习了GRU的原理和特点,并在最后探讨了GRU和GCN融合的可能性。

This week,in terms of thesis reading,perusaling a paper on a deep knowledge tracking optimization model based on self attention mechanism and bidirectional GRU neural network.Constructing a new model by integrating self attention mechanism and bidirectional GRU neural network.The new model improves the prediction accuracy of deep knowledge tracking and outperforms existing knowledge tracking models.In deep learning,studying the principles and characteristics of GRU, and finally explored the possibility of integrating GRU and GCN.

论文阅读

1、题目和现存问题

题目:基于自注意力机制和双向GRU神经网络的深度知识追踪优化模型

现存问题:知识追踪是对学习者的答题表现进行建模,已被广泛应用于在线教育应用系统中。RNN的长期依赖问题使深度知识追踪模型无法利用长历史序列输入数据,导致预测结果产生波动。文章旨在优化深度知识追踪模型,解决RNN由于梯度消失产生的长期依赖问题并提升模型的预测精度。

解决方法:提出了基于自注意力机制和双向GRU神经网络的深度知识追踪模型(KTSA-BiGRU),利用双向GRU神经网络对学习者进行建模,通过注意力权重直接捕获输入练习题之间的关系,将学习者过去和未来的上下文序列信息集成 到模型的多个知识点概念中,更精准地模拟学习者的学习状态,预测学习者在未来学习中的作答表现。

2、知识空间理论、GRU和自注意力机制

知识空间理论(knowledge space theory,KST)是一种将人的认知和理解用数学形式表达出来并形成严谨的数学理论,主要应用于智能导学系统。知识空间理论中的相关定理结合可实现的技术操作,能够精准地预测学习者当前的知识状态,从而为学习者的个性化学习提供帮助。然而,知识空间理论指导下,现有的深度知识追踪模型存在输入习题间复杂关系捕获能力弱、无法有效处理长序列输入数据等问题,文章在知识空间理论指导下使用自注意力机制和双向 GRU 神经网络协同优化知识追踪模型。

门控制循环神经网络(gated recurrent unit,GRU)是LSTM神经网络的简化,用于处理和预测序列数据。相比于LSTM神经网络,GRU神经网络的参数减少了 1/3,不容易产生过拟合, 并且在需要的迭代次数和收敛时间上,GRU 神经网络效果更好。文章中使用双向 GRU 神经网络对学习者进行建模 ,Bi-GRU将两个方向相反的隐藏层连接到同一个输出,可以同时从前向和反向训练学习者的历史答题序列获取信息。

自注意力机制是注意力机制的变体,自注意力机制减少了对外部信息的依赖,更擅长捕捉数据的内部相关性,主要通过计算练习题间的相互影响来解决长期依赖问题。文章使用自注意力机制来学习练习题之间的关系权重,以预测学习者能否正确回答下一练习题, 通过增加练习题之间的关系来提高模型的预测性能。

3、模型构建

文章提出的KTSA-BiGRU模型通过研究练习题之间的关系对预测结果产生的影响,再采用自注意力机制和双向GRU神经网络对DKT模型进行优化。优化的过程先利用双向 GRU 神经网络对学习者进行建模,将学习者过去和未来的上下文序列信息集成到模型的多个知识点概念中;另外,将自注意力机制融入深度知识追踪模型中,对注意力权重赋予初始值,同时随着模型的训练不断地更新注意力权重的值,通过注意力权重直接捕获输入练习题之间的关系。KTSA-BiGRU模型结构:

253a097ac4c7405dbe0f6fc53858d993.png

 

学习者嵌入旨在对整个学习者练习过程进行建模,并结合历史上学习者表现的影响,学习者在不同练习步骤中的隐藏表征,即学习者的学习状态。本文采用双向 GRU神经网络对学习者进行建模:

2ba799f297b74bd8a28ccbd303384bf0.png

 

同时训练两个相反方向的GRU神经网络,将两个方向相反的隐藏层连接到同一个输出,输出层可以同时获得向前和向后状态的信息。将学习者过去和未来的上下文序列信息集成到模型的多个知识点概念中,更准确地模拟学习者的学习状态, 从而不考虑输入序列的长度。计算更新隐向量:

05eec001ea934d41b08d2bd6229b84d5.png

将自注意力机制将实值向量作为输入计算预测练习题之间的相关权重,生成权重向量矩阵F;使用缩放的点积向量注意力机制,找到对应每个先前所做练习的相对权重,用于预测当前练习是否能答对。计算查询矩阵和键值对:

45c304ccfe144267812de5fa62588cfd.png

 

使用注意力权重来确定每个先前的练习题与当前练习题之间的相关性。为了找到注意力权重,文章使用了向量点积:、

f8ca196a6ea3432ca448ad21f6a3e9e7.png

为了使模型能够表示不同子空间中的学习相关信息,注意力权重被计算了x次,并将x次的结果相连接。称为多头注意力(multi-head attention,MHA):

30009d793a89441f91f9106377cce4e7.png

 

为了将非线性纳入模型,并考虑不同潜在维度之间的相互作用,本文使用了前馈神经网络来计算:

5a9c56433242498898a33c0eaf35a7df.png

最后,将通过双向GRU神经网络得到的隐向量和自注意力机 制得到的练习题相关矩阵输入到一个带有sigmoid激活函数的全连接层中,得到表示学习者在t +1时刻答对练习题的概率 Pt+1:

40bf4ab94dea405599fa152893ab99a3.png

 

文通过执行输出向量yt的下一个问题qt +1的注意力权重的点积和二进制交叉熵损失函l来构建训练模型。 损失函数表示如下:

c8d56129b4614716bc80dc6c0b03a0af.png

 

4、实验准备

对比模型:将基于贝叶斯的知识追踪模型(BKT)、基于深度学习的知识追踪模型(DKT)和正则化的深度知识追踪模型(DKT +)

数据集:ASSISTmentsData 和 KDD

f0a426e4d4694385a789083c9e0b166d.png

 

文章采用AUC(area under curve)、准确率ACC(accurary)、精确率(precision)评价预测性能的指标。数据特征名称:

a602f613c1d2427b86b8af3b948993c0.png

 

文章模型与其他三个较为经典的知识追踪模型的区别与联系:

6448493abe134eb885effc94b4dcf1df.png

 

5、实验结果

下表给出了KTSA-BiGRU模型与三个对比模型在三个数据集上的AUC、ACC和准确率值的对比结果:

4745503f2e66491b80188bee43fd1757.png

 

实验结果表明,KTSA-BiGRU模型在预测学习者未来作答表现的性能方面优于其他三种模型。DKT+和KTSA-BiGRU模型都是对DKT模型无 法处理过长的历史学习序列输入作出的改进,但是DKT+模 型只是通过引入正则化参数来缓解此问题,而KTSA-BiGRU模型将自注意力机制和双向GRU神经网络融入知识追踪模型, 可以直接捕获练习题之间的关系来解决DKT模型无法处理过长的历史学习序列输入。因此,KTSA-BiGRU模型的预测性能强于DKT+模型。

消融实验

隐藏层数对模型性能的影响(采用更多的隐藏层数优于更少层的性能):

a1f592e6eac84d5588dbc84446da15e6.png

 

自注意力机制和双向GRU 神经网络对性能的影响(完整模型效果最好):

6716740d928746bb84b61177943dfac9.png

 

完整模型不仅能够更好地捕获学习者所做练习题之间的关系,还能将学习者过去和未来的上下文序列信息集成到模型的多个知识点概念中,更好地模拟学习者的学习过程。

 

深度学习

1、GRU

GRU(Gated Recurrent Unit)是一种循环神经网络(RNN)模型,它是在LSTM(Long Short-Term Memory)模型的基础上提出的。与LSTM相比,GRU具有更简单的结构和更快的训练速度,同时具有与LSTM相媲美的性能。

GRU模型相比于其他的循环神经网络模型,具有以下特点:

  1. 简单高效:相比于LSTM模型,GRU模型的结构更简单,参数更少,训练速度更快,同时性能也不逊于LSTM模型。

  2. 可解释性好:GRU模型的结构相对简单,更易于解释和理解。

  3. 适用性强:GRU模型适用于各种自然语言处理任务,如语言模型、机器翻译、文本生成等。

GRU模型的缺点主要包括以下几点:

  1. 对于长序列的建模能力不如LSTM:由于GRU模型只包含更新门和重置门,没有遗忘门,所以对于长序列的建模能力不如LSTM。

  2. 容易出现梯度消失或爆炸:GRU模型的训练过程中容易出现梯度消失或爆炸的问题,需要通过一些技巧来缓解

GRU的主要创新点是将LSTM的三个门(输入门、遗忘门、输出门)简化为两个门(更新门、重置门),并引入一个状态向量(即重置门控制的前一状态和更新门控制的当前输入的线性组合)来实现信息传递和控制。

具体来说,GRU模型包括一个更新门和一个重置门,它们决定了模型是否更新当前的状态和是否忘记历史状态。GRU模型的更新门可以控制当前状态中的哪些信息应该被保留,而重置门可以控制历史状态中的哪些信息应该被遗忘。此外,GRU模型还有一个状态向量,用于传递当前状态和历史状态之间的信息。

GRU模型的数学公式如下:

a3e6334f840a46578bf76bab12782466.png

 

其中,h_t表示第t个时间步的隐藏状态,x_t表示第t个时间步的输入,r_t表示第t个时间步的重置门,z_t表示第t个时间步的更新门,h_t表示第t个时间步的候选隐藏状态,⊙表示逐元素乘法,,W和U是权重矩阵,b是偏置向量。

重置门控制了新的输入信息对记忆单元的影响,更新门控制了上一个时刻的记忆单元和当前时刻的输入信息对当前时刻记忆单元的影响。通过这两个门控单元的组合,GRU模型能够在保留重要信息的同时,避免长期依赖的问题。

2、代码实例

对一个由连续自然数构成的序列进行预测任务:

import torch
import torch.nn as nn
​
class GRUModel(nn.Module):
    def __init__(self, input_size, hidden_size, output_size):
        super(GRUModel, self).__init__()
        self.hidden_size = hidden_size
        self.gru = nn.GRU(input_size, hidden_size)
        self.fc = nn.Linear(hidden_size, output_size)
​
    def forward(self, input, hidden):
        output, hidden = self.gru(input, hidden)
        output = self.fc(output[:, -1, :])
        return output, hidden
​
    def init_hidden(self, batch_size):
        return torch.zeros(1, batch_size, self.hidden_size)
​
input_size = 1
hidden_size = 20
output_size = 1
batch_size = 1
sequence_length = 10
​
model = GRUModel(input_size, hidden_size, output_size)
​
# 构造输入和隐藏状态
input_data = torch.arange(1, sequence_length+1, dtype=torch.float).view(sequence_length, batch_size, input_size)
hidden_state = model.init_hidden(batch_size)
​
# 前向传播计算输出
output, new_hidden_state = model(input_data, hidden_state)
​
print("输入的大小:", input_data.size())
print("输出的大小:", output.size())
print("输出结果为:", output.squeeze())

748d6ea2b81e49a4b9d4bc5397917c0c.png 

在这里输出的预测值是负的,可能是因为训练数据和模型的架构不够适合,导致模型没有学习到合适的关系。优化方向为更改模型架构或者增加训练数据,来提升模型的表现。

3、GRU和GCN结合的可能性

首先,GRU和GCN都可以应用于图像、语音、自然语言等序列数据的处理和建模,因此可以考虑将它们结合起来,共同处理这些序列数据。比如,可以使用GCN来对输入数据进行图像、语音、文本等特征提取和表示,然后将提取的特征输入到GRU中进行序列建模和预测。其次,GCN在处理图数据时能够考虑到节点之间的相互关系,而GRU则能够捕捉序列数据中的长期依赖关系,因此可以将GCN和GRU结合起来,用于处理时空序列数据。比如,可以使用GCN来处理空间维度的数据,然后将处理后的结果作为GRU的输入,用于建模时序数据中的长期依赖关系。

可能融合结构:

  1. 使用GCN处理图像数据,生成图像特征表示。GCN的输出可以是一个表示整个图像的向量。

  2. 将图像特征表示作为GRU的输入,并使用时间序列数据进行训练和预测。GRU的输出可以是预测值或者时间序列数据的特征表示。

  3. 将GRU的输出与其他信息(如图像标签)一起输入一个全连接层进行最终的预测

在这个结构中,GCN可以用于提取输入数据的特征表示,并将不同特征表示之间的关系转换成图结构。GRU则用于对特征表示矩阵进行序列建模和预测,以捕捉输入数据中的时序信息和长期依赖关系。最后,将GRU的输出结果进行分类、回归或者预测,以得到最终的结果。

总结

本周是对GRU展开了学习,将GRU的整个流程重新复习了下,并思考了GRU和GCN的融合,接下来将展开深入的学习。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/474166.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MATLAB数据处理实用案例详解(17)】——利用概念神经网络实现柴油机故障诊断

目录 一、问题描述二、利用概念神经网络实现柴油机故障诊断原理三、算法步骤3.1 定义样本3.2 样本归一化3.3 创建网络模型3.4 测试3.5 显示结果 四、运行结果五、完整代码 一、问题描述 柴油机的结构较为复杂,工作状况非常恶劣,因此发生故障的可能性较大…

linux常用命令大全

作为开发者,Linux是我们必须掌握的操作系统之一。因此,在编写代码和部署应用程序时,熟练使用Linux命令非常重要。这些常用命令不得不会,掌握这些命令,工作上会事半功倍,大大提高工作效率。 一. 文件和目录…

python使用迭代法验证角谷猜想

def fun(n):print(n)while n ! 1:n 3 * n 1 if n % 2 else n / 2print(finished)for i in range(2,1000):fun(i) 1、了解了什么是"角谷猜想" 对于任意一个自然数n,若n为偶数,则将其除以2;若n为奇数,则将其乘以3,然后再加1。如此经过有限次运算后,总可以得到自然数…

【VQ-VAE-2论文精读】Generating Diverse High-Fidelity Images with VQ-VAE-2

【VQ-VAE-2论文精读】Generating Diverse High-Fidelity Images with VQ-VAE-2 0、前言Abstract1 Introduction2 Background2.1 Vector Quantized Variational AutoEncoder 3 Method3.1 Stage 1: Learning Hierarchical Latent Codes3.2 Stage 2: Learning Priors over Latent …

【STM32】知识补充 晶振的基本原理及其应用

【STM32】知识补充 晶振的基本原理及其应用 概述晶振的基本原理晶振的性能参数晶振的分类晶振的应用晶振器在 STM32 上的应用总结 概述 晶振作为现代电子技中的重要组件, 广泛应用于各种电子设备中, 起到稳定时钟信号的作用. 本文将为您解释晶振的基本原理及其在实际应用中的用…

第 02 章 OSPF实验

2.1 OSPF 回顾 2.1.1 实验目的 在 CCNA 中,我们学习到了 OSPF 是一个链路状态路由协议,和 RIP 以及 EIGRP 的最大 不同在于对于它们对于网络的认识以及根本的算法的不同。通过对 CCNA 中 OSPF 配置实验 的回顾,从中加强我们对 OSPF 的理解。…

带你学c带你飞-P7取值范围

比特位 CPU能读懂的最小单元——比特位,bit,b 字节 内存机构的最小寻址单元——字节,Byte,B 1Byte8bit 进制 怎么算 注意:int默认是signed类型,signed类型第一位是符号位 符号位 存放signed类型的存…

对比体验 ChatGPT,聊聊文心一言的优缺点

在昨天文心一言发布后,我第一时间拿到了体验的资格,但第一次使用后却不禁有些失望。他的逻辑能力极度缺乏、创造力也差点意思。不过,今天再次高强度使用后,却又让我对这款产品的想法有了些许改变。 前言 将 2023 年称为 AI 纪元…

西门子PLC沿脉冲类指令汇总

S7-1200CPU提供了四种沿脉冲指令供用户使用,分别为:扫描操作数信号边沿指令、在信号边沿置位操作数的指令、扫描RLO的信号边沿指令以及检测信号边沿指令。 信号从0--1的时刻称为上升沿,信号从1--0的时刻称为下降沿,不管是上升沿还…

【VM服务管家】VM4.0平台SDK_2.1环境配置类

目录 2.1.1 环境配置:CSharp二次开发环境配置方法2.1.2 环境配置:Qt二次开发环境配置方法2.1.3 环境配置:MFC二次开发环境配置方法2.1.4 环境配置:VB.Net二次开发环境配置方法2.1.5 环境配置:运行出现Vm.Core.Solution…

python+django+vue消防知识宣传网站

开发语言:Python 框架:django Python版本:python3.7.7 数据库:mysql 数据库工具:Navicat 开发软件:PyCharm 层随着移动应用技术的发展,越来越多的消防单位借助于移动手机、电脑完成生活中的事…

Ubuntu目录和文件的相关操作

目录 1、目录的切换 2、查看目录及文件 3、目录的常见操作 4、文件的常见操作 1、目录的切换 打开终端窗口(”ctrlaltt“) 一般使用(”pwd“)显示当前所在的目录 比如:当前目录是在home下面的,与用户…

01_JUC概述

1. JUC是什么? 在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类。此包包括了几个小的、已标准化的可扩展框架,并提供一些功能实用的类,没有这些类,一些功能会很难实现或…

玩手机打电话识别监测算法 yolov8

玩手机打电话识别监测系统通过YOLOv8网络模型技术,玩手机打电话识别监测算法对现场有人玩手机抽烟打电话时可以立即自动进行抓拍存档。YOLOv8 算法的核心特性和改动可以归结为如下:提供了一个全新的 SOTA 模型,包括 P5 640 和 P6 1280 分辨率…

【全年汇总】2023年CCF人工智能会议截稿时间汇总(持续更新)

本博文是根据2022年CCF会议推荐的人工智能领域相关会议目录撰写。 一、截稿时间总览 截稿时间的总时间轴内容将会持续更新...... 往年投稿及录用情况及链接详见图片后面的内容。 二、会议详细目录 由于一些会议的投稿时间还没公开,因此根据往年投稿时间在表格中使…

石化企业数字化防爆融合通信解决方案

项目背景 石化工业是我国国民经济和社会发展的基础性、战略性产业,其发展和壮大受到了党和国家的高度重视。随着石化企业厂区规模的不断扩大以及技术的快速发展,现有石化企业专网通信系统建设相对滞后,缺乏结合人员管理、安全生产、安全通信…

商品详情API接口如何获取淘宝数据

淘宝是中国最大最受欢迎的电商平台之一,汇集了大量的商家和买家。在淘宝上热门商品的销量经常十分巨大,因此有些开发者和网站想要获取淘宝商品数据来进行一些分析。下面是一篇关于淘宝商品详情API接口获取淘宝数据的文章。 一、淘宝商品API接口介绍 淘…

HadaFS - Burst Buffer解读

背景 近几年AI,ML,HPC大火, 针对这些场景的存储技术及方案也逐步衍生出两个分支,第一支:以Lustre,BeeGFS等为代表的分布式并行文件系统, 这些文件系统对POSIX提供了很好的支持,各种…

Idea关闭或开启引用提示Usages和Annotations

IDEA的引用提示与Annotation 在2022版本的Idea中,新增了引用提示(Usages)和作者(Annotations)的功能。虽然用起来挺好用的,但对电脑还是有一定的压力,在配置比较低的电脑上,打开一个…

PHP入门【1】使用组合包安装php

目录 一,安装appserv组合包 二,运行第一个php程序 一,安装appserv组合包 组合包:将apache,mysql,php等服务器软件和工具安装配置完成后打包处理 组合包大大提高了我们的效率,不需要为配置环境…