pannyvan

导航

实现一个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算法来求梯度值

 

              

 

posted on 2016-12-30 13:15  pannyvan  阅读(204)  评论(0编辑  收藏  举报