nlp处理问题流程思路总结

nlp处理问题流程思路总结
概述:

经过一段时间对nlp课程的学习,对nlp处理流程思想有了一定的了解,具体处理过程为,遇到一个问题,先要把这个问题处理为一个数学问题(目标和约束条件);然后对这个数学问题判断是否为凸函数,是凸函数的话进行转换为Dual问题(所有问题默认为prinal问题),转换后进行判断与原问题(prinal问题)是否相同,如果相同进行查找相关工具处理,如果不同,需要评估两者最优解之间的差别有多大处理(gap),下面以svm为例进行简单说明。

问题描述:

假设有一批数据 d={(x_1 y_1 )……(x_n y_m )} y_i∈{-1 ,1}

约束条件 当w^T x_i+b ≥0 y_i=1 当w^T x_i+b <0 y_i=-1 可以改进为 (w^T x_i+b)≥0 ,给定一条分割线,它要离分割两遍样本距离最远(max mangin)假设数据线性可分

1.nlp问题转换成数学问题的思路

已知问题如图:

w向量方向垂直于wx+b =0决策边界这条线段(证明推导略),得到 x1=x2+λw (w^T x_1+b)= 1 (w^T x_2+b)= -1 mangin= | x_1- x_2| ,把以上公式进行简化为:

(w^T x_1+b)= 1 w^T( x_2+λw)+b= 1 wTx_2+λwTw+b= 1 求导λ= 2/(w^T w) 由 mangin= | x_1- x_2| 求导出 mangin=2/||w||

知道了mangin值就可以得出svm目标函数:最大化mangin maxminize 2/||w||

约束条件: w^T x_i+b ≥1 y_i=1 w^T x_i+b ≤-1 if y_i=-1

最小化目标函数可写成 minminize ||w||_2^2 约束条件: w^T x_i+b ≥1 y_i=1 w^T x_i+b ≤-1 y_i=-1

2.是否为凸函数判断方法

判断是否为凸函数有三种方法:

1)凸集定理方式,需要关注定义域和函数本身 在线段内部都属于凸集合,两个凸集的交集也是凸函数

2)求导一阶导数证明判断(梯度下降收敛结论时常使用的方式)

2)求导二阶导数证明判断

3.非凸函问题数处理过程

1)Naïve方法,存在问题是时间复杂度很高,会形成np hard的问题 这个问题也powerset,找到满足条件的集合终止

2)贪心算法 选择哪个集合不需要的去掉,但是不保证结果的最优化,无法选出不需要的集合是停止算法,最严谨的说法,就是利用此方法可以证明误差范围在哪,可以保证一定的准确率

3)把离散型的看做连续性的数进行处理

4)把非线性的部分转换成线性的方式,然后在进行近似解的处理

4.凸函数问题转换为Dual问题并进行处理

svm prinal问题表达,目标函数 minminize 1/2||w||_2^2 约束条件 y_i(w^T x_i+b)-1 ≥0 利用ktt条件写法改进 L= 1/2 ||W||_22+∑_(i=1)nλ_i [1-y_i (w^T x_i+b)] 约束条件: λ_i ≥0 ∀i λ_i [1-y_i (w^T x_i+b)] = 0 ∀i 1-y_i (w^T x_i+b) ≤0 ∀i

转换Dual问题:

w求导: σL/σw=W+∑_(i=1)^nλ_i (-y_i x_i)=∑_(i=1)^nλ_i y_i x_i =0

b求导: σL/σb=∑_(i=1)^nλ_i y_i =0

目标函数综合写成 -1/2∑_(i=1)n∑_(j=1)nλ_i λ_j y_i y_j x_ix_j+∑_(i=1)^nλ_i 约束条件 λ_i ≥0 ∀i ∑_(i=1)^nλ_i y_i x_i =0 ∀i w=∑_(i=1)^nλ_i y_i x_i λ_i [1-y_i (w^T x_i+b)] = 0 ∀i 因为位置函数有w变成了λ变成了典型的qp问题,转换完成

5.Dual问题与prinal问题区别与联系

区别:

1) 原来需要优化的未知参数是w 而新的问题是优化未知参数λ,可以看成λ二次方的问题是典型的qp问题

2)Dual问题比原来prinal问题好优化

计算复杂度方面解释:prinal问题需要从低纬度转换为高纬度需要计算,高纬度还需要另一次计算,这样导致时间复杂度过高,而Dual问题提高维度后计算复杂度和原维度计算复杂度基本一致,因为多出一个内积的计算,具体举例:

第一个写页面的公式,有些可能不正确,希望大家批评指正,未完 后期知识点细化

原文来自本人知乎:https://zhuanlan.zhihu.com/p/54521985

参考资料

贪心学院 NLP训练营第一期课程内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值