当前位置: 首页 > article >正文

学习日记-250305

阅读论文:Leveraging Pedagogical Theories to Understand Student Learning
Process with Graph-based Reasonable Knowledge Tracing
ps:代码逻辑最后一点还没理顺,明天继续
4.2 Knowledge Memory & Knowledge Tracing
代码研究:

一般经验值:

  • k_hop = 1~2(默认值 1)适用于大多数知识追踪任务。
  • k_hop > 3 可能会导致模型难以优化,但适用于知识点间关系复杂的情况。
选择 k_hop 需要权衡:
  • 太小(1)→ 只能学习局部信息,捕捉不到远程知识关系。
  • 太大(>3)→ 可能导致信息过度传播,使所有知识点变得相似,影响模型效果。

1. 部分代码拆解(一)

learn_kernel_para = F.softplus(lk_tilde) * self.args.alpha  # [NK, KH]
  • lk_tilde

    • 之前通过 k_hop 传播,整合了知识点的关联、前置、后续信息
    • 它的形状 [NK, KH],表示 NK 个知识点在 KH 维隐藏空间的表示。
  • F.softplus(lk_tilde)

    • Softplus(x) = log(1 + e^x)
    • 这是平滑版的 ReLU,确保 learn_kernel_para 非负
    • 作用:
      • 当 x→−∞x \to -\inftyx→−∞,Softplus 逼近 0(防止负数影响计算)。
      • 当 x→+∞x \to +\inftyx→+∞,Softplus 逼近 xxx(近似线性增长)。
  • self.args.alpha

    • alpha 是超参数,控制学习核参数的影响范围。
    • 调节学习速率,防止 learn_kernel_para 过大或过小,影响梯度更新。

2. learn_kernel_para 的作用

learn_kernel_para 作为学习能力参数,决定:

  1. 学生在不同知识点上的学习速率(较大值表示容易学会,较小值表示难以掌握)。
  2. 如何在时间维度上影响知识状态的更新,即影响后续 h(知识状态)的变化。

forward() 过程中,它用于调整:

learn_exp = (-(learn_count[:, :, None].float() + 1) * delta_time * learn_kernel_para).exp()
  • learn_kernel_para 越大,学习速率越快,知识状态更新更快。
  • learn_kernel_para 越小,学习速率越慢,知识掌握变化较小。

3. 为什么要用 Softplus

  • 保证非负性
    • learn_kernel_para 不能是负数,否则会影响学习状态更新计算。
    • Softplus(x) 始终是正数,防止 lk_tilde 可能的负值影响学习计算。
  • 平滑版 ReLU,防止梯度消失
    • 由于 softplus(x) ≈ x 在大值时近似线性,在小值时不会变成 0,因此可以避免梯度消失问题

4. 直观理解

如果你是一个学生:

  • learn_kernel_para 表示你的学习能力
    • learn_kernel_para → 你对该知识点的学习速度(容易掌握)。
    • learn_kernel_para → 你对该知识点的学习速度(难以掌握)。

softplus(lk_tilde) 确保:

  • 学习能力 learn_kernel_para 始终为正数,避免错误学习率。
  • 通过 alpha 控制学习速率,防止学习能力过大或过小。

5. 结论

计算学习核参数,决定知识点的学习速度。
Softplus 确保非负,避免负学习率问题。
乘以 alpha 进行缩放,防止数值过大或过小。
影响后续知识状态 h 的更新,使得知识点的掌握程度符合学习规律。

