暑期闲事--基础技能
本文是学习清华计算机科协的暑期课程–基础技能讲解
神经网络与pytorch入门
神经网络
核心优化公式:
使用方法: 梯度下降法(往最快下降的方向走一步)
针对于这个部分才是我需要研究的重点,由于在多层神经网络中,梯度的计算决定了参数的调整,也能让我们更好的了解神经网络的细节内容
怎么计算梯度(BP算法–反向传播算法)
通过链式法则调整计算梯度,调整模型参数
-
前向传播:计算输出值
-
损失计算:预测值和真实标签计算损失
-
反向传播:根据层级计算梯度,逐层传播误差
-
权重更新:使用梯度下降法更新权重如果我要计算每一层的可训练参数 W(举例),我需要计算他和 结果的梯度关系来进行参数调整
Pytorch入门
Autograd:自动微分
-
计算图:一系列节点和边组成的有向无环图,节点表示一个操作或者变量,边表示变量之间的依赖关系
-
在对张量执行操作的时候,pytorch会创建一个新的计算图节点,记录该操作以及他的输入输出:操作-输入张量-输出张量
-
查看计算图: 可视化库(Graphviz)
LLM Reasoning
[!WARNRING]
听不懂,纯科普类😓
自然语言处理与主流LLM架构
前置知识
-
Softmax函数
类似于归一化的的操作,变成概率的形式
-
全连接层
每一个神经元都与上一层的所有节点输出
-
激活函数
将输出转化为非线性化(输出是线性的,不能处理非线性任务)
常用激活函数:RELU,Sigmod,ELU
-
残差连接
中间激活值跳过某些神经网络层,防止梯度消失的问题,让梯度能更好的回传
Transformer And Attention
-
Word Embedding (词嵌入)
将词语转化为 d维稠密向量,单词在多维空间中的距离突出了两者之间的关系强度 -
Self-Attention(自注意理机制)
简单的 Attention 机制: 设置一个注意力矩阵,突出
图片展示
-
Masked Multi-Head Attention
要求输出的时候,某个词语只能注意到它前面已经生成的词语,设计了Mask矩阵
-
Position Encoding
Attention 机制没有考虑向量在 sequence 中的位置
设置函数 F,输入 词位置和 word embedding
-
前馈层
-
一个两层的全连接层,第一层是 relu 激活
-
add & norm
-
add表示残差连接,缓解梯度消失
-
norm 表示 通过归一化每一层中每个样本的特征值,提高模型训练的稳定性
图神经网络
相关作用
-
节点级别任务
-
节点分类
-
节点位置优化
-
边级别任务
-
预测节点之间关系
-
图级别任务
-
图分类任务
-
图性质预测
基础知识
对嵌入向量进行学习更新(图神经网络)
-
顶点特征嵌入
-
边特征嵌入
-
全局特征嵌入
toy GNN(最简单神经网络迭代形式)
-
节点聚合
GCN(图卷积网络)
为了学习节点之间的关系,利用到图的信息
核心传递公式
相关概念:
-
A 归一化后的邻接矩阵 A =
-
W可训练参数矩阵
-
H表示节点的特征矩阵
example:
相关性质:
-
消息聚合操作不一定要加法,也可以是加权求和,取平均
-
K层GCN,就表示顶点可以聚合它k步以内的节点信息
GAT(图注意力网络)
一层计算(单头)
给定节点特征
-
线性变换
-
注意力打分(未归一化)(对每条边 (i\leftrightarrow j))
相关概念:
-
表示将向量拼接
-
Softmax 归一化(对同一接收节点 (i) 的邻居集合 (\mathcal{N}(i)))
-
加权聚合 + 激活
多头注意力(Multi-Head)
-
中间层(拼接)
E(n) 等变图神经网络
相关性质
-
等变性
-
不变性
核心公式
其实就是加入了节点之间的距离(是多维距离)信息
给定节点特征
GNN的过平滑问题
图的连通性问题,随着多层信息聚合,邻居信息会覆盖掉自身信息,
解决办法:
-
Dropout: 训练过程中随机丢弃一些神经元
暑期闲事--基础技能