Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lzh_me
apachecn-dl-zh
提交
c57b3ee2
A
apachecn-dl-zh
项目概览
lzh_me
/
apachecn-dl-zh
与 Fork 源项目一致
Fork自
OpenDocCN / apachecn-dl-zh
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
apachecn-dl-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c57b3ee2
编写于
12月 25, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2020-12-25 20:40:04
上级
e9079c19
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
15 addition
and
15 deletion
+15
-15
new/handson-meta-learn-py/06.md
new/handson-meta-learn-py/06.md
+4
-4
new/handson-meta-learn-py/07.md
new/handson-meta-learn-py/07.md
+2
-2
new/handson-meta-learn-py/08.md
new/handson-meta-learn-py/08.md
+2
-2
new/handson-meta-learn-py/09.md
new/handson-meta-learn-py/09.md
+6
-6
new/handson-meta-learn-py/10.md
new/handson-meta-learn-py/10.md
+1
-1
未找到文件。
new/handson-meta-learn-py/06.md
浏览文件 @
c57b3ee2
...
...
@@ -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`
数据进行采样 点并准备我们的训练和测试数据集:
...
...
new/handson-meta-learn-py/07.md
浏览文件 @
c57b3ee2
...
...
@@ -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]`
的梯度,更新我们随机初始化的参数
`θ`
和
`α`
来使损失最小化:
...
...
new/handson-meta-learn-py/08.md
浏览文件 @
c57b3ee2
...
...
@@ -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
)
...
...
new/handson-meta-learn-py/09.md
浏览文件 @
c57b3ee2
...
...
@@ -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
)
...
...
new/handson-meta-learn-py/10.md
浏览文件 @
c57b3ee2
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录