自然语言处理学习之二

Day 2

神经网络模型

基本框架

  • 第一层:输入层。例如输入几个词:我 今天 下午,并初始化化为向量: v(Context(w)1), v(Context(w)2), v(Context(w)3)。训练样本:(Context(w),w)包括前n-1个词分别的向量,假定每个词向量大小为m
  • 第二层:投影层。大小为**(n-1)*m**的首尾拼接在一起的大向量。 将w1,w2,w3的向量拼接在一起形成W。在这里,word2vec的神经网络训练除了要训练各层之间的参数,同时还要对输入层进行迭代优化,以得到适合的词向量。
  • 第三层:隐藏层
  • 第四层:输出层。yw = (yw1,yw2,…,ywN)^T:我 今天 下午 第N个词,即预测第N个词出现的概率,作为label。

在这里插入图片描述

神经网络的优势

  • 对于同义的词汇,比如网咖和网吧,如果网吧出现的次数多,那么通过N-gram模型,“我去网卡”的出现概率是大于“我去网吧”的,但是神经网络模型计算出来,两者的向量空间是类似的,因此概率是近似相等的。
  • 就比如,猫在院子里跑狗在院子里跑,神经网络模型会考虑都是动物在院子里跑,会将两者出现的次数合并,计算作为两者共同的概率。
  • 因此,神经网络可以得到两者之间近似的含义,且符合真实的逻辑和规律。

实现word2vec模型

Hierarchical Softmax(分层)

在这里插入图片描述

  • CBOW (Continuous Bag-of-Words)
    1.一种根据上下文的词语预测当前词语的出现概率的模型。使用似然函数求解:给定上下文,求解使概率最大的w是什么,概率值越大越好。
    在这里插入图片描述2.哈夫曼树
    哈弗曼树是一种带权路径长度最短的二叉树,也称为最有二叉树。
    在这里插入图片描述
    图a:WPL = 5 * 2 + 7 * 2 +2 * 2 +13 * 2 = 54
    图b:WPL = 13 * 1 + 7 * 2 +2 * 3 +5 * 3 = 48
    可以看出b的带权路径长度最短。所以b是哈弗曼树

    为什么会用到哈弗曼树呢?
    在我们日常生活中,其实最常用的词汇就那么几百个,出现的概率也越高,所以,我们可以用权数来代表词频。如下图,出现的频率可能最高,次之,再次之。这就是分层思想。
    在这里插入图片描述
    如何创建一棵哈弗曼树?
    在这里插入图片描述a.初始森林
    b.一次合并:将权重最小的两个(词频最小的两个词)放到最下面
    c.二次合并
    d.哈弗曼树

    哈弗曼树还有什么作用?
    如最右侧的编码树,哈夫曼树可以给每一个词汇编码,即哈夫曼编码,假设左0右1,比如B可以表示为1-0

3.Logistic回归
为什么要用到Logistic回归呢?
因为在哈弗曼树中,从一个节点出发,往左走还是往右走需要进行判断,所以我们可以用二分类算法来进行计算和判断。

在这里插入图片描述
通过h(x)得到[0,1]之间的一个概率值。Softmax实际上是一个多分类逻辑回归,是将很多个逻辑回归组合在一起。此处注意g(x)的导数求解,后面的推导会用到这个结果。

4.CBOW模型详解
在这里插入图片描述
输入层:是上下文的词向量。在训练CBOW模型时,词向量只是模型的一个参数,是副产品。开始可以是随机值,随着训练进行不断被更新。我们需要更新还有层与层之间的权重参数。

投影层:对输入层求和,即向量加法。

输出层:输出最可能的w。语料库中词汇量是固定的|C|个,上述过程可以堪称是多分类问题。给定特征,从|C|个分类中挑一个。
在这里插入图片描述上图是一些符号的含义。
在这里插入图片描述假设正例往右,负例往左。正例概率>0.5,对应的负例概率就<0.5,由此可以判断从根节点往下的走向。图中红色粗线所示,先左再右再右再左,最终到达足球这个词。第一次负例,第二次正例,第三次正例,第四次负例。最后结果为足球的概率为前四次概率的乘积。
在这里插入图片描述求解参数θ和x:将每一次的正负例概率判断公式代入到目标函数—似然函数中。我们使用对数似然可以将累乘转化为累加,简化计算,但并不影响最后的结论。
在这里插入图片描述
我们的目标是是概率最大,因此是一种梯度上升的求解方法。找极值的话,思路便是求导。用当前的似然函数对θ进行求导。此时用到了之前证明的sigmoid函数的倒数结果,log(σ(x))的导数要除以σ(x)本身,所以在对数下,求导后只剩下了(1-σ(x)),后面理解起来就容易多了。

同理,对x求导,结果是一致的,词向量越准确,越适合,上下文预测的效果也就越好,所以x也需要更新。此处的xω是指投影层的词向量,即输入层的向量和。

另外需要注意的是,我们目标是概率值最大,即梯度上升的方法,所以参数更新时:原来参数+η * (上述结果)

迭代就可以开始了!

一个小问题
xω是上下文词向量的和,不是单个词的词向量,如何将这个更新量应用到每个词的词向量上去呢。word2vec采取的是直接将 xω的更新量整个应用到每个单词的词向量上去。

