Deep Learning
未读和大部分人一样,我对自然语言处理和语言模型的了解从ChatGPT开始。也和大部分人一样,第一次接触就被ChatGPT的能力所震惊 —— 硅基智能确实做到了理解人类的语言。
我也产生了几乎人人都会有的疑问:怎么做到的?硅基智能潜力是否会远胜于碳基智能?
在这篇文章中,我并不试图去解释ChatGPT的一切,而是将从原理出发,思考计算机理解语言的关键要素,这些思考落到了一个具体的切入点 —— embedding —— 一个第一眼难以理解但极为关键的东西。
文章是一个门外汉通过业余的研究和碎片的思考所完成,谬误之处难以避免,欢迎专业的研究人员指正。
1 编码:文字的数字化
Embedding 这个词直译为中文是:嵌入,这是让人头秃的两个字 —— 啥是嵌入?嵌入了啥?跟自然语言又有啥关系?
嵌入的体现形式是一组具有固定长度的数组,或者叫做向量,但它究竟是什么?为什么需要它?它在计算机理解自然语言的过程中扮演的是怎样的角色呢?
要回答这些问题,不妨先思考:让计算机理解自然语言,我们需要做什么?
计算的基础是数,而自然语言是文字,因此很容易想到要做的第一步是让文字数字化,为行文方便,我们将这个过程叫 ...
Deep Learning
未读(Latent Space)理解深度学习中的潜在空间
什么是潜在空间?
If I have to describe latent space in one sentence, it simply means a representation of compressed data.
[!NOTE]
想象一个大的手写数字数据集(0–9),就像上面显示的那样。 与其他不同编号(即3s与7s)的图像相比,相同编号的手写图像(即3的图像)彼此最相似。 但是我们可以训练一种算法来识别这些相似之处吗? 如何进行?如果您已经训练了一个模型来对数字进行分类,那么您也已经训练了该模型来学习图像之间的“结构相似性”。 实际上,这就是模型能够通过学习每个数字的特征而首先对数字进行分类的方式。这个过程似乎对您“隐藏”了,那根据定义,潜在性即是指“隐藏”。
“潜在空间”的概念很重要,因为它的用途是“深度学习”的核心-学习数据的特征并简化数据表示形式以寻找模式。
其实,Latent Variable这个概念在统计机器学习中并不陌生,概率图模型里从GMM (高斯混合模型), HMM(隐马尔科夫模型), 到PP ...
Deep Learning
未读Siamese网络
问题背景
分类问题:
分类数量较少,每一类的数据量较多,比如ImageNet、VOC等。这种分类问题可以使用神经网络或者SVM解决,只要事先知道了所有的类。
分类数量较多(或者说无法确认具体数量),每一类的数据量较少,比如人脸识别、人脸验证任务。
解决方法:
提出一种思路:将输入映射为一个特征向量,使用两个向量之间的距离来表示输入之间的差异,如图像语义上的差异。
Siamese网络,每次需要输入两个样本作为一个sample对计算损失函数。
提出Contrastive Loss用于训练。
应用场景
孪生神经网络用于处理两个输入"比较类似"的情况。伪孪生神经网络适用于处理两个输入"有一定差别"的情况。比如,我们要计算两个句子或者词汇的语义相似度,使用siamese network比较适合;如果验证标题与正文的描述是否一致(标题和正文长度差别很大),或者文字是否描述了一幅图片(一个是图片,一个是文字),就应该使用pseudo-siamese network。也就是说,要根据具体的应用,判断应该使用哪一种结构,哪一种L ...
可解释机器学习
作者:SkylaSun
链接:https://zhuanlan.zhihu.com/p/570926717
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
可解释机器学习
可解释性方法将机器学习模型的决策过程转变成人类更能理解的结果。通用可解释性方法一般仅基于特征进行解释,无法处理图结构信息,在处理漏洞发掘场景下的图数据时,作者将边的相关性分数传递到邻接节点中,从而产生一个节点级别的解释。
CAM(类别激活映射图),一种特征可视化技术,最初为解释CNN模型而设计,将深层网络中学习到的语义信息,通过权重与输出节点联系起来。
线性近似,通过梯度与输入,计算每个特征对分类输出的线性化贡献。
GradCAM,将线性近似方法应用于GNN层的中间激活函数,而非输入激活,产生了类似CAM的优势。
SmoothGrad,对多个噪声输入进行节点特征梯度平均,并且产生了抗噪声的解释。
IG(积分梯度),改进了线性近似,过程中参考了反事实基线输入G‘,并且使用延实际输入G的直线路径平均的梯度,以及G和G’之间的输入激活。
Gradient or Salie ...