ELLA:An Efficient LIfelong Learning Algorithm 随笔

相关名词:

an instance of the Lasso:??

 vec::向量化

L1\L2 regularization term :??

i.i.d:独立同分布

a.s:almosrt sure 全概率成立

sparse coding:??

l论文中的Proof sketch??

如何推导??

-------范数类别:

-------L为基向量向量空间,k*d   K个 长度为d的基向量组成。

theta(t)表示 L每一列的线性组合 ,至于他们的权重向量为S(t).

 

--------下示公式不适合终身机器学习的原因:

1、需要到和所有以前的训练数据相关的总和,该论文通过泰勒展开来解决这个不足

 

泰勒展开抑制了常数项和线性项,只留下二次项。delta X=theta(t)-L*s(t), L是函数的自变量,delta不是确值,Xo=theta(t)。

2、为了评估一个新的L,T个 s(t)又要重新计算一次,当T越来越大的时候,会越来越。(通过gT公式我们可以看出来),该论文移除公式(2)中s(t)的min,当有 第t 任务来的时候只更新对应的s(t),而其他的s(t)不改变。这样的做法 得益于接下来的修改L上。

-----------D(t)的尺寸为d*d.s(t)为k*1,L为d*k,,theta(t)为d*1

---------Lipschitz  条件


-----------ELLA 和GO-MTL 比较:让我们知道两个模型正确率之间的关系。

-----------ELLA 和OMTL:让我们知道相对于其他的终身机器学习方法ELLA的效率。

------------S(t)的稀疏值为0.5,意思为:用一般数量的隐藏基来表征参数

-----------可以拓展的方向:

1、确定K值

2、优化L值

3、确定s的稀疏值

---------需要看得内容:STL GO-MTL OMTL

Lifelong Embedding Learning(终身嵌入学习)是一种机器学习技术,它允许模型在面对新任务或数据分布变化时持续学习和适应,同时保持之前知识的稳定性。这种学习方法通常涉及到以下几个步骤: 1. **知识表示**:模型会在每个任务开始时学习到一个新的嵌入空间,用于捕获任务相关的特征。这通常是通过神经网络完成,比如预训练的词向量(如Word2Vec、BERT等)。 2. **迁移更新**:当面临新任务时,模型会利用先前任务学到的知识初始化新的嵌入层,而不是从头开始。这意味着旧的任务特征可以在新任务中有一定的基础。 3. **动态更新**:模型会对新任务的数据进行增量式训练,仅更新与新任务相关的部分,同时使用正则化或其他机制来防止过度拟合并维护已有知识的稳定。 4. **记忆管理**:为了存储历史任务的相关信息,可能会引入在线学习策略或者定期回顾已学过的任务,以便在需要时可以访问。 以下是使用PyTorch实现简单版本的Lifelong Embedding Learning的一个示例代码片段: ```python import torch.nn as nn from torch.optim import Adam class TaskEmbedding(nn.Module): def __init__(self, shared_embedding_size, task_specific_size): super(TaskEmbedding, self).__init__() self.shared = nn.Embedding(num_embeddings=num_tasks, embedding_dim=shared_embedding_size) self.task Specific = nn.Linear(shared_embedding_size, task_specific_size) class LifelongModel(nn.Module): def __init__(self, num_tasks, embedding_size, hidden_size): super(LifelongModel, self).__init__() self.embeddings = nn.ModuleList([TaskEmbedding(embedding_size, hidden_size) for _ in range(num_tasks)]) def forward(self, inputs, task_id): shared_embedding = self.embeddings[task_id].shared(inputs) task_specific_output = self.embeddings[task_id].task_specific(shared_embedding) return task_specific_output # 示例用法 optimizer = Adam(model.parameters(), lr=0.001) for t in range(num_tasks): model.train() optimizer.zero_grad() output = model(inputs, t) loss = F.cross_entropy(output, labels) # 假设labels是对应任务的真实标签 loss.backward() optimizer.step() # 当有新任务时,只需添加新的TaskEmbedding实例,并在适当位置集成进来即可 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值