1.Task1的学习成果
(1)关于赛题
Key word:术语的一致性
可以使用数据增强 就是可以用翻译软件翻译成其他语言再翻译回英语
(2)机器学习
数据集包括训练集(Training set)、开发集/验证集(development/validation set)、测试集(test set)。训练集是模型映射的主要学习集,通过训练集进行主要参数调整和最小化损失函数。开发集调整超参数,防止过拟合。测试集用于最终评估模型的性能。
2.Baseline代码运行过程主要的Q&A
按照教程一步步走,比较丝滑
(1)命令pip install ../dataset/en_core_web_trf-3.7.3-py3-none-any.whl
这个位置试了一会,发现在我的终端里应该少一个点 文件路径的不同
(2)数据行不匹配问题
跑出结果仅有31行,在大赛提交后显示无法评分。助教说更改超参数BATCH_SIZE = 32为BATCH_SIZE = 1。
更改后再运行得到数据行匹配,但训练效果不佳。
BATCH_SIZE指定了每次梯度更新时所使用的样本数量。当你设置 BATCH_SIZE = 1 时,这意味着模型在每次更新其权重时仅使用单个样本来计算梯度。这种训练方式通常被称为随机梯度下降(Stochastic Gradient Descent, SGD)的极端形式,或者更准确地说是在线学习(Online Learning)。然而,在实践中,当提到 SGD 时,人们通常指的是小批量梯度下降(Mini-batch Gradient Descent),其中BATCH_SIZE是一个大于1但远小于整个数据集大小的数。
将BATCH_SIZE设置为 1,计算效率高:由于每次只处理一个样本,内存和计算资源的消耗通常较低,特别是对于非常大的数据集。然而,这并不一定意味着总的训练时间会更短,因为模型需要更多的迭代次数来收敛。同时,梯度是基于单个样本来计算的,因此梯度估计的噪声会很大。这可能导致训练过程更加不稳定,并且可能使模型更难收敛到一个好的解。
在某些情况下,使用较小的BATCH_SIZE可能会导致模型具有更好的泛化能力,因为它迫使模型在每次更新时都适应不同的数据分布。然而,这并不是一个普遍成立的规则,泛化能力还受到许多其他因素的影响。对于小型数据集或计算资源有限的情况,使用BATCH_SIZE= 1可能是一个合理的选择,因为它允许模型在不需要太多内存和计算资源的情况下进行训练。然而,对于大型数据集和强大的计算资源,使用更大的BATCH_SIZE可能会更有效率,因为它可以减少总的迭代次数并加速训练过程。