迁移学习自我学习

        最近在看Ng的深度学习教程,看到self-taught learning的时候,对一些概念感到很陌生。作为还清技术债的一个环节,用半个下午的时间简单搜了下几个名词,以后如果会用到的话再深入去看。

        监督学习在前一篇博客中讨论过了,这里主要介绍下迁移学习、自我学习。因为监督学习需要大量训练样本为前提,同时对训练样本的要求特别严格,要求训练样本与测试样本来自于同一分布。要是满足不了这要求咋办?那您看看下面几种学习方法能不能帮上忙吧。

  •  迁移学习 transfer learning

        有时候困扰大家的一个问题在于训练数据的标定。这将会耗费大量的人力与物力。另外,机器学习假设训练数据与测试数据服从相同的数据分布。然而许多情况下,这种同分布假设并不满足。通常可能发生的情况如训练数据过期,也就是好不容易标定的数据要被丢弃,而另外有一大堆新的数据要重新标定。迁移学习的目标是将从一个环境中学到的知识用来帮助新环境中的学习任务。讲白了,就是当前只有少量新的标记的数据,但是有大量旧的已标记的数据(甚至是其他类别的有效数据),这时通过挑选这些旧数据中的有效的数据,加入到当前的训练数据中,训练新的模型。用一句原话则是:

       Transfer learning is what happens when someone finds it much easier to learn to play chess having already learned to play checkers, or to recognize tables having already learned to recognize chairs; or to learn Spanish having already learned Italian。

       迁移学习的代表作是《Boosting for Transfer Learning》有关它的介绍可以看这里,我就不多说啥了,多的我也不懂。

  • 自我学习 self-taught learning 

        自我学习和半监督学习一样,当前手头上只有少量训练样本,但是周围手头上还有大量无标注样本。举一个经典的例子,分离大象和犀牛。对于监督学习来说,我们手头有大量大象的样本和犀牛的样本,接下来训练分类器,进行分类,大家都知道的。对于迁移学习,则是指我们手头上有大量羊的样本和马的样本(已标记),少量的大象和犀牛的样本,接下来就要从羊和马的样本中选出有效的样本分别加入到大象和犀牛的标记样本中,然后再用监督学习的方法训练分类器。而非监督学习,则是手上仅有少量大象和犀牛的已标记样本,另外有一堆大象和犀牛的没有标记的数据(注意它们中要么是大象要么是犀牛,没有其他物种)。半监督学习就是利用这些样本训练分类器,实现分类。而自我学习,同样是手上仅有少量大象和犀牛的已标记样本,另外有一大堆自然图像。所谓自然图像,就是有大象和犀牛的图片,还有各种其他物种的图片。自我学习比半监督学习更适合实际场景-----哪有一堆只有大象和犀牛的图片给你呢?而自然图像的来源更加广泛,可以从互联网上随便下载。

     

       自我学习实现的方法如下图所示。首先通过未标注的自然图像提取一组特征(如稀疏字典,sparse coding,很神奇的一个东西,以后还会再研究)。这样任何一个标注和未标注的图像都可以用这组特征表示出来。由于每一个标注后的样本都被表示成了这些特征------注意这些特征捕捉了图像的高层结构,将表示后的标注的样本训练一个分类器进行分类。

 
参考资料:
1.   Boosting for transfer learning
2.   Self-taught learning: transfer learning from unlabeled data
 
转载请注明出处:http://blog.csdn.net/jiang1st2010/article/details/8901261
 

转载于:https://www.cnblogs.com/jiang1st2010/archive/2013/05/08/3076333.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/259776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MTV: Django眼中的MVC

URLconfMTV:Django眼中的MVC MVC是众所周知的模式,即:将应用程序分解成三个组成部分:model(模型),view(视图),和 controller(控制 器)。其中:M 管理应用程序的状态(通常存储到数据库中),并约束改…

createbitmap导致的内存泄漏如何处理_C++ 如何避免内存泄漏,一篇就够

前言近年来,讨论 C 的人越来越少了,一方面是由于像 Python,Go 等优秀的语言的流行,另一方面,大家也越来越明白一个道理,并不是所有的场景都必须使用 C 进行开发。Python 可以应付大部分对性能要求不高的场景…

Visio绘制功能分解图

为什么要绘制功能分解图? 对于编程人员来说,具体分配任务的时候,必须知道自己要做什么,必须了解系统的大体框架。功能分解图可以帮助我们理清程序的框架,便于大局观的掌握。 用Visio2010创建功能分解图 1、选择模版 2、…

Heka:Go编写,来自Mozilla,高效、灵活的插件式数据挖掘工具(转)

转自:http://www.csdn.net/article/2013-05-02/2815116-introduce-from-mozilla-heka-go摘要:一直崇尚开源的Mozilla近日释放了Heka测试版——插件架构,Go编写。在支持使用Go扩展功能的同时,还通过允许“Sandboxed Filters”提供了…

cocos2d学习笔记2——学习资源

1. 视频 找了好几个视频,有一些讲得好的文件资源没有,后来终于找到一个讲得不错还有文件资源的,还有高清下载地址,虽然是2.2版本的,但是确实能学到不少东西,对用cocos2d做游戏有了基本的印象,对…

环境变量_配置JAVA环境变量

