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 标签:
  • 相关阅读:
    30 Day Challenge Day 12 | Leetcode 198. House Robber
    30 Day Challenge Day 12 | Leetcode 276. Paint Fence
    30 Day Challenge Day 12 | Leetcode 265. Paint House II
    30 Day Challenge Day 12 | Leetcode 256. Paint House
    30 Day Challenge Day 11 | Leetcode 76. Minimum Window Substring
    30 Day Challenge Day 11 | Leetcode 66. Plus One
    oracle之6过滤与排序
    oracle之5多行函数之过滤分组函数
    oracle之4多行函数之分组函数
    oracle之3单行函数之条件表达式
  • 原文地址:https://www.cnblogs.com/sprint1989/p/3971060.html
Copyright © 2011-2022 走看看