卷积神经网络

Download Report

Transcript 卷积神经网络

卷积神经网络
张朝阳
2014/11/05
Logistic模型
• y=g z =
1
1
=
⋯ ⋯(1)
1+𝑒 −𝑧 1+𝑒 −𝑊𝑋
• 𝑔′ 𝑧 = 𝑔(𝑧)(1 − 𝑔(𝑧))
• 训练时令y={-1,+1},则𝑝 𝑦 𝑥 = 𝑔 𝑦𝑧
• 对数似然函数
𝑙
L 𝑤 =
• 其中𝑧𝑖 =
𝜕𝐿
𝜕𝑤𝑘
𝑛
𝑘=0 𝑤𝑘 𝑥𝑖𝑘
ln 𝑔(𝑦𝑖 𝑧𝑖 )
𝑖=1
⋯ ⋯ (2)
= 𝑙𝑖=1 𝑦𝑖 𝑥𝑖𝑘 𝑔(−𝑦𝑖 𝑧𝑖 ) ⋯ ⋯ (3)
• 测试时用公式(1),y>0.5时分到第1类,否则为第2类.
Softmax Regression多分类器
𝑝(𝑦
𝑓 𝑥 𝑖 ; 𝑤 = 𝑝(𝑦
𝑖
𝑝(𝑦
𝑖
𝑁
𝐾
1
J 𝑊 =−
𝑁
𝜕𝐽
1
=−
𝜕𝑤𝑗
𝑁
𝑖
= 1|𝑥 𝑖 ; 𝑤)
= 2|𝑥 𝑖 ; 𝑤) =
⋮
= 𝐾|𝑥 𝑖 ; 𝑤)
𝑖
𝑖=1
𝑤𝑗 𝑇 𝑥 (𝑖)
𝐾
𝑗=1 𝑒
= 𝑗 log
𝑖=1 𝑗=1
𝑥
1
𝑇
𝑠𝑖𝑔𝑛 𝑦
𝑁
𝑇 (𝑖)
𝑖
𝑠𝑖𝑔𝑛 𝑦
𝑖
𝑒 𝑤1 𝑥
𝑇 (𝑖)
𝑒 𝑤2 𝑥
⋮
𝑇 (𝑖)
𝑒 𝑤𝐾 𝑥
𝑒 𝑤𝑗 𝑥
𝑖
𝐾 𝑤𝑙 𝑇 𝑖
𝑥
𝑙 𝑒
== 𝑗 − 𝑝 𝑦
𝑖
𝐶
+
2
𝐾
𝑁
𝑖=1
𝑗=1
== 𝑗 𝑥 𝑖 ; 𝑤
𝑤𝑖𝑗 2
+ 𝐶𝑤𝑗
• J是损失函数,即似然函数的相反数,使用L-BFGS求
解最优化问题时先把目标函数转换成求极小值的问
题。
BP神经网络
BP神经网络
• 隐藏层的净输入𝑛𝑒𝑡𝑗 =
𝑛
𝑖=0 𝑣𝑖𝑗 𝑥𝑖
• 隐藏层的输出𝑦𝑗 = 𝑠𝑖𝑔𝑚𝑜𝑖𝑑(𝑛𝑒𝑡𝑗 )
• 输出层的净输入𝑛𝑒𝑡𝑘 =
𝑚
𝑗=0 𝑤𝑗𝑘 𝑦𝑗
• 输出层的输出𝑜𝑘 = 𝑠𝑖𝑔𝑚𝑜𝑖𝑑(𝑛𝑒𝑡𝑘 )
• 从隐藏层到输出层实际上就是一个softmax
分类器
BP神经网络
• 单个样本的误差
1
𝐸=
2
𝑙
(𝑑𝑘 − 𝑜𝑘 )2
𝑘=1
• 权值调整
𝜕𝐸
𝜕𝐸 𝜕𝑛𝑒𝑡𝑘
∆𝑤𝑗𝑘 = −𝜃
= −𝜃
𝜕𝑤𝑗𝑘
𝜕𝑛𝑒𝑡𝑘 𝜕𝑤𝑗𝑘
𝜕𝐸
𝜕𝐸 𝜕𝑛𝑒𝑡𝑗
∆𝑣𝑖𝑗 = −𝜃
= −𝜃
𝜕𝑣𝑖𝑗
𝜕𝑛𝑒𝑡𝑗 𝜕𝑣𝑖𝑗
BP神经网络
• 残差
𝛿𝑘 = −
𝛿𝑗 =
𝜕𝐸
=
𝜕𝑛𝑒𝑡𝑘
𝑑𝑘 − 𝑜𝑘 𝑓 ′ 𝑛𝑒𝑡𝑘 ……(1)
𝜕𝐸
−
=[ 𝑙𝑘=1(𝛿𝑘
𝜕𝑛𝑒𝑡𝑗
𝑤𝑗𝑘 )]𝑓 ′ 𝑛𝑒𝑡𝑗 ……(2)
• 对于多层全连接的神经网络,公式(2)是残差计算的递推公式,
即当前层的残差是下一层残差的加权和。
• 权值调整
∆𝑤𝑗𝑘 = 𝜃𝛿𝑘 𝑦𝑗 = 𝜃(𝑑𝑘 − 𝑜𝑘 )𝑜𝑘 (1 − 𝑜𝑘 ) 𝑦𝑗
∆𝑣𝑖𝑗 = 𝜃𝛿𝑗 𝑥𝑖 = 𝜃[
𝑙
𝑘=1
𝛿𝑘 𝑤𝑗𝑘 ]𝑦𝑗 (1 − 𝑦𝑗 )𝑥𝑖
卷积运算
•
一维卷积
∞
w x ∗𝑓 𝑥 =
𝑤 𝑢 𝑓(𝑥 − 𝑢) 𝑑𝑢
−∞
•
二维卷积
∞
∞
w x, 𝑦 ∗ 𝑓 𝑥, 𝑦 =
𝑤 𝑢, 𝑣 𝑓(𝑥 − 𝑢, 𝑦 − 𝑣) 𝑑𝑢 𝑑𝑣
−∞ −∞
•
二维离散卷积
𝑊 𝑥, 𝑦 ∗ 𝐹 𝑥, 𝑦 =
𝑊 𝑢, 𝑣 𝐹 𝑥 − 𝑢, 𝑦 − 𝑣
𝑢
𝑣
当给定关于原点对称的积分区间时:
𝑊 𝑥, 𝑦 ∗ 𝐹 𝑥, 𝑦 =
𝑈
𝑉
−𝑈
−𝑉
𝑊 𝑢, 𝑣 𝐹 𝑥 − 𝑢, 𝑦 − 𝑣
图像卷积
𝑊 𝑥, 𝑦 ∗ 𝐹 𝑥, 𝑦 =
𝑈
𝑉
−𝑈
−𝑉
𝑊 𝑢, 𝑣 𝐹 𝑥 − 𝑢, 𝑦 − 𝑣
其中𝐼 = 𝐹 𝑥, 𝑦 代表一张图像, 𝐹 𝑥, 𝑦 是图像是第x行第y列像素的灰度值,
𝑊 𝑢, 𝑣 为卷积核。
令U=V=2,下图所示的卷积运算就是:2 × 8 + 8 × 7 + 6 × 5 + 5 × 9 + 8 × 4 +
3 × 0 + 6 × 8 + ⋯⋯
y
W
x
2
8
6
5
8
8
7
5
9
4
3
6
9
7
5
0
8
6
3
2
5
7
4
9
6
6
1
3
1
6
9
7
8
5
8
9
8
6
5
0
1
0
8
7
4
7
1
3
2
0
∗
用卷积提取图像特征
•
用同一个卷积核对图像的每一个像素进行卷积运算,可以得到与原图像同等
大小的特征图。
•
水平梯度的卷积算子
•
竖直梯度的卷积算子
•
一个图像里目标特征主要体现在像素与周围像素之间形成的关系,这些邻域
像素关系形成了线条、角点、轮廓等。而卷积运算正是这种用邻域点按一定
权重去重新定义该点值的运算。
卷积神经网络
卷积神经网络
• 每一层由多个map组成,每个map由多个神经单元组成
• 输入层和输出层分别只有一个
• 输入层之后有若干个“卷积层C--下采样层S”的交替
• 卷积层上的map数逐渐增多
• 一个采样层map到一个卷积层map上的所有神经元共享同一个
卷积核
• 𝐶𝑙 上每个map的输入是𝑆𝑙−1 上所有map的某种组合
• 输出层前面的若干层是全连接层
• BP神经网络中的一个权重𝑤𝑖𝑗 对应卷积神经网络的一个卷积核
𝑘𝑖𝑗
卷积神经网络
• 卷积层的作用
根据深度学习关于人的视觉分层的理论,人的视觉
对目标的辨识是分层的,低层会提取一些边缘特征,
然后高一些层次进行形状或目标的认知,更高层的
会分析一些运动和行为。也就是说高层的特征是低
层特征的组合,从低层到高层的特征表示越来越抽
象,越来越能表现语义或者意图。而抽象层面越高,
存在的可能猜测就越少,就越利于分类。
卷积神经网络
• 卷积层convolutional
– 输入:𝑛𝑒𝑡𝑙 = 𝑐𝑜𝑛𝑣 𝑜𝑢𝑡𝑙−1 , 𝑘𝑒𝑟𝑛𝑒𝑙 + 𝑏𝑖𝑎𝑠
– 输出:out 𝑙 = 𝑠𝑖𝑔𝑚𝑜𝑖𝑑 𝑜𝑢𝑡𝑙
卷积神经网络
• 子采样层subsampling
– 把输入 map划分成若干个scale*scale的小区域,求
每个小区域内灰度的均值。输出map是输入map规
模的1/scale。
卷积神经网络
• 权值调整的关键在于计算各层的残差,输
出层和全连接层的残差计算公式与BP网络
完全相同,不再赘述。
• 卷积层的残差𝛿𝑐
当前层的残差是下一层残差的加权和,因
为一个卷积层的map只和一个采样层的map
相连,所以𝛿𝑐 = 𝛿𝑠 ∗ 𝑘𝑐𝑠 ,此处𝑘𝑐𝑠 要进行克
罗内克扩展。
卷积神经网络
• 下一层为采样层的卷积层的残差
卷积神经网络
• 采样层的残差
因为当前层的残差是下一层残差的加权和,一个采样层
的map与多个卷积层的map相连,所以𝛿𝑠 =
𝑐𝑖 𝑐𝑜𝑛𝑣(𝛿𝑐𝑖 , 𝑘𝑠𝑐𝑖 ),𝑐𝑖 是与当前采样层的map相连的卷积
层的map。此处𝑘𝑠𝑐𝑖 要旋转180度,𝛿𝑐𝑖 要进行扩展。
• “加权和”包含了相乘和相加两种运算,从BP网络推广
到卷积网络时,相乘演化为矩阵的卷积,相加演化为矩
阵的加法。
卷积神经网络
• 下一层为卷积层的采样层的残差
实验对比
• MNIST手写数字数据集,60000张训练数据,10000张测
试数据,28*28像素,0到9十个数字分布接近均等。
算法
准确率
耗时
Logistic
95%(二分类,区分7和9)150秒
Softmax
89%,90%
360秒,1980秒
BP
9%
20秒
CNN
95%
300秒
• 复杂的算法不一定有效(对比Softmax和BP)。
• 由于CNN内置了优良的特征选择方法,所以分类效果远
超BP。
参考资料
• http://www.cnblogs.com/ronny/p/ann_03.ht
ml
• http://www.cnblogs.com/fengfenggirl/p/cnn_i
mplement.html
• https://github.com/BigPeng/JavaCNN
• Maven
<groupId>com.bj58.xxzl.dm</groupId>
<artifactId>xxzl.dm.core</artifactId>