2018-12 文献阅读:Boosting for Transfer Learning(2007)


2018-12
文章的作者Wenyuan Dai&Qiang yang&Gui_Rong Xue
阅读原因:A Survey on Transfer Learning(2009)中引用,仔细看看
只选各部分有用的记录分析一下

文章目录

  • 2018-12 文献阅读:Boosting for Transfer Learning(2007)
  • 0.综述
  • 1.介绍
  • 2.相关研究
  • 3.通过TrAdaBoost进行迁移学习
    • 记号和说明
    • TrAdaBoost
  • 4.TrAdaBoost的理论分析(他没证明我也没看)
  • 5.计算机实验
    • 5.1 实验数据
    • 5.2 对比方法
    • 5.3 对比结果
  • 总结

0.综述

  • 传统机器学习的同分布假设常常不成立,如我们只有原有域的标签数据,但是需要对一个新的域进行分析,对新数据标签可能是昂贵的,并且舍弃原有数据的浪费的。
  • 本文是对(Freund 1997) boosting-based learing algorithms的AdaBoost算法的推广
  • TrAdaBoost使得我们能使用少量的新标签数据来构建对新数据的高质量分类模型,该迁移是有效的,我们通过理论和实验来表明这一点。

1.介绍

  • 同分布假设不成立的例子:Web mining。Web数据容易过时,人工标记昂贵,因此,如何使用旧数据十分重要。
  • 尽管数据过时(不同分布),但是认为有部分数据是有用的。
  • 如何找有用的数据?:使用少量新的标签数据,称之为同分布训练数据(same-distribution training data)来计算原本实例(instance)的有用性。称旧数据为不同分布训练数据(diff-distribution training data)
  • Probability Approximately Correct(PAC):概率近似正确。即对多数情况下,能达到近似正确

2.相关研究

  • 人类有迁移学习的能力,如有了拉丁语基础学习西班牙语更容易
  • 历史上对多任务学习的研究
  • DaumeIII & Marcu(2006)研究了统计自然语言过程中的域迁移问题,使用了特殊的高斯分布
  • 本文在PAC学习模型下发展了迁移分类框架
  • Wu & Dietterich(2004)提出了一个图片分类算法,使用少量的训练数据和大量低质量的额外数据,他们指出额外数据带来了一些提高,但并没有进行数量上的分析。
  • Liao et al(2005)应用激活学习(active learning),用额外数据提高了学习效果
  • Rosenstein(2005) 提出了一个对迁移学习的分层贝叶斯方法,讨论了何时迁移会有利何时会有弊

3.通过TrAdaBoost进行迁移学习

记号和说明

  • 同分布训练数据空间 X s X_s Xs​(same-distribution training data space)
  • 不同分布训练数据空间 X d X_d Xd​(diff-distribution training data space)
  • Y = { 0 , 1 } Y=\{0,1\} Y={0,1}是分类标签,二分类问题
  • concept:从 X X X映射到 Y Y Y的函数 c c c, X = X s ∪ X d X=X_s\cup X_d X=Xs​∪Xd​,映射数据的标签
  • 测试数据集 S = { ( x i t ) } S=\{(x_i^t)\} S={(xit​)}, x i t ∈ X s ( i = 1 , … , k ) x_i^t\in X_s\ (i=1,\dots,k) xit​∈Xs​ (i=1,…,k),大小为 k k k
  • 训练数据集 T ⊂ X × Y T\subset{X\times Y} T⊂X×Y,被分为以下两部分:
  • T d = { ( x i d , c ( x i d ) ) } x i d ∈ X d ( i = 1 , … , n ) T_d=\{(x_i^d,c(x_i^d))\}\ \ x_i^d\in X_d\ (i=1,\dots,n) Td​={(xid​,c(xid​))}  xid​∈Xd​ (i=1,…,n)
  • T s = { ( x i s , c ( x i s ) ) } x i s ∈ X s ( i = 1 , … , m ) T_s=\{(x_i^s,c(x_i^s))\}\ \ x_i^s\in X_s\ (i=1,\dots,m) Ts​={(xis​,c(xis​))}  xis​∈Xs​ (i=1,…,m)

我们并不知道 T d T_d Td​的那一部分是有用的,在我们的问题中, T s T_s Ts​量少,我们的目的是训练一个分类器 c ^ : X → Y \hat{c}: X\to Y c^:X→Y使它能够最小化在未标记的数据集 D D D上的预测误差。

TrAdaBoost

算法框架:
注意最终分类器可以写成迭代分类器的加权组合形式,这里的 ∏ t = ⌈ N / 2 ⌉ N β t − h t ( x ) \prod_{t=\lceil {N/2} \rceil}^N\beta_t^{-h_t(x)} ∏t=⌈N/2⌉N​βt−ht​(x)​取对数即可变为求和形式

