提交 b1e2c24e 编写于 作者: W wizardforcel

2021-01-22 17:27:42

上级 54b5d615
......@@ -109,7 +109,7 @@ LSTM 在各种门的帮助下存储信息历史记录,如上图所示。 我
![](img/5a9a4fca-cdb7-4c9d-9aba-27c879fc4481.png)
此处, <sub>![](img/483507cb-4cb0-4598-aa76-71fcabdafe41.png)</sub> 是时间步长`t`的参数, <sub>![](img/cb291113-cc4b-4419-be0f-ab628e911b69.png)</sub>`t`时的损失梯度,并且 <sub>![](img/e58b0d63-1733-40c2-9ea3-c28b9571e685.png)</sub> 是时间`t`时的学习率。
此处, `θ[t]`是时间步长`t`的参数,`▽L_t``t`时的损失梯度,并且`α[t]`是时间`t`时的学习率。
另一方面,LSTM 单元的单元更新方程看起来像这样:
......@@ -119,13 +119,13 @@ LSTM 在各种门的帮助下存储信息历史记录,如上图所示。 我
![](img/b38cc62b-318b-4b9e-ba28-0e5eb9a1106d.png)
从逻辑上考虑这一点,我们只想学习![](img/76289600-d237-402b-a0df-ee71b4ae334d.png),因为这与估计梯度下降的*学习率*基本相似。 因此,LSTM 元学习器将 <sub>![](img/9b675949-0d25-4b9c-a70e-76af51ca9a69.png)</sub> 定义如下:
从逻辑上考虑这一点,我们只想学习`i[t]`,因为这与估计梯度下降的*学习率*基本相似。 因此,LSTM 元学习器将`i[t]`定义如下:
![](img/da2cd6b1-bca0-456b-8064-23bdb90ef26c.png)
本质上,`i[t]`被定义为具有当前梯度,当前损失和先前学习率 <sub>![](img/991684d7-83b0-429c-91ef-5d41500f2726.png)</sub> 的组合的 Sigmoid 函数。
对于 <sub>![](img/f76a02ea-f996-4c81-a08f-8bf2e6bd97c1.png)</sub> ,应为 1,但为避免梯度缩小的问题,其定义如下:
对于`f[t]`,应为 1,但为避免梯度缩小的问题,其定义如下:
![](img/1d551c2d-de09-4a7b-8657-0c310ee85bbb.png)
......@@ -137,7 +137,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`是类数。
此后, <sub>![](img/69c38655-6d44-4aa8-825a-a3edd9e03780.png)</sub> 进一步分为三个部分:![](img/224d8b14-1e25-4552-8310-74fe1d90f03b.png)。 在这里,目标是使用 <sub>![](img/d25156e7-7e5a-4f00-a665-249a333e60c6.png)</sub> 训练*学习算法*,该算法可以将任何特定于任务的集合作为训练集 <sub>![](img/0d2fad60-1123-4702-825d-4107499b703b.png)</sub> 并产生 更好的分类器(学习器)。
此后,`D_n_train`进一步分为三个部分:`D_meta_train``D_meta_val``D_meta_test`。 在这里,目标是使用`D_meta_train`训练*学习算法*,该算法可以将任何特定于任务的集合作为训练集`D_train`并产生 更好的分类器(学习器)。
# 算法–伪代码实现
......@@ -145,9 +145,9 @@ LSTM 在各种门的帮助下存储信息历史记录,如上图所示。 我
要开始理解 LSTM 元学习器,首先,我们需要了解某些术语:
* **基础学习器**`M`):具有特定任务的主要目标,带有参数 <sub>![](img/3a869193-6666-428a-9b6a-c61e430a0a72.png)</sub> -例如,用于识别猫的分类器
* **元学习器**`R`):LSTM 单元,带有参数,![](img/b72b74c6-cdc3-4fc1-bd73-fa86f86f29ad.png)
* **数据点**`X, Y`):从 <sub>![](img/413e3fb6-3c9b-41de-942d-df2693286095.png)</sub> 采样的数据点
* **基础学习器**`M`):具有特定任务的主要目标,带有参数`θ`-例如,用于识别猫的分类器
* **元学习器**`R`):LSTM 单元,带有参数,`θ`
* **数据点**`X, Y`):从`D_meta_train`采样的数据点
* **损失**`L`):用于调整主要任务特定目标的损失函数,例如,二进制交叉熵损失
让我们开始逐步学习 LSTM 元学习器算法:
......@@ -160,14 +160,14 @@ LSTM 在各种门的帮助下存储信息历史记录,如上图所示。 我
* 对于`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> 计算基础学习器(分类模型)的损失。
* 使用单元格的基本学习器的损失( <sub>![](img/d1aa0375-2232-46e1-840f-f213a4df4301.png)</sub> )及其梯度( <sub>![](img/a74a946f-2e63-419e-a071-52a6583c1b03.png)</sub> ),更新单元格状态( <sub>![](img/4aeee18a-9066-46f8-aec9-3db61801cbf1.png)</sub> ) 状态方程。
* 将基本学习器(分类模型)参数更新为![](img/f4cec93e-d6dd-4b3e-a207-339dcb81365c.png)(请参阅 LSTM 元学习器的“架构”部分)。
* 使用单元格的基本学习器的损失(`L_t`)及其梯度(`▽[θ[t-1]] L_t`),更新单元格状态(`c[t]`) 状态方程。
* 将基本学习器(分类模型)参数更新为`θ[t] = c[t]`(请参阅 LSTM 元学习器的“架构”部分)。
结束`T`步骤循环。
* 现在,从 <sub>![](img/282a821c-7838-44d3-8f27-6f005e6ce9a3.png)</sub> 中随机采样输入输出对 <sub>![](img/1f1b9829-2e28-4cd8-a7c1-c8d3f4e68943.png)</sub>
* 使用 <sub>![](img/71c38e54-fe54-4ff4-965a-2dfc17c028ce.png)</sub> 计算基础学习器(分类模型)的损失。
* 使用 <sub>![](img/1c0b9014-4f36-4cb4-81df-076efdf752ea.png)</sub> (请参阅 LSTM 元学习器“架构”部分)更新元学习器(LSTM 单元)参数( <sub>![](img/0a9e3c82-d840-4d57-85fd-8d421048a655.png)</sub> )。
* 现在,从`D_test`中随机采样输入输出对`(X_test, Y_test)`
* 使用`L_test = L(M(X_test, θ[T]), Y_test)`计算基础学习器(分类模型)的损失。
* 使用`▽[θ[d-1]] Y_test`(请参阅 LSTM 元学习器“架构”部分)更新元学习器(LSTM 单元)参数(`θ[t]`)。
结束`n`步骤循环。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册