知识点总结之学习方式

来源:互联网 发布:java调用kettle 编辑:程序博客网 时间:2024/06/04 17:29

知识点总结之学习方式


最近学习了一些机器学习方面的知识点,由于这些知识点比较零散没有系统性,这里我将参考了一些资料并对这些知识点进行了整理总结,对机器学习方面的学习方式进行了扫盲性的介绍,初步总结如下:

目录


    • 增强学习
    • 主动学习
    • 直推学习
    • 半监督学习
    • 自训练
    • 协同训练
    • 集成学习
    • 生成学习
    • 判别学习
    • 迁移学习
    • 多任务学习
    • 自我学习
    • 领域自适应
    • 注意力机制


增强学习

增强学习(Q-learning)要解决的是这样的问题:一个能感知环境的自治agent,怎样通过学习选择能达到其目标的最优动作。 —— [ 百度百科 ]

强化学习(reinforcement learning,又称RL),又称再励学习、评价学习,是一种重要的机器学习方法,在智能控制机器人及分析预测等领域有许多应用。但在传统的机器学习分类中没有提到过强化学习,而在连接主义学习中,把学习算法分为三种类型,即非监督学习(unsupervised learning)、监督学习(supervised leaning)和强化学习。 —— [ 百度百科 ]

增强学习又称强化学习,有两大类算法Policy Gradient 和 Q-Learning。增强学习是强调如何基于环境而行动,以取得最大化的预期利益。其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。增强学习(RL)是一个序列决策问题,它的本质就是解决“决策(decision making)”问题,即学会自动进行决策。增强学习这块的成功应用有DeepMind和AlphaGo。
这里写图片描述
形象直观的快速了解方式(摘取):
(1)我们小时后看到马戏团的狗尽然可以算加减法,鸽子也会走钢丝了,就差猪也会飞了(扯远了),这是如何做到的?其实啊,拿鸽子来说,每当鸽子走到钢丝尽头或者中间某时刻(可以设计)的时候,训练人员就会给它一些奖励,这些奖励的作用是让它“知道”,鸽子啊,你当才的动作是对的(或者是不错的,你要继续保持啊)。如此一来,鸽子无形之中就受到了暗示,我只要那样做,就有奖励(食物)吃。何乐而不为呢。如果你看懂了这段话,那么强化学习的通俗理解正是如此!

(2)撩妹的过程就是一个优化问题。你的每一时刻的行为会对你最终撩妹是否成功,以多大的收益成功都会有影响。那么,你就会考虑,每一步采取什么行为才能(最优)撩妹!这可以看作一个RL问题。你肯定迫不及待的想知道怎么去求解了!
假设1:你是第一次撩妹。那么你会去求教他人,逛各种论坛,总之收集大量相关知识。这个过程就是experience data。利用离线数据来train一个model。
假设2:过去你有很多撩妹经验。你似乎又发现总是按照套路来并不能成功。嗯,经典的探索与利用问题,于是你尝试了其他方法,你发现获得了更好的效果。嗯,more optimal policy
将上述过程对应到RL中:
action:你的行为
state:你观察到的妹子的状态
reward:妹子的反应:开心or不开心

一些理解:
(1)加强学习最重要的几个概念:agent,环境,reward,policy,action。环境通常利用马尔可夫过程来描述,agent通过采取某种policy来产生action,和环境交互,产生一个reward。之后agent根据reward来调整优化当前的policy。
(2)人的一生其实都是不断在强化学习,当你有个动作(action)在某个状态(state)执行,然后你得到反馈(reward),尝试各种状态下各种动作无数次后,这几点构成脑中的马尔可夫模型,使你知道之后的行为什么为最优。所以你现在才知道什么东西好吃,什么东西好玩,什么妹子你喜欢。


主动学习

Active learning is a special case of semi-supervised machine learning in which a learning algorithm is able to interactively query the user (or some other information source) to obtain the desired outputs at new data points. —— [ 维基百科 ]

主动学习(active learning, 又称AL)是半监督机器学习的一个特例,在主动学习中,一个学习算法可以交互式的询问用户(或其他信息源)来获得在新的数据点所期望的输出。

