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

                  

  • 相关阅读:
    Laravel 初始化
    ant design pro 左上角 logo 修改
    请求到服务端后是怎么处理的
    Websocket 知识点
    王道数据结构 (7) KMP 算法
    王道数据结构 (6) 简单的模式匹配算法
    王道数据结构 (4) 单链表 删除节点
    王道数据结构 (3) 单链表 插入节点
    王道数据结构 (2) 单链表 尾插法
    王道数据结构 (1) 单链表 头插法
  • 原文地址:https://www.cnblogs.com/pannyvan/p/6236528.html
Copyright © 2011-2022 走看看