训练代码记录:
/home/edurs/anaconda3/bin/conda run -n ma12 --no-capture-output python /home/edurs/GRKT_new/Training.py 
Training start...
Evaluation before training: AUC: 0.5757, ACC: 0.6029, 
train_loss: 0.6036, AUC: 0.7184, ACC: 0.6976,  * 0.7079
train_loss: 0.5705, AUC: 0.7471, ACC: 0.7121,  * 0.7294
train_loss: 0.5488, AUC: 0.7656, ACC: 0.7259,  * 0.7455
train_loss: 0.5316, AUC: 0.7744, ACC: 0.7319,  * 0.7529
train_loss: 0.5191, AUC: 0.7818, ACC: 0.7379,  * 0.7595
train_loss: 0.5105, AUC: 0.7843, ACC: 0.7396,  * 0.7616
train_loss: 0.5022, AUC: 0.7843, ACC: 0.7396,  * 0.7616
train_loss: 0.4948, AUC: 0.7858, ACC: 0.7401,  * 0.7626
train_loss: 0.4881, AUC: 0.7855, ACC: 0.7381,  
train_loss: 0.4831, AUC: 0.7849, ACC: 0.7402,  
train_loss: 0.4775, AUC: 0.7837, ACC: 0.7390,  
train_loss: 0.4729, AUC: 0.7841, ACC: 0.7373,  
train_loss: 0.4661, AUC: 0.7826, ACC: 0.7386,  
train_loss: 0.4608, AUC: 0.7807, ACC: 0.7379,  
train_loss: 0.4557, AUC: 0.7794, ACC: 0.7354,  
train_loss: 0.4520, AUC: 0.7774, ACC: 0.7359,  
train_loss: 0.4476, AUC: 0.7764, ACC: 0.7324,  
train_loss: 0.4460, AUC: 0.7749, ACC: 0.7349,  
train_loss: 0.4399, AUC: 0.7706, ACC: 0.7327,  
train_loss: 0.4387, AUC: 0.7706, ACC: 0.7302,  
train_loss: 0.4358, AUC: 0.7681, ACC: 0.7286,  
train_loss: 0.4308, AUC: 0.7690, ACC: 0.7300,  
train_loss: 0.4282, AUC: 0.7669, ACC: 0.7259,  
train_loss: 0.4251, AUC: 0.7659, ACC: 0.7285,  
train_loss: 0.4241, AUC: 0.7656, ACC: 0.7261,  
train_loss: 0.4236, AUC: 0.7634, ACC: 0.7231,  
train_loss: 0.4208, AUC: 0.7635, ACC: 0.7261,  
train_loss: 0.4226, AUC: 0.7642, ACC: 0.7273,  
Training stopped.
valid:	 AUC: 0.7858, ACC: 0.7401, 
test:	 AUC: 0.7881, ACC: 0.7376, 
Evaluation before training: AUC: 0.5366, ACC: 0.5602, 
train_loss: 0.6052, AUC: 0.7198, ACC: 0.6977,  * 0.7087
train_loss: 0.5703, AUC: 0.7487, ACC: 0.7145,  * 0.7314
train_loss: 0.5475, AUC: 0.7666, ACC: 0.7266,  * 0.7463
train_loss: 0.5308, AUC: 0.7754, ACC: 0.7328,  * 0.7538
train_loss: 0.5185, AUC: 0.7804, ACC: 0.7347,  * 0.7572
train_loss: 0.5090, AUC: 0.7832, ACC: 0.7374,  * 0.7599
train_loss: 0.5016, AUC: 0.7833, ACC: 0.7372,  
train_loss: 0.4947, AUC: 0.7855, ACC: 0.7408,  * 0.7628
train_loss: 0.4885, AUC: 0.7844, ACC: 0.7375,  
train_loss: 0.4822, AUC: 0.7842, ACC: 0.7397,  
train_loss: 0.4761, AUC: 0.7830, ACC: 0.7383,  
train_loss: 0.4693, AUC: 0.7820, ACC: 0.7365,  
train_loss: 0.4657, AUC: 0.7815, ACC: 0.7354,  
train_loss: 0.4616, AUC: 0.7800, ACC: 0.7357,  
train_loss: 0.4558, AUC: 0.7780, ACC: 0.7346,  
train_loss: 0.4526, AUC: 0.7779, ACC: 0.7337,  
train_loss: 0.4470, AUC: 0.7760, ACC: 0.7338,  
train_loss: 0.4444, AUC: 0.7722, ACC: 0.7310,  
train_loss: 0.4405, AUC: 0.7709, ACC: 0.7313,  
train_loss: 0.4380, AUC: 0.7722, ACC: 0.7290,  
train_loss: 0.4349, AUC: 0.7713, ACC: 0.7283,  
train_loss: 0.4299, AUC: 0.7679, ACC: 0.7293,  
train_loss: 0.4296, AUC: 0.7678, ACC: 0.7266,  
train_loss: 0.4280, AUC: 0.7672, ACC: 0.7281,  
train_loss: 0.4243, AUC: 0.7671, ACC: 0.7291,  
train_loss: 0.4211, AUC: 0.7678, ACC: 0.7275,  
train_loss: 0.4169, AUC: 0.7625, ACC: 0.7234,  
train_loss: 0.4130, AUC: 0.7620, ACC: 0.7232,  
Training stopped.
valid:	 AUC: 0.7855, ACC: 0.7408, 
test:	 AUC: 0.7833, ACC: 0.7349, 
Evaluation before training: AUC: 0.5521, ACC: 0.5002, 
train_loss: 0.6095, AUC: 0.7193, ACC: 0.7016,  * 0.7104
train_loss: 0.5721, AUC: 0.7458, ACC: 0.7158,  * 0.7307
train_loss: 0.5501, AUC: 0.7644, ACC: 0.7284,  * 0.7462
train_loss: 0.5339, AUC: 0.7746, ACC: 0.7325,  * 0.7533
train_loss: 0.5218, AUC: 0.7804, ACC: 0.7388,  * 0.7593
train_loss: 0.5121, AUC: 0.7826, ACC: 0.7404,  * 0.7612
train_loss: 0.5046, AUC: 0.7839, ACC: 0.7417,  * 0.7625
train_loss: 0.4974, AUC: 0.7840, ACC: 0.7407,  
train_loss: 0.4908, AUC: 0.7857, ACC: 0.7433,  * 0.7642
train_loss: 0.4847, AUC: 0.7846, ACC: 0.7412,  
train_loss: 0.4796, AUC: 0.7831, ACC: 0.7383,  
train_loss: 0.4739, AUC: 0.7832, ACC: 0.7390,  
train_loss: 0.4689, AUC: 0.7799, ACC: 0.7381,  
train_loss: 0.4647, AUC: 0.7810, ACC: 0.7382,  
train_loss: 0.4595, AUC: 0.7800, ACC: 0.7358,  
train_loss: 0.4555, AUC: 0.7751, ACC: 0.7348,  
train_loss: 0.4504, AUC: 0.7745, ACC: 0.7323,  
train_loss: 0.4462, AUC: 0.7725, ACC: 0.7313,  
train_loss: 0.4417, AUC: 0.7738, ACC: 0.7307,  
train_loss: 0.4392, AUC: 0.7714, ACC: 0.7304,  
train_loss: 0.4345, AUC: 0.7686, ACC: 0.7302,  
train_loss: 0.4325, AUC: 0.7668, ACC: 0.7277,  
train_loss: 0.4290, AUC: 0.7670, ACC: 0.7250,  
train_loss: 0.4246, AUC: 0.7689, ACC: 0.7300,  
train_loss: 0.4245, AUC: 0.7686, ACC: 0.7294,  
train_loss: 0.4236, AUC: 0.7614, ACC: 0.7202,  
train_loss: 0.4191, AUC: 0.7616, ACC: 0.7248,  
train_loss: 0.4169, AUC: 0.7586, ACC: 0.7238,  
train_loss: 0.4185, AUC: 0.7566, ACC: 0.7239,  
Training stopped.
valid:	 AUC: 0.7857, ACC: 0.7433, 
test:	 AUC: 0.7898, ACC: 0.7377, 
Evaluation before training: AUC: 0.5531, ACC: 0.4871, 
train_loss: 0.6087, AUC: 0.7160, ACC: 0.6958,  * 0.7058
train_loss: 0.5707, AUC: 0.7437, ACC: 0.7116,  * 0.7275
train_loss: 0.5492, AUC: 0.7626, ACC: 0.7252,  * 0.7436
train_loss: 0.5327, AUC: 0.7743, ACC: 0.7335,  * 0.7536
train_loss: 0.5202, AUC: 0.7794, ACC: 0.7379,  * 0.7584
train_loss: 0.5098, AUC: 0.7832, ACC: 0.7376,  * 0.7601
train_loss: 0.5018, AUC: 0.7849, ACC: 0.7421,  * 0.7632
train_loss: 0.4944, AUC: 0.7850, ACC: 0.7387,  
train_loss: 0.4873, AUC: 0.7852, ACC: 0.7406,  
train_loss: 0.4814, AUC: 0.7839, ACC: 0.7390,  
train_loss: 0.4760, AUC: 0.7811, ACC: 0.7369,  
train_loss: 0.4698, AUC: 0.7809, ACC: 0.7356,  
train_loss: 0.4633, AUC: 0.7786, ACC: 0.7362,  
train_loss: 0.4585, AUC: 0.7761, ACC: 0.7322,  
train_loss: 0.4527, AUC: 0.7716, ACC: 0.7324,  
train_loss: 0.4491, AUC: 0.7728, ACC: 0.7310,  
train_loss: 0.4448, AUC: 0.7711, ACC: 0.7314,  
train_loss: 0.4418, AUC: 0.7675, ACC: 0.7279,  
train_loss: 0.4386, AUC: 0.7657, ACC: 0.7287,  
train_loss: 0.4351, AUC: 0.7661, ACC: 0.7277,  
train_loss: 0.4299, AUC: 0.7676, ACC: 0.7285,  
train_loss: 0.4267, AUC: 0.7639, ACC: 0.7256,  
train_loss: 0.4275, AUC: 0.7627, ACC: 0.7255,  
train_loss: 0.4257, AUC: 0.7621, ACC: 0.7242,  
train_loss: 0.4228, AUC: 0.7605, ACC: 0.7230,  
train_loss: 0.4185, AUC: 0.7584, ACC: 0.7213,  
train_loss: 0.4204, AUC: 0.7558, ACC: 0.7217,  
Training stopped.
valid:	 AUC: 0.7849, ACC: 0.7421, 
test:	 AUC: 0.7846, ACC: 0.7337, 
Evaluation before training: AUC: 0.5620, ACC: 0.5893, 
train_loss: 0.6024, AUC: 0.7216, ACC: 0.6950,  * 0.7081
train_loss: 0.5709, AUC: 0.7468, ACC: 0.7105,  * 0.7284
train_loss: 0.5480, AUC: 0.7672, ACC: 0.7211,  * 0.7438
train_loss: 0.5309, AUC: 0.7777, ACC: 0.7293,  * 0.7531
train_loss: 0.5190, AUC: 0.7827, ACC: 0.7327,  * 0.7573
train_loss: 0.5088, AUC: 0.7850, ACC: 0.7351,  * 0.7597
train_loss: 0.5013, AUC: 0.7860, ACC: 0.7350,  * 0.7600
train_loss: 0.4950, AUC: 0.7885, ACC: 0.7351,  * 0.7614
train_loss: 0.4875, AUC: 0.7873, ACC: 0.7363,  
train_loss: 0.4816, AUC: 0.7864, ACC: 0.7344,  
train_loss: 0.4755, AUC: 0.7879, ACC: 0.7366,  * 0.7618
train_loss: 0.4702, AUC: 0.7847, ACC: 0.7331,  
train_loss: 0.4658, AUC: 0.7847, ACC: 0.7327,  
train_loss: 0.4599, AUC: 0.7841, ACC: 0.7325,  
train_loss: 0.4559, AUC: 0.7840, ACC: 0.7328,  
train_loss: 0.4513, AUC: 0.7830, ACC: 0.7312,  
train_loss: 0.4479, AUC: 0.7793, ACC: 0.7301,  
train_loss: 0.4456, AUC: 0.7804, ACC: 0.7310,  
train_loss: 0.4404, AUC: 0.7781, ACC: 0.7285,  
train_loss: 0.4398, AUC: 0.7785, ACC: 0.7280,  
train_loss: 0.4377, AUC: 0.7758, ACC: 0.7285,  
train_loss: 0.4323, AUC: 0.7776, ACC: 0.7260,  
train_loss: 0.4294, AUC: 0.7728, ACC: 0.7283,  
train_loss: 0.4264, AUC: 0.7763, ACC: 0.7278,  
train_loss: 0.4243, AUC: 0.7720, ACC: 0.7260,  
train_loss: 0.4242, AUC: 0.7744, ACC: 0.7267,  
train_loss: 0.4271, AUC: 0.7748, ACC: 0.7263,  
train_loss: 0.4237, AUC: 0.7718, ACC: 0.7247,  
train_loss: 0.4210, AUC: 0.7713, ACC: 0.7267,  
train_loss: 0.4149, AUC: 0.7706, ACC: 0.7250,  
train_loss: 0.4127, AUC: 0.7695, ACC: 0.7239,  
Training stopped.
valid:	 AUC: 0.7879, ACC: 0.7366, 
test:	 AUC: 0.7851, ACC: 0.7369, 
Test result of all the experiments.
AUC:
0.7881
0.7833
0.7898
0.7846
0.7851
ACC:
0.7376
0.7349
0.7377
0.7337
0.7369

