机器学习学习笔记3(李宏毅网课)
一、Semi-Supervised Learning(半监督学习)
通常而言,无标签的数据集的数量比有标签的数据集的数量更大。若想要实现半监督学习,那么通常需要基于某些假设,而是否能够成功实现半监督假设,取决于这些假设是否成立。
1.Semi-Supervised Learning for generative model
步骤1:对于lablled data set,首先生成generative model,初始化均值、方差这些参数。
步骤2:根据初始化的参数,计算unlabeled data的后验概率P(C1
∣
\mid
∣xu)
步骤3:更新模型
-
这样做的理由是:既要最大化labeled data的likelihood,又要最大化labeled+unlabeled data的likelihood
-
semi-supervised learning的思想 low-density separation(数据交界处为低密度的)
-
Self-training:
主要做法为:首先用labeled data train出一个model来,然后用该model分类unlabeled data。然后选择一部分unlabeled data来重新train该model。(注意:对于regresssion而言没有作用,对于neural network才有用)
原因:hard lable与soft label。这里实际上相当于一个hard label。强制让
某一个数据为某一class的概率为1或者0,而之前的generative model实际等于某一class的概率仍然是原先model函数给出的值,并没有对其强制概率为1。generative model属于soft label。 -
entropy-based regularization:
loss function:定义如下Cross entropy是越大越好,而unlabeled data的熵越小越好(表征其分布越不平均) -
smoothness assumption
-
如果x1与x2在高密度区域上很接近,那么它们的预测值y1 和y2应该是相同的。
-
如何实现?
利用基于图的方法:
定义两点的相似性函数为 -
对于一个图的smooth函数定义入下图:注意这里的矩阵D是矩阵W的每一行的entry相加的值。最终的loss function如下所示
二、Transfer Learning(迁移学习)
解决问题为:target data为少量的,而source data为大量的。例如,想要神经网络从识别英文转换为识别中文。英文有大量的source data,但中文仅有少量的target data。这时候便会用到迁移学习。
- 传统的方法(fine-tune)为:
首先通过source data初始话这个模型,再使用target data进行train。(同一数据下,差距越小越好) - layer transfer:
对于source data train的model,将其中的某几个layer提出来,剩下的layer用target data来train。(不同的任务,所选择的layer是不同的)
(以上均基于target和source data均为labeled的情况下) - 对于target data未标记的情况:domain adversarial training再neural network中,前面的层是在抽取feature。但这两种手写字体的feature根本不在一个domain上,所以我们希望neural network的前面基层将domain的特性消除掉。不断地训练domian classifer地准确性,希望前面地feature extractor将domian classfier消除掉
- 同样在taget data没有label的情况下,另外一种方法为:zero-shot learning.
我们基于一个database(将不同的分类具有什么特征)作为一个embedding space。定义loss function如下:其意义为,相似的特征的内积比其他不相似特征内积的最大值还大一个门限。