zoukankan      html  css  js  c++  java
  • CNN Mnist

    参考链接:https://www.codeproject.com/articles/16650/neural-network-for-recognition-of-handwritten-digi#Introduction

    网络结构

    Mnist的网络结构有5层:
    (1)第一层为输入层,输入层的图片大小为29*29,也就是说,输入层的节点有841=29*29个;
    (2)第二层为卷积层,卷积核的大小为5*5,每次偏移两个像素。所以第二层的特征图大小为13*13。这一层使用了6个不同的卷积核,所以有6个特征图。所以这一层的节点的个数为1014=13*13*6。权值的个数为156=(5*5+1)*6个,加1是因为有个偏移值。
    (3)第三层的卷积层,卷积核大小5*5,每次偏移两个像素。所以第三层的特征图大小为5*5。这一层使用了50个不同的卷积核,所以有50个特征图。所以这一层的节点的个数为1250=5*5*50。权值的个数为7800=(5*5+1)*6*50个。
    (4)第四层为全连接层,有100个节点,所以权值有125100=(1250+1)*100。
    (5)第五层为全连接层,也是输出层,有10个节点,所以权值有1010=(100+1)*10。


    参数更新推导

    我们用n表示层数。对于某一层n,定义一些变量如下:
    (1)$x_{n}$,这一层的输出;
    (2)$y_{n}$,这一层的输入;
    (3)$W_{n}^{ij}$,连接这一层的节点i和上一层的节点j的权值.
    (4)$C_{n}$,这一层的节点数
    另外
    (1)定义激活函数为F。其中$y_{n}^{i}=sum_{j=0}^{C_{n-1}}W_{n}^{ij}x_{n-1}^{j}$,j=0为偏移值,$x_{n}^{i}=F(y_{n}^{i})$。使用的激活函数为$F(y)=frac{e^{y}-e^{-y}}{e^{y}+e^{-y}}$,其中$frac{dF}{dy}=1-F(x)^{2}=1-x^{2}$。这里定义$G(x)=1-x^{2}$
    (2)定义误差为$E$,GroundTrue为T,最后一层(我们这里就是第五层的输出)输出为$x_{n}$,$E=frac{1}{2}sum (x_{n}^{i}-T^{i})^{2}$。所以$frac{partial E}{partial x_{n}^{i}}=x_{n}^{i}-T^{i}$。

    现在假设我们知道了第n层的$frac{partial E}{partial x_{n}^{i}}$.下面计算$frac{partial E}{partial y_{n}^{i}}$.
    $frac{partial E}{partial y_{n}^{i}}=frac{partial E}{partial x_{n}^{i}}frac{partial x_{n}^{i}}{partial y_{n}^{i}}=frac{partial E}{partial x_{n}^{i}}G(x_{n}^{i})$
    接着计算$frac{partial E}{partial W_{n}^{ij}}$
    $frac{partial E}{partial W_{n}^{ij}}=frac{partial E}{partial y_{n}^{i}}frac{partial y_{n}^{i}}{partial W_{n}^{ij}}=frac{partial E}{partial y_{n}^{i}}x_{n-1}^{j}$
    现在可以更新权值了:$(W_{n}^{ij})_{new}=(W_{n}^{ij})_{old}-LearningRatecdot frac{partial E}{partial W_{n}^{ij}}$。学习率$LearningRate$通常是一个很小的值。
    现在计算$frac{partial E}{partial x_{n-1}^{i}}$.
    $frac{partial E}{partial x_{n-1}^{i}}=frac{partial E}{partial y_{n}}frac{partial y_{n}}{partial x_{n-1}^{i}}=sum_{k=1}^{C_{n}}W_{n}^{ki}frac{partial E}{partial y_{n}^{k}}$
    这样就能重新按照上面的式子计算$n-1$层了。

    一直迭代这个过程,直到第一层。

  • 相关阅读:
    求质数与因式分解
    利用工具解题
    我的学生信息管理系统总结
    JSP简单练习-页面重定向
    CSS学习(三)—相对定位与绝对定位
    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    AVL平衡树的插入例程
    SAE搭建WordPress教程 免费建WordPress博客站
    MPMoviePlayerViewController和MPMoviePlayerController的使用
    Android日志输出工具类
  • 原文地址:https://www.cnblogs.com/jianglangcaijin/p/6374132.html
Copyright © 2011-2022 走看看