大名鼎鼎的稀疏编码,源自1996。记录一下使用sparsenet的心得。
0. My Prerequisite
- Windows10
- matlab 2016b
- mingw64
为了节省内存,我把matlab2016b装在了移动硬盘上;mingw64可以不用额外下载,本地一搜就好几个;例如git和jetbrains都会提供mingw64编译器,matlab也自带。
setenv('MW_MINGW64_LOC', 'F:\8-软件\mingw64')
#setenv('MW_MINGW64_LOC', 'D:\Git\mingw64')
# D:\Program Files\JetBrains\mingw64
# F:\2-软件安装包\Windows\MATLAB\R2016b\extern\lib\win64\mingw64
我本人很早就装了mingw64,省去了装VS的麻烦。
1.SparseNet
给几个官方传送门:
2.matlab编译
- MATLAB配置mingw64编译器
- 编译
注意:编译的时候要把nrutil.h加上,然后修改cfg.c里面的#inlucde尖括号为引号。
编译成功即会生成cgf.mexw64文件,拷贝出去即可调用。
3.使用
参见README
贴一个跑通的图作纪念。OVER
4.原文理解
1996年,Olshausen和Field在Nature杂志上发表了一篇重要论文指出,自然图像经过稀疏编码后得到的基函数类似于V1区简单细胞感受野的反应特性.这种稀疏编码模型提取的基函数首次成功地模拟了V1区简单细胞感受野的三个响应特性:空间域的局部性、时域和频域的方向性和选择性.考虑到基函数的超完备性(基函数维数大于输出神经元的个数),Olshausen 和Field在1997年又提出了一种超完备基的稀疏编码算法,利用基函数和系数的概率密度模型成功地建模了V1区简单细胞感受野.
传送门:稀疏编码理解