一些理解:
(1)在某些情况下,没有类标签的数据相当丰富而有类标签的数据相当稀少,并且人工对数据进行标记的成本又相当高昂。在这种情况下,我们可以让学习算法主动地提出要对哪些数据进行标注,之后我们要将这些数据送到专家那里让他们进行标注,再将这些数据加入到训练样本集中对算法进行训练。这一过程叫做主动学习。
(2)主动学习也叫做询问学习或最佳实验设计。主要的假设是是否学习算法是可以去选择先要学习的数据。主动学习系统试图跨越标签瓶颈,没有标签的例子去被人类注释者来标签。主动学习目的是提高准确率,通过尽量少的标签,因此减少获得标签数据的费用。


直推学习

直推学习,它与半监督学习一样不需要人工干预,直推学习假设未标记的数据就是最终要用来测试的数据,学习的目的就是在这些数据上取得最佳泛化能力。相对应的,半监督学习在学习时并不知道最终的测试用例是什么。

一些理解:
(1)半监督学习和直推学习都试图利用大量的未标记样本来提高对少量有标记样本的学习的效果,但两者的基本思想有很大不同,半监督学习的最终目标是要给出测试集的标记,而直推学习通常只需给出未标记样本集X的标记。换句话说,在半监督学习方法中,要预测的样本当时是未知的,因而是个开放的模型,而直推学习方法中,要预测的样本当时是已知的,因而可视为封闭的模型。
(2)直推学习与半监督学习的相似之处是:直推学习也是由学习器自行利用未标记示例,但不同的是,直推学习假定未标记示例就是测试例,即学习的目的就是在这些未标记示例上取得最佳泛化能力。半监督学习考虑的是一个“开放世界”,即在进行学习时并不知道要预测的示例是什么,而直推学习考虑的则是一个“封闭世界”,在学习时已经知道需要预测的示例。半监督学习和直推学习则完全依靠学习器本身,因此,一些研究者将直推学习作为一种半监督学习技术来进行研究。


半监督学习

半监督学习(Semi-Supervised Learning,SSL)是模式识别和机器学习领域研究的重点问题,是监督学习与无监督学习相结合的一种学习方法。它主要考虑如何利用少量的标注样本和大量的未标注样本进行训练和分类的问题。主要分为半监督分类,半监督回归,半监督聚类和半监督降维算法。半监督学习对于减少标注代价,提高学习机器性能具有非常重大的实际意义。 —— [ 百度百科 ]

半监督学习算法分类:
1. self-training(自训练算法)
2. generative models生成模型
3. SVMs半监督支持向量机
4. graph-basedmethods图论方法
5. multiview learing多视角算法
6. 其他方法
半监督学习主要用于处理人工合成数据、只在实验室试用,还没办法在某个现实领域得到应用,也就是说,其现实意义没体现出来;因此,半监督学习的实际应用价值问题值得更多的研究。

主动学习,直推学习,半监督学习的一些区别:
(1)直推学习是一个特殊化的半监督学习。直推学习假设未标记的数据就是最终要用来测试的数据,学习的目的就是在这些数据上取得最佳泛化能力。相对应的,半监督学习在学习时并不知道最终的测试用例是什么。
(2)利用未标记示例的主流学习技术主要有三大类即半监督学习(semi-supervised learning)、直推学习(transductive learning)和主动学习(active learning)。这三类技术都是试图利用大量的未标记示例来辅助对少量有标记示例的学习,但它们的基本思想却有显著的不同。
(3)直推学习与半监督学习一样不需要人工干预,但是主动学习中学习算法主动地提出要对哪些数据进行标注,之后我们要将这些数据送到专家那里让他们进行标注。


自训练

self-training算法:
有两个样本集合:Labled={(xi,yi)};Unlabled= {xj}.
执行如下算法
Repeat:
1. 用L生成分类策略F;
2. 用F分类U,计算误差
3. 选取U的子集u,即误差小的,加入标记.L=L+u;
重复上述步骤,直到U为空集.
上面的算法中,L通过不断在U中,选择表现良好的样本加入,并且不断更新子集的算法F,最后得到一个最有的F.

