神经网络与pytorch入门
神经网络
可视化网站 ↗
核心优化公式:
L=min(F(θ))
使用方法: 梯度下降法(往最快下降的方向走一步)
针对于这个部分才是我需要研究的重点,由于在多层神经网络中,梯度的计算决定了参数的调整,也能让我们更好的了解神经网络的细节内容
θi+1=θi+Δθi
从而得到:
Δθi=−dθdf
怎么计算梯度(BP算法—反向传播算法)
通过链式法则调整计算梯度,调整模型参数
- 前向传播:计算输出值
- 损失计算:预测值和真实标签计算损失
- 反向传播:根据层级计算梯度,逐层传播误差
- 权重更新:使用梯度下降法更新权重
如果我要计算每一层的可训练参数 W(举例),我需要计算他和 结果的梯度关系来进行参数调整
∂W(1)∂J=prod(∂z∂J,∂W(1)∂z)+prod(∂s∂J,∂W(1)∂s)=frac∂J∂zxT+γWT
Pytorch入门
Autograd:自动微分
- 计算图:一系列节点和边组成的有向无环图,节点表示一个操作或者变量,边表示变量之间的依赖关系
- 在对张量执行操作的时候,pytorch会创建一个新的计算图节点,记录该操作以及他的输入输出:操作-输入张量-输出张量
- 查看计算图: 可视化库(Graphviz)

LLM Reasoning
[!WARNRING]
听不懂,纯科普类😓
自然语言处理与主流LLM架构
前置知识
- Softmax函数
类似于归一化的的操作,变成概率的形式
Softmax(zi)=∑jexp(zi)exp(zi)
- 全连接层
每一个神经元都与上一层的所有节点输出

- 激活函数
将输出转化为非线性化(输出是线性的,不能处理非线性任务)
常用激活函数:RELU,Sigmod,ELU
- 残差连接
中间激活值跳过某些神经网络层,防止梯度消失的问题,让梯度能更好的回传
-
Word Embedding (词嵌入)
将词语转化为 d维稠密向量,单词在多维空间中的距离突出了两者之间的关系强度
-
Self-Attention(自注意理机制)
简单的 Attention 机制: 设置一个注意力矩阵,突出
图片展示


- Masked Multi-Head Attention
要求输出的时候,某个词语只能注意到它前面已经生成的词语,设计了Mask矩阵

- Position Encoding
Attention 机制没有考虑向量在 sequence 中的位置
设置函数 F,输入 词位置和 word embedding
F(pos,embedding)=DEmbeggingandposition
-
前馈层
一个两层的全连接层,第一层是 relu 激活
max(0,XW1+b1)W2+b2
-
add & norm
- add表示残差连接,缓解梯度消失
LayerNorm(X+MultiHeadAttention(X))
- norm 表示 通过归一化每一层中每个样本的特征值,提高模型训练的稳定性
y=Var(x)+θx−E(x)∗γ+β
图神经网络
相关作用
- 节点级别任务
- 边级别任务
- 图级别任务
基础知识
对嵌入向量进行学习更新(图神经网络)
- 顶点特征嵌入 Vi
- 边特征嵌入 Ei
- 全局特征嵌入 U
toy GNN(最简单神经网络迭代形式)
Vil+1=MLPVl(Vil),Eil+1=MLPEl(Eil),Uil+1=MLPUl(Uil)
GCN(图卷积网络)
为了学习节点之间的关系,利用到图的信息
核心传递公式:
H(l+1)=σ(AH(l)W(l))
相关概念:
- A 归一化后的邻接矩阵 A = D−21A′D−21
- W可训练参数矩阵
- H表示节点的特征矩阵
example:
Vil=Vil+t∑Vtl,Vil=σ(Vil)
相关性质:
- 消息聚合操作不一定要加法,也可以是加权求和,取平均
- K层GCN,就表示顶点可以聚合它k步以内的节点信息
GAT(图注意力网络)
一层计算(单头)
给定节点特征 (H∈RN×F)
- 线性变换
hi′=Whi,W∈RF′×F
- 注意力打分(未归一化)(对每条边 i↔j)
eij=LeakyReLU(a⊤[hi′∥hj′]),a∈R2F′
相关概念:
-
Softmax 归一化(对同一接收节点 i 的邻居集合 N(i))
αij=∑k∈N(i)exp(eik)exp(eij)
-
加权聚合 + 激活
hiout=σj∈N(i)∑αijhj′
多头注意力(Multi-Head)
- 中间层(拼接)
hiout=m=1Mσ(j∑αij(m)W(m)hj)
- 最后一层(平均)
hiout=M1m=1∑Mσ(j∑αij(m)W(m)hj)
E(n) 等变图神经网络
相关性质
-
等变性
f(Tg(x))=Tg′(f(x))
-
不变性
f(T(x))=f(x)
核心公式
其实就是加入了节点之间的距离(是多维距离)信息
给定节点特征 (hi)、坐标 (xi)、(可选)边特征 (aij):
mijxi′hi′=ϕm(hi,hj,∥xi−xj∥2,aij)=xi+j∈N(i)∑ϕx(mij)(xi−xj)=ϕh(hi,j∑mij)
- 仅使用距离与方向(而非绝对坐标),从而对平移/旋转/反射保持 E(n) 等变。
GNN的过平滑问题
图的连通性问题,随着多层信息聚合,邻居信息会覆盖掉自身信息,
解决办法:
- Dropout: 训练过程中随机丢弃一些神经元