用反向传导思想求导

From Ufldl

Jump to: navigation, search
(示例)
(示例)
Line 42: Line 42:
== 示例 ==
== 示例 ==
-
为了阐述如何使用反向传导思想计算关于输入的导数,我们要在示例1,示例2中用[[ 稀疏编码自编码表达 | 稀疏编码自编码表达 ]]一节中的两个函数。在示例3中,我们使用[[ 独立成分分析 | 独立成分分析 ]]一节中的一个函数来说明使用此思想计算关于权重的偏导的方法,以及在这种特殊情况下,如何处理相互捆绑或重复的权重。
+
为了阐述如何使用反向传导思想计算关于输入的导数,我们要在示例1,示例2中用[[ 稀疏编码自编码表达 | 稀疏编码 ]]章节中的两个函数。在示例3中,我们使用[[ 独立成分分析 | 独立成分分析 ]]一节中的一个函数来说明使用此思想计算关于权重的偏导的方法,以及在这种特殊情况下,如何处理相互捆绑或重复的权重。
=== 示例1:稀疏编码中权重矩阵的目标函数 ===
=== 示例1:稀疏编码中权重矩阵的目标函数 ===
-
回顾在[[ 稀疏编码自编码表达 | 稀疏编码自编码表达 ]]一节中,给定特征矩阵<math>s</math>,权重矩阵<math>A</math>的目标函数为:
+
回顾一下[[ 稀疏编码自编码表达 | 稀疏编码 ]],当给定特征矩阵<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稀疏罚函数 ===
-
回顾[[Sparse Coding: Autoencoder Interpretation | sparse coding]]一节中对<math>s</math>的平滑地形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重建代价 ===
-
回顾[[Independent Component Analysis | independent component analysis (ICA)]]一节重建代价一项:<math>\lVert W^TWx - x \rVert_2^2</math> ,其中<math>W</math>是权重矩阵,<math>x</math>是输入。
+
回顾[[ 独立成分分析 | 独立成分分析(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>——对于'''权重矩阵'''的导数,而不是像前两例中对于'''输入'''的导数。不过我们仍然用类似的方法处理,把该项看做一个神经网络的实例:

Revision as of 17:49, 16 March 2013

Personal tools