本文标识 : J00001本文编辑 : YiKi编程工具 : IDEA阅读时长 : 3分钟什么是环境变量?环境变量是在操作系统中一个具有特定名字的对象, 它包含了一个或者多个应用程序所将使用到的信息。为什么要配置环境变量?为了方便在控制台编译和运行java程序,不…

分布式消息队列 Kafka

分布式消息队列 Kafka 2016-02-25 杜亦舒Kafka是一个高吞吐量的、分布式的消息系统,由Linkedin开发,开发语言为scala具有高吞吐、可扩展、分布式等特点 适用场景 活动数据统计活动数据包括页面访问量(Page View)、被查看内容方面的…

漫游飞行_手机“飞行模式”为何没被淘汰?内行人坦言:其实是你不会用!

随着科技的不断创新,目前市面上出现的手机款式多种多样,品牌也非常多,有华为、苹果、三星和小米等等。手机的屏幕也是五花八门,有刘海屏、水滴全面屏等,这些屏幕之间都各有不同。而且手机的更新换代速度很快&#xff0…

multiselect多选下拉框

具体实现 <input type"hidden" id"q_dueDay" name"q_dueDay" value"${baseQueryBean.q_dueDay}">//这个为隐藏域后台直接使用这个为参数 <select id"example" name"example" multiple"multiple&qu…

scikit-learn点滴

scikit-learn点滴 scikit-learn是非常漂亮的一个机器学习库,在某些时候,使用这些库能够大量的节省你的时间,至少,我们用Python,应该是很难写出速度快如斯的代码的. scikit-learn官方出了一些文档,但是个人觉得,它的文档很多东西都没有讲清楚,它说算法原理的时候,只是描述一下,除…

怎样搭建Android开发平台(转)

Android是基于Linux内核的软件平台和操作系统&#xff0c;是Google在2007年11月5日公布的手机系统平台&#xff0c;早期由Google开发&#xff0c;后由开放手机联盟&#xff08;Open Handset Alliance&#xff09;开发。 它采用了软件堆层&#xff08;software stack&#xff0c…

subject.login(token)是如何确认账号密码的_教你如何删除、关闭、注销微信小程序...

微信小程序是我们日常生活中经常会接触到的工具&#xff0c;打开小程序后&#xff0c;它就会留在我们微信的”“发现-小程序”栏。很多人并不知道该如何删除、关闭小程序&#xff0c;所以今天就跟大家科普下相关问题。1.如何删除小程序首先&#xff0c;打开微信界面&#xff0c…

上海交通大学2006年数学分析考研试题

转载于:https://www.cnblogs.com/zhangzujin/p/4078900.html

出现的是乱码_cad状态栏出现了方框乱码怎么办?

左下角阅读原文看CAD视频好课推荐&#xff1a;1、CAD2014&#xff1a;点击查看 2、室内&全屋&#xff1a;点击查看 3、CAD2019&#xff1a;点击查看4、CAD2018&#xff1a;点击查看5、Bim教程&#xff1a;点击查看6、室内手绘&#xff1a;点击查看7、CAD三维&#xff1a;点…

UILabel 详解

UILabel 多行文字自动换行 &#xff08;自动折行&#xff09;1.UIView *footerView [[UIView alloc] initWithFrame:CGRectMake(10, 100, 300, 180)]; 2. UILabel *label [[UILabel alloc] initWithFrame:CGRectMake(10, 100, 300, 150)]; 3. label.text "…

onclick实现超链接_给超链接加onclick事件

在动态网页中&#xff0c;常常需要在单击超链接时处理一些数据&#xff0c;而不是跳转一个网页。在这种情况下&#xff0c;通常有以下三种处理方式&#xff1a;不设置标签的href属性&#xff0c;只设置onclick属性。在这种处理方式下&#xff0c;通常超链接文本会和正文的文本以…

Android 布局以及优化资料汇总

2019独角兽企业重金招聘Python工程师标准>>> 1.性能优化之布局优化 2.Android 开源库 V - Layout 转载于:https://my.oschina.net/zhugenqiang/blog/822942

mysql字符集排序规则_Mysql 字符集及排序规则

一、字符集字符集&#xff1a;就是用来定义字符在数据库中的编码的集合。常见的字符集&#xff1a;utf8、Unicode、GBK、GB2312(支持中文)、ASCCI(不支持中文)二、字符集排序规则作者本人用的是utf8_general_ci后缀ci (case insensitive)意味不区分大小写(大小写不敏感)&#x…

驱动06.触摸屏驱动程序

1.触摸屏的简介 触摸屏是标准的输入设备&#xff0c;在写驱动程序时采用的之前讲过的输入子系统那套框架。我们无需关心对设备文件的操作&#xff0c;只需关心对硬件寄存器的操作和上报事件即可。 触摸屏是附在LCD上的一层薄膜&#xff0c;并不是我们平时认识的触摸屏&#xff…

2016国产开源软件Top100(Q1)

2016国产开源软件Top100(Q1) 随着互联网的发展、开放标准的普及和虚拟化技术的应用等诸多IT新领域的创新及拓展&#xff0c;开源技术凭借其开放性、低成本、稳定性、灵活性、安全性和技术创新性等特点迅速走向成熟&#xff0c;逐步发展成为一种主流模式&#xff0c;日益改变着全…