Log-Linear Models

article/2025/8/15 4:17:35

一,简介

引入

对数线性模型被广泛应用于NLP中,对数线性模型的一个关键优点在于它的灵活性:它允许非常丰富的特征集合被用于模型中。常见的对数线性模型有Logistic回归、最大熵模型、MEMMs和CRFs等。

目的

1,Trigram LM

Trigram LM还是比较有效的,但是它并没有充分使用上下文 w1,w2,...,wi1 w 1 , w 2 , . . . , w i − 1 的 信 息 。例如它在线性插值的平滑估计中只用到了三种上下文信息的特征trigram、bigram和unigram,如下式所示:

1

但实际上我们充分利用上下文信息的各种特征如skip bigram、词性特征、拼写特征、存在特征、搭配特征等等,如下所示:

2
前三个是trigram、bigram、unigram特征,剩余的分别是skip bigram、词性特征、拼写特征、存在搭配特征等。

2,POS tagging

POS tagging的目标是建模如下的条件分布:

1

显然在估计参数时也需要很好地合并上下文信息的各种特征。
例如下面的那些上下文特征:

1

总结:这种将上下文信息的各种特征通过线性插值的这种方式合并起来十分的笨重,但对数线性模型却可以非常好地将上下文的各种特征很好的合并起来!

二,对数线性模型

基本定义

1
2
3

特征

基本定义如下:

1

1,构造特征

每一个特征都会是一个指示函数,即当(x,y)符合某种条件时返回1,否则返回0。将指示函数表示成特征在NLP是及其常见的。

例如在language modeling中的特征向量的各个特征分量可以用如下指示函数来表示:

1

2,使用特征模板来定义特征

由于在实际中,每一个特征指示函数都是不一样的,而且它们的数量和训练语料成正比,所以,在定义它们的时候需要把那些相似的特征指示函数定义成一个特征类,即特征模版
feature template的定义形式如下:

1
1

要注意的是所有特征模板中,特征指示函数的下标不能相同,所以需要用一个相同的哈希函数来将各种上下文信息的映射到一个不同的整数。

3,特征稀疏

由上面的定义可想而知,这个特征向量是十分稀疏的,即 fi(x,y)=1 f i ( x , y ) = 1 的数量相对于特征向量的维数d来说是十分小的!所以为了提高效率,我们需要定义一个集合:

1

这样在计算内积时,就可以这样计算来提高效率:

1

对数线性模型的形式

对数线性模型的形式如下:

p(y|x;v)=exp(vf(x,y))yYexp(vf(x,y)) p ( y | x ; v ) = exp ⁡ ( v ⋅ f ( x , y ) ) ∑ y ′ ∈ Y exp ⁡ ( v ⋅ f ( x , y ′ ) )

内积 vf(x,y) v ⋅ f ( x , y ) 是这个表达式的关键,因为它越大整个式子也越大。分母其实是一个规范化因子,保证了 yYp(y|x;v)=1 ∑ y ∈ Y p ( y | x ; v ) = 1 ,使输出能称为一个概率分布。

之所以叫它对数线性模型是因为:

1
2

对数线性模型的参数估计

1,最大似然估计

(1)对数似然函数如下:

L(v)=i=1nlogp(y(i)|x(i);v) L ( v ) = ∑ i = 1 n log ⁡ p ( y ( i ) | x ( i ) ; v )

(2)最大化:

vML=argmaxvRdL(v) v M L = a r g m a x v ∈ R d L ( v )

