1、第三章深度学习的算法3.1神经网络经典算法3.2梯度下降3.3动量算法3.4反向传播of12513.6迁移学习3.5弱监督学习3.7小样本学习3.8Dropout第三章深度学习的算法of12523.1神经网络经典算法监督学习利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程数据集中所使用的每一个样本都有一个对应的标签(label),而样本和标签之间则是通过学习进行关联。监督学习算法逻辑回归模型支持向量机3.1.1监督学习算法第三章深度学习的算法of12533.1神经网络经典算法逻辑回归模型F(x)曲线的增长速度在两端呈现较慢趋势,而在中心附近则呈现较快趋势第三章深度学习的算法of
2、12543.1神经网络经典算法该模型的条件概率分布第三章深度学习的算法of12553.1神经网络经典算法相应的二项逻辑回归模型第三章深度学习的算法of12563.1神经网络经典算法如何通过数据集来估计模型的参数?极大似然估计法设似然函数为对数似然函数为第三章深度学习的算法of12573.1神经网络经典算法对数似然函数为通过对计算极大值就可以得到的估计值。第三章深度学习的算法of12583.1神经网络经典算法学习得到的二项逻辑回归模型第三章深度学习的算法of12593.1神经网络经典算法支持向量机(SVM)一类按监督学习方式对数据进行二元分类的非线性分类器函数,其决策边界是对学习样本求解的最大边
3、距超平面。第三章深度学习的算法of125103.1神经网络经典算法支持向量机(SVM)进一步可以改写成如下形式:一般是非线性的,如高斯函数。可以将x替换为特征函数的输出,得第三章深度学习的算法of125113.1神经网络经典算法支持向量机(SVM)进一步可以改写成如下形式:目标:SVM的参数由样本学习获得。约束条件:第三章深度学习的算法of125123.1神经网络经典算法K近邻其他简单的监督学习方法对于给定一个样本x,根据其k个最近邻的训练样本的类别,通过多数表决等方式对新的输入样本的类别进行预测,如果这k个最近邻样本参数属于某一类别,则判定该输入样本x也属于这个类别。第三章深度学习的算法of
4、125133.1神经网络经典算法决策树用来描述对样本分类时其分类过程的树形结构。决策树由结点和有向边组成,结点又分成内结点和叶结点两种类型,内结点对应样本的一个特征或属性,叶结点表示样本的一个类别。从根结点开始,对样本的某一特征进行测试,将样本分配到其对应的子结点,递归这一过程,直至叶结点,最后的叶节点为该样本所对应的类别。其他简单的监督学习方法预测用户偿还贷款的能力第三章深度学习的算法of125143.1神经网络经典算法3.1.2无监督学习训练集中每个样本不带任何标记信息,通过对这些样本的学习,来揭示样本特征的内在性质及规律。聚类学习是一种典型的无监督学习,它将数据集中的样本划分为若干个互不
5、相交的子集,每个子集称为一个“簇”。第三章深度学习的算法of125153.1神经网络经典算法3.1.2无监督学习第三章深度学习的算法of125163.1神经网络经典算法3.1.3半监督学习半监督学习使用大量的未标记数据,以及同时使用标记数据,来进行模式识别工作。在带标记的样本上使用监督学习构建模型,再让该模型通过未标记样本来提升学习性能,并且这个过程不用依赖外界的交互,是一个自动进行的过程。在半监督学习中,通常要做一些将数据分布信息与类别标记相联系的假设,当模型假设正确时,无类标签的样例能够帮助改进学习性能,最常见的假设是聚类假设和流形假设。第三章深度学习的算法of125173.1神经网络经典
6、算法半监督学习算法1.生成模型算法(Generatesemi-supervisedmodels)思想:假设一个模型,其分布满足:p(x,y)=p(y)p(x|y)。其中,p(x|y)是已知的条件概率分布。那么大量未经标记数据的联合分布就可以被确定。第三章深度学习的算法of125183.1神经网络经典算法半监督学习算法2自训练算法(Self-training)思想:首先训练带有标记的数据(监督训练),得到一个分类器。然后使用这个分类器对未标识的数据进行分类。根据分类结果,将可信程度较高的未标记数据及其预测标记加入训练集,扩充训练集规模,重新学习以得到新的分类器。第三章深度学习的算法of12519
7、3.1神经网络经典算法半监督学习算法3.联合训练算法(Co-training)思想:首先根据已标记数据的两组不同特征来划分出不同的两个数据集,然后根据这两个不同的数据集分别训练出两个分类器。每个分类器用于无标识的数据集的分类,并且给出分类可信程度的概率值。第三章深度学习的算法of125203.1神经网络经典算法半监督学习算法4.半监督支持向量机(S3VMs)思想:半监督支持向量机(Semi-supervisedsupportvectormachines,S3VM或S3VMs)。S3VM算法同时使用带有标记和不带标记的数据来寻找一个拥有最大类间距的分类面。第三章深度学习的算法of125213.1
8、神经网络经典算法半监督学习算法5.基于图论的方法思想:首先从训练样本中构建图。图的顶点是已标记或者未标记的训练样本。两个顶点xi,xj之间的无向边表示两个样本的相似性,又称两个样本的相似性度量。根据图中的度量关系和相似程度,构造k-聚类图。然后再根据已标记的数据信息去标记为未标记数据。第三章深度学习的算法of125223.1神经网络经典算法3.1.4强化学习马尔可夫决策过程(MarkovDecisionProcess,简称MDP)常常被拿来用以描述强化的学习任务强化学习的目的是取得最大化的预期利益,并且强调如何基于环境而行动。第三章深度学习的算法of125233.1神经网络经典算法3.1.4强
9、化学习强化学习的目标是去学习怎么花更多的时间在更有价值的状态上,为了有一个更有价值的状态,我们需要MDP提供更多的信息。一个简单的马尔科夫决策(MDP)过程:第三章深度学习的算法3.2梯度下降3.3动量算法3.4反向传播of125243.6迁移学习3.5弱监督学习3.7小样本学习3.8Dropout3.1神经网络经典算法第三章深度学习的算法of125253.2梯度下降梯度下降指沿着目标能量函数的反梯度方向下降。第三章深度学习的算法of125263.2梯度下降梯度下降从机器学习角度考虑,模型的优化问题转化为求解模型的目标函数的最小值,首先需明确目标函数的梯度下降方向,然后以该方向前进,不断逼近目
10、标函数的最优值。梯度下降步骤第三章深度学习的算法of125273.2梯度下降梯度下降法包含批量梯度下降算法(BGD)、随机梯度算法(SGD)和小批量梯度下降算法(MBGD)三种。批量梯度下降随机梯度小批量梯度下降第三章深度学习的算法of125283.2梯度下降小批量梯度下降法的迭代更新过程收敛的充分条件学习率的确定常通过监测目标函数的值随时间变化的学习曲线来确定最佳的学习率。综合考虑总训练时间和最终代价,一般将初始学习率的值设为高于迭代100次左右后模型达到最好效果时的学习率。第三章深度学习的算法of125293.2梯度下降梯度下降更新公式对比批量梯度下降小批量梯度下降随机梯度下降第三章深度学
11、习的算法3.2梯度下降3.3动量算法3.4反向传播of125303.6迁移学习3.5弱监督学习3.7小样本学习3.8Dropout3.1神经网络经典算法第三章深度学习的算法of125313.3动量算法动量动量表示迭代优化量,即参数值(如梯度、权重、学习率等)的更新量,这些参数值在优化过程中是进行不断更新的,通过动量的方式可以推动目标值向优化值不断靠近。与梯度下降法相比,动量算法能帮助目标值穿越有着“狭窄山谷”形状的优化曲面,从而无限接近最优点。评价动量算法性能好坏的其中一个标准是其爬坡能力的强弱。3.3.1动量第三章深度学习的算法of125323.3动量算法带动量的随机梯度下降算法该算法是引入
12、一个变量v,让其充当速度角色,v在这里表示参数在参数空间前进的速度,包括方向和速率,其值等于负梯度的指数衰减平均值。参数更新规则如下所示:3.3.1动量第三章深度学习的算法of125333.3动量算法带动量的小批量梯度下降算法3.3.1动量第三章深度学习的算法of125343.3动量算法Nesterov动量算法是在动量算法的基础上进行改进提出的,它是在标准动量算法中新增加了一个权重校正因子v。其更新规则如下所示:3.3.2Nesterov动量算法动量算法在优化过程中也能直接绕过鞍点,但是因为存在累积的更新量,动量算法绕过鞍点的时机要晚一些。第三章深度学习的算法3.2梯度下降3.3动量算法3.4
13、反向传播of125353.6迁移学习3.5弱监督学习3.7小样本学习3.8Dropout3.1神经网络经典算法第三章深度学习的算法of125363.4反向传播3.4.1前馈神经网络根据神经元的网络拓扑结构,神经网络模型包括前向网络和反馈网络,不同的网络模型有不同的优势和应用。在前馈神经网络中,各神经元可以接收前一层神经元的信号,并产生输出到下一层。网络中无反馈,信号从输入层向输出层单向传播。第三章深度学习的算法of125373.4反向传播3.4.2反向传播算法反向传播(Backpropagation,缩写为BP)是“误差反向传播”的简称,该方法要求有对每个输入值想得到的已知输出,计算损失函数的
14、梯度,用这一梯度来更新权值以最小化损失函数。反向传播算法(BP算法)类似随机最速下降法(SGD),算法的目的是根据实际的输入与输出数据,计算模型的参数(权系数)。主要有两个阶段:激励传播与权重更新。第三章深度学习的算法of125383.4反向传播3.4.2反向传播算法1.简单网络的BP算法假设有P个训练样本,即有P个输入输出对:其中,输入向量为目标输出向量为(实际上或期望的):网络输出向量为(理论上的):第三章深度学习的算法of125393.4反向传播1.简单网络的BP算法记wij为从输入向量的第j(j=1,m)个分量到输出向量的第i(i=1,n)个分量的权重。通常理论值与实际值有一误差。设:
15、第i个神经元的输出可表示为其中,ipm=-1,wim=(第i个神经元的阈值),特别当f 是线性函数时第三章深度学习的算法of125403.4反向传播1.简单网络的BP算法网络学习则是指不断地把目标输出与网络输出比较,并根据极小原则修改参数wij,使误差平方和达到最小:求E最小值的梯度最速下降法,就是Delta学习规则记wij表示递推一次的修改量。则有第三章深度学习的算法of125413.4反向传播2.多隐层前馈神经网络的BP算法(2)设uk(i)表示第k层第i神经元所接收的信息,wk(i,j)表示从第k-1层第j个元到第k层第i个元的权重,ak(i)表示第k层第i个元的输出。(3)处于不同层的
16、神经元都有信息交换,但同一层的神经元之间没有信息传输。(4)信息传输的方向:输入层输出层,没有反向传播信息。(5)a0(j)表示输入的第j个分量。(1)输入层有N0个神经元,其不计在层数之内。若该网络共有L层;则输出层为第L层,第k层就有Nk个神经元。第三章深度学习的算法of125423.4反向传播2.多隐层前馈神经网络的BP算法在上述假定下,网络的输入输出关系可表示为:k(i)其中表示第k层第i个元的阈值。第三章深度学习的算法of125433.4反向传播2.多隐层前馈神经网络的BP算法对于具有多个隐层的前馈神经网络;设激活函数为S函数;且指标函数取其中第三章深度学习的算法of125443.4
17、反向传播2.多隐层前馈神经网络的BP算法BP算法1.选定学习的数据,p=1,P,随机确定初始权矩阵W(0)2.用学习数据计算网络输出3.用下式反向修正,直到用完所有学习数据。多次采用样本数据进行训练,直到网络收敛为止。第三章深度学习的算法of125453.4反向传播3.4.3反向传播算法实例蚊子分类已知的两类蚊子的数据如表:翼长 触角长 类别1.78 1.14 Apf1.96 1.18 Apf1.86 1.20 Apf1.72 1.24 Af2.00 1.26 Apf2.00 1.28 Apf1.96 1.30 Apf1.74 1.36 Af目标值目标值0.90.90.90.10.90.90.
18、90.1 翼长 触角长 类别1.64 1.38 Af1.82 1.38 Af1.90 1.38 Af1.70 1.87 Af1.82 1.48 Af1.82 1.54 Af2.08 1.56 Af目标值目标值0.10.10.10.10.10.10.1 第三章深度学习的算法of125463.4反向传播3.4.3反向传播算法实例(蚊子分类)输入数据有15个,即,p=1,15;j=1,2。建模:(输入层,中间层,输出层,每层的元素应取多少个?)建立神经网络规定目标为:当t(1)=0.9时表示属于Apf类,t(2)=0.1表示属于Af类。设两个权重系数矩阵为:其中为阈值 第三章深度学习的算法of125
19、473.4反向传播3.4.3反向传播算法实例分析如下第一层的输出,同时作为第二层的输入其中,为阈值,为激励函数若令(作为一固定输入)(阈值作为固定输入神经元相应的权系数)(蚊子分类)第三章深度学习的算法of125483.4反向传播3.4.3反向传播算法实例则有:取激励函数为则对于第二层,取(蚊子分类)第三章深度学习的算法of125493.4反向传播3.4.3反向传播算法实例具体算法如下:(1)随机给出两个权矩阵的初值;例如用MATLAB软件时可以用以下语句:令p=0=rand(2,3);=rand(1,3);(2)根据输入数据利用公式算出网络的输出=第三章深度学习的算法of125503.4反向
20、传播3.4.3反向传播算法实例取(3)计算因为所以(4)取(或其他正数,可调整大小)第三章深度学习的算法of125513.4反向传播3.4.3反向传播算法实例(5)计算和j=1,2,3,i=1,2,3,计算j=1,2,3j=1,2,3(6)p=p+1,转(2)(蚊子分类)第三章深度学习的算法of125523.4反向传播3.4.3反向传播算法实例注:仅计算一圈(p=1,2,15)是不够的,直到当各权重变化很小时停止(收敛)共计算了147圈,迭代了2205次。最后结果是:(蚊子分类)第三章深度学习的算法of125533.4反向传播3.4.3反向传播算法实例即网络模型的解为:=(蚊子分类)第三章深度
21、学习的算法of125543.4反向传播3.4.3反向传播算法实例种类检测对于检测数据(1.87,2.04),取a0(1)=1.87,a0(2)=2.04,输入神经网络,以网络输出结果a2(1)判定其类型:a2(1)0.5,则为Apf类a2(1)0.5,则为Af类注:网络也可设计为二维输出。(蚊子分类)第三章深度学习的算法3.2梯度下降3.3动量算法3.4反向传播of125553.6迁移学习3.5弱监督学习3.7小样本学习3.8Dropout3.1神经网络经典算法第三章深度学习的算法of125563.5弱监督学习背景数据标注过程的高成本,很多任务很难获得如全部真值标签的强监督信息。数据集的标签不
22、可靠,或者数据集的标注不充分,甚至只是局部标记。弱监督学习:以监督信息不完整或不明确的数据为训练对象的学习。即,弱监督学习指的是通过数据集较弱的监督信息来学习并构建深度学习模型。第三章深度学习的算法of125573.5弱监督学习弱监督学习类型三种弱监督类型:a)不完全监督:只有一部分训练数据具备标签;b)不确切监督:训练数据只具备粗粒度标签;c)不准确监督:给出的标签并不总是真值。第三章深度学习的算法of125583.5弱监督学习3.5.1不完全监督(1)主动学习学习算法主动地提出要对哪些数据进行标注,之后我们要将这些数据送到专家那里让他们进行标注,再将这些数据加入到训练样本集中对算法进行训练
23、。不完全监督学习主要采用主动学习和半监督学习。第三章深度学习的算法of125593.5弱监督学习3.5.1不完全监督主动学习方法一般可以分为两部分:学习引擎和选择引擎。学习引擎:维护一个基准分类器,并使用监督学习算法对系统提供的已标注样例进行学习,以提高分类器的性能选择引擎:负责选择一个未标注的样例并将其交由人类专家进行标注,并其加入到已标注样例集中。学习引擎和选择引擎交替工作,经过多次循环,基准分类器的性能逐渐提高,当满足预设条件时,过程终止。第三章深度学习的算法of125603.5弱监督学习3.5.1不完全监督根据获得未标注样例的方式,可以将主动学习分为两种类型:基于流的和基于池的。基于流
24、(stream-based)的主动学习:未标记的样例按先后顺序逐个提交给选择引擎,由选择引擎决定是否标注当前提交的样例,如果不标注,则将其丢弃。基于池(pool-based)的主动学习:维护一个未标注样例的集合,由选择引擎在该集合中选择当前要标注的样例。第三章深度学习的算法of125613.5弱监督学习3.5.1不完全监督(纯)半监督学习:假定训练数据中的未标记样本并非待测的数据;直推式学习:假定学习过程中所考虑的未标记样本恰是待预测数据,学习的目的就是在这些未标记样本上获得最优泛化性能。(1)半监督学习半监督学习又分为(纯)半监督学习((Pure)Semi-supervisedlearnin
25、g)和直推式学习(TransductiveLearning)第三章深度学习的算法of125623.5弱监督学习3.5.2不确切监督背景模型训练过程中,使用的训练数据集只有一些有监督信息,而且这些监督信息还不一定准确和精确,即训练数据集只有粗粒度的标注信息。不确切监督学习就是针对给定了监督信息但监督信息不够精确的场景,常用于仅有标签信息是粗粒度的场景。第三章深度学习的算法of125633.5弱监督学习3.5.2不确切监督多示例学习将一个真实的目标(如视频、一张图片或一个文本文档)看作一个包(模型的训练数据),一个包由很多示例组成,而且这些示例需要包生成器后天生成。假设图像的尺寸为3232,如图(
26、a)展示了包生成器模板(单块,SingleBlob,SB)的尺寸为88。若该单块以无重叠滑动的方式给上图的小狗图片生成示例,如图(b)所示,将得到16个示例,每个示例包含64个像素。(a)(b)第三章深度学习的算法of125643.5弱监督学习3.5.3不准确监督数据编辑方法识别和删除/重标记可疑的数据点使用一个节点对应一个训练样本,将连接两个不同标签的节点的边称为切边(Cutedge),然后测量一个切边的权重,如果一个示例连接了太多的切边,那么该示例就是可疑的。对于这种可疑的示例,要么删除,要么重新标记第三章深度学习的算法3.2梯度下降3.3动量算法3.4反向传播of125653.6迁移学习
27、3.5弱监督学习3.7小样本学习3.8Dropout3.1神经网络经典算法第三章深度学习的算法of125663.6迁移学习迁移学习自1995年以来,迁移学习吸引了众多研究者的目光,并已发展成为一个研究领域。在某些领域,标记数据短缺。在某些领域,标注工作非常昂贵。在某些领域,建模、学习过程非常耗时。为什么要迁移学习?第三章深度学习的算法of125673.6迁移学习迁移学习学习去学习(Learningtolearn)终身学习(life-longlearning)推导迁移(inductivetransfer)知识强化(knowledgeconsolidation)知识蒸馏(knowledgedist
28、illation)上下文敏感性学习(context-sensitivelearning)基于知识的推导偏差(knowledge-basedinductivebias)累计/增量学习(increment/cumulativelearning),等等均可以认为是知识迁移的范畴。第三章深度学习的算法of125683.6迁移学习3.6.1迁移学习中的定义域:由特征空间(featurespace)X 和特征空间的边缘分布P(x)所组成。领域可以表示成D=X,P(x),领域分为源域和目标域。源域(sourcedomain)Ds:指特征空间和特征空间的边缘分布容易获得的领域。目标域(targetdomain
29、)Dt:待求特征空间的边缘分布的领域。知识迁移(knowledgetransfer)是一种新的学习方式,其目的是将从一个或多个源任务中所抽取的知识与经验,应用到另一个目标域当中,从而满足快速解决问题的需求。第三章深度学习的算法of125693.6迁移学习3.6.1迁移学习中的定义一个任务由两个部分组成:给定一个域D=X,P(x),有相应的标签空间Y 和一个目标预测函数f(.)。一个任务就可表示为:T=Y,f(.)。目标预测函数可以通过训练样本学习得到。从概率论角度来看,目标预测函数f(.)可以表示为P(Y|X),任务表示成T=Y,P(Y|X)。源域表示Ds=(xs1,ys1),(xs2,ys2
30、).(xsns,ysns)目标域表示Dt=(xt1,yt1),(xt2,yt2).(xtnt,ytnt)通常情况下,源域观测样本数目ns与目标域观测样本数目nt存在如下关系:1=ntns第三章深度学习的算法of125703.6迁移学习3.6.1迁移学习中的定义迁移学习定义:在给定源域Ds和源域学习任务Ts、目标域Dt和目标域任务Tt,且Ds不等于Dt或Ts不等于Tt的情况下,迁移学习使用源域Ds和Ts中的知识提升或优化目标域Dt中目标预测函数ft(.)的学习效果。第三章深度学习的算法of125713.6迁移学习3.6.1迁移学习中的定义在迁移学习领域中通常有三个研究问题:(1)迁移什么用哪些知
31、识可以在不同的领域或者任务中进行迁移学习,即多个不同领域或任务之间有哪些共有知识可以迁移。(2)如何迁移找到了迁移对象之后,针对具体问题,采用哪种迁移学习的特定算法,即如何设计出合适的算法来提取和迁移共有知识。(3)什么时候迁移什么情况下适合迁移,迁移技巧是否适合具体应用。存在负迁移的问题第三章深度学习的算法of125723.6迁移学习3.6.1迁移学习的分类根据源域和目标域及任务的不同,基于迁移学习的定义,我们可以把迁移学习分为推导迁移学习、转导迁移学习和无监督迁移学习等三大类。Ds、DtTs、Tt源域标签目标标签推导迁移学习同/不同不同有/无有转导迁移学习不同同有无无监督迁移学习同/不同不
32、同不可观测不可观测第三章深度学习的算法of125733.6迁移学习3.6.2迁移学习的分类基于解决方法,也就是迁移内容来分类。迁移学习可以分为四类,样本实例、特征表达、参数、相关知识都可以用来迁移。1.基于实例的迁移学习(instance-basedtransferlearning):源域中的数据的某一部分可以通过reweighting的方法重用,用于目标的学习。2.基于特征表示的迁移学习(feature-representationtransferlearning):通过源域学习一个好的的特征表示,把知识通过特征的形式进行编码,并从源域传递到目标域,提升目标任务效果。3.基于参数的迁移学习(
33、parameter-transferlearning):目标域和源域的任务之间共享相同的模型参数或者是服从相同的先验分布(priordistribution)。4.基于关系知识迁移学习(relational-knowledgetransferlearning):相关领域之间的知识迁移,假设源域和目标域中,数据之间联系关系是相同的。第三章深度学习的算法of125743.6迁移学习3.6.2迁移学习的分类1.基于实例的迁移学习(instance-basedtransferlearning)假设:源域中的一些数据和目标域会共享很多共同的特征方法:对源域进行样本迭代赋予权重,筛选出与目标域数据相似度高
34、的数据,然后进行训练学习。第三章深度学习的算法of125753.6迁移学习基于实例的迁移学习例子第三章深度学习的算法of125763.6迁移学习背景:在许多实际应用中,训练集和测试集分布相同的假设是不成立。例如,气象数据随着时间的推移,原来用于训练的前几年数据(olddata),其分布与现采集的数据(newdata)不完全一样,这样我们的算法的预测准确率就会下降很多。但是新数据可能数量不够,完全抛弃旧数据也太浪费。TrAdaBoost迁移学习算法原理:一种从olddata中提取实例的迁移学习方法,即将一部分能用的oldlabeleddata,结合newlabeleddata(可能是少量),构建
35、出更精确的模型。代表性模型:TrAdaBoost、KernelMeanMatching(KMM)、Densityratioestimation第三章深度学习的算法of125773.6迁移学习TrAdaBoost算法步骤:输入:Ds、Dt;基本分类器;最大迭代次数N初始化:数据权重初始向量1)将数据的权重归一化,使其成为一个分布。2)调用弱分类器。将Ds 和Dt 的数据整体作为训练数据,过程和AdaBoost训练弱分类器一样,得到分类器第三章深度学习的算法of125783.6迁移学习3)计算Dt上的分类错误率。即只计算newdata。olddata在这里不计算。而且计算错误率的时候需要将Dt 中
36、的提取数据权重重新归一化。4)分别计算Dt 和Ds 权重调整的速率。注意,每一次迭代,Dt 的权重调整速率都不一样,而Ds 中的数据,是一样的。t 在AdaBoosting中,相当于每一个弱分类器的话语权有多大。t 越大,该弱分类器话语权越小。第三章深度学习的算法of125793.6迁移学习5)更新数据权重。Dt 中的数据,如果分类错误,则提高权重值,与传统AdaBoost算法一致。Ds 中的数据,则相反,如果分类错误,则降低权重值,这是因为分类错误的就认为这部分olddata与newdata差距太大。输出:以后半数弱分类器(N/2N)的投票为准。第三章深度学习的算法of125803.6迁移学
37、习2.基于特征的迁移学习(instance-basedtransferlearning)假设:源域和目标域有且仅有一些交叉特征方法:通过特征映射变换,将两个域的数据变换到同一特征空间,然后进行训练学习第三章深度学习的算法of125813.6迁移学习基于特征的迁移学习例子第三章深度学习的算法of125823.6迁移学习基于特征的迁移学习方法的典型模型包括Transfercomponentanalysis、SpectralFeatureAlignment(SFA)、Geodesicflowkernel(GFK)、Transferkernellearning等。下面以Transfercomponen
38、tanalysis(迁移成分分析)为例进行介绍。迁移成分分析(TCA)模型,是学习所有域的公共迁移成分,将不同域中的数据分布差异投影到一个子空间,显著地减小数据分布的差异。然后,在这个子空间中可以使用标准的机器学习方法来训练跨领域的分类器或回归模型。是将一个大的矩阵作为输入,然后输出一个小矩阵,在减少数据维度的同时,能达到迁移学习的目的。第三章深度学习的算法of125833.6迁移学习1)假设:P(Xs)与Q(Xt)分别为源域Xs 和目标域Xt 的边缘分布,且P(Xs)Q(Xt),但条件概率分布p(Ys|Xs)p(Yt|Xt)。现在的任务就是要预测目标数据xti 对应的标签yti 。2)定义两
39、个随机变量集合之间的一种距离。再生核希尔伯特空间(ReproducingKernelHilbertSpace,RKHS)的分布度量准则-最大均值差异(MaximumMeanDiscrepancy,MMD):令X=x1,xn1和Y=y1,yn2为两个分布P和Q的随机变量集合,则两个分布的经验估计距离为其中,H是再生核希尔伯特空间,:XH为核函数映射。第三章深度学习的算法of125843.6迁移学习3)分析迁移成分设源域、目标域、结合域经映射 后的数据分别为我们希望找到这样一个映射,使得映射后的数据分布一致,即第三章深度学习的算法of125853.6迁移学习根据MMD的定义,我们可以利用度量两个域
40、之间的经验均值的距离平方作为分布的距离为了避免直接求解非线性变换,我们将该问题转化为核学习(kernellearning)问题。利用核技巧两个域之间的经验均值距离可以被写为第三章深度学习的算法of125863.6迁移学习其中为核矩阵,分别为由核函数定义在源域、目标域、跨域的核矩阵L=lij:第三章深度学习的算法of125873.6迁移学习核矩阵K可以被分解(特征值分解)为经验核映射(empiricalkernelmap)现考虑使用阶的矩阵将特征变化到m 维空间,通常则得到的核矩阵为其中,第三章深度学习的算法of125883.6迁移学习特别地,任意两个数据xi和xj的核函数为由此可见,公式中的核
41、函数给出了未见样本的参数化核估计表示。至此,两个域之间的经验均值距离可重新写为(这里利用了迹运算的循环性质)其中,第三章深度学习的算法of125893.6迁移学习4)迁移成分提取对于公式,加一个正则项tr(W TW)以控制参数W的复杂度,进行最小化得到领域自适应的核学习问题:其中,为权衡参数,IRmm为单位阵,第三章深度学习的算法of125903.6迁移学习类似于核Fisher判别,公式(3.42)中W的解为的前m个特征值对应的特征向量。这也是该方法命名为迁移成分分析的原因利用拉格朗日乘子法,可将上述优化问题转化为为中心矩阵,1Rn1+n2为全1的列向量。其中,第三章深度学习的算法of1259
42、13.6迁移学习3.基于共享参数的迁移学习(基于模型的迁移)假设:源域和目标域可以共享一些模型参数方法:将源域学习到的模型运用到目标域上,再根据目标域学习新的模型。典型的方法:TransEMDT、TRCNN、TaskTrAdaBoost、Learningtolearn,Regularizedmulti-tasklearning等,下面以TransEMDT((TransferlearningEMbeddedDecisionTree))为例进行讨论。第三章深度学习的算法of125923.6迁移学习YesGenerate DT forperson AClass 2Class 1(Ai,i)(Aj,j
43、)Class 3DTK-mean AlgorithmConverged?Update the parameters of DTA personalizied DT for person BNoTransEMDT流程框图对于样本x=x1,x2,Aj 是x的第j 个属性,值为xj。对于第i个叶节点,wi 的第j 个元素为其中,Pi是从第i个叶节点到根节点的路径。取所有终端样本计算聚类中心。实例x到第i个聚类中心i的距离D 为其中,第三章深度学习的算法of125933.6迁移学习于是,实例x 的标签的索引为算法步骤如下:1)由标注样本Dsrc(源域样本)训练一个树DT;2)对于DT的每个叶节点,寻找
44、相关属性,构建wi并用于计算叶节点的中心。t=0;While3)将目标域Vtar的每个样本用DT进行分类:第三章深度学习的算法of125943.6迁移学习4)初始化一步K-meam算法的中心:5)对于每个样本,用以下公式寻找与其靠近的叶节点,并改变该节点的成员;实例x的标注为(Vj 为标注为j 类的样本集)第三章深度学习的算法of125953.6迁移学习6)以自下而上的方式更新DT所有的节点。选择离叶节点中心最近的K 个高置信度样本,参与阈值的调整:For对于DT中每个非终端节点Ai,设LSampls为左子树的样本集,RSampls为右子树的样本集,则更新阈值为EndFort=t+1EndWh
45、ile第三章深度学习的算法of125963.6迁移学习4.基于关系知识的迁移假设:如果两个域是相似的,那么它们会共享某种相似关系方法:利用源域学习逻辑关系网络,再应用于目标域上。典型的方法:Predicatemappingandrevising(TAMAR)、Second-orderMarkov、TAMAR等。下面以TAMAR为例进行说明。第三章深度学习的算法of125973.6迁移学习输入:1.源域中的关系数据和在源域中学习到的统计关系模型(如Markov逻辑网络,MLN).2.目标域中的关系数据.输出:一种新的目标域统计关系模型MLN.目标:更有效地学习目标域中的MLN.TAMAR模型第三
46、章深度学习的算法of125983.6迁移学习两个阶段两个阶段:1.1.谓词映射(谓词映射(Predicate MappingPredicate Mapping)在源域和目标域中建立谓词之间的映射。建立映射后,可以将源域中的子句转换为目标域.2.2.修改映射结构(修改映射结构(Revising the Mapped StructureRevising the Mapped Structure)直接从源域映射的子句,可能不完全准确,可能需要修改、扩充和重新加权,以便对目标数据进行正确的建模.第三章深度学习的算法of125993.6迁移学习Actor(A)Actor(A)Director(B)Dir
47、ector(B)WorkedForMovie(M)Movie(M)MovieMemberMovieMemberStudent(B)Student(B)Professor(A)Professor(A)AdvisedByPaper(T)Paper(T)PublicationPublicationSource domain(academic domain)Source domain(academic domain)Target domain(movie domain)Target domain(movie domain)MappingMappingRevisingRevising第三章深度学习的算法
48、of1251003.6迁移学习3.6.3Knowledgedistilling(知识蒸馏)迁移学习知识蒸馏:通过大型网络(teachernetwork)提取先验知识(暗知识提取),将其作为软目标(soft-target)加进总损失(totalloss)中,以诱导小型网络(studentnetwork)的训练,实现知识迁移。Hinton的文章DistillingtheKnowledgeinaNeuralNetwork首次提出了知识蒸馏的概念第三章深度学习的算法of1251013.6迁移学习教师网络:大规模,参数量大、复杂、推理性能优越学生网络:小规模、参数量小、低复杂度。可应用到设备端的模型。第
49、三章深度学习的算法of1251023.6迁移学习对于教师网络,可形象的认为,通过温度(temperature)系数T,将复杂网络结构中的概率分布蒸馏出来,并将该概率分布用来指导小规模网络进行训练。设网络输出为,类别的分布向量为知识的蒸馏由带有温度系数T 的如下的公式实现:第三章深度学习的算法of1251033.6迁移学习由于温度参数T 的作用,softmax会更加平滑(图),分布更加均匀而大小关系不变。在知识转换阶段,显然T越大输出越软。这样改完之后,对比原始softmax,梯度相当于乘了1/T2,因此Lsoft需要再乘以T2来与Lhard在一个数量级上。参数T 的加入,作为softtarge
50、t时简易(student)网络能学到更多东西。第三章深度学习的算法of1251043.6迁移学习蒸馏过程可归纳如下:1.首先训练大模型:先用硬目标(hardtarget),也就是正常的带标签(labeled)的数据训练大模型。2.计算软目标(softtarget):利用训练好的大模型来计算softtarget,即大模型“软化后”再经过softmax的输出(output)。3.训练小模型,在小模型的基础上再加一个额外的softtarget的损失函数lossfunction,通过(01)来调节两个lossfunctions的比重。损失函数定义:第三章深度学习的算法of1251053.6迁移学习其中