Pseudo-Label:The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks
这是一种相对来说比较靠前的半监督方向论文,当时对于无标签数据的使用还处于一个比较单一的时代,这篇论文在一定程度上拉开了SSL的序幕(我认为在伪标签之前的处理方式虽然也可以理解为半监督,但是没有get到半监督的灵魂,这是个人理解,不喜勿喷哦)。
前言
半监督学习是深度学习的一种形式,或者说是一种框架。伪标签为unlabelled data赋予了其对应的y’,使得unlabelled data也能像labelled data一样近似于等价地运用在训练中。在接下来将会分析其中一些关键点,其他的都不会介绍。
一、网络细节与整体流程
激活函数使用的是relu函数,原因是relu函数能够真正做到稀疏表示(大脑工作就具有稀疏性原理:同一时间只有极少数的神经元在工作);
流程(使用无监督预训练过的DAE作为深度神经网络的每一层):
1、使用labelled data训练模型
2、用已有模型为unlabelled data添加伪标签
3、同时使用伪标签和labelled data一起训练
二、主要解决手段
①DAE:去噪自动译码器,用于无监督学习,主要思路就是优化参数使得输入与输出近似一致,其损失函数就是对输入和输出求交叉熵
②Dropout:除了正则化,Dropout也是一种对于避免过拟合非常有效的手段,其方式是以一定概率,将两个神经元之间传递的信息改为0,可以理解为将这两个神经元的连接断开,从一定意义上简化网络结构,从而避免过拟合
③SGD:随机梯度下降,就是在训练样本中随机抽取一定数量的样本进行训练,这样做的支撑是因为总的样本符合XX分布,那么随机抽取理论上就符合XX分布(应该是这样的,概率论还没有复习到。。。),这样做可以加速训练过程。其实到这,脑子里就会有一个问题,现实中你随机抽凭什么就这么完美无缺,确实,SGD最大的特色就是每次的优化方向完全由样本决定,不过这样也不是什么坏事,毕竟随机的效果可是不比目前计算机这种智商的去学效率低哦(有的时候SGD也会被认为是minibatch梯度下降,这都无所谓)。在论文中有两个值得注意的点,一是exponentially decaying learning rate(指数衰减的学习速率),这有两个出发点,第一点是一开始可能指定的参数与最终的目标相差太远,一开始步子迈大一点省事,第二点是当“高尔夫球”快进洞的时候,往往得力度小一点,多走几步;二是momentum,意思就是动量,用在优化上就是因为让机器也有点惯性思维,人脑哪里是直来直去的呢,惯性思维可以解决两个问题,第一个是Hessian矩阵(二阶矩阵,描述函数的局部)病态条件问题,这个问题看起来很高深,其实通俗理解就是你对矩阵有那么一丁点的修改,但是对解的影响可能是几百倍的,加上momentum,那么就会让矩阵有一定几率避免这样的问题(避免局部最优点和鞍点),第二个就是加速参数学习,快速收敛。
④伪标签损失函数:
特点是超参数与epoch数有关
⑤ Low-Density Separation between Classes:这个的意思呢其实很简单,就是类之间的分界线位于样本密度很低的地方,这样分割更加清楚,但是这是怎么做到的呢?
香农熵:
这个东西呢,我也没算过,就是用来描述class overlap的。
这就是香农熵的应用场景(目标函数),等号右边有两项,第一项就是似然函数,用于labelled data的估计(这么写是因为多分类问题),第二项是取反的香农熵,香农熵越大overlap程度越高,越需要惩罚(论文上有图,效果确实好很多)。