当前位置 博文首页 > 文章内容

    使用numpy实现两层神经网络

    作者:糖丝橙 栏目:IT相关内容 时间:2020-05-09 9:21:18

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    1.网络结构及实现思路

         以下为次此依赖的网络结构,并且后边的所有思路及编程都将遵循这个结构给出。

    14521f0feff6d8a215be01d99d2fe6a3.png

    其中隐藏层、激活函数(采用Relu函数)、输出层的内容如下:

       f32278e5d9e8b024dbc6c1c93104976e.png

    其整体实现思路如下:

         1. 定义神经网络参数

         2. 实现前馈神经网络 forward pass

         3. 计算损失 loss

         4. 实现反向传播 backword pass

    2.编程实现及公式推导

    621e1f44565004d5e7db173de6c84e94.png

    7836475c3dd2d4baae2ffc4a4bc80808.png

         这里需要说明的一点就是在计算各参数的梯度问题时,是在估计值与真实值之间差值的平方的基础上进行求偏导的,我们令其为A,则有:

    e1d0b6369bb2ae5b54050e91b568d428.png

         有了上边的推导,相信大家很容易就理解代码了吧。

    3.测试结果

    ab8fda348146f19a44fcd762d51450dd.png

         在结果中我们可以看到,在程序刚开始时和程序结束时的loss值有了明显减小:

    0de48598887767791bf772650b7942af.png

         可以看到程序在训练了500次的情况下,我们的这个两层的神经网络效果还是比较不错的。接下来我也将会继续将该模型改写为torch版本的。


    文章来源:CSDN博客

    原文链接:https://blog.csdn.net/weixin_38468077/article/details/106000072

    如有侵权,请联系本人删除