76|0

14

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

《大语言模型开发:用开源模型开发本地系统》阅读报告(2) [复制链接]

        按照我们的阅读计划,本次报告向各位老师汇报我们在Transformer架构领域的实践成果。在上一次的分享中我们解读了书中的代码,因为时间关系没有具体尝试。今天,我们将填补这一空白,具体展示Transformer在实际项目中的应用。

        回顾过往,我们在《人工智能实践教程》中利用较为简单的多层卷积神经网络(CNN),完成了一个基于电池电压和电流特征预测电池当前周期容量的小型演示项目。在此基础上,我们想进一步探索了Transformer模型,利用其在时序信号上下文推理和特征提取方面的优势,尝试预测电池未来容量的变化趋势。

        我们的核心原理是利用Transformer对上下文关联性的推理能力,将电池容量变化趋势视为具有前后关联的序列。通过输入一小段历史数据,模型能够编码这些信息,并预测下一周期的容量。随后,这些预测结果将作为新的输入,推动模型进行更进一步的预测。通过这种方式,我们可以不断扩展输出序列,生成具有预见性的输出结果。

        在这一领域,已有众多研究工作为我们提供了宝贵的参考。本次分享,我们将以一篇经典的论文为蓝本,尝试复现这一过程。论文的链接和相关代码已附在报告末尾可以参考:【

链接已隐藏,如需查看请登录或者注册

1. 数据来源

        我们选取了马里兰大学CALCE(Center for Advanced Life Cycle Engineering)提供的在线数据集中的CS2系列电池周期充放电数据作为我们的研究对象。这些数据可以通过访问CALCE的官方网站【Battery Research Data | Center for Advanced Life Cycle Engineering (umd.edu)】进行下载。

        最终可以得到锂电池的容量与周期数的关系。

2. 网络架构

        接下来,我们将详细介绍文章中实现电池容量预测功能所采用的具体网络架构。我们的模型由两部分组成:前级的去噪编码器和后级的Transformer解码器。幸运的是,论文作者已经将代码开源,我们在此基础上进行了一些修改,以测试不同参数组合的性能。因此,我们不会在文章中粘贴代码,而是提供一些关键的截图。感兴趣的读者可以访问作者的GitHub页面自行下载代码。

        首先,我们来看编码器部分。因为电池容量时时间序列,并不涉及自然语言处理的词嵌入,所以这里的编码器本质上由两层全连接网络构成。在输入第一层网络之前,我们对输入信号叠加噪声信号,并进行线性变换和非线性激活,得到一个中间变量,该变量作为去噪编码的信号。然后,我们将这个中间变量再次进行线性变换,以得到输出。

        因此,我们的前向传播计算流程如下:input + noise -> FC1 + ReLU -> FC2 -> output。在这里,"mask"指的是叠加噪声的部分,"encode"表示第一个全连接层和非线性激活,得到去噪编码的结果,而"decode"代表第二个全连接层,输出重新变化回来的输入数据。在训练过程中,我们的目标是最小化输入和输出之间的差距,从而实现去噪编码和解码的过程。中间去噪后的向量将作为Transformer解码器的输入。

        接下来是位置编码,它用于标记位置信息。具体编码方式可以参考典型的Transformer论文,即通过正弦和余弦函数的编码过程,然后将计算得到的位置信息叠加在输入上。

        最后,文章设计了Transformer解码器。根据经典的Transformer架构,解码器本质上是由多个注意力机制和残差网络组成的解码模块的串联(在我们的教程中,只使用了单个模块)。虽然这里直接调用的是encoder模块,但可以看到,由于Transformer架构中编码器和解码器的模块结构是类似的,我们直接调用了PyTorch库中的TransformerEncoderLayer

        将上述所有过程串联起来,前向计算的过程就变得非常清晰:首先分别计算去噪声的编码和位置编码,然后将它们相加作为Transformer的输入。调用Transformer中的编码器输出结果后,再进行一次全连接操作,以得到最终的预测结果。

        这样的设计能够很好地对应文章中给出的网络架构。