Self-training的一个具体实例:最近邻算法
记d(x1,x2)为两个样本的欧式距离,执行如下算法:
Repeat:
1. 用L生成分类策略F;
2. 选择x = argmin d(x, x0). 其中x∈U,min x0∈L.也就是选择离标记样本最近的无标记样本.
2. 用F给x定一个类别F(x).
3. 把(x,F(x))加入L中
重复上述步骤,直到U为空集.
上面算法中,也就是定义了self-training的”误差最小”,也就是用欧式距离来定义”表现最好的无标记样本”,再用F给个标记,加入L中,并且也动态更新F.


协同训练

常见的协同训练算法有Co-Training,Tri-Training,Co-Forest,Co-Trade

如下以C0-Training为例:
首先在标记数据集 L 的 view1 和 view2上分别训练出两个分类器 C1 和 C2;然后从未标记数据集 U 上随机的选取 u 个示例放入集合 U’中;分别用C1 和 C2 对 U’中的所有元素进行标记;接着从两个分类器标记结果中各取可信度最高的 p 个正标记和 n 个负标记放入 L 中;最后从 U 中选取 2p+2n 个数据补充到 U’中;重复上述过程直到满足截止条件。
**这里写图片描述**
标准协同训练算法的步骤为:
输入:
标记数据集L
未标记数据集U
过程:
用L1训练视图X1上的分类器f1,用L2训练视图X2上的分类器f2;
用f1和f2分别对未标记数据U进行分类;
把f1对U的分类结果中,前k个最置信的数据(正例p个反例n个)及其分类结果加入L2;把f2对U的分类结果中,前k个最置信的数据及其分类结果加入L1;
把这2(p+n)个数据从U中移除;
重复上述过程,直到U为空集。
输出:分类器f1和f2。
注: f1和f2可以是同一种分类器也可以不是同一种分类器。


集成学习

集成学习(Ensemble Learning)是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合从而获得比单个学习器更好的学习效果的一种机器学习方法。 —— [ 百度百科 ]

集成学习的思路是在对新的实例进行分类的时候,把若干个单个分类器集成起来,通过对多个分类器的分类结果进行某种组合来决定最终的分类,以取得比单个分类器更好的性能。如果把单个分类器比作一个决策者的话,集成学习的方法就相当于多个决策者共同进行一项决策。
Bagging、Boosting、Stacking等集成技术在行业内得到广泛的应用。
可以把集成学习分为两个大类,第一大类称为模型融合,与台大机器学习技法课上的blending概念相似,模型融合其实是个再学习的过程。第一步是训练出多个不同的强学习器,然后考虑如何将这多个学习器组合起来,更进一步提高性能。第二大类称为机器学习元算法,这类算法本身就是多模型组合的结果,只是元算法中的基算法(base_algorithm一般会比较弱),称为弱模型的组合,例如RF、GDBT。

常用的获得不同模型的方法
(1)由于不同的训练模型得到不同的模型,例如处理分类的LR、SVM、RF等
(2)由于同一训练模型调节不同参数获得不同的模型,例如GDBT中迭代次数,每个树的复杂度等有些算法本身就有一定的随机性,如PLA
(3)由于训练数据不同得到不同的模型,如交叉验证、随机抽样。
上面这些生成不同模型可以组合生成更多不同的模型,比较常用的是最前面的两个

模型融合的方法
(1)通过验证(validation)的方式,从训练出的多个模型中挑选最佳的模型,作为最终的模型。这种方式必须要验证,不同使Ein最小,否则很容易过拟合。
(2)统一融合(Uniform blending),分类时使用一人一票的投票方式,回归时使用多个模型的平均值。这种方式的优点是一般泛化能力会得到加强,但是只能保证比那些模型中最差的模型要好,不能保证能得到比那些不同模型中的最好的模型要好
(3)线性融合(Linear blending),二次学习,使用线性模型将学习器组合起来,用得好可以提高模型性能,但是要注意有过拟合的风险。
(4)堆融合(Any blending、stacking),任何其它非线性模型将那些学习器组合起来,有过拟合的风险,注意验证。

