迁移学习算法之TrAdaBoost

from: https://blog.csdn.net/Augster/article/details/53039489

TradaBoost算法由来已久,具体算法可以参考作者的原始文章,Boosting For Transfer Learning。

1.问题定义

传统的机器学习的模型都是建立在训练数据和测试数据服从相同的数据分布的基础上。典型的比如有监督学习,我们可以在训练数据上面训练得到一个分类器,用于测试数据。但是在许多的情况下,这种同分布的假设并不满足,有时候我们的训练数据会过期,而重新去标注新的数据又是十分昂贵的。这个时候如果丢弃训练数据又是十分可惜的,所以我们就想利用这些不同分布的训练数据,训练出一个分类器,在我们的测试数据上可以取得不错的分类效果。

定义问题模型如下:设为源样例空间,为辅助样例空间。源样例空间也就是我们的目标空间,就是想要去分类的样例空间。设Y={0,1}为类别空间,这里简化了多分类问题为二分类问题讨论,这样我们的训练数据也就是

测试数据:

其中测试数据是未标注的,我们可以将训练数据划分为两个数据集:

其中代表样本数据x的真实所属的类别,的区别在于和测试数据S是同分布的,和测试数据是不同分布的,现在的任务就是给定很少的源数据和大量的辅助数据训练出一个分类器在测试数据S上的分类误差最小。这里假设利用已有的数据不足以训练出一个泛化能力很强的分类器。

2.TrAdaBoost算法

我们利用AdaBoost算法的思想原理来解决这个问题,起初给训练数据T中的每一个样例都赋予一个权重,当一个源域中的样本被错误的分类之后,我们认为这个样本是很难分类的,于是乎可以加大这个样本的权重,这样在下一次的训练中这个样本所占的比重就更大了,这一点和基本的AdaBoost算法的思想是一样的。如果辅助数据集中的一个样本被错误的分类了,我们认为这个样本对于目标数据是很不同的,我们就降低这个数据在样本中所占的权重,降低这个样本在分类器中所占的比重,下面给出TradaBoost算法的具体流程:

可以看到,在每一轮的迭代中,如果一个辅助训练数据被误分类,那么这个数据可能和源训练数据是矛盾的,那么我们就可以降低这个数据的权重。具体来说,就是给数据乘上一个,其中的值在0到1之间,所以在下一轮的迭代中,被误分类的样本就会比上一轮少影响分类模型一些,在若干次以后,辅助数据中符合源数据的那些数据会拥有更高的权重,而那些不符合源数据的权重会降低。极端的一个情况就是,辅助数据被全部忽略,训练数据就是源数据Tb,这样这时候的算法就成了AdaBoost算法了。在计算错误率的时候,当计算得到的错误率大于0.5的话,需要将其重置为0.5。

可以看到,TrAdaBoost算法在源数据和辅助数据具有很多的相似性的时候可以取得很好效果,但是算法也有不足,当开始的时候辅助数据中的样本如果噪声比较多,迭代次数控制的不好,这样都会加大训练分类器的难度。

转载于:https://www.cnblogs.com/bonelee/p/8921579.html

