在先前学习的知识当中,首先讲解了感知机解决线性分类问题的能力,随后引入多层感知机已解决非线性分类的问题,其中也加入了隐藏层的概念。这样的方法在输入为简单数据集时,能够解决大部分问题,但是随着对时间序列和计算机视觉等复杂数据集处理需求的日益增加,人们意识到,需要对处理数据的方法进行改进。
全连接网络的问题
如果每一个神经元都连接到上一层的所有神经元(除输入层外),则成为全连接网络(Fully Connected Neural Network)。
正是全连接网络的此特性,对复杂数据集的处理造成了巨大的困扰,接下来以处理1000*1000图像为例讲解使用全连接网络出现的问题。
1. 需拟合参数过多
在输入节点数目很大时,光输入层到隐藏层需要拟合的参数就是输入节点数的二次幂量级,就1000*1000的图像来说,输入节点为1000,000个,需要拟合的参数就为1000,000*1000,000量级,需拟合参数过多,会导致计算速度非常慢。
2. 参数过多导致过拟合
在训练数据集上误差小,而在测试集上误差大
3. 忽略像素之间的空间信息
将图片作为输入层,便将具有空间分布规律的像素点转换为一维向量,将图片撕裂,一定程度上造成空间信息的损失。
4. 解决办法
局部连接网络
减少权值连接,每一个节点只连到上一层的少数神经元。在同样选取隐藏层节点数为1000,000的情况下,每个隐藏层节点连接10*10的输入节点,此时需要拟合的参数个数减少为100,000,000个,减少为原来的一万分之一。
信息分层处理
每一层在上层提取特征的基础上获取,进行再处理,得到更高级别的特征。
神经网络基础
1. 卷积
基本形式
一维连续
一维离散
一维到二维
图示
以输入图像为4*4,卷积核为2*2为例,经卷积处理后得:
可见卷积操作是将卷积核旋转后,和f进行加权平均求和。
卷积后的大小
设输入为 n_h*n_v,卷积核为 k_h*k_v,则其输出大小为:
助记(以行为例):卷积核的行先占有输入行的某个位置,剩余的行数就是卷积核可移动的选择个数(n_h - k_h),加上其本身占有的位置,得到卷积后的行数为:n_h - k_h +1
填充
在矩阵边界填充一些值,以增加矩阵的大小,通常用0或复制边界像素点来进行填充。
2. 池化
(1)最大池化:选择池化窗口中的最大值作为输出
(2)平均池化:选择池化窗口中的平均值作为输出
池化的作用:
- 下采样
- 降维、去除冗余信息、对特征进行压缩、简化网络复杂度、减小计算量、减小内存消耗等等。各种说辞吧,总的理解就是减少参数量。
- 扩大感知野(将变化小的合并,变为小图后看到的视野更大)
- 可以实现不变性,其中不变形性包括,平移不变性、旋转不变性和尺度不变性。
LeNet-5网络
Gradient-Based Learning Applied to Document Recognition
复制连接:Gradient-based learning applied to document recognition | IEEE Journals & Magazine | IEEE Xplore
DOI: 10.1109/5.726791
C1层
S2层
C3层
S4层与S2层工作相同
C5层
F6层
输出层