用反向传导思想求导
From Ufldl
(→示例) |
(→示例) |
||
Line 42: | Line 42: | ||
== 示例 == | == 示例 == | ||
- | 为了阐述如何使用反向传导思想计算关于输入的导数,我们要在示例1,示例2中用[[ 稀疏编码自编码表达 | | + | 为了阐述如何使用反向传导思想计算关于输入的导数,我们要在示例1,示例2中用[[ 稀疏编码自编码表达 | 稀疏编码 ]]章节中的两个函数。在示例3中,我们使用[[ 独立成分分析 | 独立成分分析 ]]一节中的一个函数来说明使用此思想计算关于权重的偏导的方法,以及在这种特殊情况下,如何处理相互捆绑或重复的权重。 |
=== 示例1:稀疏编码中权重矩阵的目标函数 === | === 示例1:稀疏编码中权重矩阵的目标函数 === | ||
- | + | 回顾一下[[ 稀疏编码自编码表达 | 稀疏编码 ]],当给定特征矩阵<math>s</math>时,权重矩阵<math>A</math>的目标函数为: | |
:<math>F(A; s) = \lVert As - x \rVert_2^2 + \gamma \lVert A \rVert_2^2</math> | :<math>F(A; s) = \lVert As - x \rVert_2^2 + \gamma \lVert A \rVert_2^2</math> | ||
Line 112: | Line 112: | ||
=== 示例2:稀疏编码中的平滑地形L1稀疏罚函数 === | === 示例2:稀疏编码中的平滑地形L1稀疏罚函数 === | ||
- | 回顾[[ | + | 回顾[[ 稀疏编码自编码表达 | 稀疏编码 ]]一节中对<math>s</math>的平滑地形L1稀疏罚函数: |
:<math>\sum{ \sqrt{Vss^T + \epsilon} }</math> | :<math>\sum{ \sqrt{Vss^T + \epsilon} }</math> | ||
其中<math>V</math>是分组矩阵,<math>s</math>是特征矩阵,<math>\epsilon</math> 是一个常数。 | 其中<math>V</math>是分组矩阵,<math>s</math>是特征矩阵,<math>\epsilon</math> 是一个常数。 | ||
Line 185: | Line 185: | ||
=== 示例3:ICA重建代价 === | === 示例3:ICA重建代价 === | ||
- | 回顾[[ | + | 回顾[[ 独立成分分析 | 独立成分分析(ICA) ]]一节重建代价一项:<math>\lVert W^TWx - x \rVert_2^2</math> ,其中<math>W</math>是权重矩阵,<math>x</math>是输入。 |
我们希望计算 <math>\nabla_W \lVert W^TWx - x \rVert_2^2</math>——对于'''权重矩阵'''的导数,而不是像前两例中对于'''输入'''的导数。不过我们仍然用类似的方法处理,把该项看做一个神经网络的实例: | 我们希望计算 <math>\nabla_W \lVert W^TWx - x \rVert_2^2</math>——对于'''权重矩阵'''的导数,而不是像前两例中对于'''输入'''的导数。不过我们仍然用类似的方法处理,把该项看做一个神经网络的实例: |