本学习笔记为阿里云天池龙珠计划深度学习训练营的学习内容,学习链接为: https://tianchi.aliyun.com/specials/promotion/aicampdl
一、学习知识点概要
1. 神经网络 - 感知机 - 反向传播
2. 卷积神经网络
3. 卷积神经网络的基本网络层
填充(Padding) 步长(Stride) 池化 卷积和池化输出尺寸计算
二、学习内容
1. 感知机
1.感知机是二分类线性分类器,通常情况下指单层的人工神经网络
2.感知机本质上是一种线性模型,只能处理线性分类问题,就连最简单的 XOR(异或)问题都无法正确解决
2. 多层感知机
1.多层感知机有多个神经元层。一般将 MLP 的第一层称为输入层,中间的层为隐藏层,最后一层为输出层。
2.多层感知机通过反向传播BP算法训练各层的连接权值。
3.卷积神经网络(CNN)
全连接神经网络的缺陷
BP神经网络仍然是有监督的传统机器学习方法,通过提取的特征训练分类器,进行分类;并且提取的特征虽然是研究者们经过反复实验证明有效的特征,但仍然会一定程度上丢失了图像中的结构信息,从而丢失了一些对旋转扭曲等的不变性。而且要求输入的大小是固定的。为了学习到如偏移等微小的变化,需要有足够多的参数和足够多丰富的样本,最终学习到的权重,很可能在不同的位置处还会有非常相似的权重。 参数太多,如果一个隐藏层特征图像大小为100×100,输入层的特征图像大小为100×100,这意味着学习这一层需要100×100×100×100=
1
0
8
10^8
1 0 8 的参数。 CNN 主要包含卷积层、池化层和全连接层
卷积层:用于对图像进行特征提取操作,其卷积核权重是共享权值的,对应的相关概念还包括步长,填充。
填充(padding):是指在输入高和宽的两侧填充元素(通常是0元素),使卷积后图像分辨率不变,方便计算特征图尺寸的变化,弥补边界信息“丢失”
步长(Stride):卷积窗口从输入数组的最左上方开始,按从左往右、从上往下的顺序,依次在输入数组上滑动,每次滑动的行数和列数称为步幅或步长(stride)。
池化层:用于降低特征图大小,降低后续操作的计算量和参数量;压缩特征,提取主要特征
常见的池化操作可以分为:最大池化(Max Pool)、平均池化(Avg Pool)
全连接层:最终进行分类输出使用,本质就是多层感知机 卷积一个核矩阵在一个原始矩阵上从上往下、从左往右扫描,每次扫描都得到一个结果,将所有结果组合到一起得到一个新的结果矩阵。
输出尺寸计算
F
o
=
⌊
F
in
−
k
+
2
p
s
⌋
+
1
F_{o}=\left\lfloor\frac{F_{\text {in }}-k+2 p}{s}\right\rfloor+1
F o = ⌊ s F in − k + 2 p ⌋ + 1 其中,
F
i
n
F_{in}
F i n 是输入图像、k 是卷积核的大小、p 是图像填充的大小、s 是卷积核的步幅、
F
o
F_o
F o 是输出、
⌊
6.6
⌋
\lfloor 6.6 \rfloor
⌊ 6 . 6 ⌋ 是向下取整的意思,比如结果是 6.6,那么向下取整就是 6 卷积神经网络的优势
学习原理上的改进 卷积神经网络不再是有监督学习了,不需要从图像中提取特征,而是直接从原始图像数据进行学习,这样可以最大程度的防止信息在还没有进入网络之前就丢失。 学习方式的改进 用于产生同一个图像中各个空间位置像素的卷积核是同一个,这就是所谓的权值共享。对于与全连接层同样多的隐藏层,假如每个神经元只和输入10×10的局部patch相连接,且卷积核移动步长为10,则参数为:100×100×10×10,
三、学习问题与解答
输入参数
卷积核
对输入进行填充padding=1
0 0 0 0 0 0 0 1 2 0 0 3 4 5 0 0 6 7 8 0 0 0 0 0 0
Stride=1 进行卷积
池化Max Pool = 2
输出尺寸计算
[
3
−
2
+
2
]
1
+
1
=
4
\frac{[3-2+2]}{1}+1=4
1 [ 3 − 2 + 2 ] + 1 = 4
4
2
=
2
\frac{4}{2}=2
2 4 = 2
四、学习思考与总结