精华内容
下载资源
问答
  • 想用Matlab编程线性支持向量机拟合直线的斜率截距 大神指导!!!
  • 作者:晨,汪欢迎大家关注我们的网站系列教程:...总结一.Doc2vec原理前文总结了Word2vec训练词向量的细节,讲解了一个词是如何通过word2vec模型训练出唯一的向量来表示的。那接着可能就会想到,有没有什么办法能...

    b1b1bf70c0dca09e8bc6ea860c2ad721.png

    作者:晨,汪

    欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习、深度学习的知识!也可以搜索号:磐创AI,关注我们的文章。

    目录

    一.Doc2vec原理

    二.代码实现

    三.总结

    一.Doc2vec原理

    前文总结了Word2vec训练词向量的细节,讲解了一个词是如何通过word2vec模型训练出唯一的向量来表示的。那接着可能就会想到,有没有什么办法能够将一个句子甚至一篇短文也用一个向量来表示呢?答案是肯定有的,构建一个句子向量有很多种方法,今天我们接着word2vec来介绍下Doc2vc,看下Doc2vec是怎么训练一个句子向量的。

    许多机器学习算法需要的输入是一个固定长度的向量,当涉及到短文时,最常用的固定长度的向量方法是词袋模型(bag-of-words)。尽管它很流行,但是词袋模型存在两个主要的缺点:一个是词袋模型忽略词序,如果两个不同的句子由相同的词但是顺序不同组成,词袋模型会将这两句话定义为同一个表达;另一个是词袋模型忽略了句法,这样训练出来的模型会造成类似‘powerful‘,‘strong’和‘Paris’的距离是相同的,而其实‘powerful’应该相对于’Paris‘距离’strong‘更近才对。

    Doc2vec又叫Paragraph Vector是Tomas Mikolov基于word2vec模型提出的,其具有一些优点,比如不用固定句子长度,接受不同长度的句子做训练样本,Doc2vec是一个无监督学习算法,该算法用于预测一个向量来表示不同的文档,该模型的结构潜在的克服了词袋模型的缺点。

    Doc2vec模型是受到了word2vec模型的启发,word2vec里预测词向量时,预测出来的词是含有词义的,比如上文提到的词向量’powerful’会相对于’Paris’离’strong‘距离更近,在Doc2vec中也构建了相同的结构。所以Doc2vec克服了词袋模型中没有语义的去缺点。假设现在存在训练样本,每个句子是训练样本。和word2vec一样,Doc2vec也有两种训练方式,一种是PV-DM(Distributed Memory Model of paragraph vectors)类似于word2vec中的CBOW模型,如图一:

    37ce82a24d03298dd85123360fe8b6ef.png

    另一种是PV-DBOW(Distributed Bag of Words of paragraph vector类似于Word2vec中的skip-gram模型,如图二:

    e4e205cb9a62abdd24bc76a6907e0b91.png

    在Doc2vec中,每一句话用唯一的向量来表示,用矩阵D的某一列来代表。每一个词也用唯一的向量来表示,用矩阵W的某一列来表示。以PV-DM模型为例,如图三:

    10d9d87eb0665e8cbb7bf64f0f8d33b8.png

    每次从一句话中滑动采样固定长度的词,取其中一个词作预测词,其他的作输入词。输入词对应的词向量word vector和本句话对应的句子向量Paragraph vector作为输入层的输入,将本句话的向量和本次采样的词向量相加求平均或者累加构成一个新的向量X,进而使用这个向量X预测此次窗口内的预测词。

    Doc2vec相对于word2vec不同之处在于,在输入层,增添了一个新的句子向量Paragraph vector,Paragraph vector可以被看作是另一个词向量,它扮演了一个记忆,词袋模型中,因为每次训练只会截取句子中一小部分词训练,而忽略了除了本次训练词以外该句子中的其他词,这样仅仅训练出来每个词的向量表达,句子只是每个词的向量累加在一起表达的。正如上文所说的词袋模型的缺点,忽略了文本的词序问题。而Doc2vec中的Paragraph vector则弥补了这方面的不足,它每次训练也是滑动截取句子中一小部分词来训练,Paragraph Vector在同一个句子的若干次训练中是共享的,所以同一句话会有多次训练,每次训练中输入都包含Paragraph vector。它可以被看作是句子的主旨,有了它,该句子的主旨每次都会被放入作为输入的一部分来训练。这样每次训练过程中,不光是训练了词,得到了词向量。同时随着一句话每次滑动取若干词训练的过程中,作为每次训练的输入层一部分的共享Paragraph vector,该向量表达的主旨会越来越准确。Doc2vec中PV-DM模型具体的训练过程和word2vec中的CBOW模型训练方式相同,在之前我写的基于Word2vec训练词向量(一)里有详细介绍,这里就不在重复。

    训练完了以后,就会得到训练样本中所有的词向量和每句话对应的句子向量,那么Doc2vec是怎么预测新的句子Paragraph vector呢?其实在预测新的句子的时候,还是会将该Paragraph vector随机初始化,放入模型中再重新根据随机梯度下降不断迭代求得最终稳定下来的句子向量。不过在预测过程中,模型里的词向量还有投影层到输出层的softmax weights参数是不会变的,这样在不断迭代中只会更新Paragraph vector,其他参数均已固定,只需很少的时间就能计算出带预测的Paragraph vector。

    二.代码实现

    在python中使用gensim包调用Doc2vec方便快捷,在这简单演示下,gensim下Doc2vec详细的参数不在此详细阐述。本次的数据是之前比赛中公开的旅游数据集,里边每一条都是游客对于景点的评价。具体的Doc2vec训练Paragraph vector步骤如下:

    1.导包:导入必要的包,其中的jieba是为了给文本进行分词。

    70f0a699784a73a52af91406b7a13b18.png

    2.导入数据集,提取Discuss列(该列是用户评价的内容)。

    7e6382b630d5d138506d41d9f47ad3d2.png

    60630f57d30cfd355d4dddb381ee8c6a.png

    3.将提取好的Discuss列中的内容进行分词,并去除停用词。

    c9bef75f6dca6ff33d01a746579b86b4.png

    4.改变成Doc2vec所需要的输入样本格式,由于gensim里Doc2vec模型需要的输入为固定格式,输入样本为:[句子,句子序号],这里需要用gensim中Doc2vec里的TaggedDocument来包装输入的句子。

    340c3f986f9cca522489ba984ec795cc.png

    5573ead84743ec3b7046c0df627e9d90.png

    5.加载Doc2vec模型,并开始训练。

    8458cd33b1582738981a7c4afa9bd9f6.png

    6.模型训练完毕以后,就可以预测新的句子的向量Paragraph vector了,这里用gensim里infer_vector()预测新的句子,这里根据经验,alpha(学习步长)设置小一些,迭代次数设置大一些。找到训练样本中与这个句子最相近的10个句子。可以看到训练出来的结果与测试的新句子是有关联的。

    1f2a0cfb50c16d07f85a743ab02fad7c.png

    3a67d0b6005e1927911e6e5c8f3cf28b.png

    三.总结

    Doc2vec是基于Word2vec基础上构建的,相比于Word2vec,Doc2vec不仅能训练处词向量还能训练处句子向量并预测新的句子向量。Doc2vec模型结构相对于Word2vec,不同点在于在输入层上多增加了一个Paragraph vector句子向量,该向量在同一句下的不同的训练中是权值共享的,这样训练出来的Paragraph vector就会逐渐在每句子中的几次训练中不断稳定下来,形成该句子的主旨。这样就训练出来了我们需要的句子向量。在预测新的句子向量时,是需要重新训练的,此时该模型的词向量和投影层到输出层的soft weights参数固定,只剩下Paragraph vector用梯度下降法求得,所以预测新句子时虽然也要放入模型中不断迭代求出,相比于训练时,速度会快得多。本次使用的数据集为情感分析,且大多数样本偏向于好评,样本内容比较单一,所以训练出来的结果都是偏向于哪里好玩,好不好这类的意思,对于一些特定的问题之类的句子准确性还没有验证,目前用于情感分析还是可以的。下次会尝试使用新的数据集,调试参数看是否会取得更好的结果。

    最后,对深度学习感兴趣,热爱Tensorflow的小伙伴,欢迎关注我们的网站!http://www.tensorflownews.com。我们的号:磐创AI。

    展开全文
  • 展开全部按以下公式:cos s=向量a和向量b的内积/(向62616964757a686964616fe78988e69d8331333365656638量a的长度与向量b的长度的积),s为向量a、b之间的夹角。如果是坐标形式;a=(x1,y1),b=(x2,y2),a*b=x1x2+y1...

    展开全部

    按以下公式求:cos s=向量a和向量b的内积/(向62616964757a686964616fe78988e69d8331333365656638量a的长度与向量b的长度的积),s为向量a、b之间的夹角。如果是坐标形式;a=(x1,y1),b=(x2,y2),a*b=x1x2+y1y2,|a|=√(x1^2+y1^2),|b|=√(x2^2+y2^2),cos=[x1y1+x2y2] / [√(x1^2+y1^2)√(x2^2+y2^2)]

    知识拓展:

    在数学中,向量(也称为欧几里得向量、几何向量、矢量),指具有大小(magnitude)和方向的量。它可以形象化地表示为带箭头的线段。箭头所指:代表向量的方向;线段长度:代表向量的大小。与向量对应的只有大小,没有方向的量叫做数量(物理学中称标量)。

    向量的记法:印刷体记作粗体的字母(如a、b、u、v),书写时在字母顶上加一小箭头“→”。 [1]  如果给定向量的起点(A)和终点(B),可将向量记作AB(并于顶上加→)。在空间直角坐标系中,也能把向量以数对形式表示,例如Oxy平面中(2,3)是一向量。

    在物理学和工程学中,几何向量更常被称为矢量。许多物理量都是矢量,比如一个物体的位移,球撞向墙而对其施加的力等等。与之相对的是标量,即只有大小而没有方向的量。一些与向量有关的定义亦与物理概念有密切的联系,例如向量势对应于物理中的势能。

    几何向量的概念在线性代数中经由抽象化,得到更一般的向量概念。此处向量定义为向量空间的元素,要注意这些抽象意义上的向量不一定以数对表示,大小和方向的概念亦不一定适用。因此,平日阅读时需按照语境来区分文中所说的"向量"是哪一种概念。不过,依然可以找出一个向量空间的基来设置坐标系,也可以透过选取恰当的定义,在向量空间上介定范数和内积,这允许我们把抽象意义上的向量类比为具体的几何向量。

    展开全文
  • 这是相关度的结果,对于一般的矩阵X,执行A=corrcoef(X)后,A中每个值的所在行a列b,反应的是原矩阵X中相应的第a个列向量和第b个列向量的相似程度(即相关系数)。计算公式是:C(1,2)/SQRT(C(1,1)*C(2,2)),其中C...

    这是求相关度的结果,对于一般的矩阵X,执行A=corrcoef(X)后,A中每个值的所在行a和列b,反应的是原矩阵X中相应的第a个列向量和第b个列向量的相似程度(即相关系数)。计算公式是:C(1,2)/SQRT(C(1,1)*C(2,2)),其中C表示矩阵[f,g]的协方差矩阵,假设f和g都是列向量(这两个序列的长度必须一样才能参与运算),则得到的(我们感兴趣的部分)是一个数。以默认的A=corrcoef(f,g)为例,输出A是一个二维矩阵(对角元恒为1),我们感兴趣的f和g的相关系数就存放在A(1,2)=A(2,1)上,其值在[-1,1]之间,1表示最大的正相关,-1表示绝对值最大的负相关

    >> A=[1 2 3];B=[5 3 7]; r= corrcoef(A,B)

    r =

    1.0000    0.5000

    0.5000    1.0000

    >> A=[1 2];B=[5 3];

    r= corrcoef(A,B)

    r =

    1.0000   -1.0000

    -1.0000    1.0000%%-1是算出来的,不是说二维向量就一定相关,根据图中r和协方差矩阵的关系

    cov(A,B)

    ans =

    0.5000   -1.0000

    -1.0000    2.0000%%%A和B的协方差矩阵,

    那么R(1,2)=C(1,2)/(sqrt(C(1,1)*C(2,2)))=-1,sqrt为开方的意思。

    向左转

    |

    向右转

    0818b9ca8b590ca3270a3433284dd417.png

    展开全文
  • 具体做法如下:首先3*3+4*4+12*12=169,所以出向62616964757a686964616fe59b9ee7ad9431333366303162量R的模为根号169,即向量R的模为13。然后根据通用公式依次出COSa,COSbCOSc(分母就是13)。普遍求解方式:设...

    展开全部

    COSa=3/13,COSb=4/13,COSc=12/13。具体做法如下:

    首先3*3+4*4+12*12=169,所以求出向62616964757a686964616fe59b9ee7ad9431333366303162量R的模为根号169,即向量R的模为13。

    然后根据通用公式依次求出COSa,COSb和COSc(分母就是13)。

    普遍求解方式:

    设:A(x1,y1,z1),B(x2,y2,z2).

    向量AB的方向余弦={(x2-x1)/d,(y2-y1)/d.(z2-z1)/d}

    其中,d=|AB|=√[(x2-x1)²+(y2-y1)²+(z2-z1)²],(x2-x1)/d=cosα.,(y2-y1)/d=cosβ..(z2-z1)/d=cosγ。

    其中:α,β,γ是向量AB分别与x轴。y轴,z轴所成的夹角[0≤α,β,γ≤π],故称方向向量。

    扩展资料:

    相关向量:

    ①负向量

    如果向量AB与向量CD的模相等且方向相反,那么我们把向量AB叫做向量CD的负向量,也称为相反向量。

    数学中,既有大小又有方向的量叫做向量(亦称矢量)。

    注:在线性代数中的向量是指n个实数组成的有序数组,称为n维向量。α=(a1,a2,…,an) 称为n维向量.其中ai称为向量α的第i个分量。("a1"的"1"为a的下标,"ai"的"i"为a的下标,其他类推)。

    ②零向量

    长度为0的向量叫做零向量,记作0。零向量的始点和终点重合,所以零向量没有确定的方向,或说零向量的方向是任意的。

    向量的记法:印刷体记作粗体的字母(如a、b、u、v),书写时在字母顶上加一小箭头“→”。 如果给定向量的起点(A)和终点(B),可将向量记作AB(并于顶上加→)。在空间直角坐标系中,也能把向量以数对形式表示,例如Oxy平面中(2,3)是一向量。

    ③相等向量

    长度相等且方向相同的向量叫做相等向量。向量a与b相等,记作a=b。

    规定:所有的零向量都相等。

    当用有向线段表示向量时,起点可以任意选取。任意两个相等的非零向量,都可用同一条有向线段来表示,并且与有向线段的起点无关.同向且等长的有向线段都表示同一向量。

    ④自由向量

    始点不固定的向量,它可以任意的平行移动,而且移动后的向量仍然代表原来的向量。

    展开全文
  • 2016-08-06 回答楼主试试下述代码:%{matlab 一个向量和矩阵中各行向量的夹角余弦值 高手解答比如a=(1,2,3,4,5)b={1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20}分别求向量a与矩阵b中各行向量的夹角余弦值...
  • 在这一小节中,我们尝试另一个维度的概念与应用拓展,即将向量和矩阵的概念从实数域拓展到复数域。我们同样采用类比的思考学习方法,将实数域中的转置操作延伸至复数域中的共轭转置,重新定义了复数域中向量的内积...
  • Obvious,最小特征值对应的特征向量为平面的法向这个问题还有个关键是通过python协方差矩阵的特征值特征向量,np.linalg.eig()方法直接返回了特征值的向量和特征向量的矩阵scipy.linalg.eigh()方法可以对返回的...
  • 展开全部在数学中,向量(也称为欧几里得向62616964757a686964616fe59b9ee7ad9431333431373333量、几何向量、矢量),指具有大小(magnitude)方向的量。它可以形象化地表示为带箭头的线段。箭头所指:代表向量的方向...
  • 这是「橘子AI笔记」的第 4 篇推送前段时间看过一些矩阵求导的教程,在看过...本文旨在帮助您学习向量、矩阵高阶张量(三维或三维以上的数组)的求导方法,以及如何向量、矩阵高阶张量的导数。01.简化,简化,...
  • 求向量2a+3b与向量3a-b的夹角的余弦值只要把两个(2a+3b)(3a-b)相乘,再除以它们模的积就OK了具体如下:cosθ=(2a+3b)·(3a-b)/|3a-b|/|2a+3b|因为(2a+3b)·(3a-b)/|3a-b|/|2a+3b|=|3a-b|×|2a+3b|×cosθ/|3a-b|/|...
  • 特征向量的数值

    2013-01-05 18:31:02
    但是只要是方阵,它就有特征值特征向量,对于一般的方阵,特征值特征向量怎么求呢(当然我指的是数值求法)?这就要用本文即将介绍的“幂法”。 Power Method幂法 Definition 如果λ1是矩阵A的所有特征值中...
  • 并且两个向量的叉积与这两个向量和垂直。点乘,也叫数量积。结果是一个向量在另一个向量方向上投影的长度,是一个标量。二、应用不同:1、点乘:平面向量的数量积a·b是一个非常重要的概念,利用它可以很容易地证明...
  • 最近完成的一个项目用到了SVM,之前也一直有听说...需要解决的问题支持向量机是一种监督学习的方法,主要用来进行分类回归分析,当我们对一些数据进行分类的时候,可能会考虑以下问题:怎么选择决策边界?什么样的...
  • Problem Description The government in a foreign country is looking into the possibility of establishing a subway system in its capital. Because of practical reasons, they would like each subway line ...
  • 特征值特征向量

    2016-09-18 09:34:08
    先放到这里,以前仅仅是知道怎么求出一个矩阵的特征值特征向量,求法也比较简单, 但是几何意义却不太懂。 我们知道,矩阵乘法对应了一个变换,是把任意一个向量变成另一个方向或长度都大多不同的新向量。在这个...
  • 首先我们先把特征值特征向量的定义复习一下: 定义:设A是n阶矩阵,如果数λn...如果想出矩阵对应的特征值特征向量就是式(2)的解了。 那么,问题来了,这个式子要怎么理解呢? 首先得先弄清矩阵的概...
  • 其实刚上大学的时候上的线性代数课上,也只是简单讲解了特征值特征向量怎么求的。但是并不知道特征值特征向量有什么含义,能做什么,也就是我为什么要求它们。 这几天抽空查了很多的资料,在这里记录一下学习...
  • 面对线性代数中复杂的概念公式,如果我们从几何的角度去审视它们,就好比我们拥有了上帝视角,可以从大局上掌控它们,也可以更深入的理解它们的内涵。逆先来看矩阵的逆。这里我们不会引入复杂的公式去介绍如何...
  • 主成分分析经常被用做模型分类时特征的降维,本篇首先介绍PCA的步骤,并根据步骤撰写对应的MATLAB...那怎么让数据离散呢?离散又用什么指标衡量呢?统计学的知识告诉我们,数据越离散,方差越大。因此,PCA的问题...
  • 小编也是在网上进行了一系列的信息,那么接下来就由小编来给大家分享下小编所收集到与平面方程怎么求相关的信息吧(以下内容来自于网络非小编所写,如有侵权请与站长联系删除)已知两点一个向量都在同一个平面上,两...
  • 矩阵的二范数一般怎么计算??所有元素的平方开根号1-范数:是指向量(矩阵)里面非零元素的个数。类似于棋盘上复两个点间的沿方格边缘的距离。...向量范数:向量x的2范数是x中各个元素平方之.解出...
  • 曲面法向量曲面切平面时候,需要知道曲面法向量,曲面法向量怎么求得的呢? 先给出结论:曲面法向量是三元函数的梯度,曲线法向量是二元函数的梯度
  • 已知点直线平面方程任取直线上一点,与直线外已知点构成向量,显然该向量位于平面内;然后根据直线方程得到直线方向向量,同理这一直线方向向量亦位于平面内。将两向量叉积就能得到垂直于待平面的法向量,最后...
  • 化为参数方程Unity中的使用参数方程的优点向量的垂直向量原理:两个向量垂直的点积为0Unity用法引例二维垂直向量求三维垂直向量原文参考链接 圆椭圆的参数方程 圆的参数方程 特殊圆的参数方程【圆心(0,0),半径R...
  • 内容中包括Annoy,我开源的一个高维空间(近似)最近邻的工具库。在第一部分,我介绍了几个例子,并说明向量模型是非常有用的。在第二部分,我将解释Annoy是怎么去找近似最近邻的(approximate nearest neighbor ...
  • 向量标准化

    2019-10-06 02:29:15
    最近的几次碰到需要单位法向量的时候我都尽量避免,因为记忆里向量和标准化向量相当的麻烦 -_-" 不知道是源码结构好还是啥,感觉这个代码还是挺有启发的,以后矩阵算法可能得好好用起来了 转载于:...
  • 单位向量可以看做一维物体,单位向量实际只有一个坐标轴,垂直于该坐标轴的其他两个坐标轴,无论怎么修改,对该单位向量并没有影响。现在我们已知两个单位向量,要求解一个向量va到另外一个向量vb的旋转矩阵,本质上...
  • 怎么求矩阵对应的基

    2018-12-24 15:39:00
    怎么求矩阵对应的基呢? 对矩阵做初等行变换,化为上三角形 或 对角型, 主对角元素不为0的列即为该矩阵的一组基。 A =这个矩阵对应的一个基 为 ,, 其实,将第二行的 -1 倍加到第一行上,化为 所以基也可以是...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 201
精华内容 80
关键字:

和向量怎么求