| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 深度学习神经网络学习笔记-自然语言处理方向-论文研读-情感分析/文本分类-word2evc-基于向量空间中词表示的有效估计 -> 正文阅读 |
|
[人工智能]深度学习神经网络学习笔记-自然语言处理方向-论文研读-情感分析/文本分类-word2evc-基于向量空间中词表示的有效估计 |
word2evc-基于向量空间中词表示的有效估计目录概念引入逻辑回归 Huffman Tree(哈夫曼树)
可以看出,D是最重要的,那么有这样一个规则:最重要的放在最前面,由此构造了图b的哈夫曼树。 它们的带权路径长度分别为: 图a:WPL = 5 * 2 + 7 * 2 + 2 * 2 +13 * 2 = 54 图b:WPL = 5 * 3 + 2 * 3 + 7 * 2 + 13 * 1 = 48 可见,图b的带权路径长度较小,我们可以证明图b就是哈夫曼树。 语言模型 概率P:语言模型是计算一个句子是是句子的概率。 比如,对ni hao的判定 你好 P = 0.8 基于专家语法规则的语言模型 统计语言模型 计算机借助于统计语言模型的概率参数,可以估计出自然语言中每个句子出现的可能性,而不是简单的判断该句子是否符合文法。常用统计语言模型,包括了N元文法模型(N-gram Model)统计语言模型把语言(词的序列)看作一个随机事件,并赋予相应的概率来描述其属于某种语言集合的可能性。给定一个词汇集合 V,对于一个由 V 中的词构成的序列 S = ?w1, · · · , wT ? ∈ Vn,统计语言模型赋予这个序列一个概率 P(S),来衡量 S 符合自然语言的语法和语义规则的置信度。 通过概率计算 求解: 平滑操作 马尔科夫假设 1齐次马尔科夫假设 2观测独立假设 HMM模型解决的3个问题 换到这里就是 语言模型评价指标:困惑度(Perplexity) 𝑃 (𝑠) = 𝑃 (𝑤1, 𝑤2, … , 𝑤𝑛) = 𝑃(𝑤1)P(𝑤2 𝑤1) … P(𝑤𝑛|𝑤1𝑤2 … 𝑤𝑛?1)
摘要大意
介绍
词的表示方式两种表示方式 评价指标余弦相似度 公式:sim (𝑤𝑜𝑟𝑑1, 𝑤𝑜𝑟𝑑2) = cos(𝑤𝑜𝑟𝑑𝑣𝑒𝑐1, 𝑣𝑜𝑟𝑑𝑣𝑒𝑐2) 该方法的应用场景:
词向量训练方式Log- linear model 跳字模型 ? Word2vec基本思想:句子中相近的词之间是有联系的,比如今天后面经常出现上午,下午和晚上。所以Word2vec的基本思想就是用词来预测词,skip-gram(跳字模型)使用中心词预测周围词,cbow使用周围词预测中心词。(类似K-means)
这样我们这个CBOW的例子里,我们的输入是8个词向量,输出是所有词的softmax概率(训练的目标是期望训练样本特定词对应的softmax概率最大),对应的CBOW神经网络模型输入层有8个神经元,输出层有词汇表大小个神经元。隐藏层的神经元个数我们可以自己指定。通过DNN的反向传播算法,我们可以求出DNN模型的参数,同时得到所有的词对应的词向量。这样当我们有新的需求,要求出某8个词对应的最可能的输出中心词时,我们可以通过一次DNN前向传播算法并通过softmax激活函数找到概率最大的词对应的神经元即可 复杂度的降低两种方式:层次softmax与负采样 我们可以通过最大化这个似然函数来求解二叉树上的参数——非叶节点上的向量,用来计算游走到某一个子节点的概率。 通过构造一颗二叉树,将目标概率的计算复杂度从最初的𝑉降低到了log𝑉的量级。不过付出的代价是人为增强了词与词之间的耦合性。例如,一个word出现的条件概率的变化,会影响到其路径上所有非叶节点的概率变化,间接地对其他word出现的条件概率带来不同程度的影响。因此,构造一颗有意义的二叉树就显得十分重要。实践证明,在实际的应用中,基于Huffman编码的二叉树可以满足大部分应用场景的需求。 构造softmax函数
负采样自然语言处理领域中,判断两个单词是不是一对上下文词(context)与目标词(target),如果是一对,则是正样本,如果不是一对,则是负样本。采样得到一个上下文词和一个目标词,生成一个正样本(positive example),生成一个负样本(negative example),则是用与正样本相同的上下文词,再在字典中随机选择一个单词,这就是负采样(negative sampling)。 负采样的本质:每次让一个训练样本只更新部分权重,其他权重全部固定;减少计算量;(一定程度上还可以增加随机性)
如何采样 使用特殊思维模式;假设整个词汇表只有100个单词;A 表示成one-hot向量;B表示成one-hot向量; 模型输入为A的one-hot向量;模型输出为B的one-hot向量; 假设模型的神经网络结构为10010100;输出层100个; 输出层中除了B对应位置的1外,其他全是0;称这为负样本;参数数量为10*100 采样就是从这样负样本中抽样;比如说抽取5个;那么在此次梯度更新中就只更新10*5;更新数量为原来的1/20 重采样(Subsampling of Frequent Word)使用重采样的原因: 研究成果? 新的模型结构 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 20:59:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |