• 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$层了。

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

  • 相关阅读:
    web前端的发展态势
    AngularJs 简单入门
    css代码优化篇
    git提交报错:Please make sure you have the correct access rights and the repository exists.
    Activiti工作流框架学习
    遍历map集合的4种方法
    js设置日期、月份增加减少
    Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
    webservice_rest接口_学习笔记
    相互匹配两个list集合+动态匹配${}参数
  • 原文地址:https://www.cnblogs.com/jianglangcaijin/p/6374132.html
Copyright © 2020-2023  润新知