但这样会出现一个问题!就是当某个特征指示函数 fk(x(m),y(m)) f k ( x ( m ) , y ( m ) ) 的值为1时,最大似然估计会促使该特征对应的权重v_k趋近于 + + ∞ ,使得 p(y(m)|x(m;v)=1 p ( y ( m ) | x ( m ; v ) = 1 ,显然这会导致模型泛化能力的大大下降!

所以我们需要在对数似然函数中加入正则化來使模型有选择较小特征权重的偏好。

2,正则化的最大似然估计

(1)对数似然函数如下(此处加的是L2正则化项):

L(v)=i=1nlogp(y(i)|x(i);v)λ2kv2k L ′ ( v ) = ∑ i = 1 n log ⁡ p ( y ( i ) | x ( i ) ; v ) − λ 2 ∑ k v k 2

λ>0λ 其 中 λ > 0 , 可 以 通 过 验 证 集 来 选 择 较 好 的 λ 值 。

(2)最大化:

v=argmaxvL(v) v ∗ = a r g m a x v L ′ ( v )

3,找到最优参数

由于 L(v)L(v) L ( v ) 和 L ′ ( v ) 都是凸函数,所以可以使用梯度下降法来求解:

1
其中梯度的形式如下:
1
其中第一部分可以看做是训练集中 fk f k 特征出现的数量,而第二部分可以看做是训练集中 fk f k 特征出现数量的期望。
2

当然也可以使用改进的迭代尺度法、拟牛顿法等等,在实际中,对数线性模型的参数估计通常用的一种方法是L-BFGS,它属于拟牛顿法。


http://chatgpt.dhexx.cn/article/95TttG49.shtml

相关文章

Android getText(int resId)和getString(int resId)

Android提供多种获取资源文件方法&#xff0c;但是需要注意以下方法&#xff1a; CharSequence getText(int resId)&#xff1a;返回本地、样式化的字符。 String getString(int resId) &#xff1a;返回字符串 比如&#xff1a; String.xml文件中定义资源文件&#xff1a; <…

Resid

关于Resid服务器闪退问题&#xff0c;导致客户端&#xff1a;Could not connect to Redis at 127.0.0.1:6379: 由于目标计算机积极拒绝无法连接解决方案。 前言&#xff1a;最近在整理计算机文档时发现过去学习过程中自己出现bug和解决办法&#xff0c;就整理一下发到个人博客…

redis05-Resid数据类型综合实践案例

Resid数据类型综合实践案例 业务场景 1.计数器 解决方案 设计计数器&#xff0c;记录调用次数&#xff0c;用于控制业务执行次数。以用户id作为key,使用此时作为value在调用前获取次数&#xff0c;判断是否超过限定次数&#xff0c;不超过次数的情况下&#xff0c;每次调用计…

ResDrawableImgUtil【根据图片名称获取resID值或者Bitmap对象】

版权声明&#xff1a;本文为HaiyuKing原创文章&#xff0c;转载请注明出处&#xff01; 前言 根据图片名称获取项目的res/drawable-xxdhpi中相应资源的ID值以及bitmap值的封装类。 效果图 代码分析 根据图片名称获取图片的resID值有两个方案&#xff0c;选其一即可。 使用步骤 …

Android - Context中的getText(int resId)方法和getString(int resId)方法的区别

Android开发中&#xff0c;经常在Activity中使用getText(int resId)和getString(int resId)这两个方法&#xff0c;那么这两个方法有什么区别和联系呢&#xff1f; 这两个方法的参数都是资源ID&#xff0c;区别在于getText(int resId)返回的是一个CharSequence&#xff0c;而ge…

Resources类中getString (int ResID)与getText (int ResID)的区别

Resources类中getString (int ResID)与getText (int ResID)的区别 getString (int ResID)和getText (int ResID)都是Resources类中方法&#xff0c;都是获取资源文件中的字符串资料。 getString (int ResID)&#xff1a;是获得资源文件的字符串资源&#xff08;XML文件中Strin…

【Redis】5. Resid数据类型综合实践案例

Resid数据类型综合实践案例 业务场景 1.计数器 解决方案 设计计数器&#xff0c;记录调用次数&#xff0c;用于控制业务执行次数。以用户id作为key,使用此时作为value在调用前获取次数&#xff0c;判断是否超过限定次数&#xff0c;不超过次数的情况下&#xff0c;每次调用计…

springboot打成jar后获取resources下文件失败, cannot be resolved to absolute file path because it does not resid

读取resources下的文件quotaShow.jasper 本地开发环境能正常下载&#xff1a; ClassPathResource resource new ClassPathResource("jasper" File.separator "quotaShow.jasper"); reportFile resource.getFile(); 打jar包发布至linux服务器时报错&am…

Resid作为缓存可能遇到的问题

1.缓存的执行流程 前台请求&#xff0c;后台先从缓存中取数据&#xff0c;取到直接返回结果&#xff0c;取不到时从数据库中取&#xff0c;数据库取到更新缓存&#xff0c;并返回结果&#xff0c;数据库也没取到&#xff0c;那直接返回空结果。 [外链图片转存失败,源站可能有…

动态修改android中的资源索引resId

目录 一、引言 1、为什么要动态修改资源索引 2、怎么修改资源索引 3、什么时候修改 二、处理Task及R文件 1、处理Task 2、修改R文件 三、处理编译后的二进制文件 1、编译后的文件在哪&#xff1f; 2、解压、压缩AP_文件 3、修改resources.arsc文件的pkgId 4、修改Xm…

Redis安装(Windows环境)

文章目录 一、Resid简介&#xff1a;二、下载Redis三、启动Redis服务四、设置Windows服务五、常用的Redis服务命令六、cmd启动服务&#xff1a;七、操作测试Redis 一、Resid简介&#xff1a; Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分…

Resid总结

Redis是什么&#xff1f; Redis&#xff1a;REmote DIctionary Server(远程字典服务器&#xff09; 是完全开源免费的&#xff0c;用C语言编写的&#xff0c;遵守BSD协议&#xff0c;是一个高性能的(key/value)分布式内存数据库&#xff0c;基于内存运行并支持持久化的NoSQL数…

Redis系列(一):各大厂都在用的Resid到底是什么?

一、redis是什么&#xff1f; 1.Redis的定义 先上一段官方定义&#xff1a;Redis 是开源免费&#xff08;遵守BSD协议&#xff09;、高性能的key-value数据库。 是不是觉得上面的一句话既熟悉又陌生&#xff0c;作者怎么想的为啥开源免费&#xff1f;BSD协议又是什么&#x…

opencv 实现图像高斯金字塔

函数&#xff1a; dst cv.pyrDown( src[, dst[, dstsize[, borderType]]] ) # 高斯金字塔下采样 参数&#xff1a; src 源图像. dst 输出图像&#xff1b;它有着指定的大小&#xff0c;和源图像有着相同的类型. dstsize 输出图像的大小. borderType 像素外延方法. 默认情况下&…

图像增强中的高斯金字塔/拉普拉斯金字塔 融合

1.高斯金字塔 注意区分&#xff1a;高斯金字塔层级越高&#xff0c;分辨率越低。但下层&#xff08;第i层&#xff09;得到上层&#xff08;第i1层&#xff09;的过程叫做下采样&#xff0c;有些地方用reduce描述这个过程。 图像的金字塔化过程实际上是先平滑、再下采样的过程…

python --opencv图像处理金字塔(高斯金字塔、拉普拉斯金字塔)

引言 前面的文章中&#xff0c;我们有用过图像方法或者缩小的函数 resize() &#xff0c;这个函数既可以放大图像&#xff0c;也可以缩小图像&#xff0c;其中&#xff1a; 缩小图像&#xff1a;一版使用 CV_INETR_AREA &#xff08;区域插值&#xff09;来插值。放大图像&am…

高斯金字塔及拉普拉斯金字塔的Matlab实现

1、高斯金字塔计算步骤 &#xff08;1&#xff09;对第 i i i 层图像进行高斯内核卷积&#xff1b; &#xff08;2&#xff09;将所有偶数行和列去除&#xff08;下采样&#xff09;&#xff0c;得到第 i 1 i1 i1 层图像&#xff1b; &#xff08;3&#xff09;对原始图像不…

【C++】高斯金字塔和拉普拉斯金字塔原理和实现

【C】高斯金字塔和拉普拉斯金字塔原理和实现 图像中各个像素与其相邻像素之间的有很强的相关性&#xff0c;包含的信息也十分丰富&#xff0c;目标的尺寸有大有小&#xff0c;对比度有强有弱&#xff0c;此时就需要一个“显微镜”或者“望远镜”-----多尺度图像技术。它可以在…

python 高斯金字塔_12、高斯金字塔、拉普拉斯金字塔与图片尺寸缩放(示例代码)...

一、引言 我们经常会将某种尺寸的图像转换为其他尺寸的图像&#xff0c;如果放大或者缩小图片的尺寸&#xff0c;笼统来说的话&#xff0c;可以使用OpenCV为我们提供的如下两种方式&#xff1a; (1)resize函数。这是最直接的方式&#xff0c; (2)pyrUp( )、pyrDown( )函数。即图…

高斯金字塔的构建步骤

转自&#xff1a;https://www.cnblogs.com/starfire86/p/5735061.html SIFT(Scale-Invariant Feature Transform&#xff0c;尺度不变特征转换)在目标识别、图像配准领域具有广泛的应用&#xff0c;下面按照SIFT特征的算法流程对其进行简要介绍对SIFT特征做简要介绍。 高斯金字…