机器学习元算法分为两类:Averaging methods 和 Boosting methods
Averaging methods 核心是引入随机(对样本、特征属性随机取样)学习产生多个独立的模型,然后平均所有模型的预测值。一般而言,这种方法,会减小方差(variance),不太会过拟合。主要包括bagging、RF。
Boosting methods 逐步加强方法,该方法集合学习多个模型,提高模型的准确率。不同的是,它是基于前面模型的训练结果(误差),生成新的模型,从而减小偏差(bias)。一般而言,这种方法会比上者的准确率高一点,但是也不是绝对的。它的缺点是有过拟合的风险,另外,由于它每个模型是“序列化”(有前后关系)产生的,不易并行化。它的代表是AdaBoost、GDBT。


生成学习

从训练集中我们先总结出各个类别的特征分布都是什么样的,也就是得到p(x|y),然后再把要预测的样本特征拿来和每个类别的模型作比较,看它更像是哪种类别的样本。这种算法被称为生成学习算法(generative learning algorithms)。

 也就是说,判别方法并不关心数据是长什么样子的,它直接面向分类任务,只关心数据之间的区别或者差异,然后利用学习到的区别来对样本作出预测。而生成方法则试图弄清楚数据是怎样产生的,每种类别数据的分布规律是什么,然后对于测试样本,再去判断那个类别最有可能产生这样的数据。
直观描述如下:
比如我们在马路边远远地望到一个小动物,你想要判断它是一只狗还是一只鹿。首先,你肯定是要观察它的特征,然后根据你之前已经建立的经验,把它分别与狗和鹿的特征相对比,看更像哪个,也就是利用条件概率p(x|y)。然而距离太远了,根据你现在能够观察到的来看,可能和两者的特征都很符合。这个时候如果要让你作出判断的话,我想大多数人都会认为这个在马路边出现的动物是狗。为什么呢?因为狗在城市中更为常见,先验概率p(y=dog)的值更大。在这个过程中,我们便是同时利用了条件概率和先验概率来作出判断的。


判别学习

由数据直接学习决策函数Y=f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。基本思想是有限样本条件下建立判别函数,不考虑样本的产生模型,直接研究预测模型。典型的判别模型包括k近邻,感知级,决策树,支持向量机,逻辑回归等。高斯判别分析模型是一种生成模型(易混点)。

监督学习方法又分生成方法(Generative approach)和判别方法(Discriminative approach),所学到的模型分别称为生成模型(Generative Model)和判别模型(Discriminative Model)。

生成学习与判别学习的区别:
(1)在线性回归和Logistic回归这种类型的学习算法中我们探讨的模型都是p(y|x;θ),即给定x的情况探讨y的条件概率分布,举个例子,logistc回归建立了模型p(y|x;θ)作为hθ(x)=g(θTx)的输出结果。所以说判别模型可以理解成通过构造模型,并在标记数据(x,y)下训练出参数,就可以直接对未知的x进行预测了。而生成模型通过各个类别的特征分布推测出预测样本的类别。
(2)判别学习算法(discriminative learning algorithm):直接学习p(y|x)(比如说logistic回归)或者说是从输入直接映射到{0,1}。生成学习算法(generative learning algorithm):对p(x|y)(和p(y))进行建模。简单的来说,判别学习算法的模型是通过一条分隔线把两种类别区分开,而生成学习算法是对两种可能的结果分别进行建模,然后分别和输入进行比对,计算出相应的概率。
(3)直接对问题进行求解,比如二类分类问题,不管是感知器算法还是逻辑斯蒂回归算法,都是在解空间中寻找一条直线从而把两种类别的样例分开,对于新的样例只要判断在直线的哪一侧即可;这种直接对问 题求解的方法可以成为判别学习方法(discriminative learning algorithm)。
(4)生成 学习算法则是对两个类别分别进行建模,用新的样例去匹配两个模型,匹配度较 高的作为新样例的类别,比如良性肿瘤与恶性肿瘤的分类,首先对两个类别分别 建模,比如分别计算两类肿瘤是否扩散的概率,计算肿瘤大小大于某个值的概率 等等;再比如狗与大象的分类,分别对狗与大象建模,比如计算体重大于某个值 的概率,鼻子长度大于某个值的概率等等。
(5)判别学习方法是直接对 p(y|x)进行建模或者直接学习输入空间 到输出空间的映射关系,其中,x 是某类样例的特征,y 是某类样例的分类标记。 而生成学习方法是对 p(x|y)(条件概率)和 p(y)(先验概率)进行建模,然后按 照贝叶斯法则求出后验概率 p(y|x)


