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

                  

  • 相关阅读:
    SLAM基础知识
    标准的机器学习问题
    LAS的数据格式
    Python中的多线程和多进程
    【go】log
    【亲密关系】3-吸引力
    【mysql】做 mariadb 的备库无法启动
    【zabbix-server】Supervising process xxxx which is not our child....exits
    【win10】添加程序自启动
    【Oralce】数据去重,限制某个字段的数据长度,替换空格符
  • 原文地址:https://www.cnblogs.com/pannyvan/p/6236528.html
Copyright © 2011-2022 走看看