zoukankan      html  css  js  c++  java
  • 实现一个simple 3层的神经网络

    1.基本概念

    1.1softmax

    softmax函数:一句话概括:是logistic 函数的扩展,将一个p维的数值向量映射成为一个k维的概率值,且这k个值的和为1.

    公式:

     

    解释:

     

     

       1.2 cross-entry loss

      http://blog.csdn.net/u012494820/article/details/52797916

      https://www.zhihu.com/question/40403377?sort=created

      1.3 Rectifier

      在人工神经网络中,rectifier是一个被定义为的激励函数。

      

      1.4 BP算法

        http://www.cnblogs.com/pannyvan/p/6246789.html

    2.实现过程

      2.1产生数据集 

        scikit-learn:make_moons函数:产生一个二分类的非线性可分数据集

      2.2训练神经网络

        3层:1个输入层(节点个数由数据维度决定),1个隐藏层(可认为控制,过少不分类,过多过拟合),1个输出层(由类别的数目决定)

        2.2.1如何决定隐藏层节点的数目?具体问题具体分析,看结果的影响

        2.2.2隐藏层激活函数的选择?常见的激活函数有tanh,sigmoid function,ReLUs

        2.2.3输出层函数的选择:softmax函数

      2.3网络如何做出预测? 

        正向传播,建立公式:

        

       2.4 学习参数 

        即确定W1,b1,W2,b2的值

        2.4.1首先建立cost function,对应softmax的是 cross-entropy loss

              

         2.4.2运用梯度下降来求cost function的最小值

        2.4.3运用BP算法来求梯度值

                  

  • 相关阅读:
    题目1.A乘以B
    题目1.A乘以B
    秋季学习总结
    题目1.A乘以B
    第一周作业
    C语言I博客作业02
    Silverlight中图像的变换(1)
    SQL SERVER 2005安装过程中COM+错误解决!
    c++ 对文件的操作
    JS标准DES加解密
  • 原文地址:https://www.cnblogs.com/pannyvan/p/6236528.html
Copyright © 2011-2022 走看看