迁移学习

即一种学习对另一种学习的影响,它广泛地存在于知识、技能、态度和行为规范的学习中。任何一种学习都要受到学习者已有知识经验、技能、态度等的影响,只要有学习,就有迁移。迁移是学习的继续和巩固,又是提高和深化学习的条件,学习与迁移不可分割。 —— [ 百度百科 ]

学习迁移也称训练迁移,是一种学习对另一种学习的影响。现代认知心理学认为,学习者在进行迁移前所掌握的知识,叫做源知识;学习者将要学习的新知识,叫做目标知识,如果学习者将源知识运用到了目标知识的学习,或阻碍或促进了学习,我们就说发生了迁移。

迁移学习的分类:
(1)迁移从作用分,有正迁移和负迁移。凡先前的学习对以后学习发生积极影响的为正迁移。例如,学习整数加减法有助于学习整数乘除法;学习骑自行车便于驾驶摩托车。反之,凡先前的学习对以后学习发生消极影响的为负迁移。例如,学习整数乘法之后作出a3×a5 =a15的错误反应。不论是正迁移还是负迁移,都有迁移量的大小区别。
(2)迁移从内容分,有特殊性迁移和一般性迁移。特殊性迁移是指学习某一内容后对相似材料有特殊的适用性,动作技能的迁移大都属特殊性迁移。一般性迁移指原理的迁移,它是一种更重要的迁移,学习了普通的概念或原理可以作为认识其它类似知识的基础。例如:学习了金属的热胀冷缩原理后,很容易掌握各种具体金属的这一特征。美国认知心理学家J.S.布鲁纳十分重视原理的迁移,认为这是教育的核心与重点,教育的根本目的就在于用基本的和普遍的原理来不断扩大并加深学生的认识。他强调指出,学生学到的越是基本概念,则该概念对新问题的适用性越宽广,迁移的范围也越普遍。学习方法和态度的迁移,也属于一般性迁移。
(3)按迁移发生的水平将迁移分为水平迁移和垂直迁移。水平迁移是指知识、技能在相同水平上的迁移,如学习三角方程式后能够促进物理课学习计算斜面上下滑物体的加速度;垂直迁移是指低水平技能向高水平技能的迁移,如运用三角形面积公式来推导梯形面积。
(4)根据迁移发生的方向将迁移划分为顺向迁移与逆向迁移。顺向迁移是指先前学习对后继学习的影响;逆向迁移是指后继学习对先前学习发生的影响。

迁移学习的目标是将从一个环境中学到的知识用来帮助新环境中的学习任务。讲白了,就是当前只有少量新的标记的数据,但是有大量旧的已标记的数据(甚至是其他类别的有效数据),这时通过挑选这些旧数据中的有效的数据,加入到当前的训练数据中,训练新的模型。
迁移学习目前可以分为三个部分:同构空间下基于实例的迁移学习,同构空间下基于特征的迁移学习与异构空间下的迁移学习。我们的研究指出,基于实例的迁移学习有更强的知识迁移能力,基于特征的迁移学习具有更广泛的知识迁移能力,而异构空间的迁移具有广泛的学习与扩展能力。这几种方法各有千秋。
实现迁移学习的方法有四种:1)样本迁移;2)特征迁移;3)基于模型的迁移学习;4)通过关系进行迁移,比如社交网络。