#TrAdaBoost的伪代码
Input:T_d = labeled_diff_train_dataT_s = labeled_same_train_dataS   = unlabeled_test_dataN   = Max_iter_numbern,mdef Learner(){}  #一个基础的学习算法
Initialize:w_1=[w_1(1),...,w_1(n+m)]   #初始化权重参数,有n+m个训练数据,n+m个权重
iteration:for t in range(1,N+1):p_t = w_t/(sum(w_t))    #权重归一化h_t=Learner(T,p_t,S)        #以权重化的T作为训练数据,S作为测试数据应用learner#得到分类器h_te_t=error(h_t,T_s)            #计算h_t在T_s上的误差beta_t = e_t/(1-e_t)          #衰减系数beta  =1/(1+sqrt(2*ln(n)/N))if i in 1:n:                   #更新参数w_(t+1)[i] = w_(t)[i]*beta^(abs(h_t(x_i)-c(x_i)))if i in n+1:mw_(t+1)[i] = w_(t)[i]*beta_t^(-abs(h_t(x_i)-c(x_i)))
Output:                             #最终的分类器def h_finally(x):if condition:return 1else:return 0

我们将AdaBoost和TrAdaBoost的流程图画出了方便对比:
AdaBoost:给定了一些弱分类器,组合为一个效果好的分类器

Created with Raphaël 2.2.0 【AdaBoost】初始化样本权重参数 【计算误差筛选模型】 使用样本权重参数计算分类器误差 选择在当前误差评价权重下 最优的弱分类器 【计算模型权重】 对该分类器计算 其在最终分类器中的权重 【数据权重更新】 计算下一次迭代使用的样本权重 对某样本误判则样本权重上升,否则下降 循环了n次? 最终分类器是各个弱分类器的加权和 yes no

TrAdaBoost:给定了某种训练方法,最终分类器仍然是各迭代中分类器的加权和

Created with Raphaël 2.2.0 【TrAdaBoost】初始化样本权重参数 【训练模型】 用全体数据结合样本权重 训练得到模型 【误差计算】 应用样本权重参数计算 模型在同分布数据上的误差 误差大小用于下一步变化的幅度 【权重更新】 计算下一次迭代使用的样本权重 对某样本 同分布的:误判则样本权重上升,否则下降 不同分布:误判则样本权重下降,否则上升 循环了n次? 最终分类器是后半代迭代分类器的加权和 yes no

可以看到:

  • 同分布误判认为之后需要纠正,因此权重上升
  • 非同分布的误判,认为此数据是不好的,应当舍弃,权重下降,减弱它们的影响

4.TrAdaBoost的理论分析(他没证明我也没看)

  • 收敛性
  • T d T_d Td​中的平均训练损失(考虑这个干啥?)
  • T s T_s Ts​中的预测损失
  • 某个同分布数据上的误差上界

5.计算机实验

5.1 实验数据

3组文本数据和一组非文本数据。如何构建数据 T d T_d Td​和 T S ∪ S T_S\cup S TS​∪S?

  • 文本数据分类有分层结构。
    如<20 Newsgroups>可分为7类,此后又可以细分为20个子类。我们将问题定义为针对第一层分类的分类问题。
    通过摘取部分子类来实现构建非同分布数据
  • 非文本数据(mushroom data)由于没有没有分层结构,作者表示可以用数据中茎的形状来分割数据集,例如,非同分布数据包括了所有茎形状为“扩大”的数据。同分布数据则是“变细”的蘑菇数据。由于他们属于不同类型,因此不同分布。
  • T S ∪ S T_S\cup S TS​∪S之后被分为 T S 和 S T_S和 S TS​和S
  • 对于四组数据各自计算提取出的数据的KL散度,发现均大于0.3,而同分布应该接近0。

5.2 对比方法

  • 选用支持向量机作为前面TrAdaBoost算法的basic learning algorithm
  • 共有如下算法:
    SVM
    TSVM(Transductive support vector machines)–一种半监督学习算法
    TrAdaBoost(SVM)
    TrAdaBoost(TSVM)

    作者没有写AdaBoost,因为他发现这个在他的实验里没有什么用(-.-)

5.3 对比结果

  • 监督学习
    其中的AUX是Wu and Dietterich(2004)的使用额外数据增加模型效果的模型
  • 半监督学习
    可以看到我们的迁移学习效果严格优于其他方法,当然这也是因为这些SVM并不是针对迁移学习的算法。
    需要注意的是,比如Caruana(1997)指出,迁移学习可能带来负面影响,降低在test测试集上的正确率。尽管上面的实验没有涉及这一点,但是TrAdaBoost确实可能会有负迁移效果。

    在上面这个图中,我们看出在 T s / T d T_s/T_d Ts​/Td​很小时,也就是同分布数据不多时,迁移的效果很明显
    但是同分布变多后,迁移的学习效果略微低于直接学习的效果。
    因此:
    不同分布数据中的有用信息帮助我们训练数据
    不同分布数据中的噪声会影响我们训练的精度

    Figure 2中迁移的效果并不明显,这是因为不同分布数据质量不好,也就是包含的有用信息较少。这一点可以从红色的SVMt看出:这个图的SVMt比Figure 1中的糟糕,而SVMt是把 T s , T d T_s,T_d Ts​,Td​一起作为训练数据的SVM,因此 T d T_d Td​和 T s T_s Ts​差异较大可迁移的信息少。
    Figure 4中,我们看出本迁移算法收敛性良好,这在第四部分的理论分析中有说明。
  • 最后,文章讨论了分布之间的差别如何影响TrAdaBoost的表现:
    下图横坐标是KL散度,向右增加
    柱状是应用TrAdaBoost前后SVM或者SVMt的精度增加
    作者的结论是:SVM的增益没看出什么规律,但是SVMt的增益大体上随着KL散度增大而增大

