提交 c57b3ee2 编写于 作者: W wizardforcel

2020-12-25 20:40:04

上级 e9079c19
......@@ -40,7 +40,7 @@ MAML 的基本思想是找到一个更好的初始参数,以便具有良好的
# MAML 算法
现在,我们对 MAML 有了基本的了解,我们将详细探讨它。 假设我们有一个由`θ`参数化的模型`f`,即`f[θ]()`,我们在任务上有一个分布`p(T)`。 首先,我们用一些随机值初始化参数`θ`。 接下来,我们从任务分中抽样一些任务`Ti`,即`Ti ~ p(T)`。 假设我们采样了五个任务, `T = {T1, T2, ..., T5}`,然后,对于每个任务`Ti`,我们对`k`数据点进行采样并训练模型。 我们通过计算损耗`L[T[i]](f[θ])`来做到这一点,并使用梯度下降来使损耗最小化,并找到使损耗最小的最佳参数集:
现在,我们对 MAML 有了基本的了解,我们将详细探讨它。 假设我们有一个由`θ`参数化的模型`f`,即`f[θ]()`,我们在任务上有一个分布`p(T)`。 首先,我们用一些随机值初始化参数`θ`。 接下来,我们从任务分中抽样一些任务`Ti`,即`Ti ~ p(T)`。 假设我们采样了五个任务, `T = {T1, T2, ..., T5}`,然后,对于每个任务`Ti`,我们对`k`数据点进行采样并训练模型。 我们通过计算损耗`L[T[i]](f[θ])`来做到这一点,并使用梯度下降来使损耗最小化,并找到使损耗最小的最佳参数集:
![](img/a353f3ca-1b7a-42e4-ade6-149f8bcef645.png)
......@@ -92,7 +92,7 @@ MAML 非常擅长寻找最佳初始参数,对吗? 现在,我们将看到
现在,让我们一步一步地了解 MAML 如何在监督学习中使用:
1. 假设我们有一个由参数θ参数化的模型`f`,并且在任务`p(T)`上有分布。 首先,我们随机初始化模型参数θ。
2. 我们从任务分中抽取一些任务`Ti`,即`Ti ~ p(T)`。 假设我们采样了三个任务,然后`T = {T1, T2, T3}`
2. 我们从任务分中抽取一些任务`Ti`,即`Ti ~ p(T)`。 假设我们采样了三个任务,然后`T = {T1, T2, T3}`
3. **内循环**:对于任务(`T`)中的每个任务(`Ti`),我们对`k`数据进行采样 点并准备我们的训练和测试数据集:
......@@ -499,7 +499,7 @@ Sampling Next Batch of Tasks
现在,我们已经了解了什么是对抗性样本以及如何生成对抗性样本,我们将看到如何在元学习中使用这些对抗性样本。 我们使用干净样本和对抗样本训练元学习模型。 但是,需要使用对抗样本训练模型吗? 它有助于我们找到鲁棒的模型参数`θ`。 干净样本和对抗样本均在算法的内部和外部循环中使用,并且同样有助于更新模型参数。 ADML 使用干净样本和对抗样本之间的这种变化的相关性来获得更好,更健壮的模型参数初始化,从而使我们的参数对对抗样本变得健壮,并且可以很好地推广到新任务。
因此,当我们有任务分布`p(T)`,时,我们从任务分中采样了一批任务`Ti`,对于每个任务,我们 对`k`个数据点进行采样,并准备我们的训练和测试集。
因此,当我们有任务分布`p(T)`,时,我们从任务分中采样了一批任务`Ti`,对于每个任务,我们 对`k`个数据点进行采样,并准备我们的训练和测试集。
在 ADML 中,我们将训练集和测试集的干净样本和对抗样本采样为`D_train[clean_i]``D_train[adv_i]``D_test[clean_i]``D_test[adv_i]`
......@@ -1037,7 +1037,7 @@ Sampling Next Batch of Tasks
现在,让我们逐步了解 CAML 的工作原理:
1. 假设我们有一个由参数θ参数化的模型`f`,并且在任务`p(T)`上有分布。 首先,我们随机初始化模型参数θ。 我们还初始化了上下文参数`∅[0] = 0`
2. 现在,我们从任务分中抽样一些任务`Ti`,即`Ti ~ p(T)`
2. 现在,我们从任务分中抽样一些任务`Ti`,即`Ti ~ p(T)`
3. **内循环**:对于任务(`T`)中的每个任务(`Ti`),我们对`k`数据进行采样 点并准备我们的训练和测试数据集:
......
......@@ -57,7 +57,7 @@
1. 假设我们有一个由参数`θ`参数化的模型`f`,并且在任务!`p(T)`上有一个分布。 首先,我们随机初始化模型参数θ,并随机初始化`α`形状与`θ`相同的形状。
2. 我们从任务分中抽样一些任务`T[i]``T[i] ~ p(T)`。 假设我们已经采样了三个任务,然后是`T = {T[1]m T[2], T[3]}`
2. 我们从任务分中抽样一些任务`T[i]``T[i] ~ p(T)`。 假设我们已经采样了三个任务,然后是`T = {T[1]m T[2], T[3]}`
3. **内循环**:对于任务(`T`)中的每个任务(`T[i]`),我们对`k`数据点进行采样,并准备训练和测试数据集:
![](img/43092ce7-fca2-4bc4-9d78-bc9c03d11d46.png)
......@@ -414,7 +414,7 @@ Sampling Next Batch of Tasks
现在,我们将了解如何在强化学习中使用 Meta-SGD。 Meta-SGD 与可以通过梯度下降训练的任何 RL 算法兼容。
1. 假设我们有一个由参数`θ`参数化的模型`f`,并且在任务`p(T)`上有一个分布。 首先,我们随机初始化模型参数`θ`,并随机初始化形状与`θ`相同的`α`
2. 从任务分中采样一些任务`T[i]``T[i] ~ p(T)`。 假设我们已经采样了三个任务`T = {T[1], T[2], T[3]}`
2. 从任务分中采样一些任务`T[i]``T[i] ~ p(T)`。 假设我们已经采样了三个任务`T = {T[1], T[2], T[3]}`
3. **内循环**:对于任务(`T`)中的每个任务(`T[i]`),我们对`D_train[i]`轨迹进行采样,使用梯度下降计算损失并将损失最小化,并获得最佳参数`θ'[i]`。因此,对于每个任务,我们都对轨迹进行采样,最大程度地减少损失并获得最佳参数`θ'[i]`。 当我们采样三个任务时,对于所有三个任务,我们将拥有三个最佳参数`θ'[i]`。 接下来,我们将对另一组称为`D_test[i]`的轨迹进行元更新。
4. **外循环**:现在,我们在`D_test[i]`轨迹中执行元优化。 我们通过计算相对于上一步获得的最佳参数`θ'[i]`的梯度,更新我们随机初始化的参数`θ``α`来使损失最小化:
......
......@@ -11,7 +11,7 @@
# 梯度协议作为优化
梯度一致性算法是一种有趣且最近引入的算法,可作为元学习算法的增强功​​能。 在 MAML 和 Reptile 中,我们尝试找到一个更好的模型参数,该参数可在多个相关任务中推广,以便我们可以使用更少的数据点快速学习。 如果我们回顾前面几章中学到的知识,就会发现我们随机初始化了模型参数,然后从任务分![](img/f31ea39c-34ba-4674-8cdc-c84a89c8bd4d.png)中抽取了一批随机任务![](img/6a76c328-6ece-4221-b362-dfb12c664952.png)进行了采样。 对于每个采样任务![](img/6a76c328-6ece-4221-b362-dfb12c664952.png),我们通过计算梯度将损失降到最低,并获得更新的参数![](img/dd9ec7a2-16b0-4c48-a13e-9ce398fdff63.png),这形成了我们的内部循环:
梯度一致性算法是一种有趣且最近引入的算法,可作为元学习算法的增强功​​能。 在 MAML 和 Reptile 中,我们尝试找到一个更好的模型参数,该参数可在多个相关任务中推广,以便我们可以使用更少的数据点快速学习。 如果我们回顾前面几章中学到的知识,就会发现我们随机初始化了模型参数,然后从任务分![](img/f31ea39c-34ba-4674-8cdc-c84a89c8bd4d.png)中抽取了一批随机任务![](img/6a76c328-6ece-4221-b362-dfb12c664952.png)进行了采样。 对于每个采样任务![](img/6a76c328-6ece-4221-b362-dfb12c664952.png),我们通过计算梯度将损失降到最低,并获得更新的参数![](img/dd9ec7a2-16b0-4c48-a13e-9ce398fdff63.png),这形成了我们的内部循环:
![](img/93324229-a8df-4cb6-aead-090e6ebb7a0a.png)
......@@ -79,7 +79,7 @@ for i in range(num_tasks):
现在,让我们看一下梯度协议的工作原理:
1. 假设我们有一个由参数![](img/8d358d29-40fc-4658-99ec-8dce07ffed4e.png)参数化的模型![](img/bfb72f9a-40a2-4714-af50-7413e94d75c5.png)和任务![](img/cee73716-a0c5-4331-8c95-8008acc3de5d.png)上的分布。 首先,我们随机初始化模型参数![](img/903a7361-1e91-4fe0-bb13-768777903a48.png)
2. 我们从任务分中![](img/30fb6037-d542-4092-9f74-8a1f4e026b43.png)采样了一些任务![](img/ecdf7adc-d6ac-4ae0-ae47-b1117c642370.png)。 假设我们采样了两个任务,然后是![](img/2b20fb20-d4ea-4a02-be86-be16c4afa37b.png)
2. 我们从任务分中![](img/30fb6037-d542-4092-9f74-8a1f4e026b43.png)采样了一些任务![](img/ecdf7adc-d6ac-4ae0-ae47-b1117c642370.png)。 假设我们采样了两个任务,然后是![](img/2b20fb20-d4ea-4a02-be86-be16c4afa37b.png)
3. **内循环**:对于任务(![](img/9004a396-a086-42e6-8cca-5a2212f0fbef.png))中的每个任务(![](img/ec769f15-277c-41ad-98f3-673c370b9c8a.png)),我们对`k`个数据点进行采样,并准备训练和测试数据集:
![](img/b66a819c-dc38-44e0-a336-69e7b76ed4f0.png)
......
......@@ -45,7 +45,7 @@
现在,我们将逐步了解熵 TAML 的工作原理:
1. 假设我们有一个由参数![](img/c1e0144f-78d5-48cb-8e02-0adea07d991e.png)参数化的模型![](img/08ecbe90-9f6f-43f3-93a6-fdcec639d3fe.png),并且有一个任务![](img/a825dccd-bd1e-4db2-b9da-a5319bfd992c.png)分布。 首先,我们随机初始化模型参数![](img/a65ea6f1-8004-4f5d-9a15-8f1e261747ca.png)
2. 从任务分(即![](img/40a964d2-4371-47ca-8d09-d5153bbd1460.png))中抽样一批任务。 假设我们然后采样了三个任务:![](img/f84bc6ff-fc89-4e29-9c66-75170c39673e.png)
2. 从任务分(即![](img/40a964d2-4371-47ca-8d09-d5153bbd1460.png))中抽样一批任务。 假设我们然后采样了三个任务:![](img/f84bc6ff-fc89-4e29-9c66-75170c39673e.png)
3. **内循环**:对于任务![](img/a4dd0e5f-d85f-478b-9faf-830f942b9204.png)中的每个任务![](img/dc64c417-5f65-4d0c-99a2-c77ce2c03695.png),我们对`k`个数据点进行采样,并准备训练和测试数据集:
![](img/80b962fa-2b54-4df4-bc58-0183d150ca2f.png)
......@@ -107,7 +107,7 @@
现在,我们将逐步了解不平等最小化 TAML 的工作原理:
1. 假设我们有一个由参数![](img/53d3dc76-12a8-491b-ab66-d6b3ebde9efd.png)参数化的模型![](img/01f9bd08-13b2-4ea7-958a-09214bf4b7c2.png),并且在任务![](img/3440c36e-b520-42e4-8cb3-7f2eb4f4bb32.png)上进行了分配。 首先,我们随机初始化模型参数![](img/e4892101-3bd1-4b09-9a51-d223240a925f.png)
2. 我们从任务分(即![](img/181155d0-1308-4107-8643-3b9e9c08be85.png))中抽样一批任务。 说,我们已经采样了三个任务,然后是![](img/77e9b020-7613-418c-8b05-88c279662e17.png)
2. 我们从任务分(即![](img/181155d0-1308-4107-8643-3b9e9c08be85.png))中抽样一批任务。 说,我们已经采样了三个任务,然后是![](img/77e9b020-7613-418c-8b05-88c279662e17.png)
3. **内循环**:对于任务![](img/254d5fa6-57c7-467d-bd1c-bb332d597f45.png)中的每个任务![](img/78734e39-e45f-4627-86d6-c522e000c1ae.png),我们对`k`个数据点进行采样,并准备训练和测试数据集:
![](img/d0798dcf-d7e3-421a-b9f1-9cbb126ce62d.png)
......@@ -144,14 +144,14 @@
![](img/bf5f36c7-cf49-4237-bee8-412a515eecb0.png)
假设我们有任务分![](img/bb0b7186-0661-4cc5-b988-431b4b63a3e4.png)。 我们对一批任务进行采样,对于每个任务![](img/4da7bc33-ef0d-42b8-8f89-2051bc02a3ce.png),我们对一些演示数据进行采样,通过最小化损失来训练网络,并找到最佳参数`θ'[i]`。 接下来,我们通过计算元梯度执行元优化,并找到最佳初始参数![](img/570fb2aa-e4de-41d6-b15e-ee8a182736d4.png)。 我们将在下一部分中确切地了解它的工作方式。
假设我们有任务分![](img/bb0b7186-0661-4cc5-b988-431b4b63a3e4.png)。 我们对一批任务进行采样,对于每个任务![](img/4da7bc33-ef0d-42b8-8f89-2051bc02a3ce.png),我们对一些演示数据进行采样,通过最小化损失来训练网络,并找到最佳参数`θ'[i]`。 接下来,我们通过计算元梯度执行元优化,并找到最佳初始参数![](img/570fb2aa-e4de-41d6-b15e-ee8a182736d4.png)。 我们将在下一部分中确切地了解它的工作方式。
# MIL 算法
MIL 中涉及的步骤如下:
1. 假设我们有一个由参数![](img/85eb5935-3a73-46b5-8640-2cfd910dc860.png)参数化的模型![](img/ed115e20-4a1d-4167-bab0-8eb27a449684.png),并且有一个任务![](img/04636868-15b2-451d-9fbb-028f28964066.png)分布。 首先,我们随机初始化模型参数![](img/b66aaca9-0610-4d99-9051-e5cae694f41f.png)
2. 从任务分(即![](img/e2fa1e6d-dbee-46ac-af21-4d1881c86394.png))中抽样一些任务![](img/ae40a0d2-2055-47a7-a692-1646b9fcb70b.png)
2. 从任务分(即![](img/e2fa1e6d-dbee-46ac-af21-4d1881c86394.png))中抽样一些任务![](img/ae40a0d2-2055-47a7-a692-1646b9fcb70b.png)
3. **内循环**:对于采样任务中的每个任务,我们都采样了一个演示数据-即![](img/8eac4a91-cf13-4f86-96b0-a71e7c450fa5.png)。 现在,我们通过执行梯度下降来计算损耗并将损耗降至最低,从而获得了最佳参数`θ'[i]`-![](img/d0b3cebd-6140-481a-bb50-b2eff476cd95.png)。 然后,我们还为元训练采样了另一个演示数据:![](img/a5023b00-9574-48fc-ab63-1b47736c2954.png)
4. **外循环**:现在,我们通过元优化使用![](img/52f9c1bd-016c-4d11-a1f1-bc87b2d7db2e.png)更新我们的初始参数,如下所示:
......@@ -163,7 +163,7 @@ MIL 中涉及的步骤如下:
我们已经了解了 MAML 如何帮助我们找到最佳的初始模型参数,以便可以将其推广到许多其他相关任务。 我们还了解了 MAML 如何在监督学习和强化学习设置中使用。 但是,我们如何在没有数据点标签的无监督学习环境中应用 MAML? 因此,我们引入了一种称为 **CACTUS** 的新算法,该算法是`Clustering to Automatically Generate Tasks for Unsupervised Model Agnostic Meta Learning`的缩写。
假设我们有一个数据集![](img/48be7952-a3e9-415e-956f-04dc9ab3457b.png),其中包含未标记的示例:![](img/f87c1526-0dbc-43df-98ee-4087f4e1aa41.png)。 现在,我们可以使用该数据集做什么? 我们如何在该数据集上应用 MAML? 首先,使用 MAML 进行培训需要什么? 我们需要按任务分,并通过对一批任务进行采样并找到最佳模型参数来训练模型。 任务应包含功能及其标签。 但是,如何从未标记的数据集中生成任务?
假设我们有一个数据集![](img/48be7952-a3e9-415e-956f-04dc9ab3457b.png),其中包含未标记的示例:![](img/f87c1526-0dbc-43df-98ee-4087f4e1aa41.png)。 现在,我们可以使用该数据集做什么? 我们如何在该数据集上应用 MAML? 首先,使用 MAML 进行培训需要什么? 我们需要按任务分,并通过对一批任务进行采样并找到最佳模型参数来训练模型。 任务应包含功能及其标签。 但是,如何从未标记的数据集中生成任务?
在下一部分中,让我们看看如何使用 CACTUS 生成任务。 生成任务后,我们可以轻松地将其插入 MAML 算法并找到最佳模型参数。
......@@ -252,7 +252,7 @@ MIL 中涉及的步骤如下:
现在,我们将逐步了解我们的算法:
1. 假设我们有一个任务分![](img/22d17ee2-01a8-4a3c-8c3d-44fca0945a4c.png)。 首先,我们随机初始化模型参数,例如概念生成器![](img/3d0a0882-e180-4425-9ae8-1285c69f2c1a.png),元学习器![](img/eb3cbd93-3f75-47a3-9e72-8a55d188b9dc.png)和概念鉴别器![](img/69b17ca9-c723-466c-8d0b-cf7e9a9fb1bd.png)的参数。
1. 假设我们有一个任务分![](img/22d17ee2-01a8-4a3c-8c3d-44fca0945a4c.png)。 首先,我们随机初始化模型参数,例如概念生成器![](img/3d0a0882-e180-4425-9ae8-1285c69f2c1a.png),元学习器![](img/eb3cbd93-3f75-47a3-9e72-8a55d188b9dc.png)和概念鉴别器![](img/69b17ca9-c723-466c-8d0b-cf7e9a9fb1bd.png)的参数。
2. 我们从任务分布中抽样一批任务,并通过概念生成器学习它们的概念,对这些概念执行元学习,然后计算元学习损失:
![](img/5e6632de-b358-46b0-9154-bc2912394c1b.png)
......
......@@ -103,6 +103,6 @@
2. 泰尔指数是最常用的不平等度量。 它是以荷兰计量经济学家 Henri Theil 的名字命名的,是不平等度量族的一种特例,称为**广义熵度量**。 可以将其定义为最大熵与观察到的熵之差。
3. 如果我们仅通过观察动作就能使机器人学习,那么我们就可以轻松地使机器人有效地学习复杂的目标,而不必设计复杂的目标和奖励功能。 这种类型的学习(即从人类行为中学习)称为模仿学习,在这种情况下,机器人会尝试模仿人类行为。
4. 概念生成器用于提取特征。 我们可以使用由某些参数`θ[G]`参数化的深度神经网络来生成概念。 例如,如果我们的输入是图像,则概念生成器可以是 CNN。
5. 我们从任务分中抽样一批任务,通过概念生成器学习它们的概念,对这些概念执行元学习,然后计算元学习损失:
5. 我们从任务分中抽样一批任务,通过概念生成器学习它们的概念,对这些概念执行元学习,然后计算元学习损失:
![](img/a5b2e2a9-c381-46e8-b5a6-2e124ccca9dc.png)
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册