迁移学习形象描述:
(1)什么是迁移学习?即在源领域已经拥有大量数据,并且在源领域能对数据进行很好的应用建立了模型后,我们换一个领域也能让它使用,这样既节省了资源,又达到时间和效果的好处,就叫做迁移学习。这就很像人的举一反三的学习能力,比如我们学会骑自行车以后,我们又去学摩托车,发现很简单,我们打球、学语言、学物理化学也有很多这样的例子。
(2)举一个比较具体的栗子。在网页检索中,用来训练网页分类模型的web数据经常会随着时间的变化而过时,不能正确的表达目前网页的信息特征。如果重新对现有web数据进行重新建模的话,工作量就会非常大,并且,被更新的数据量是比较小的,数据中有大量的特征还是没有变化的,即这两个学习任务之间有很强的相关性。这时候就可以使用迁移学习,利用好先前学习任务中得到的知识,应用到目标任务或领域中。当然了,源任务和目标任务之间的特征空间和数据分布都可能不同。
(3)当教会了d电脑学习区分大象和犀牛的能力后,电脑利用这一本领更快或更准确地来学习如何区分飞机和鸟。因为人具有知识迁移的能力(所谓温故而知新),当我们学会了一项本领后,再去学习另外一项相关的本领就会容易很多。而迁移学习便是模仿人类的这一能力。

迁移学习解决了传统机器学习的不足:
(1)传统的机器学习需要对每个领域都标定大量训练数据,这将会耗费大量的人力与物力。而没有大量的标注数据,会使得很多与学习相关研究与应用无法开展。
(2)传统的机器学习假设训练数据与测试数据服从相同的数据分布。然而,在许多情况下,这种同分布假设并不满足。通常可能发生的情况如训练数据过期。这往往需要我们去重新标注大量的训练数据以满足我们训练的需要,但标注新数据是非常昂贵的,需要大量的人力与力。从另外一个角度上看,如果我们有了大量的、在不同分布下的训练数据,完全丢弃这些数据也是非常浪费的。
(3)迁移学习在文本数据挖掘,文本分类,命名实体识别等方面应用比较成功


多任务学习

多任务学习(Multi-tasklearning)是和 单任务学习(single-task learning)相对的一种机器学习方法。单任务学习就是忽略任务之间可能存在的关系。而多任务学习则看重任务之间的联系,既考虑到了任务之间的差别,又考虑到任务之间的联系,这也是多任务学习最重要的思想之一。

多任务学习方法大致可以总结为两类,一是不同任务之间共享相同的参数(common parameter),二是挖掘不同任务之间隐藏的共有数据特征(latent feature)。

多任务学习与迁移学习的区别:
(1)迁移学习有目标任务和源任务之分,源任务只是为目标任务服务的,而多任务则是各任务地位对等,目标是多个任务都要求好好学习。联系就是他们都用到了任务间的相关信息。
(2)在多任务学习中,当这些任务是相关的,联合的任务学习应该比单独学习每个任务的效果好,特别当每个任务的数据相当少的时候,在这种情况下,独自学习是很不成功的。
(3)多任务学习的目的是让多个领域的目标都达到最优,多个任务处于同等地位;而“迁移学习”的任务是让目标函数在目标领域达到最优,即目标领域处于最高的地位。
(4)单任务学习的过程中忽略了任务之间的联系,而现实生活中的学习任务往往是有千丝万缕的联系的,例如,当一名守门员在学习如何扑救时,并不是单纯地学习如何去扑球,而是会涉及许多相关的学习内容,比如如何进行预判,如何移动脚步,如何腾身起跳,如何平稳落地等。相似的,在计算机领域,多标签图像的分类,人脸的识别等等,这些任务都可以分为多个子任务去学习,多任务学习的优势就在于能发掘这些子任务之间的关系,同时又能区分这些任务之间的差别。
(5)迁移学习是指一个学习算法可以利用不同学习任务之间的共性来共享统计的优点和在任务间迁移知识。传统的机器学习假设训练数据与测试数据服从相同的数据分布。如果我们有了大量的、在不同分布下的训练数据,完全丢弃这些数据也是非常浪费的。如何合理的利用这些数据就是迁移学习主要解决的问题。迁移学习可以从现有的数据中迁移知识,用来帮助将来的学习。
(6)多任务学习同时学习多个不同的任务。而迁移学习更加注重从一个或多个source tasks中提取知识,并应用在另一个target task中。不同于多任务学习中,同时对两个task进行学习,迁移学习的关注点在于target task。


