zoukankan      html  css  js  c++  java
  • UFLDL 教程学习笔记(四)

              课程链接:http://ufldl.stanford.edu/tutorial/supervised/MultiLayerNeuralNetworks/

            这一节前半部分介绍了神经网络模型及前向传导,定义了很多的变量,这些变量到底代表了什么一定要搞懂,否则后半部分的推导就看不懂了。

            首先是active function,一般选的是sigmod,但深度学习中选的是rectified linear function,既没有边界,也不可连续可微:

             

             下面是几个active function的对比图:

            

            rectified linear function 是逐段线性的,且在小于0的地方是饱和的。它在小于0是梯度为0,大于0时梯度为1,在0的地方没有定义

      但在实际过程中没有问题,“we average the gradient over many training examples during optimization”。

            

            后半部分前的是BP,其实就是怎么求w,b.BP算法是通过反向逐层计算残差来计算梯度,具体参考这篇博客http://blog.csdn.net/itplus/article/details/11022243,总结加注释,写的非常非常好

            

            其实整个过程就是,用梯度下降法来求得最优的w和b,但我们只知道最后一个输出,那么隐含的各层的梯度该如何求呢?这就要用到BP了。

            

            然后是作业部分。里面用到几个函数,简单分析下(主要是好多我没看懂)。

            stack = params2stack(params, ei)将一个flattened parameter vector(不明白那个扁平是什么意思)转为a nice "stack" structure,

    ei是auxiliary variable containing the configuration of the network

            函数首先得到网络的深度depth,并初始化一个这么大的cell(stack),取得前一层的大小(单元个数?)prev_size,并定义了一个表示参数向量位置的向量。

            接下来是一个循环。目的是取得所有层的权值与偏差。最后返回的stack包括每层的权值和偏差。

        

            未完待续。。。。

            

            

            

           

  • 相关阅读:
    Java动态代理详解
    (10) openssl dhparam(密钥交换)
    (9) openssl enc(对称加密)
    (8) openssl rsautl(签名/验证签名/加解密文件)和openssl pkeyutl(文件的非对称加密)
    (7) openssl dgst(生成和验证数字签名)
    (6) openssl passwd(生成加密的密码)
    (5) openssl speed(测试算法性能)和openssl rand(生成随机数)
    (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
    (3) openssl genrsa(生成rsa私钥)
    (2) OpenSSL命令
  • 原文地址:https://www.cnblogs.com/573177885qq/p/4820541.html
Copyright © 2011-2022 走看看