zoukankan      html  css  js  c++  java
  • Autoencoders and Sparsity(二)

    In this problem set, you will implement the sparse autoencoder algorithm, and show how it
    discovers that edges are a good representation for natural images.

    Step 1: Generate training set

    Step 2: Sparse autoencoder objective

    Step 3: Gradient checking

    Step 4: Train the sparse autoencoder

    Step 5: Visualization

    流程

    1. 计算出网络每个节点的输入值(即程序中的z值)和输出值(即程序中的a值,a是z的sigmoid函数值)。

    2. 利用z值和a值计算出网络每个节点的误差值(即程序中的delta值)。

    3. 这样可以利用上面计算出的每个节点的a,z,delta来表达出系统的损失函数以及损失函数的偏导数了

    其实步骤1是前向进行的,也就是说按照输入层——》隐含层——》输出层的方向进行计算。而步骤2是逆方向进行的(这也是该算法叫做BP算法的来源),即每个节点的误差值是按照输出层——》隐含层——》输入层方向进行的。

    Matlab

    bsxfun —— C=bsxfun(fun,A,B)表达的是两个数组A和B间元素的二值操作,fun是函数句柄或者m文件,或者是内嵌的函数。在实际使用过程中fun有很多选择比如说加,减等,前面需要使用符号’@’.一般情况下A和B需要尺寸大小相同,如果不相同的话,则只能有一个维度不同,同时A和B中在该维度处必须有一个的维度为1。比如说bsxfun(@minus, A, mean(A)),其中A和mean(A)的大小是不同的,这里的意思需要先将mean(A)扩充到和A大小相同,然后用A的每个元素减去扩充后的mean(A)对应元素的值。

    rand —— 生成均匀分布的伪随机数。分布在(0~1)之间
    主要语法:rand(m,n)生成m行n列的均匀分布的伪随机数
                 rand(m,n,'double')生成指定精度的均匀分布的伪随机数,参数还可以是'single'
                 rand(RandStream,m,n)利用指定的RandStream(我理解为随机种子)生成伪随机数

    randn —— 生成标准正态分布的伪随机数(均值为0,方差为1)

    randi —— 生成均匀分布的伪随机整数
      主要语法:randi(iMax)在闭区间(0,iMax)生成均匀分布的伪随机整数 
                 randi(iMax,m,n)在闭区间(0,iMax)生成mXn型随机矩阵
                 r = randi([iMin,iMax],m,n)在闭区间(iMin,iMax)生成mXn型随机矩阵

    exist —— 测试参数是否存在,比如说exist('opt_normalize', 'var')表示检测变量opt_normalize是否存在,其中的’var’表示变量的意思

    colormap —— 设置当前常见的颜色值表。

    floor —— floor(A):取不大于A的最大整数

    ceil —— ceil(A):取不小于A的最小整数

    repmat —— 该函数是扩展一个矩阵并把原来矩阵中的数据复制进去。比如说B = repmat(A,m,n),就是创建一个矩阵B,B中复制了共m*n个A矩阵,因此B矩阵的大小为[size(A,1)*m  size(A,2)*m]

    Technorati 标签:
  • 相关阅读:
    Linux内核RPC请求过程
    二分图
    Java实现 蓝桥杯 算法提高 合并石子
    Java实现 蓝桥杯 算法提高 合并石子
    Java实现 蓝桥杯 算法提高 摩尔斯电码
    Java实现 蓝桥杯 算法提高 摩尔斯电码
    Java实现 蓝桥杯 算法提高 文本加密
    Java实现 蓝桥杯 算法提高 文本加密
    Java蓝桥杯 算法提高 九宫格
    Java蓝桥杯 算法提高 九宫格
  • 原文地址:https://www.cnblogs.com/sprint1989/p/3971060.html
Copyright © 2011-2022 走看看