5.23-semi-supervised半监督学习

先搞清楚概念上的问题,transductive learning直推式学习和inductive learning归纳学习。transductive和inductive的区别在于我们想要预测的样本,是不是我们在训练的时候已经见(用)过的,其中直推就是见过,归纳是没见过。

transductive learning直推式学习:由当前学习的知识直接推广到给定的数据上。在学的时候就已经是半学半用了。对应于domain adaptation领域自适应,给定训练的数据包含了目标域数据,要求训练一个对目标域数据有最小误差的模型。

inductive learning归纳学习:从已有数据中归纳出模式来,应用于新的数据和任务。等完全学好了再试着用。对应于meta-learning元学习,要求从诸多给定的任务和数据中学习通用的模式,迁移到未知的任务和数据上。

还有一个要定义好的就是  与 ,这俩都是没有label的数据,但是用途不一样:un是指在半监督学习中,参与训练的无标记数据;te则是用来测试的,不参与训练的无标记数据。与他们们相对于的就是参与训练的标记数据 。

直推归纳和半监督是两个赛道,也可以融合,比如如果un既参与了训练,又是test的一部分,那么就叫transductive semi-supervised learning。


半监督学习发挥作用是基于假设,如果假设是合理正确的,那就是有用的。

这里先从之前讲的generative model来讲半监督的生成模型,生成模型就是之前在讲分类模型的时候,讲了两种,一种是根据数据生成一个合适的高斯分布函数,一种是discriminative model判别模型,也就是讲的逻辑回归的那个,直接求(w,b)这组参数的。

如上图,蓝色和橙色都是有标记的,正常的生成模型就会根据两者的分布,生成两个合适的高斯模型,然后判决线就出来了。绿色的是无标记的数据,他们的存在和分布会影响生成的高斯分布,如虚线所示。这些影响是否有效,就是半监督是否有用。

过程:如下图,首先生成一组随机的θ,然后开始计算每个中的x属于C1的概率P,然后我们就可以根据P的情况来更新参数,具体的公式在下面,比起全监督的会有一些小改变。然后就会更新新的参数,然后循环这两步。

理解:原来的情况是通过Pθ来算Lθ的最小,现在则需要加上未标记的X,这个x因为不知道具体是哪个类的,所以两个类的可能性都要算,然后得到最好的一组θ。这里没怎么讲清楚就说原来的情况是closed-form solution封闭解,半监督的是solved iteratively迭代解。封闭解相当于解析解,解析解就是给出解的具体函数形式,从解的表达式中就可以算出任何对应值;迭代解相当于数值解,就是用数值方法求出近似解,比如这里半监督的就是通过迭代一步步近似出一个local minima。

然后会基于下面这种低密度分离的情况来讲半监督学习,低密度分离就是指非黑即白,也就是在分解处没有很多的数据,数据要么左边要么右边。那如果没有绿色的无标记的数据,其实两条红线的分离都是可以的,但是如果考虑绿色无标记的,那么左边这条就好一点。

低密度分离中的最经典的就是self-training,自学习的方式。下面浅讲一下自学习的步骤,他和生成模型的方法不太一样,它的过程是先拿有label的数据用随便什么方法训练出一个模型f*,然后拿这个f*来计算无标记的xu,得到yu,叫做伪标记pseudo-label,注意这里有一个操作是随机移除部分伪标签,放回到无标注数据集中,然后再拿剩下的(xu,yu)重新一起训练f*。然后重复这几步,直到模型不再发生改变。

但是对于回归模型,这种自学习是行不通的,因为回归模型返回的是具体的唯一的数值,不会因为模型而改变。

然后其实可以发现上面讲的两种方法是类似的,但是自学习不归于半监督学习,那个生成模型的是归于半监督的。它们只是利用数据的方式不同,self-training利用的是hard label,generative model利用的是soft label,下面解释了什么是软硬标签,比如现在对某个θ*算出的x是[0.7,0.3],那么硬标签就直接判为类别1,然后用[1,0]参与下一次计算,而软标签则保留概率,仍然用[0.7,0.3]参与计算。很明显软标签的使用是doesn't work的,因为数值都没改变。


下一步(或者说一些进阶的方法)——基于熵的正则化

就是说现在对于某组θ*,已经算出来了对于的伪标签yu,如何去写loss函数。在低密度分布中,当然是集中的分布最好,不要散漫,如下图三种情况。那么如何用式子来描述这种聚集程度,就是熵entropy的计算。公式就是这个E(yu),大概就是负的y属于当前类的概率乘以概率的ln值的和,搞不清楚也没事,直接看计算的结果,good的情况算出来都是0,散乱程度很小。这个bad算出来则是ln5,所以这就可以写道loss函数里面去了,如下图C这个就是有标记数据的loss公式,然后加上黄色的无标记的E即可。然后继续做梯度下降即可。

然后还有一个半监督的支持向量机,思路是对于无标记的数据,穷举所有可能的分布情况,来算这个boundary,然后比较得出最优的一个。当然会有疑问,数据量大的时候穷举运算量也会很大,然后左下角的论文就说可以每次改变一个数据的可能分布情况然后慢慢迭代。

smoothness ssumption平滑假设,也叫近朱者赤近墨者黑。

简单来说就是认为相似的x,会有同样的y。这个相似的定义是指在同一个高密度区域里面,被一个高密度通道连接,比如下面的x1和x2就是相似的,他们和x3就是不相似的。

这个在具体的应用中也是可以解释通的,比如下面的手写数字,这两个2之间是会有一系列过渡的相同,而2和3之间没有。左侧脸和右侧脸中间也会有一系列相同的过度,最终会被认为是同一类。

还有文章的分类,其实就算是同一类文章其实重合的词汇也不会很多,但是如果有足够多的无标记的文章,最终同一类的就会被分到一起。

下一步就是聚类,然后类里面哪种多,这个类就全是这类。但是这个方法需要在分的类别之间差异很明显的时候有用,不然就都混在一起了。

基于图的方法

前面说了如何判断两个点是同一个高密度区域的,是通过连接高密度通道。图方法就是化成下面这种图,来表示点和点之间是否相连。

步骤如下,先定义两个点之间的相似性,然后添加连接,可以用K邻近(只连最近的K个点)和e邻近(距离e之内的都练)。这里也不是只有相连和不相连,可以给连接赋予权重来衡量计算这个连接好不好,通过两个点之间的相似度来判断,这里用的gaussian radial basis function高斯径向基函数的式子来计算的。

然后如何定义图的平滑程度也是有计算方式的,这里不细说。最后表示了可以把这个放到神经网络里面去。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值