Average results:
valid:	 AUC: 0.7860, ACC: 0.7406, 
test:	 AUC: 0.7862, ACC: 0.7362, 

Process finished with exit code 0


http://www.kler.cn/a/572930.html

相关文章:

  • 2024 年 6 月大学英语四级考试真题(第 2 套)——解析版
  • Vue3 Suspense 终极指南:原理、用法与替代方案
  • 【Linux】使用问题汇总
  • 聊天室Python脚本——ChatGPT,好用
  • 我们来学nginx -- 优化下游响应速度
  • centos搭建 Node.js 开发环境
  • 深入解析SpringMVC中Http响应的实现机制
  • ESP8266连接网络实时上传数据
  • 安当KSP密钥管理系统:为无线局域网安全运行构建双重认证与密钥管理一体化解决方案
  • ZYNQ-PL学习实践(四)IP核之读写RAM
  • 使用vivado2023.2新版Vitis创建hello world项目以及新版vitis的一些说明
  • 前端基础之组件自定义事件
  • 项目工坊 | Python驱动淘宝信息爬虫
  • CSS设置文字渐变色样式(附带动画效果)
  • 鸿蒙5.0实战案例:基于OpenGL渲染视频画面帧
  • 网络编程之TCP协议
  • 数据结构:八大排序(冒泡,堆,插入,选择,希尔,快排,归并,计数)详解
  • CHAPTER 5 Data Class Builders
  • MWC 2025 | 移远通信大模型解决方案加速落地,引领服务机器人创新变革
  • Tripo3D使用体验