批量归一化和残差网络

卷积神经网络基础

卷积神经网络

卷积神经网络已成为当前语音分析和和图像识别领域的研究热点
卷积神经网络的显著特点是权值共享
卷积神经网络本质上讲是一个多层感知器

卷积神经网络发展

1962年,Hubel和Wiesel通过对猫视觉皮层细胞的研究提出了感受野(receptive field)的概念
1984年,日本学者(Fukushima)基于感受野概念提出的神经认知机,是感受野概念在人工神经网络领域的首次应用
1998年,Yann LeCun设计了一个处理图像的卷积神经网络,并用于文本识别,取得了不错的效果

时延神经网络

考察某个事物的时间序列信号,比如语音信号
假定每一个时刻获得一个描述该信号的d维特征,记为帧信息
采用原始的多层感知器网络,则又如下结构:
在这里插入图片描述
数据按序列接收,如果采用单帧建模方法,帧与帧之间的相关性则会消失
在这里插入图片描述
一种重要的方法是同时考虑多帧,即所谓的时间延迟
对于神经网络结构而言,对连续多帧信息构成一个组,组内结点向隐含层映射时,其连接权重不会因时间序列的不同而不同,从而达到权值共享的目的
比如,将三帧信息组合起来,同时映射到下一层结点,为了方便起见,将一帧信息垂直排列,见下图:
在这里插入图片描述
在这里插入图片描述
隐含层只含有一个结点的情形-------即学习到一个特征
每组权重成为一个滤波器,包含sd个待求的权重,s为延时长度
隐含层结点的个数对应于滤波器的个数
待学习滤波器在整个指定的时长范围内保持不变
隐含层含有多个结点-------即学习到多个特征
隐含层到输出层也可以采用时延的方式,并保持相同位置的滤波器的权重不变
在这里插入图片描述
对于语音等信号,采用时间延迟卷积神经网络可以很好地对信号进行描述学习
对于自然图像,希望直接从图像底层开始进行学习(非结构化特征学习)
例如,
如果以图像直接作为输入,并将每个像素看成一个结点,对200*200大小的图像,则仅输入层就有4万个结点
如果第一隐含层仅仅只包含1000个结点,则权重数量将达到4千万,这显然是一个巨大的计算负担

代码部分
批量归一化(BatchNormalization)
对输入的标准化(浅层模型)
处理后的任意一个特征在数据集中所有样本上的均值为0、标准差为1。
标准化处理输入数据使各个特征的分布相近

批量归一化(深度模型)
利用小批量上的均值和标准差,不断调整神经网络中间输出,从而使整个神经网络在各层的中间输出的数值更稳定。

1.对全连接层做批量归一化
位置:全连接层中的仿射变换和激活函数之间。
全连接:
x=Wu+boutput=ϕ(x)
批量归一化:
output=ϕ(BN(x))

y(i)=BN(x(i))

μB←1m∑i=1mx(i),

σ2B←1m∑i=1m(x(i)−μB)2,

x^(i)←x(i)−μBσ2B+ϵ−−−−−−√,

这⾥ϵ > 0是个很小的常数,保证分母大于0

y(i)←γ⊙x^(i)+β.

引入可学习参数:拉伸参数γ和偏移参数β。若 γ=σ2B+ϵ−−−−−−√ 和 β=μB ,批量归一化无效。
2.对卷积层做批量归⼀化
位置:卷积计算之后、应⽤激活函数之前。
如果卷积计算输出多个通道,我们需要对这些通道的输出分别做批量归一化,且每个通道都拥有独立的拉伸和偏移参数。 计算:对单通道,batchsize=m,卷积计算输出=pxq 对该通道中m×p×q个元素同时做批量归一化,使用相同的均值和方差。

3.预测时的批量归⼀化
训练:以batch为单位,对每个batch计算均值和方差。
预测:用移动平均估算整个训练数据集的样本均值和方差。

从零实现¶
#目前GPU算力资源预计17日上线,在此之前本代码只能使用CPU运行。
#考虑到本代码中的模型过大,CPU训练较慢,
#我们还将代码上传了一份到 https://www.kaggle.com/boyuai/boyu-d2l-deepcnn
#如希望提前使用gpu运行请至kaggle。
import time
import torch
from torch import nn, optim
import torch.nn.functional as F
import torchvision
import sys
sys.path.append("/home/kesci/input/")
import d2lzh1981 as d2l
device = torch.device(‘cuda’ if torch.cuda.i

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值