自我学习

自学习和无监督特征学习就是这种的算法。尽管一个单一的未标注样本蕴含的信息比一个已标注的样本要少,但是如果能获取大量无标注数据(比如从互联网上下载随机的、无标注的图像、音频剪辑或者是文本),并且算法能够有效的利用它们,那么相比大规模的手工构建特征和标数据,算法将会取得更好的性能。在自学习和无监督特征学习问题上,可以给算法以大量的未标注数据,学习出较好的特征描述。在尝试解决一个具体的分类问题时,可以基于这些学习出的特征描述和任意的(可能比较少的)已标注数据,使用有监督学习方法完成分类。在一些拥有大量未标注数据和少量的已标注数据的场景中,上述思想可能是最有效的。即使在只有已标注数据的情况下(这时我们通常忽略训练数据的类标号进行特征学习),以上想法也能得到很好的结果。 —— [ ufldl]


领域自适应

自适应是指处理和分析过程中,根据处理数据的数据特征自动调整处理方法、处理顺序、处理参数、边界条件或约束条件,使其与所处理数据的统计分布特征、结构特征相适应,以取得最佳的处理效果。 —— [ 百度百科 ]

(1)来源:
在经典的机器学习问题中,我们往往假设训练集和测试集分布一致,在训练集上训练模型,在测试集上测试。然而在实际问题中,测试场景往往非可控,测试集和训练集分布有很大差异,这时候就会出现所谓过拟合问题:模型在测试集上效果不理想。当训练集和测试集分布不一致的情况下,通过在训练数据上按经验误差最小准则训练的模型在测试上性能不好,因此出现了迁移学习技术。
比如:以人脸识别为例,如果用东方人人脸数据训练,用于识别西方人,相比东方人识别性能会明显下降。一个量化的例子,如果用东方人模型识别到西方人,有40%性能下降,反过来用西方人模型识别东方人,有20%的性能下降。

(2)领域自适应(Domain Adaptation)是迁移学习中的一种代表性方法,指的是利用信息丰富的源域样本来提升目标域模型的性能。

(3)领域自适应问题中两个至关重要的概念:源域(source domain)表示与测试样本不同的领域,但是有丰富的监督信息,目标域(target domain)表示测试样本所在的领域,无标签或者只有少量标签。源域和目标域往往属于同一类任务,但是分布不同。

(4)根据目标域和源域的不同类型,领域自适应问题有四类不同的场景:无监督的,有监督的,异构分布和多个源域问题。

(5)机器学习的经典流程可以看作:收集训练集的数据,提取特征,在训练集上依据经验误差最小准则学习分类器。如果训练集和测试集分布一致,则模型效果好。如果分布不一致,在源域过拟合,在目标域上效果不好。

(6)研究者提出了三种不同的领域自适应方法:
6.1)样本自适应,对源域样本进行加权重采样,从而逼近目标域的分布。
样本自适应:其基本思想是对源域样本进行重采样,从而使得重采样后的源域样本和目标域样本分布基本一致,在重采样的样本集合上重新学习分类器。

6.2)特征层面自适应,将源域和目标域投影到公共特征子空间。
特征自适应:其基本思想是学习公共的特征表示,在公共特征空间,源域和目标域的分布要尽可能相同。通过特征自适应,将输入的样本投影到公共子空间,通过计算源域的经验误差,逼近目标域的经验误差。

6.3)模型层面自适应,对源域误差函数进行修改,考虑目标域的误差。
模型自适应:其基本思想是直接在模型层面进行自适应。模型自适应的方法有两种思路:
一是直接建模模型,但是在模型中加入“domain间距离近”的约束。
二是采用迭代的方法,渐进的对目标域的样本进行分类,将信度高的样本加入训练集,并更新模型。

样本自适应作用于最前端,适合于源域和目标域分布差异小的情况。特征自适应适用于于源域和目标域有一定差异的情况。模型自适应的适用范围最广,能够应用于源域和目标域差异比较大的场景。


注意力机制

