提交 f49206b8 编写于 作者: W wizardforcel

2020-12-25 18:13:43

上级 6e85322f
......@@ -54,13 +54,13 @@
图 1.4:人工神经网络
输入`x ∈ R^N`穿过神经单位的连续层,这些层以分层方式排列。 特定层中的每个神经元都接收来自先前层的神经元的输入,这些输入被它们之间的连接权重所衰减或放大。 权重![](img/4e191d12-e7be-4994-a0e2-cb0864478dd8.png)对应于`l`层第`i`个神经元与`l + 1`层第`j`个神经元。 同样,每个神经元单元`i`在特定层`1`中都有一个偏见![](img/b6085bec-f07c-40e8-b725-bdbfef33657a.png)。 神经网络为输入向量`x ∈ R^N`预测输出![](img/5ec2c1e6-86bc-435e-ad5c-67685b979479.png)。 如果数据的实际标签是`y`,其中`y`取连续值,则神经元网络将预测误差最小化![](img/686860b4-bb80-4174-b4cc-b61f26a86869.png)来学习权重和偏差。 当然,对于所有标记的数据点,必须将误差最小化:`(xi, yi), i ∈ 1, 2, ..., m`
输入`x ∈ R^N`穿过神经单位的连续层,这些层以分层方式排列。 特定层中的每个神经元都接收来自先前层的神经元的输入,这些输入被它们之间的连接权重所衰减或放大。 权重`w[ij]^(l)`对应于`l`层第`i`个神经元与`l + 1`层第`j`个神经元。 同样,每个神经元单元`i`在特定层`1`中都有一个偏见`b[i]^(l)`。 神经网络为输入向量`x ∈ R^N`预测输出`y_hat`。 如果数据的实际标签是`y`,其中`y`取连续值,则神经元网络将预测误差最小化`(y - y_hat)^2`来学习权重和偏差。 当然,对于所有标记的数据点,必须将误差最小化:`(xi, yi), i ∈ 1, 2, ..., m`
如果我们用一个公共向量`W`表示一组权重和偏差,并且预测中的总误差由`C`表示,则在训练过程中,估计的`W`可以表示为:
![](img/973e52ab-5ebb-40a0-941c-20665d118f10.png)
同样,预测输出![](img/ef875e3c-8643-4f92-a309-b92aefc033b7.png)可以由输入`x`的函数表示,并由权重矢量`W`进行参数化,如下所示:
同样,预测输出`y_hat`可以由输入`x`的函数表示,并由权重矢量`W`进行参数化,如下所示:
![](img/9e08ed5e-7e12-46d1-a2cb-a2e343d9c8d2.png)
......@@ -78,7 +78,7 @@
![](img/b8e45aea-221b-44e3-bbc3-0d9e88a4cf2d.png)
在这里,![](img/82b31af0-64ea-440f-b4f3-281460353497.png)是第`i`个数据点的第`j`类的输出标签。
在这里,`y[i]^(j)`是第`i`个数据点的第`j`类的输出标签。
# 神经激活单位
......@@ -146,7 +146,7 @@ ReLU 的限制条件之一是其输入负值的零梯度。 这可能会减慢
![](img/66329819-1528-4067-afc8-bf3e505ecb09.png)
将为 LReLU 激活函数提供![](img/7e701921-1d53-4bbb-9ed7-e386eacc553c.png)参数,而对于参数 ReLU,![](img/21c3900a-a283-44ba-b15e-21d1faf0b243.png)是神经网络将通过训练学习的参数。 下图显示了 LReLU 激活函数的输出:
将为 LReLU 激活函数提供`α`参数,而对于参数 ReLU,`α`是神经网络将通过训练学习的参数。 下图显示了 LReLU 激活函数的输出:
![](img/908a6fec-a34a-4e27-a0a4-27dd3b5d84cc.png)
......@@ -208,27 +208,29 @@ ReLU 的限制条件之一是其输入负值的零梯度。 这可能会减慢
正如您在前面的表达式中看到的那样,导数不过是预测中的错误。 通常,在存在回归问题的情况下,输出单元激活函数是线性的,因此适用以下表达式:
*![](img/714abd7d-0c22-40db-80f2-bfc0e479ef6a.png)*
![](img/714abd7d-0c22-40db-80f2-bfc0e479ef6a.png)
因此,如果我们要计算成本函数相对于输出单元总输入的梯度,则为 ![](img/45edd36c-31ff-4c19-b6e9-2fd00488402a.png) 。 这仍然等于输出预测中的误差。
因此,如果我们要计算成本函数相对于输出单元总输入的梯度,则为`∂C/∂s[1]^(3)`。 这仍然等于输出预测中的误差。
根据输入权重和激活,输出单元上的总输入可以表示为:
![](img/153c33ee-f998-4650-be8d-a77f9ef8ffbe.png)
这意味着 *![](img/23be1d62-249e-47a0-8ddc-72bf17094dbb.png)* 以及成本函数相对于权重的导数 *![](img/4bc4d5a7-a122-417f-b35d-479e4a793029.png)* 通过以下方式得出:
这意味着`∂s[1]^(3)/∂w[21]^(3) = z[2]^(3)`以及成本函数相对于权重`w[21]^(3)`的导数通过以下方式得出:
![](img/34c1605c-eb43-4d09-b029-b8177ecd1dc6.png)
如您所见,相对于最终输出层之前的层中的权重,该错误在计算成本函数的梯度时反向传播。 当我们计算成本函数相对于广义权重的梯度![](img/5b8b2334-2462-449b-b31f-360dc3027ca7.png)时,这变得更加明显。 取对应于`j = 1``k = 2`的权重; 即![](img/5b8b2334-2462-449b-b31f-360dc3027ca7.png)。 成本函数`C`相对于该权重的梯度可以表示为:
如您所见,相对于最终输出层之前的层中的权重,该错误在计算成本函数的梯度时反向传播。 当我们计算成本函数相对于广义权重的梯度`w[jk]^(2)`时,这变得更加明显。 取对应于`j = 1``k = 2`的权重; 即`w[jk]^(2)`。 成本函数`C`相对于该权重的梯度可以表示为:
![](img/474751ea-71f8-4c57-9d16-1679ed2fbea5.png)
现在,![](img/e3b5f588-54b7-4b7f-a624-20c8c63fe4f5.png)表示![](img/d5f34043-fdeb-48ca-bf1b-d1a1915ba77d.png)
现在,`∂s[2]^(2)/∂w[12]^(2) = z[1]^(2)`表示:
因此,一旦我们确定了成本函数相对于神经元总输入的梯度为![](img/01b2beed-5ae3-478a-b99c-77eca4595b96.png),则任何权重的梯度`w`贡献了总输入量`s`,可以通过简单地乘以与重量相关的激活`z`来获得。
![](img/d5f34043-fdeb-48ca-bf1b-d1a1915ba77d.png)
现在,成本函数相对于总输入的梯度![](img/e254c4c2-01df-42fe-a32b-94153a25e69b.png)可以再次通过链式法则得出,如下所示:
因此,一旦我们确定了成本函数相对于神经元总输入的梯度为`∂C/∂s`,则任何权重的梯度`w`贡献了总输入量`s`,可以通过简单地乘以与重量相关的激活`z`来获得。
现在,成本函数相对于总输入的梯度`s[2]^(2)`可以再次通过链式法则得出,如下所示:
![](img/ff5d7314-4a37-458c-933b-25a883f492bd.png)
......@@ -242,7 +244,7 @@ ReLU 的限制条件之一是其输入负值的零梯度。 这可能会减慢
![](img/ed1832d2-e65e-4568-8594-f5ded856cfe3.png)
在前面的派生梯度表达式中,您可以看到预测误差![](img/60984e36-9d78-4e8d-9518-fc92f78f55a4.png)通过与相关的激活和权重(根据微分链规则)组合以计算每一层权重的梯度而向后传播 ,因此是 AI 术语中的反向传播名称。
在前面的派生梯度表达式中,您可以看到预测误差`(y_hat - y)`通过与相关的激活和权重(根据微分链规则)组合以计算每一层权重的梯度而向后传播 ,因此是 AI 术语中的反向传播名称。
# 卷积神经网络
......@@ -290,15 +292,15 @@ ReLU 的限制条件之一是其输入负值的零梯度。 这可能会减慢
在 RNN 中,步骤`t`中的输出错误会尝试纠正先前时间步中的预测,并通过`k ∈ 1, 2, ..., t-1`来概括。 通过传播先前时间步长中的错误来实现。 这有助于 RNN 了解彼此相距较远的单词之间的长期依赖性。 实际上,由于梯度问题的消失和爆炸,并非总是可能通过 RNN 学习这么长的依赖关系。
如您所知,神经网络通过梯度下降来学习,并且可以通过以下步骤来学习单词在时间步`t`与在先序列步`k`之间的关系。 记忆状态![](img/f6a98a54-7272-4859-bbdd-8f2347ec8a72.png)相对于记忆状态`h[i]^(t)`的梯度。 用以下公式表示:
如您所知,神经网络通过梯度下降来学习,并且可以通过以下步骤来学习单词在时间步`t`与在先序列步`k`之间的关系。 记忆状态`h[t]^(i)`相对于记忆状态`h[i]^(t)`的梯度。 用以下公式表示:
![](img/4b851df6-5d8f-4c92-861e-2c0066c19254.png)
如果从序列步骤`k`的存储状态![](img/b7da7650-c906-4c3d-9191-77ef72550882.png)到序列步骤`k + 1`的存储状态![](img/ce311540-8fcf-46a5-bf55-4b9506efed8f.png)的权重连接由*给出`u[ii] ∈ W[hh]`,则以下是正确的:
如果从序列步骤`k`的存储状态`h[k]^(i)`到序列步骤`k + 1`的存储状态`h[k + 1]^(i)`的权重连接由*给出`u[ii] ∈ W[hh]`,则以下是正确的:
![](img/94bf384a-86e7-413d-ae16-9b3f5249eef1.png)
在前面的等式中,![](img/6e3eda2d-3282-41ef-a0eb-12a7860c951b.png)是在时间步`k + 1`时存储状态`i`的总输入,因此情况如下:
在前面的等式中,`s[k + 1]^(i)`是在时间步`k + 1`时存储状态`i`的总输入,因此情况如下:
![](img/82fd4549-3b28-4289-9145-320579f8f364.png)
......@@ -308,7 +310,7 @@ ReLU 的限制条件之一是其输入负值的零梯度。 这可能会减慢
![](img/a5818e53-89c6-4a7a-8f79-f71fdfc2535d.png)
对于 RNN,函数`f[2]`通常为 Sigmoid 或 tanh,其饱受饱和度的困扰,即具有超出指定输入值范围的低梯度。 现在,由于`f[2]`的导数彼此相乘,因此,如果激活函数的输入在饱和区工作,则![](img/262411c9-5926-4e82-913c-5a58147cc084.png)的斜率可以变为零,即使相对`tk`的中等值。 即使`f[2]`函数在饱和区中不起作用,但 Sigmoids 的`f[2]`函数的梯度始终较小 比`1`难,因此很难学习序列中单词之间的远距离依存关系。 同样,可能会由于![](img/0a6a961e-803e-4a05-aa14-d1b9b444e272.png)因子而出现爆炸性梯度问题。 假设步`t``k`之间的距离约为`10`,而重量`u[ii]`,大约两点。 在这种情况下,梯度将被放大两倍,即`2 ^ 10 = 1024`,从而导致爆炸梯度问题。
对于 RNN,函数`f[2]`通常为 Sigmoid 或 tanh,其饱受饱和度的困扰,即具有超出指定输入值范围的低梯度。 现在,由于`f[2]`的导数彼此相乘,因此,如果激活函数的输入在饱和区工作,则`∂h[t]^(i)/∂h[k]^(i)`的斜率可以变为零,即使相对`tk`的中等值。 即使`f[2]`函数在饱和区中不起作用,但 Sigmoids 的`f[2]`函数的梯度始终较小 比`1`难,因此很难学习序列中单词之间的远距离依存关系。 同样,可能会由于`u[ii]^(t - k)`因子而出现爆炸性梯度问题。 假设步`t``k`之间的距离约为`10`,而重量`u[ii]`,大约两点。 在这种情况下,梯度将被放大两倍,即`2 ^ 10 = 1024`,从而导致爆炸梯度问题。
# 长短期记忆(LSTM)单元
......@@ -326,7 +328,7 @@ ReLU 的限制条件之一是其输入负值的零梯度。 这可能会减慢
![](img/16cfb5c1-3e84-497e-8725-fc5c0e571a30.png)
潜在的新候选细胞状态![](img/9da8cf00-c42f-4fd3-be55-18a2334cf1c6.png)表示如下:
潜在的新候选细胞状态`C_tilde[t]`表示如下:
![](img/d10b017e-3e19-4c63-8ece-90ca7b3d2dfe.png)
......@@ -342,7 +344,7 @@ ReLU 的限制条件之一是其输入负值的零梯度。 这可能会减慢
![](img/55a8e2c1-d673-4016-b4f2-a2baf36f73ed.png)
现在出现了一个大问题:LSTM 如何避免消失的梯度问题? LSTM 中![](img/f1facab3-c62a-44c3-8892-0b8ead3bec9e.png)的等效项由![](img/b8df6cd0-edae-4d0f-9cf8-a2815a1a3d8f.png)给出,可以用以下产品形式表示:
现在出现了一个大问题:LSTM 如何避免消失的梯度问题? LSTM 中`∂h[t]^(i)/∂h[k]^(i)`的等效项由`∂C[t]^(i)/∂C[k]^(i)`给出,可以用以下产品形式表示:
![](img/0467935c-2261-4019-86e5-d5cb976fdcfb.png)
......@@ -354,7 +356,7 @@ ReLU 的限制条件之一是其输入负值的零梯度。 这可能会减慢
![](img/636e59ba-65ee-410a-8dce-c19ce20565c6.png)
结果,梯度表达式![](img/b78e0488-2d7f-46c7-a991-ca4eaf621665.png)变为以下:
结果,梯度表达式`∂C[t]^(i)/∂C[k]^(i)`变为以下:
![](img/78f1eac4-0f48-4f0f-8521-344d3a317e9d.png)
......@@ -406,7 +408,7 @@ Figure 1.14: GAN architecture 
![](img/9dd0ea39-6a35-49d3-aa07-47e8242fd453.png)
现在,生成器的任务是最大化实用程序![](img/171ac44a-3b7b-4819-9214-46d7b1e58324.png)或最小化实用程序![](img/0e8e967d-8582-409c-ae34-4c843db5d7f7.png)。 ![](img/52aebda1-9abf-47bc-a5cc-f5ae4530e691.png)的表达式可以重新安排如下:
现在,生成器的任务是最大化实用程序`V(G, D_hat)`或最小化实用程序`-V(G, D_hat)``-V(G, D_hat)`的表达式可以重新安排如下:
![](img/2e348883-3d4b-421d-940e-8c0c8a593af0.png)
......@@ -414,7 +416,7 @@ Figure 1.14: GAN architecture 
![](img/8893fadf-3fbf-4c42-bb8d-7a27f14dcb76.png)
因此,我们可以看到生成器最小化![](img/18728b2c-5f24-4bbc-888d-541116e69eeb.png)等于最小化实际分布`P(x)`与生成器生成的样本分布之间的 Jensen Shannon 散度`G`(即`G(x)`)。
因此,我们可以看到生成器最小化`-V(G, D_hat)`等于最小化实际分布`P(x)`与生成器生成的样本分布之间的 Jensen Shannon 散度`G`(即`G(x)`)。
训练 GAN 并不是一个简单的过程,在训练这样的网络时我们需要考虑几个技术方面的考虑。 我们将使用高级 GAN 网络在第 4 章“使用 GANs 的时装行业中的风格迁移”中构建跨域风格迁移应用程序。
......@@ -442,7 +444,7 @@ Figure 1.14: GAN architecture 
![](img/94a7a7da-3528-4fb2-9e42-1af592e0c024.png)
现在,马尔可夫决策过程是一个随机过程,无法每次基于`S[t]``a[t]`进行相同的下一步`S[t + 1]`; 因此,我们对未来的奖励应用了折扣系数![](img/ea70164f-5568-4256-8b57-5b94e2423042.png)。 这意味着长期奖励可以更好地表示为:
现在,马尔可夫决策过程是一个随机过程,无法每次基于`S[t]``a[t]`进行相同的下一步`S[t + 1]`; 因此,我们对未来的奖励应用了折扣系数`γ`。 这意味着长期奖励可以更好地表示为:
![](img/4a4b48fe-0a74-4d0f-92ad-bad7fdc7fb35.png)
......@@ -450,7 +452,7 @@ Figure 1.14: GAN architecture 
![](img/b3ecdb7c-d4cf-48a2-af93-c969b62fb41e.png)
在每个状态`s ∈ S`,Q 学习中的主体尝试采取行动![](img/06b5dce2-74cb-4521-869a-cdf586c86f70.png),以最大化其长期回报。 Q 学习算法是一个迭代过程,其更新规则如下:
在每个状态`s ∈ S`,Q 学习中的主体尝试采取行动`α ∈ A`,以最大化其长期回报。 Q 学习算法是一个迭代过程,其更新规则如下:
![](img/b6e4a367-e0aa-406d-bd8b-5e1b2cb8c1d7.png)
......@@ -458,9 +460,9 @@ Figure 1.14: GAN architecture 
处于状态`s[t]`的采取行动`a[t]`的总累积奖励`Q(s[t], a[t])`取决于即时奖励`r[t]`以及在新步骤`s[t+1]`处的,我们希望的最大长期回报。 在马尔可夫决策过程中,新状态`s[t + 1]`随机依赖于当前状态,即`s[t]`,然后通过`P(S[t+1]/S[t];r[t])`形式的概率密度/质量函数选取的动作`a[t]`
该算法通过根据![](img/bdb0479f-f8a3-491a-a423-17d150e6d6fe.png)的值对旧期望值和新长期奖励值进行加权平均,来不断更新期望长期累积奖励。
该算法通过根据`α`的值对旧期望值和新长期奖励值进行加权平均,来不断更新期望长期累积奖励。
通过迭代算法构建了`Q(s, a)`函数后,在基于给定状态`s`进行游戏时,我们可以采取最佳措施![](img/d91fdd02-4626-4db2-9fc4-1a656f64dde2.png), 作为最大化 Q 功能的策略:
通过迭代算法构建了`Q(s, a)`函数后,在基于给定状态`s`进行游戏时,我们可以采取最佳措施`a_hat`, 作为最大化 Q 功能的策略:
![](img/88e6ee5c-d64d-4d70-a9cf-ee3eb0e6c32a.png)
......@@ -538,7 +540,7 @@ Figure 1.14: GAN architecture 
图 1.20:自编码器架构
自编码器有两个部分:编码器和解码器。 编码器尝试将输入数据`x`投影到隐藏层`h`中。 解码器尝试从隐藏层`h`重构输入。 通过最小化重构误差,即来自解码器和原始输入的重构输入![](img/359986dd-2b2c-43d7-a706-1730baaa010c.png)之间的误差,可以训练伴随此类网络的权重。 如果输入是连续的,则最小化重构误差的平方和,以学习自编码器的权重。
自编码器有两个部分:编码器和解码器。 编码器尝试将输入数据`x`投影到隐藏层`h`中。 解码器尝试从隐藏层`h`重构输入。 通过最小化重构误差,即来自解码器和原始输入的重构输入`x_tilde`之间的误差,可以训练伴随此类网络的权重。 如果输入是连续的,则最小化重构误差的平方和,以学习自编码器的权重。
如果我们用函数`f[W](x)`表示编码器,而解码器则用`f[U](x)`表示,其中`W``U`是与编码器和解码器关联的权重矩阵,那么情况如下:
......@@ -550,7 +552,7 @@ Figure 1.14: GAN architecture 
![](img/5ecc227c-e830-4604-898b-f08d92be4d0a.png)(3)
通过最小化`(3)`的成本函数,可以学习自编码器的最佳权重![](img/3f710299-ee2e-40cf-b7ae-7be06074f7c9.png),如下所示:
通过最小化`(3)`的成本函数,可以学习自编码器的最佳权重`W_hat, U_hat`,如下所示:
![](img/1a645659-bc76-482d-9d08-7c790e29013e.png)(4)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册