总结

  • TrAdaBoost是一个效果很好的boosting方法
  • 算法的improvement与KL散度有关,还需要在研究
  • 收敛速度太慢 O ( l n n / N ) O(\sqrt{ln n/N}) O(lnn/N ​),如何优化
  • 只能一次迁移到另一个分布

2018-12 文献阅读:Boosting for Transfer Learning(2007)--迁移学习相关推荐

  1. 《A Survey on Transfer Learning》迁移学习研究综述 翻译

    迁移学习研究综述 Sinno Jialin Pan and Qiang Yang,Fellow, IEEE 摘要:   在许多机器学习和数据挖掘算法中,一个重要的假设就是目前的训练数据和将来的训练数据 ...

  2. AI入门:Transfer Learning(迁移学习)

    迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中 Pokemon Dataset 通过网络上收集宝可梦的图片,制作图像分类数据集.我收集了5种 ...

  3. 李宏毅作业十二 Transfer Learning(迁移学习)

    系列文章目录 李宏毅作业十 Generative Adversarial Network生成对抗网络(代码) 李宏毅作业九 Anomaly Detection异常检测 李宏毅作业八unsupervis ...

  4. 文献阅读:SNCSE: Contrastive Learning for Unsupervised Sentence Embedding with Soft Negative Samples

    文献阅读:SNCSE: Contrastive Learning for Unsupervised Sentence Embedding with Soft Negative Samples 1. 内 ...

  5. [人工智能-深度学习-46]:FineTuning(微调)、Transfer Trainning(迁移学习)的理论基础与深度解析

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  6. [文献阅读] Sparsity in Deep Learning: Pruning and growth for efficient inference and training in NN

    文章目录 1. 前言 2. Overview of Sparsity in Deep Learning 2.1 Generalization 2.2 performance and model sto ...

  7. 【论文阅读】Multisource Transfer Learning With Convolutional Neural Networks for Lung Pattern Analysis

    Multisource Transfer Learning With Convolutional Neural Networks for Lung Pattern Analysis main idea ...

  8. 【文献阅读】ResNet-Deep Residual Learning for Image Recognition--CVPR--2016

    最近准备用Resnet来解决问题,于是重读Resnet的paper <Deep Residual Learning for Image Recognition>, 这是何恺明在2016-C ...

  9. 【文献阅读】Model-based Reinforcement Learning for Predictions and Control for Limit Order Books

    0 Abstract 作者使用强化学习构建了一个 agent,可以在股票市场下达买卖订单.仅使用历史观察数据构建环境模型,RL agent 通过与环境模型而不是与真实市场交互来学习交易策略,以最小化风 ...

最新文章

  1. 如何使用VSCode汉化插件(中文)
  2. Java基础提升篇:理解String 及 String.intern() 在实际中的应用
  3. 过滤请求绝技 — 布隆过滤器与布谷鸟过滤器
  4. 微信小程序的线程架构
  5. NOIP2005复赛 普及组 第1题 陶陶摘苹果
  6. RaySSH文件传输加速介绍!
  7. 何为MQ以及为何要用MQ
  8. ALGO-146算法训练 4-2找公倍数
  9. 汇编心得(一)在32位机上实现64位数的相加
  10. 在Excel中用VBA制作俄罗斯方块游戏
  11. 打开php页面变成下载的解决办法
  12. [词根词缀]milit/min/miss/mod/mon等词根由来
  13. 团购幸存者:团购是个苦生意
  14. Linux gzip压缩输出
  15. html document自动加载,document.html
  16. web前端开发基础之背景元素的设置
  17. visionpro求旋转中心,拟合圆心操作
  18. 数值分析中对有效数字的定义
  19. OSChina 周六乱弹 ——请让我的灵魂最后一次燃烧
  20. c语言正则表达式解析json,JSON解析使用正则表达式

热门文章

  1. tomcat页面显示404
  2. 今年你被降掉的薪资,还有机会涨回来吗?
  3. 伪链路(sham-link)
  4. OCaml for Haskellers
  5. 用计算机算账老是出负数是怎么回事,存货为什么出现负数?会计人员怎么处理?...
  6. 国产网络损伤仪SandStorm -- 如何连接设备
  7. Linux系统创建文件报错“E297: Write error in swap file“
  8. HI3861学习笔记(3)——编译构建和代码运行过程
  9. 一言不合又双叒叕越狱,盘古团队越狱iOS10 Beta 8
  10. RabbitMQ未确认消息处理