注意力是指人的心理活动指向和集中于某种事物的能力。“注意”,是一个古老而又永恒的话题。俄罗斯教育家乌申斯基曾精辟地指出:“‘注意’是我们心灵的惟一门户,意识中的一切,必然都要经过它才能进来。”注意是指人的心理活动对外界一定事物的指向和集中。 —— [ 百度百科 ]

两种attention机制,一种是全局(global)机制,一种是局部(local)机制。

人类和其他生物系统使用顺序的凝视移动来检测和识别模式。这个可以变得比全并行的模式识别方法更加高效。我们希望能让神经网络在学习过程中的注意力更加有选择性(selective)。

注意力同样可以用在卷积神经网络和 RNN 的接口。它使得 RNN 在每一步可以观察一张图像的不同位置。这种记忆力的一个流行应用就是图片描述(image captioning)。首先,一个卷积网络处理图片提取高层特征。然后一个 RNN 开始运营,生成一段对图像的描述。在生成这个描述的每一个单词时,RNN 关注于图像相关部分的卷积网络解释。

在NLP中的attention机制和人类的attention机制还是有所区别,它基本还是需要计算所有要处理的对象,并额外用一个矩阵去存储其权重,其实增加了开销。而不是像人类一样可以忽略不想关注的部分,只去处理关注的部分。


参考资料如下:


增强学习:
https://my.oschina.net/stone8oy/blog/270349
https://www.zhihu.com/question/41775291/answer/92740775

主动学习:
http://blog.csdn.net/qrlhl/article/details/48828589

直推学习:
http://blog.sciencenet.cn/blog-790781-704686.html

半监督学习:
http://blog.csdn.net/yhdzw/article/details/22733371
http://lbingkuai.iteye.com/blog/1666252

协同训练:
http://blog.sina.com.cn/s/blog_b5c079e201017xcp.html
http://www.tuicool.com/articles/bYr6ze
http://lamda.nju.edu.cn/huangsj/dm11/files/gaoy.pdf

集成学习:
http://blog.csdn.net/chl033/article/details/4851164
http://www.csdn.net/article/2015-09-07/2825629
http://www.tuicool.com/articles/aMFN3a
http://www.csdn.net/article/2015-03-02/2824069
http://blog.sina.com.cn/s/blog_6264e23a0101h4y2.html
http://wenku.baidu.com/link?url=Gqkh_HZyjlK0QCMtci5jLjwgUSYqYcQ_Rb9_KZQC7VLlnfjzjFCXTthNw5OeFoORKPtplkE3mRpDSExuqnJ0uUMoWMoRE86qnXt7n6Bsgde
http://www.cnblogs.com/wxquare/p/5440664.html
http://www.360doc.com/content/16/1010/22/18144428_597449044.shtml

生成模型与判别模型:
http://blog.csdn.net/ismarvellous/article/details/51222612
http://www.cnblogs.com/czdbest/p/5771500.html

迁移学习:
http://www.cnblogs.com/Gavin_Liu/archive/2009/12/12/1622281.html
https://zhuanlan.zhihu.com/p/22023097
http://old.pep.com.cn/xgjy/xlyj/xlshuku/xlsk1/115/jyxlx/201012/t20101209_984925.htm
https://zhuanlan.zhihu.com/p/22023097

多任务学习:
http://blog.csdn.net/u013854886/article/details/38425499
http://blog.csdn.net/inter_xuxing/article/details/8617856
http://www.tuicool.com/articles/uyUJJb7
http://blog.csdn.net/qrlhl/article/details/49047877

自我学习:
http://ufldl.stanford.edu/wiki/index.php/%E8%87%AA%E6%88%91%E5%AD%A6%E4%B9%A0

领域自适应:
https://zhuanlan.zhihu.com/p/21441807

注意力机制:
http://bi.dataguru.cn/article-10043-1.html
http://f.dataguru.cn/thread-708322-1-1.html
http://blog.csdn.net/u010165147/article/details/50964108
http://www.jianshu.com/p/f74fbe1984a2
http://blog.csdn.net/leo_xu06/article/details/50730722
http://blog.csdn.net/leo_xu06/article/details/53491400
http://www.dataguru.cn/article-9927-1.html

1 0
原创粉丝点击