主页

LDA主题模型

LAD(Latent Dirichlet allocation)指的是隐含狄利克雷分布,是一种主题模型,可以将文档的主题按照概率分布的形式给出,是一种无监督学习方式。 LDA 中,生成文档的过程如下: 按照先验概率$p(d_i)$选择一篇文档$d_i$ 从Dirichlet分布$α$中取样生成文档$d_i$的主题分布$θ_i$,主题分布$θ_i$由超参数为$α$的Dirichlet分布生成 从主题的多项式分布$θ_i$中取样生成文档$d_i$第 j 个词的主题$z_{i,j}$ 从Dirichlet分布$β$中取样生成主题$z_{i,j}$对应的词语分布$\phi_{z_{i,j}}$,词语分布$\phi_{z_{i,j}...

阅读更多

使用t-SNE可视化高维数据

定义 t-SNE,全称指的是t-distributed Stochastic Neighbor Embedding,t-SNE(TSNE)将数据点之间的相似度转换为概率。原始空间中的相似度由高斯联合概率表示,嵌入空间的相似度由“随机t分布”表示。 虽然Isomap,LLE和variants等数据降维和可视化方法,更适合展开单个连续的低维的manifold。但如果要准确的可视化样本间的相似度关系,t-SNE表现更好。因为t-SNE主要是关注数据的局部结构。

阅读更多

Embedding的理解

Embedding 是一个将离散变量转为连续向量表示的一个方式。在神经网络中,embedding 是非常有用的,因为它不光可以减少离散变量的空间维数,同时还可以有意义的表示该变量。 embedding 有以下 3 个主要目的: 在 embedding 空间中查找最近邻,这可以很好的用于根据用户的兴趣来进行推荐; 作为监督性学习任务的输入; 用于可视化不同离散变量之间的关系。

阅读更多

点互信息和互信息

点互信息PMI 点互信息PMI(Pointwise Mutual Information)这个指标来衡量两个事物之间的相关性(比如两个词)。 其公式如下: \[PMI(x:y) = log frac{p(x,y)}{p(x)p(y)} = log frac{p(x|y)}{p(x)} = log frac{p(y|x)}{p(y)}\]

阅读更多

归纳偏置

定义 一个具体的学习算法,必须要产生一个模型,这时,学习算法本身的“偏好”就会起到关键的作用; 任何一个有效的机器学习算法必有其归纳偏置,否则它将被假设空间中看似在训练集上“等效”的假设所迷惑,进而无法产生确定的学习结果; 如果没有偏好,则该模型在每次同样的输入中,输出的结果并不一致,所以该学习没有意义。 以下图为例,在训练过程中需要找到一条穿过所有训练样本的曲线。而对于有限个样本组成的训练集,存在多条曲线与其一致,所以需要有偏好才能选择出一条合适的曲线。

阅读更多

论文笔记: Abstract Meaning Representation for Sembanking

论文链接:https://amr.isi.edu/a.pdf 定义 与传统树形结构不同,采用单根 有向无环图(single root,DAG graph)结构; 忽略虚词、介词等,忽略词的形态变化(如复数、过去时等); 在这个DAG图中,叶子结点表示概念,非叶子结点表示虚结点,虚结点到虚结点的边表示概念之间的关系,虚结点到叶子结点表示实例化的过程。 例子 the boy wants to go.

阅读更多

常见激活函数

sigmod函数 sigmod函数公式如下: \[\sigma(x) = \frac{1}{1+e^{-x}}\] 输出范围:[0,1],常用于用于隐层神经元输出 缺点: 当输入稍微远离了坐标原点,函数的梯度就变得很小了,几乎为零。在神经网络反向传播的过程中,我们都是通过微分的链式法则来计算各个权重w的微分的。当反向传播经过了sigmod函数,这个链条上的微分就很小很小了,况且还可能经过很多个sigmod函数,最后会导致权重w对损失函数几乎没影响,这样不利于权重的优化,这个问题叫做梯度饱和,也可以叫梯度弥散。 函数输出不是以0为中心的,这样会使权重更新效率降低。对于这个缺陷,在斯坦福的课程里面有详细的解释。 sigmod函数要进行指数运算,这个对于计算机来说是比较慢的。

阅读更多

conda activate激活环境出错的解决办法

出现错误情况 今天在实用Anaconda激活python3.6环境的时候出现了如下错误: [zsq@localhost ~]$ conda activate python36 CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. To initialize your shell, run $ conda init <SHELL_NAME> Currently supported shells are: - bash - fish - tcsh - xonsh - zsh - powershell See 'c...

阅读更多

一种最快速、最稳定的tensorflow安装方法

一些常见的坑 今天在python3.7环境下安装tensorflow出现了各种意外,最终还是解决了。首先是tensorflow与cuda版本之间不匹配,tensorflow1.0版本以上是不支持cuda8.0以下的。接着又是tensorflow与python版本不匹配,目前python3.7虽然能够使用tensorflow,但是需要一些修改,而使用python3.6就可以轻易安装了。 通过今天遇到的坑,总结出一种快速无误安装tensorflow的方式,通过使用Anaconda自动匹配安装tensorflow及其依赖的文件。 安装Anaconda 首先,通过Anaconda下载符合你系统的命令行安装包或者图形安装包。Graphical Installer表示图形安装包,一步一步安...

阅读更多

keras报错TypeError:softmax() got an unexpected keyword argument 'axis'的解决办法

出现错误情况 今天在使用keras的时候出现了如下错误: TypeError:softmax() got an unexpected keyword argument 'axis' google一下,发现主要是tensorflow与keras版本不匹配的问题,而tensorflow与cudnn之间也存在版本匹配的问题,要同时找到3个互相匹配的版本实在有点麻烦。 最后,我总结出了一个在Anaconda环境下的解决版本,强烈推荐使用Anaconda来安装各种环境,它能够允许你快速安装相同软件的不同版本,同时能够自动下载某些模块依赖的模块,正确使用Anaconda可以节省很多不必要的时间去解决错误。 解决过程 首先,卸载tensorflow和keras包,在conda环境下执行下列...

阅读更多