提交 f35a7b80 编写于 作者: W wizardforcel

2021-01-22 17:31:23

上级 b1e2c24e
......@@ -61,7 +61,7 @@ MAML 的目的是为模型的参数提供良好的初始化,从而以较少的
4. 对于从`P(T)`采样的所有`T[i]`,执行以下操作:
* `T[i]`的样本 K 训练数据点`D[i] = (x[i], y[i])`(对于一次学习,`K = 1`)。
* 前向穿过层(`f[θ]`),以计算`L[T[i]]` <sub>![](img/1a533a78-541e-43e9-aa2c-8befc6481991.png)</sub>
* 前向穿过层(`f[θ]`),以计算`L[T[i]]``▽[θ] L[T[i]] f[θ]`
* 使用梯度下降法更新参数。 由于我们正在针对特定任务训练模型,因此我们将学习`θ'[i]`(特定于任务的参数):
![](img/4848ff3d-a327-43fe-8c92-7d6f69977ac1.png)
......@@ -109,7 +109,7 @@ LSTM 在各种门的帮助下存储信息历史记录,如上图所示。 我
![](img/5a9a4fca-cdb7-4c9d-9aba-27c879fc4481.png)
此处, `θ[t]`是时间步长`t`的参数,`▽L_t``t`时的损失梯度,并且`α[t]`是时间`t`时的学习率。
此处, `θ[t]`是时间步长`t`的参数,`▽L[t]``t`时的损失梯度,并且`α[t]`是时间`t`时的学习率。
另一方面,LSTM 单元的单元更新方程看起来像这样:
......@@ -123,7 +123,7 @@ LSTM 在各种门的帮助下存储信息历史记录,如上图所示。 我
![](img/da2cd6b1-bca0-456b-8064-23bdb90ef26c.png)
本质上,`i[t]`被定义为具有当前梯度,当前损失和先前学习率 <sub>![](img/991684d7-83b0-429c-91ef-5d41500f2726.png)</sub> 的组合的 Sigmoid 函数。
本质上,`i[t]`被定义为具有当前梯度,当前损失和先前学习率`i[t-1]`的组合的 Sigmoid 函数。
对于`f[t]`,应为 1,但为避免梯度缩小的问题,其定义如下:
......@@ -135,7 +135,7 @@ LSTM 在各种门的帮助下存储信息历史记录,如上图所示。 我
# 数据预处理
在一般的深度学习设置中,要在给定数据集`D`上训练模型,我们将数据集分为三个部分:训练,验证和测试集。 但是在元学习设置中,我们首先将数据集划分为特定于任务的集(例如,猫品种分类和狗品种分类),称为**元集**,例如 <sub>![](img/3dd71e02-585b-4faf-97b1-18515169a0a1.png)</sub> 。 对于每个`D ∈ D[n]`<sub>![](img/ecebee63-c8fc-4914-9c04-a57eb42709a7.png)</sub><sub>![](img/cef2edc3-0b4e-4301-9716-12701269e95a.png)</sub> 组成,因此对于`K`次学习,每个 <sub>![](img/34a3cb7f-a7ac-48d2-a9ea-3e5259206ebc.png)</sub> `K * N`个示例组成,其中`N`是类数。
在一般的深度学习设置中,要在给定数据集`D`上训练模型,我们将数据集分为三个部分:训练,验证和测试集。 但是在元学习设置中,我们首先将数据集划分为特定于任务的集(例如,猫品种分类和狗品种分类),称为**元集**,例如`D[n]`。 对于每个`D ∈ D[n]``D_n_train``D_n_test`组成,因此对于`K`次学习,每个`D_n_train``K * N`个示例组成,其中`N`是类数。
此后,`D_n_train`进一步分为三个部分:`D_meta_train``D_meta_val``D_meta_test`。 在这里,目标是使用`D_meta_train`训练*学习算法*,该算法可以将任何特定于任务的集合作为训练集`D_train`并产生 更好的分类器(学习器)。
......@@ -152,15 +152,15 @@ LSTM 在各种门的帮助下存储信息历史记录,如上图所示。 我
让我们开始逐步学习 LSTM 元学习器算法:
1. 首先,随机初始化 LSTM 单元的初始参数( <sub>![](img/fa4d23b7-1e43-4d94-b3c1-6933ea45037e.png)</sub> )。
1. 首先,随机初始化 LSTM 单元的初始参数(`θ[0]`)。
2. 对于`D = 1``n`步骤,请执行以下操作:
* <sub>![](img/413e3fb6-3c9b-41de-942d-df2693286095.png)</sub> 中随机抽取 <sub>![](img/1be8b605-c639-4b2f-9ae5-946c9ee8db6a.png)</sub>
* 随机初始化基础学习器(分类模型)的初始参数( <sub>![](img/f1056b08-996c-4b72-93b8-de37060e4271.png)</sub> )。
*`D_meta_train`中随机抽取`D_train, D_test`
* 随机初始化基础学习器(分类模型)的初始参数(`θ[0]`)。
* 对于`t = 1``T`步骤,重复以下步骤:
* <sub>![](img/77764a57-316f-4a17-8712-0499a6523669.png)</sub> 中随机采样输入输出对 <sub>![](img/71e25973-354f-4d95-b3b0-56383cd261af.png)</sub>
* 使用 <sub>![](img/307d9408-f535-4291-88fb-e187378dc7fa.png)</sub> 计算基础学习器(分类模型)的损失。
* 使用单元格的基本学习器的损失(`L_t`)及其梯度(`▽[θ[t-1]] L_t`),更新单元格状态(`c[t]`) 状态方程。
*`D_train`中随机采样输入输出对`(X[t], Y[t])`
* 使用`L[t] = L(M(X[t], θ[t-1]), Y[t])`计算基础学习器(分类模型)的损失。
* 使用单元格的基本学习器的损失(`L[t]`)及其梯度(`▽[θ[t-1]] L[t]`),更新单元格状态(`c[t]`) 状态方程。
* 将基本学习器(分类模型)参数更新为`θ[t] = c[t]`(请参阅 LSTM 元学习器的“架构”部分)。
结束`T`步骤循环。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册