迁移学习算法之TrAdaBoost ——本质上是在用不同分布的训练数据,训练出一个分类器...相关推荐

  1. 清华大学开源迁移学习算法库:基于PyTorch实现,支持轻松调用已有算法

    机器之心报道 编辑:魔王 作者:清华大学大数据研究中心 近日,清华大学大数据研究中心机器学习研究部开源了一个高效.简洁的迁移学习算法库 Transfer-Learn,并发布了第一个子库--深度领域自适 ...

  2. 原创 | 清华开源迁移学习算法库

    作者:清华大数据软件团队机器学习组 本文长度为1700字,建议阅读6分钟 本文为你介绍 Trans-Learn 算法库. Trans-Learn是基于PyTorch实现的一个高效.简洁的迁移学习算法库 ...

  3. 分布对齐 目标函数 迁移学习_原创 | 清华开源迁移学习算法库

    本文长度为1700字,建议阅读6分钟 本文为你介绍 Trans-Learn 算法库. Trans-Learn是基于PyTorch实现的一个高效.简洁的迁移学习算法库,目前发布了第一个子库--深度域自适 ...

  4. 机器学习的算法和普通《算法导论》里的算法有什么本质上的异同

    机器学习的算法和普通<算法导论>里的算法有什么本质上的异同? 本人非计算机专业出身,对这些方向感兴趣,所以有此一问.曾经问过一些人,说是机器学习全是数学,是用数学的方式试图去描述和理解我们 ...

  5. 清华大学开源迁移学习算法库:基于PyTorch实现已有算法

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:机器之心 AI博士笔记系列推荐 周志华<机器学习> ...

  6. 2019 outlook 数据迁移_清华开源迁移学习算法库

    清华大学龙明盛老师课题组长期致力于迁移学习研究.今天,我们很高兴地宣布,我们开源了基于PyTorch实现的一个高效.简洁的迁移学习算法库--Trans-Learn. 目前我们发布了第一个子库--深度域 ...

  7. 深度学习机器臂控制_人工智能深度学习算法在工业机械臂上的应用

    从功能上来说,你这个应用非常适合采用深度学习,事实上,深度学习本质上就是用来做分类识别的,尤其是针对零件与零件之间,图像上差异比较小的时候(比如你需要自动分拣A,B,C三种零件,但其形状差别很小),更 ...

  8. AI周报丨标清变4k?B站超分辨率算法开源;强化学习算法控制核聚变登上《nature》

    AI周刊丨标清变4k?B站超分辨率算法开源:强化学习算法控制核聚变登上<nature> 2022年2月22日 极链AI云 文章目录 AI周刊丨标清变4k?B站超分辨率算法开源:强化学习算法 ...

  9. 让人造太阳更近!DeepMind强化学习算法控制核聚变登上Nature

    来源:机器之心 本文约2400字,建议阅读5分钟 用强化学习控制核聚变反应堆内过热的等离子体. 过去三年,DeepMind 和瑞士洛桑联邦理工学院 EPFL 一直在进行一个神秘的项目:用强化学习控制核 ...

最新文章

  1. 16、子查询改写为表连接
  2. Centos6.5环境中安装vsftp服务
  3. 用jquery调用wcf下的各种错误码的解释。
  4. html坐标定位图解,HTML5地理定位实例
  5. Python中的strip()函数的用法
  6. ***使用PHP实现文件上传和多文件上传
  7. 大一计算机专业,大一计算机专业学生
  8. php echo nbsp,关于include里面的函数echo的问题
  9. 队列和通知区别_Java多线程学习(五)——等待通知机制
  10. 第二十九节 MT-iBeacon基站关于LightBlue软件的使用
  11. 【基因芯片】差异表达分析的基本原理与方法
  12. 分数阶微积分基本理论(课堂笔记1)
  13. 解读arduino读取模拟信号实例
  14. halcon二维码识别
  15. java 本地连接状态_本地连接受限制
  16. vue项目 情侣空间 纪念日功能模块
  17. Good Luck in CET-4 Everybody! HDU - 1847 (巴氏博弈)
  18. 人工智能培训机构哪个好?求求你们别再去培训机构学假的人工智能了!
  19. centos8 处理挖矿程序攻击
  20. ARM汇编:MRS和MSR指令

热门文章

  1. java中并行_[JAVA] 12. Java中的并行Concurrency
  2. epoll的总结 LT和ET使用EPOLLONESHOT
  3. Android BLE开发(一):串口调试
  4. matlab拟合双自变量双指数函数曲线,怎样用MATLAB拟合两个自变量的函数系数和指数?...
  5. java jmf 视屏监控的核心代码_Java中利用JMF编写摄像头拍照程序_java
  6. python中的sys的概念和作用_Python(os和sys)理解
  7. php定义变量f= e怎么写,php变量怎么定义-PHP问题
  8. php移动代码,复制移动文件 - PHP
  9. 表单提交对数据进行加密详解(RSA加密)
  10. 【响应式Web前端设计】:link、:hover、:active和:visited的区别