好处是:更新朝着一个整体的趋势进行,词分布的空间趋于类似,符合上下文的逻辑。
在这里插入图片描述

Negative Sampling(负采样)(对分层的优化)

对于哈夫曼树,如果语料库非常大,计算复杂度还是非常高的,基于这个问题,有另一种解决方案,即负采样。

关于向左走还是向右走的问题=是或不是的问题。比如我今天下午打(),我们希望最终预测是篮球,那就,否则就不是。但是负样本那么多,我们如何选取的。

在这里插入图片描述
对于给定的正样本,我们希望(Context(w),w) 最大化正确的可能性。

在这里插入图片描述
解决思路
任何采样算法都应该保证频次越高的样本越容易被采样处理。基本思路就是对于长度为1的线段,根据词频将其公平地分配给每个词语。
在这里插入图片描述在这里插入图片描述接下来我们生成一个0-1之间的随机数,看落到哪个区间,就能采样到该区间对应的单词,是公平的的方式。

在这里插入图片描述g(w) = 正确的概率 * (1-错误的概率)
之后推导与上文类似。
在这里插入图片描述参数更新也与上文类似。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 目标检测的定义 目标检测(Object Detection)的任务是找出图像所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。 目标检测任务可分为两个关键的子任务,目标定位和目标分类。首先检测图像目标的位置(目标定位),然后给出每个目标的具体类别(目标分类)。输出结果是一个边界框(称为Bounding-box,一般形式为(x1,y1,x2,y2),表示框的左上角坐标和右下角坐标),一个置信度分数(Confidence Score),表示边界框是否包含检测对象的概率和各个类别的概率(首先得到类别概率,经过Softmax可得到类别标签)。 1.1 Two stage方法 目前主流的基于深度学习的目标检测算法主要分为两类:Two stage和One stage。Two stage方法将目标检测过程分为两个阶段。第一个阶段是 Region Proposal 生成阶段,主要用于生成潜在的目标候选框(Bounding-box proposals)。这个阶段通常使用卷积神经网络(CNN)从输入图像提取特征,然后通过一些技巧(如选择性搜索)来生成候选框。第二个阶段是分类和位置精修阶段,将第一个阶段生成的候选框输入到另一个 CNN 进行分类,并根据分类结果对候选框的位置进行微调。Two stage 方法的优点是准确度较高,缺点是速度相对较慢。 常见Tow stage目标检测算法有:R-CNN系列、SPPNet等。 1.2 One stage方法 One stage方法直接利用模型提取特征值,并利用这些特征值进行目标的分类和定位,不需要生成Region Proposal。这种方法的优点是速度快,因为省略了Region Proposal生成的过程。One stage方法的缺点是准确度相对较低,因为它没有对潜在的目标进行预先筛选。 常见的One stage目标检测算法有:YOLO系列、SSD系列和RetinaNet等。 2 常见名词解释 2.1 NMS(Non-Maximum Suppression) 目标检测模型一般会给出目标的多个预测边界框,对成百上千的预测边界框都进行调整肯定是不可行的,需要对这些结果先进行一个大体的挑选。NMS称为非极大值抑制,作用是从众多预测边界框挑选出最具代表性的结果,这样可以加快算法效率,其主要流程如下: 设定一个置信度分数阈值,将置信度分数小于阈值的直接过滤掉 将剩下框的置信度分数从大到小排序,选值最大的框 遍历其余的框,如果和当前框的重叠面积(IOU)大于设定的阈值(一般为0.7),就将框删除(超过设定阈值,认为两个框的里面的物体属于同一个类别) 从未处理的框继续选一个置信度分数最大的,重复上述过程,直至所有框处理完毕 2.2 IoU(Intersection over Union) 定义了两个边界框的重叠度,当预测边界框和真实边界框差异很小时,或重叠度很大时,表示模型产生的预测边界框很准确。边界框A、B的IOU计算公式为: 2.3 mAP(mean Average Precision) mAP即均值平均精度,是评估目标检测模型效果的最重要指标,这个值介于0到1之间,且越大越好。mAP是AP(Average Precision)的平均值,那么首先需要了解AP的概念。想要了解AP的概念,还要首先了解目标检测Precision和Recall的概念。 首先我们设置置信度阈值(Confidence Threshold)和IoU阈值(一般设置为0.5,也会衡量0.75以及0.9的mAP值): 当一个预测边界框被认为是True Positive(TP)时,需要同时满足下面三个条件: Confidence Score > Confidence Threshold 预测类别匹配真实值(Ground truth)的类别 预测边界框的IoU大于设定的IoU阈值 不满足条件2或条件3,则认为是False Positive(FP)。当对应同一个真值有多个预测结果时,只有最高置信度分数的预测结果被认为是True Positive,其余被认为是False Positive。 Precision和Recall的概念如下图所示: Precision表示TP与预测边界框数量的比值 Recall表示TP与真实边界框数量的比值 改变不同的置信度阈值,可以获得多组Precision和Recall,Recall放X轴,Precision放Y轴,可以画出一个Precision-Recall曲线,简称P-R
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值