Deep Learning
未读
总结
在此,笔者可以得到一些对Multi-Head-Attention的结论:
通俗点理解Self-Attention就是用Q、K计算出每个token的权重进而对V向量进行提纯的方法,为什么叫Self-Attention呢,就是Q、K、V是来自于同一个输入经过三个不同的线性变换得到的。
对于大部分query,每个头都学习了某种固定的pattern模式,而且12个头中大部分pattern是差不多的,但是总有少数的pattern才能捕捉到语法/句法/词法信息。
《Attention Is All You Need》这篇原论文原文中解释了多头的作用:将隐状态向量分成多个头,形成多个子语义空间,可以让模型去关注不同维度语义空间的信息(或者说让模型去关注不同方面的信息)。
多头attention的有些头的功能是不一样的,有的头可能没啥信息(如第5head),有的头pattern由位置信息主导,有的头由语法信息主导,有的头由词法信息主导,而能够捕捉到语法/句法/词法信息的头其实是非常少的(这一点已被大量学术论文证明,笔者的句法破坏实验也验证了这一点),那么multi-head的作 ...
注意力机制
注意力机制是深度学习模型中的一种强大工具,可以选择性地关注输入数据的特定特征或部分。注意力机制的引入在各种自然语言处理(NLP)任务中,如机器翻译、文本摘要和语音识别等方面,都取得了显著的改进。
有几种类型的注意力机制。以下是其中一些最流行的类型:
1. 软注意力
软注意力是一种注意力机制,它计算输入特征的加权和,其中权重在训练过程中学习。软注意力通常用于序列到序列模型中,在这种模型中,输出取决于整个输入序列。软注意力已被证明可以显著提高机器翻译模型的性能。
Soft Attention=∑i=1Txαihi\text{Soft Attention} = \sum_{i=1}^{T_x} \alpha_i h_iSoft Attention=∑i=1Txαihi
其中,TxT_xTx是输入序列的长度,hih_ihi是第iii个输入特征向量,αi\alpha_iαi是第iii个特征向量的权重,由以下公式计算:
αi=exp(ei)∑j=1Txexp(ej)\alpha_i = \frac{\exp(e_i)}{\sum_{j=1}^{T_x} \exp(e_ ...
正则化
0 范数:向量中非零元素的个数
1 范数: 向量中各个元素绝对值之和。
2 范数: 向量中各个元素平方和的 1/2 次方,L2 范数又称 Euclidean 范数或者 Frobenius 范数
p 范数: 为 x 向量各个元素绝对值 p 次方和的 1/p 次方
L1 和 L2 正则先验分别服从什么分布?L1 是拉普拉斯分布,L2 是高斯分布。
为什么 L1 和 L2 正则化可以防止过拟合?
拟合过程中通常都倾向于让权值尽可能小,最后构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,即抗扰动能力强。
L1 & L2 正则化会使模型偏好于更小的权值。更小的权值意味着更低的模型复杂度;**添加 L1 & L2 正则化相当于为模型添加了某种先验,**限制了参数的分布,从而降低了模型的复杂度。
模型的复杂度降低,意味着模型对于噪声与异常点的抗干 ...
激活函数对神经网络的重要性自不必多言,机器之心也曾发布过一些相关的介绍文章,比如《一文概览深度学习中的激活函数》。本文同样关注的是激活函数。来自丹麦技术大学的 Casper Hansen 通过公式、图表和代码实验介绍了 sigmoid、ReLU、ELU 以及更新的 Leaky ReLU、SELU、GELU 这些激活函数,并比较了它们的优势和短板。
选自mlfromscratch,作者:Casper Hansen,机器之心编译,参与:熊猫、杜伟。
在计算每一层的激活值时,我们要用到激活函数,之后才能确定这些激活值究竟是多少。根据每一层前面的激活、权重和偏置,我们要为下一层的每个激活计算一个值。但在将该值发送给下一层之前,我们要使用一个激活函数对这个输出进行缩放。本文将介绍不同的激活函数。
目录
1.概述
2.sigmoid 函数是什么?
3.梯度问题:反向传播
梯度消失问题
梯度爆炸问题
梯度爆炸的极端案例
避免梯度爆炸:梯度裁剪/范数
4.整流线性单元(ReLU)
死亡 ReLU:优势和缺点
5.指数线性单元(ELU)
6.渗漏型整流线性单元(Leaky ReLU)
7. ...
Deep Learning
未读CosineSimilarity
DotProductSimilarity
ProjectedDotProductSimilarity
BiLinearSimilarity
TriLinearSimilarity
MultiHeadedSimilarity
1、余弦相似度
余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,称为"余弦相似性"
12345import torchimport torch.nn as nnimport mathtorch.cosine_similarity()
123456class CosineSimilarity(nn.Module): def forward(self, tensor_1, tensor_2): normalized_tensor_1 = tensor_1 / tensor_1.norm(dim=-1, keepdim=True) normalized_tensor_2 = tensor_2 / te ...
Deep Learning
未读论文阅读术语
baseline、benchmark、groundtruth
1. benchmark
benchmark是一种评价方式。在计算机领域应用最多的就是针对不同Model的性能测试。
对于benchmark过程,有三个步骤:
设置:这部分我们最常听到的就是数据集,说白了就是输入。
数据又分为结构化数据、半结构化数据和非结构化数据。其中非结构化数据包含各种文档、图片、视频和音频等。典型的应用有视频网站、图片相册、交通视频监控等等。
执行:对于自己提出的模型进行试验。
分析度量指标:
常用的指标:
(1)从架构角度度量:浮点型操作密度、整数型操作密度、指令中断、cache命中率、TLB命中;
(2)从Spark系统执行时间和吞吐的角度度量:Job作业执行时间、Job吞吐量、Stage执行时间、Stage吞吐量、Task执行时间、Task吞吐量;
(3)从Spark系统资源利用率的角度度量:CPU在指定时间段的利用率、内存在指定时间段的利用率、磁盘在指定时间段的利用率、网络带宽在指定时间段的利用率;
(4)从扩展性的角度度量:数据量扩展、集群节点数据扩展(scale out)、 ...
激活函数(Activation Function)
为了让神经网络能够学习复杂的决策边界(decision boundary),我们在其一些层应用一个非线性激活函数。最常用的函数包括 sigmoid、tanh、ReLU(Rectified Linear Unit 线性修正单元) 以及这些函数的变体。
Adadelta
Adadelta 是一个基于梯度下降的学习算法,可以随时间调整适应每个参数的学习率。它是作为 Adagrad 的改进版提出的,它比超参数(hyperparameter)更敏感而且可能会太过严重地降低学习率。Adadelta 类似于 rmsprop,而且可被用来替代 vanilla SGD。
论文:Adadelta:一种自适应学习率方法(ADADELTA: An Adaptive Learning Rate Method)
技术博客:斯坦福 CS231n:优化算法(http://cs231n.github.io/neural-networks-3/)
技术博客:梯度下降优化算法概述(http://sebastianruder.com/optimizing-gradient- ...
GCN,GAT,GGNN
GCN(Graph Convolutional Network),GAT(Graph Attention Network)和GGNN(Graph Gated Neural Network)都是用于图结构数据的深度学习模型,但它们在架构和工作原理上有一些异同点。下面是它们的异同点以及各自的优点和缺点:
异同点:
架构:GCN和GAT是基于图卷积的模型,而GGNN是基于循环神经网络的模型。 模型目标:GCN和GAT主要用于节点级别的任务,如节点分类和节点属性预测。GGNN主要用于图级别的任务,如图分类和图生成。 信息传播方式:GCN使用固定的邻居聚集方式传播信息,GAT使用自适应的注意力机制对邻居节点进行加权聚合,GGNN通过循环神经网络在节点之间传递信息。 参数共享:GCN和GAT在不同节点之间共享参数,而GGNN在循环过程中使用不同的参数。 可扩展性:GAT和GGNN在处理大型图时可能更具可扩展性,因为它们可以根据需要选择性聚合邻居节点的信息。
优点和缺点:
GCN:
优点:简单且易于实现,具有较好的可解释性,适用于节点级别的任务,能够捕捉节点之间的局 ...
GNNExplainer: Generating Explanations for Graph Neural Networks
1. Contribution 本文贡献
提出第一款通用,模型无关的(model-agnostic)对于GNN模型的解释器GNNEXPLAINER
形式化描述GNNEXPLAINER为最大化互信息的优化任务
抽取重要的子图结构及节点特征子集,作为模型解释。
2. Background 背景信息
对于非图结构的神经网络,解释方法主要有如下两个方向:
1.为整个网络构建简单的代替模型
常为模型无关的(model-agnostic),在待解释样本点的局部建立可信的估计。
E.g., 线性模型如LIME,规则集合如ANN_DT
2.识别模型计算过程中的重要层面
E.g. 关注特征梯度(feature gradients)等。
对于图神经网络设计解释方法,除去节点特征外,还需要结合考虑图的结构特征。
3. Problem Formulation 问题定义
3.1 GNN回顾
抽象GNN基本操作如下:
给定GNN模型 Φ\PhiΦ , 对于 lll 层节点vvv的特 ...
解读Laplace矩阵
什么是Laplace矩阵?
“拉普拉斯矩阵(Laplacian matrix) 也叫做导纳矩阵、基尔霍夫矩阵或离散拉普拉斯算子,主要应用在图论中,作为一个图的矩阵表示。”
常见的Laplace矩阵
Reference
什么是Laplace矩阵?
拉普拉斯矩阵(Laplacian matrix) 也叫做导纳矩阵,这次笔记主要是记录下GCN学习时的注意点,在图论(Graph theory)中,对于图 G=(V,E):
Laplacian 矩阵的定义为 L = D - A (其中 L 是Laplacian 矩阵, D=diag(d)是对角矩阵,d=rowSum(A),对角线上元素依次为各个顶点的度, A 则是图的邻接矩阵)
若只考虑无向图,那么L就是对称矩阵。
对于无向图的Laplace矩阵,它有哪些性质?
半正定矩阵(特征值非负,且是对称矩阵);
对称矩阵(一定有n个线性无关的特征向量);
对称矩阵的不同特征值对应的特征向量相互正交,这些正交的特征向量构成的矩阵为正交矩阵;
由于是半正定矩阵,所以是对称阵,那么能特征值分解(EVD)。
由于 U ...