Deep Learning by Andrew Ng --- Sparse coding
来源:互联网 发布:油田网络宽带客服电话 编辑:程序博客网 时间:2024/05/17 22:49
稀疏编码介绍
稀疏编码算法是一种无监督学习方法,它用来寻找一组“超完备”基向量来更高效地表示样本数据。稀疏编码算法的目的就是找到一组基向量
不同于PCA,sparse coding目的是寻找一组“超完备”基向量而非“完备”基向量。也就是说sparse coding中k要大于n。
含了限制条件的稀疏编码代价函数的完整形式如下(参考UFLDL):
学习算法
使用稀疏编码算法学习基向量集的方法,是由两个独立的优化过程组合起来的。第一个是逐个使用训练样本 x 来优化系数 ai ,第二个是一次性处理多个样本对基向量
可以使用 L1 范式 :
根据前面的的描述,稀疏编码是有一个明显的局限性的,这就是即使已经学习得到一组基向量,如果为了对新的数据样本进行“编码”,我们必须再次执行优化过程来得到所需的系数。这个显著的“实时”消耗意味着,即使是在测试中,实现稀疏编码也需要高昂的计算成本,尤其是与典型的前馈结构算法相比。
目标函数
该目标函数可以通过以下过程迭代优化(注意一种矩阵微积分的求法):
- 随机初始化A
- 重复以下步骤直至收敛:
根据上一步给定的A,求解能够最小化J(A,s)的s
根据上一步得到的s,,求解能够最小化J(A,s)的A
梯度下降方法求解目标函数也略需技巧,另外使用矩阵演算或反向传播算法则有助于解决此类问题
拓扑稀疏编码
我们拓扑希望稀疏编码能学习得到一组有某种“秩序”的特征集。
稀疏编码实践(技巧)
两种更快更优化的收敛技巧:
- 将样本分批为“迷你块”
- 良好的s初始值:令或者
s←WTx(x是迷你块中patches的矩阵表示)。 s中的每个特征(s的每一列),除以其在A中对应基向量的范数。即,如果sr,c表示第c个样本的第r个特征,则Ac表示A中的第c个基向量,则令sr,c←sr,c∥Ac∥.
稀疏编码算法修改如下:
- 随机初始化A。
- 重复以下步骤直至收敛:
随机选取一个有2000个patches的迷你块
如上所述,初始化s
根据上一步给定的A,求解能够最小化J(A,s)的s
根据上一步得到的s,求解能够最小化J(A,s)的A
作业题
该作业需要我们自己对costfunction求导:
以后补充,未完待续。
0 0
- Deep Learning by Andrew Ng --- Sparse coding
- Deep Learning by Andrew Ng --- Sparse Autoencoder
- Deep Learning by Andrew Ng --- Softmax regression
- Deep Learning by Andrew Ng --- self-taught
- Deep Learning by Andrew Ng --- stacked autoencoder
- Deep learning by Andrew Ng --- Linear Decoder
- Deep Learning by Andrew Ng --- PCA and whitening
- Deep Learning:Sparse Coding ScSPM & LLC
- Deep Learning模型之:Sparse Coding
- Deep learning:二十九(Sparse coding练习)
- 《程序员》: Andrew Ng谈Deep Learning
- Andrew NG deep learning 学习资料
- Andrew Ng 的 Deep Learning 教程翻译
- Andrew Ng(吴恩达) deep learning 课程 (coursera)
- 【机器学习】Machine Learning by Andrew Ng
- Machine Learning by Andrew Ng-----note
- Machine Learning by Andrew Ng --- K-means
- Machine Learning课程 by Andrew Ng
- C# 使用Xamarin 开发应用 -- 切换Activity
- leetcode 日经贴,Cpp code -Maximal Rectangle
- Maximum number of format records exceeded. Using default format
- ADT/Eclipse上 使用SVN管理项目基本流程
- Softmax回归C++实现
- Deep Learning by Andrew Ng --- Sparse coding
- C# 使用Xamarin 开发应用 -- Alert Box
- RQNOJ57 AC之后~~
- 靠大数据赚钱的10个例子(转载)
- css中的糟粕
- FFmpeg的H.264解码器源代码简单分析:熵解码(Entropy Decoding)部分
- leetcode 日经贴,Cpp code -Largest Rectangle in Histogram
- Gradle 使用
- Python3简单教程(二)——Python注释