Title | Content |
---|---|
原文 | 在线学习算法综述 |
作者 | 潘志松 |
在线学习:
通过流式计算框架,在内存中直接对数据实时运算,为大数据的学习提供了有力的工具
流式数据特点:
传统学习方法归根结底是对某一静态数据分布的学习,没有提供学习数据分布变化规律的方法。这类分布随时间变化的数据称为非稳定数据or演化数据
针对流式数据传统批处理式学习方法的问题
(1)学习时间长、学习效率低
(2)难以针对增量数据有效地更新模型,导致难以有效地使模型适应数据中发生的概念迁移和概念演化问题
在线学习的流式计算模式
(1)为提高海量数据的学习效率,在线学习鉴定训练数据是连续到达的,每次训练只利用当前到达的样本更新模型,从而降低学习复杂度
(2)通过读取一次片段数据并在训练完后保留少量的样本、按照时间先后次序利用数据流对模型进行更新,从而保留最新的类别信息
在线学习算法演进
(1)最早——感知器算法:假设样本是线性可分的,当不可分时,需要采用基于核的感知器算法
(2)近年——在线核学习算法:面临的问题是,随着样本个数增加,与当前样本学习相关的有效集合中支持向量的数目会越来越大,解决方法有投影法、遗忘法、随机固定缓冲区的感知器法(RBP)
基于多任务的在线学习算法:
具有同时学习多个核函数、多任务的特徵联合在线学习能力
在线学习分类
(1)在线线性学习算法
(2)基于核的在线学习算法
感知器啊算法是最经典的在线学习二分类算法,目标是学习得到一个线性分类面 f(x)=wTx , 对于新样本,用 f(x) 的正负来判断分类
模型只有在出错的情况下才会更新,每次更新只需利用当前新样本,所以更新复杂度低
随着压缩感知(CS)技术发展,基于 l1 范式的稀疏优化技术引起注意
例:Lasso 通过 l1 正则化约束,在回归的同时可以进行特征选择,降低计算复杂度
稀疏解
(1)传统批处理模式——用全体训练样本可以获得
(2)在线学习——常用随机梯度下降算法,但是难以保证解的稀疏性,需要采用手段
获得在线学习稀疏解方法
(1)截断梯度法:(最简单直接)当待更新的权值小于设定的阈值则设置为0,否则继续更新权值
(2)前进后退分离法
(3)正则化对偶平均法
当样本线性不可分,常需要将样本特征向量 x 映射到高维 Hillberet 空间 H, φ(x):Rd+1→H 将线性不可分变为可分,然而这个非线性映射函数常难求,实际算法常用核函数来实现映射,核函数 K(x,y)=<φ(x),φ(y)> (表示内积),可以有效地度量两个样本的相似度
原理:
当算法在当前样本 (xt,yt) 上判定错误时, 更新模型时将 ytK(xt,⋅) 加到当前模型
特点:
迭代时需要存储和更新1个函数 ft , 即 ft(⋅)=∑i∈εiK(xi,xt)
问题与解决方案:
随着样本个数增加,与当前样本学习相关的有效集合中支持向量的数目会越来越大,解决方法有投影法、遗忘法、随机固定缓冲区的感知器法(RBP)
(1)投影法
(2)遗忘法
(3)随机固定缓冲区的感知器法(RBP)
多任务学习:
利用多任务间的相关性,学习任务间的共性来避免欠拟合,提升算法泛化能力
例子:Group Lasso
增量学习主要思路:
当目标函数由一些子函数相加组成时,通过对每个子函数依次进行“首尾相接”的传递式梯度优化迭代最终得到最优解
机器学习中,正则化损失函数优化问题一般具有子函数形式,且子函数具有明确含义,即每个子函数都表示某一个样本导致的正则化损失,因此此时的梯度增量算法可以表示为依次对每个样本导致的损失进行逐个优化,这就是在线学习的思想
目前的ML算法都遵循正则化经验损失的设计框架。在线学习是机器学习的一种优化方法,也遵循此框架
ML常用的损失函数:
(1) l1 损失: l(w,ζ)=max{0,1−ywTx}
(2) l2 损失: l(w,ζ)=max{0,1−ywTx}2
(3)对数损失: l(w,ζ)=log(1+exp(−ywTx))
(4)最小二乘损失or平方损失: l(w,ζ)=(y−wTx)2
(5)指数损失: l(w,ζ)=e−ywTx
深度学习
(1)高度非线性的模型表达能力
(2)逐层抽象的特征提取能力
典型训练法:mini-batch的梯度下降算法
问题:
深度学习的模型结构固定,并没有考虑数据时间序列属性,若数据流随着时间推移发生概念漂移、时间演化等问题,模型结构难以随之调整,难以保证表达能力
在线增量学习框架:
基于大规模流式数据调整降噪自编码器的特征维度
在线学习+深度学习:
(1)利用降噪自编码器作为DL的模块
(2)损失函数采用交叉熵损失
降噪自编码器模型:编码阶段+解码阶段
过程:
通过统计交叉熵损失较大的训练数据个数的方式判断是否发生严重感念漂移,需要调整网络结构
若判断需要调整特征数量:
(1)首先将一定数量的特征融合
(2)其次添加一定数量的特征节点
(3)随后,固定其他未变点相关参数
(4)利用交叉熵损失较大的训练数据集,基于反向传播算法,对发生改变的节点对应参数进行训练,从而在调整网络结构后,高效训练出收敛的更针对近期数据的降噪自编码网
通过以上步奏,实现数据分布发生漂移的情况下微调网络结构、网络参数、深度特征,得到满足时间序列要求的在线并动态调整的网络
意义:
(1)为深度学习在线化问题提出了解决思路
(2)一定程度上实现了DL模型中超参数的调整
在线学习对算法实时性要求高,需要低复杂度+高收敛速
面前的算法大部分收敛速度: O(1/T−−√)
加速方案: O(1/T2)