神经网络与深度学习(week2)

1.卷积神经网络

1.1 相关概念:

全连接网络:链接权过多,难算难收敛,同时可 能进入局部极小值,也容易产生过拟合问题。

局部连接网络:顾名思义,只有一部分权值连接。 部分输入和权值卷积。

填充(Padding):也就是在矩阵的边界上填充一些值,以 增加矩阵的大小,通常用0或者复制边界像素来进行填充。

步长(Stride):滑动卷积核时,会先从输入的左上角开始,每次往左滑动一列或者往下滑动一行逐一计算输出,有时候为了高效计算或是缩减采样次数,卷积窗口可以跳过中间位置,每次滑动多个元素。将每次滑动的行数和列数称为步长(Stride)。

池化: 思想:使用局部统计特征,如均值或最大值。解 决特征过多问题。

1.2  卷积神经网络结构

  • 构成:由多个卷积层和下采样层构成,后面可连接全连接网络
  • 卷积层:k个滤波器
  • 下采样层:采用mean或max
  • 后面:连着全连接网络

 1.3 学习算法

 

2. LeNet-5网络

网络基本结构如下: 

2.1 图中各层详解

图中C1层

6个Feature map构成。每个神经元对输入进行5*5卷积。每个神经元对应5*5+1个参数,共6个feature map,28*28个神经元,因此共有(5*5+1)*6*(28*28)=122,304连接

图中S2层

图中C3层 

卷积层,从上一层的6个通道按图中顺序组合,形成了本层的16个通道。

图中S4层

与S2层工作原理相同。

图中C5层

  • 120个神经元
  • 每个神经元同样对输入进行5*5卷积,与S4全连接
  • 总连接数(5516+1)*120=48120

图中F6层

  • 84个神经元
  • 与C5全连接
  • 总连接数(120+1)*84=10164

图中输出层

  • 由欧式径向基函数单元构成
  • 每类一个单元
  • 输出RBF单元计算输入向量和参数向量之间的欧式距离

2.2 网络结构详解

与现在网络的区别:

-卷积时不进行填充(padding)

-池化层选用平均池化而非最大池化

-选用Sigmoid或tanh而非ReLU作为非线性环节激活函数

-层数较浅,参数数量小(约为6万)

2.3 LeNet网络代码实现

import torch
from torch import nn
from d2l import torch as d2l
class Reshape(torch.nn.Module):
    def forward(self, x):
        return x.view(-1, 1, 28, 28)
net = torch.nn.Sequential(
    Reshape(),
    nn.Conv2d(1, 6, kernel_size=5, padding=2), nn.Sigmoid(),
    nn.AvgPool2d(kernel_size=2, stride=2),
    nn.Conv2d(6, 16, kernel_size=5), nn.Sigmoid(),
    nn.AvgPool2d(kernel_size=2, stride=2),
    nn.Flatten(),
    nn.Linear(16 * 5 * 5, 120), nn.Sigmoid(),
    nn.Linear(120, 84), nn.Sigmoid(),
    nn.Linear(84, 10))

3 误差反向传播 

  

 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值