3. 训练过程

        在定义好网络架构之后,我们利用PyTorch库中提供的自动微分功能来执行反向传播,无需手动编写复杂的梯度计算代码。在我们的实验中,选择了Adam优化器来更新网络权重,这是一种广泛使用的优化算法,因其自适应学习率的特性而受到青睐。至于损失函数,我们选择了均方误差(MSELoss),它衡量预测结果与实际目标之间的差异,是回归问题中常用的损失函数。

        训练的具体流程如下:

        模型验证:在训练过程中,我们定期使用测试集中预先划分的最初window_size个数据点作为起点,逐个生成后续的容量衰退趋势,并与实际测试集数据进行对比,以此来评估模型的性能。

        训练效率:得益于模型参数量适中以及架构的简洁性,训练过程的效率相当令人满意。参数量的控制和合理的架构设计,使得模型训练既高效又稳定。

4. 测试结果

        在完成了模型的训练和验证之后,我们得到了一些初步的测试结果。虽然文章中提供的量化指标看似乐观,但实际上我们的预测结果并不如预期理想。

        具体来说,我们注意到了几个关键问题:

        量化指标的局限性:文章中提到的指标,如通过预测的剩余使用寿命(RUL)与实际RUL相减后除以实际RUL得到的比值,虽然数值上看似很小,但实际上误差可能高达40-50个周期。这表明我们的模型在实际应用中可能存在较大的偏差。

        预测曲线与实际曲线的对比:通过对比预测的容量变化曲线和实际曲线,我们发现两者之间的误差相当明显。尤其是在选择70%的标称容量作为截止点时,虽然两者看似重合,但如果选择80%的标称容量作为截止点,误差则显著增加。

        窗口长度的影响:我们初步考虑窗口长度可能过短,因为我们仅使用了64个数据点进行预测。增加窗口长度后,虽然模型性能有所改善,但普适性较差,部分曲线的预测效果有所提升,而其他曲线的预测效果仍然不尽人意。此外,位置编码的运算规则限制了输入维度,只能调整为2的次方。

        注意力头和隐层规模的影响:增加注意力头对模型性能的提升并不明显。

        增加隐层的规模以后,效果有了显著改善。然而,我们也意识到单纯增加隐层规模可能会导致过拟合。

        后续改进方向:我们认为后续的提升空间主要在于调整网络架构和改进训练算法。教程中还涉及了优化超参数的部分,我们计划进一步探索其他参数的优化空间。

        总的来说,虽然我们能够复现文章中的内容,但效果并不理想,且文章中采用的衡量指标存在一定的取巧。基于当前的网络结构,我们将继续探索可能的改进方法,以期达到更准确的预测效果。

5. 总结

        我们尝试通过构建包含去噪编码器和Transformer解码器的网络架构,旨在捕捉电池容量变化的复杂模式,并预测其未来趋势。

        在实践过程中,我们遇到了一些挑战。尽管初步的量化指标显示了乐观的结果,但深入分析后发现,模型的预测精度并不如预期。我们识别出几个关键问题,包括量化指标的局限性、预测曲线与实际曲线之间的显著误差、窗口长度的选择、以及模型结构对预测性能的影响。

        针对这些问题,我们进行了一系列的调整和优化。我们尝试增加窗口长度、调整注意力头的数量、以及扩大隐层规模,以期提高模型的预测能力。虽然这些调整在一定程度上改善了模型性能,但我们认识到,为了实现更准确的预测,还需要在网络架构和训练算法上进行更深入的探索和改进。

        总结来说,虽然我们能够复现文章中的内容,但实际效果表明,我们还有很长的路要走。我们将继续学习,探索优化超参数的方法,并尝试不同的网络结构,以期在未来的研究中取得更好的成果。我们相信,通过不断的努力和创新,我们能够克服当前的挑战,实现更精准的电池容量预测。

 

附上文章的引用信息:

@article{chen2022transformer,
  title={Transformer network for remaining useful life prediction of lithium-ion batteries},
  author={Chen, Daoquan and Hong, Weicong and Zhou, Xiuze},
  journal={Ieee Access},
  volume={10},
  pages={19621--19628},
  year={2022},
  publisher={IEEE}
}

 

点赞 关注
个人签名

就是个臭打游戏


回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表