稀疏编码自编码表达

From Ufldl

Jump to: navigation, search
([ 良好的s初始值 ])
Line 108: Line 108:
如果你一次性在大规模数据集(比如,有10000 个patch)上执行简单的迭代算法,你会发现每次迭代都要花很长时间,也因此这算法要花好长时间才能达到收敛结果。为了提高收敛速度,可以选择在迷你块上运行该算法。每次迭代的时候,不是在所有的10000个patchs上执行该算法,而是使用迷你块,即从10000个patch中随机选出2000个patch,再在这个迷你块上执行这个算法。这样就可以做到一石二鸟――第一,提高了每次迭代的速度,因为现在每次迭代只在2000个patch上执行而不是10000个;第二,也是更重要的,它提高了收敛的速度(原因见[[TODO]])。
如果你一次性在大规模数据集(比如,有10000 个patch)上执行简单的迭代算法,你会发现每次迭代都要花很长时间,也因此这算法要花好长时间才能达到收敛结果。为了提高收敛速度,可以选择在迷你块上运行该算法。每次迭代的时候,不是在所有的10000个patchs上执行该算法,而是使用迷你块,即从10000个patch中随机选出2000个patch,再在这个迷你块上执行这个算法。这样就可以做到一石二鸟――第一,提高了每次迭代的速度,因为现在每次迭代只在2000个patch上执行而不是10000个;第二,也是更重要的,它提高了收敛的速度(原因见[[TODO]])。
-
=== [ 良好的<math>s</math>初始值 ] ===
+
== [ 良好的<math>s</math>初始值 ] ==
另一个能获得更快速更优化收敛的重要技巧是:在给定<math>A</math>的条件下,根据目标函数使用梯度下降(或其他方法)求解<math>s</math>之前找到良好的特征矩阵<math>s</math>的初始值。实际上,除非在优化<math>A</math>的最优值前已找到一个最佳矩阵<math>s</math>,不然每次迭代过程中随机初始化<math>s</math>值会导致很差的收敛效果。下面给出一个初始化<math>s</math>的较好方法:  
另一个能获得更快速更优化收敛的重要技巧是:在给定<math>A</math>的条件下,根据目标函数使用梯度下降(或其他方法)求解<math>s</math>之前找到良好的特征矩阵<math>s</math>的初始值。实际上,除非在优化<math>A</math>的最优值前已找到一个最佳矩阵<math>s</math>,不然每次迭代过程中随机初始化<math>s</math>值会导致很差的收敛效果。下面给出一个初始化<math>s</math>的较好方法:  

Revision as of 07:25, 21 March 2013

Personal tools