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算法来求梯度值

                  

  • 相关阅读:
    前端技术-PS切图
    Html5资料整理
    Html5知识体系
    Html知识体系
    C语言知识结构
    ASP.NET知识结构
    src和href的区别
    Ajax的简单使用
    学习理论
    求模运算法则
  • 原文地址:https://www.cnblogs.com/pannyvan/p/6236528.html
Copyright © 2011-2022 走看看