机器学习周报-GNN模型学习 本周阅读了The graph neural network model这篇论文,论文提出了一种新的神经网络模型–图神经网络(graph neural network,GNN)模型,该模型扩展了已有的神经网络方法,使之适用于处理以图论表示的数据。该GNN模型可以直接处理大多数实用的图形类型,非循环的、循环的、有向的和无向的。通过看文章和相关资料的学习,对GNN的基本概念,相关流程以及GNN算法的实现原理和过程有了基本的认识。
机器学习周报-ModernTCN文献阅读 本周阅读了MODERNTCN:一种时间序列分析的现代纯卷积结构,其在多个主流时间序列分析任务上取得了与最先进的基于Transformer和MLP的模型相媲美的性能,同时保持了卷积模型的效率优势。ModernTCN借鉴了Transformer中的架构设计,采用了深度卷积和逐点卷积的组合,以提高模型的表示能力。同时,为了更好地处理时间序列数据,ModernTCN引入了变量独立嵌入和跨变量依赖捕获机制。
机器学习周报-TCN文献阅读 TCN(Temporal Convolutional Networks,时间卷积网络)是一种专门用于处理时间序列数据的深度学习模型。它结合了卷积神经网络(CNN)的并行处理能力和循环神经网络(RNN)的长期依赖建模能力,成为序列建模任务中的强大工具。TCN主要使用因果卷积来确保网络在预测时只能使用当前和过去的信息,而不能看到未来的数据;使用扩张卷积跳过部分输入来使卷积核可以应用于大于卷积核本身长度的区域,从而增加网络的感受野;同时利用残差连接来增加网络的深度,这有助于训练深层网络并减少梯度消失的问题。
文献阅读+ARIMA模型学习 本周阅读的文献中提出了一种基于趋势分量和随机增量特征的ARIMA模型与K-means聚类模型相结合的水质预测方法,将ARIMA模型与聚类模型相结合,可以弥补单一ARIMA模型不能考虑具有随机变化特征数据的不足。通过聚类分析发现可能存在的影响因素,提高对于具有随机特征的数据预测精度。文献中采用自AR模型、MA模型和差分法结合的ARIMA模型能够对数据本身的历史信息来预测未来信息和k-means聚类算法、能够把相似的数据样本聚到一组。同时本文利用阳朔站点检测的水流样本数据使用该方法进行模拟预测。
机器学习周报(12.9-12.15) 本篇博客介绍了采用类似于卷积核的移动窗口进行图像特征提取的Swin Transformer网络模型,详细学习了该模型每一个组成模块的网络结构和参数传递过程。本周的学习到此结束。
机器学习周报(12.2-12.8) 本周学习了Vision Transformer (ViT) 的基本原理及其实现,并完成了基于PyTorch的模型训练、验证和预测任务。深入理解了ViT如何将图像分割成patch作为输入序列,并结合Transformer Encoder处理。通过迁移学习在花类数据集上训练模型,并验证了模型在预测任务中的优越性能。
机器学习周报(transformer学习2) 本文实现了Transformer模型中的关键组件,包括多头注意力机制、编码器层以及位置编码。首先 ,通过手写实现了多头注意力机制,利用多个注意力头并行计算,提升了信息的表达能力。然后,设计了自定义的编码器模块,结合了多头注意力、前馈神经网络和层归一化。最后,构建了完整的Transformer架构,为序列处理任务提供了一个基础框架。通过手写实现了Transformer的核心组件,详细理解了多头注意力机制、编码器层,解码器层和前馈神经网络等模块的设计与实现。
机器学习周报(11.18-11.24) 本文总结了 PyTorch 中常见的损失函数与相似度度量的理论基础和实现方法,重点分析了交叉熵、信息熵、负对数似然(NLL)、KL 散度和余弦相似度的数学原理及其在深度学习中的应用场景。通过示例代码详细阐述了这些概念的 PyTorch 实现方式,帮助读者在理论与实践之间建立联系。weight:指定权重,(dim),可选参数,可以给每个类指定一个权重。通常在训练数据中不同类别的样本数量差别较大时,可以使用权重来平衡。ignore_index:指定忽略一个真实值,(int),也就是手动忽略一个真实值。
机器学习周报(11.11-11.17) 本周主要对前几周学过的知识进行了复习和相关基础知识的查缺补漏,主要包括深度学习的基础知识。以及学习了如何运用爱因斯坦标示法让PyTorch张量变换的代码更容易编写。在进行后续相关知识的学习中,发现前面的基础知识有缺漏,进行了简单的复习和查缺补漏确保后续学习的顺利进行。
机器学习周报(transformer学习1) 本文介绍了Transformer模型的输入结构,包括Embedding层和位置编码的作用与实现。深入了解如何将原始数据转换为模型能够处理的嵌入向量,并探讨了位置编码在捕获序列信息中的重要性。通过一个具体的实例,学习如何对数据进行处理以适应Transformer的输入要求,并利用编造的数据帮助理解各部分的计算过程和工作原理。本文通过分析Transformer的输入结构及其核心组件Embedding层和位置编码,理解Transformer如何处理序列数据。示例数据的引入,使得各个模块的作用及其计算细节更加清晰。
机器学习周报(RNN的梯度消失和LSTM缓解梯度消失公式推导) 在深度学习领域,循环神经网络(Recurrent Neural Network, RNN)被广泛应用于处理序列数据,特别是在自然语言处理、时间序列预测等任务中。然而,传统的RNN在长序列数据学习过程中容易出现梯度消失和梯度爆炸问题,使得模型难以捕捉长时间依赖性。梯度消失问题源于RNN的反向传播算法中,多次矩阵相乘导致梯度指数级衰减,从而影响模型性能。为解决这一问题,长短期记忆网络(Long Short-Term Memory, LSTM)应运而生。
PyTorch中如何进行向量微分、矩阵微分、计算雅各比行列式 本文介绍了在PyTorch中进行向量微分、矩阵微分以及计算雅各比行列式的方法。通过对自动微分(Autograd)功能的讲解,展示了如何轻松实现复杂的数学运算,如向量和矩阵的导数计算,以及通过雅各比矩阵和雅各比行列式对函数的线性变换特性进行分析。PyTorch可以方便地实现各种数学操作,尤其是微分和梯度计算。通过掌握如何计算向量和矩阵的导数、雅各比矩阵以及雅各比行列式,我们可以在模型优化和误差传播中获得更深的洞察。
机器学习(10.14-10.20)(Pytorch GRU的原理及其手写复现) GRU是RNN的一个优秀的变种模型,继承了大部分RNN模型的特性;在本次学习中,简单学习了GRU的基础知识,展示了GRU的手动推导过程,用代码逐行模拟实现LSTM的运算过程,并与Pytorch API输出的结验证是否保持一致。在本次学习中,通过对GRU运算过程的代码逐行实现,了解到GRU模型,以及加深了自己对GRU模型的理解与推导。对于接下来的学习,我将对RNN,LSTM以及GRU三者的优缺点进行补充学习。
机器学习(10.7-10.13)(Pytorch LSTM和LSTMP的原理及其手写复现) LSTM是RNN的一个优秀的变种模型,继承了大部分RNN模型的特性;在本次学习中,展示了LSTM的手动推导过程,用代码逐行模拟实现LSTM的运算过程,并与Pytorch API输出的结验证是否保持一致。在本次学习中,通过对LSTM运算过程的代码逐行实现,了解到LSTM模型,以及加深了自己对LSTM模型的理解与推导。
机器学习周报(9.30-10.6) 进一步学习了循环神经网络(RNN)原理、种类、优缺点,使用Pytorch中所提供的RNN模型,并根据公式进行了手写实现RNN的计算原理。继续补充学习pytorch中其他函数的使用对于通过手写RNN的计算原理,有了更深刻的印象,下周将继续手写双向RNN的计算原理,并对LSTM更深入的学习。
机器学习周报(9.23-9.29) 主要学习了自监督学习的相关知识,了解了 BERT 是如何实现自监督学习以及 BERT 为什么能够有效地完成任务。通过 BERT 的四个例子来理解怎样使用 BERT。最后了解了 Multi-lingual BERT 的基本知识。补充学习了pytorch中有关tensor的拼接与拆分BERT(Bidirectional Encoder Representations from Transformers)是一种基于Transformer架构的语言理解模型,它通过双向上下文来捕捉句子中的语义关系。
机器学习周报(9.16-9.22)-Pytorch学习(四) 通过学习CNN模型的训练及验证套路,对模型训练以及模型验证套路有了基本认识,并趁热打铁使用CNN模型实现mnist手写数字识别的实操通过学习模型的基本训练套路和验证套路,对代码的使用有了基本的认识,但还是要多加训练和使用。
机器学习周报(9.9-9.15)-Pytorch学习(三) 本次学习对Pytorch中有关常用的损失函数进行了相关学习和实操,并对Pytorch中交叉熵损失函数的原理进行学习和相关公式的推导;并学习了优化器通过计算模型的损失函数进行模型的优化;同时学习了现在训练成熟的网络模型的使用、修改以及网络模型的保存和读取。本周学习了Pytorch中一些小简单的损失函数的数学公式和使用,搜索相关资料更深刻学习了交叉熵损失函数,学习了网络模型的使用、修改、保存和读取。下周,我将通过学习minist数据集相关任务,加深对CNN原理的学习。
机器学习(9.2-9.8)pytorch学习(二) 在前段时间,入门学习了有关pytorch的相关安装和简单入门使用后,这周补充学习了pytorch中的数据集CIFAR10的使用并以此为数据集进行神经网络构建的相关学习,学会了通过调用pytorch中的有关卷积、池化、非线性、线性等包训练图片。通过学习pytorch的一些简单的入门使用,提高了自己的代码能力,不过对于pytorch的学习和使用,还要多看官方文档和自己的深入理解。
机器学习周报(8.26-9.1) 本周先是好好理解了一下self-attention的QKV的理解,关于如何让自注意力机制更有效的问题,学习了self-attention的多种变形,包括减少注意力矩阵的计算量、加快注意力机制的运算速度、去掉attention等。本周主要是复习了self-attention的基本原理的前提下,学习了对self-attention的一下更有效的方法,然后有些公式推导理解还不够透彻,我会继续研究推导理解。