第二章总结

五一假期结束后的一周,又继续开始神经网络与深度学习这门课程,本周讲解内容主要是卷积神经网络,下文将介绍掌握它所需要的基础知识。

1、卷积神经网络基础
1.1深度学习介绍
进化史:

1.2基本概念
(1)特征提取

  神经生理学研究发现,人类等高等动物的视觉感知,首先对原始图像进行不同方向的滤波(卷积)。 注意,图像卷积时,根据定义,需要首先把卷积核上下左右转置。此处 卷积核(黄色)是对称的,所以忽视。


(2)填充

  填充:就是在矩阵的边界上填充一些值,以增加矩阵的大小,通常用0 或者复制边界像素来进行填充,为了防止多次卷积后图像越变越小。


(3)步长

  如果卷积核过大,步长就要相应增加,否则会造成卷积信息冗余。

(4)多通道卷积

  如RGB,如图所示,卷积核为3*3*3大小,每个卷积核有27个参数


(5)池化(Pooling)

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

(6)卷积神经网络结构
构成:由多个卷积层和下采样层构成,后面可连接全连接网络
卷积层:𝑘个滤波器
下采样层:采用mean或max
后面:连着全连接网络
  


1.3学习算法
  


1.4误差反向传播
  卷积NN的BP算法:下采样层
 


卷积NN的BP算法:卷积层+卷积层


卷积NN的BP算法:卷积层+全连接层

2、LeNet-5网络
是现代神经网络的开创者

网络结构:

其中第二个卷积层的卷积核大小为5*5,通道数分别为:6个3通道、9个4通道、1个6通道

具体原理不过多介绍,在这里分享它的可视化网址:

3D Visualization of a Convolutional Neural Network

在这里你可以书写数字,网络会判断数字是几,也可以查看网络的内部数据。

下面是LeNet的代码:

import torch
from torch import nn
from d2l import torch as d2l
 
net = nn.Sequential(
    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))
 
X = torch.rand(size=(1, 1, 28, 28), dtype=torch.float32)
for layer in net:
    X = layer(X)
    print(layer.__class__.__name__,'output shape: \t',X.shape)
AI写代码
python
运行

具体的训练过程可以参考《动手学深度学习》电子书(zh.d2l.ai;含代码实践)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值