1 . 池化 简介 :
① 池化概念 : 池化就是将一块区域降维 , 甚至减少到一个值 ;
② 池化过程 : 将图像分割成一块块小区域 , 每个区域只取一个值 , 取该区域的 最大值采样 , 或平均值采样 ;
③ 池化作用 : 卷积操作的卷积核一般都比较小 , 卷积完成后的图像一般也很大 , 进行池化过程 , 可以指数级地降低维度 ;
2 . 池化采样 : 使用采样窗口 , 将图片分割成一块一块的区域 , 每一块区域取一个值 ; 下图是一个采样窗口 , 四个值分别是
;
① 最大值采样 : 每个采样窗口中 , 取像素值最大的那个值 ; 如果取最大值 , 上述采样窗口取值
;
② 平均值采样 : 每个采样窗口中 , 取所有像素值的平均值 ; 如果取平均值 , 上述采样窗口取值
;
3 . 池化意义 :
① 降低维度 : 降低了图片的维度 , 意味着损失了很多数据 , 但剩余的特征仍能够描述图像 , 极大降低了参数数量 ;
② 避免过拟合 : 由于维度降低了 , 还有避免过拟合的作用 ;
4 . 池化示例 : 如给一个
的图片 , 使用
的采样窗口 对该图片进行采样 , 最终得到一个
的图片 ;
① 原始图片 :
大小 ;
② 切割图片 : 使用采样窗口将其分割 , 如下 红色区域 , 绿色区域 , 紫色区域 , 黄色区域 ;
③ 取值 : 每个区域取一个值 , 最大值 , 或 平均值 ;
④ 最终结果 : 最终结果是
的图片 , 如 红色区域
取平均值 , 对应该池化结果的红色值 ;
丢弃操作简介 :
① 全连接网络参数多 : 神经网络是全连接的 , 全连接会有非常多的参数个数 ;
② 丢弃神经元单元 : 在学习过程中 , 每次都随机丢弃一些神经元单元 ;
③ 作用 : 减少参数数量 , 可以 降低过拟合的风险 ;
批量规范化 :
① 操作过程 : 对输入的数据减去一个均值 , 或除以一个方差 , 降低数值的大小 , 可以有效加快计算速度 ;
② 作用 : 能加快计算速度 ;
输入图 : 是
大小的图片 ;
卷积层
:
① 操作过程 :
大小的图像输入后 , 在该层使用
个
的卷积核对输入图进行卷积 ;
② 卷积核大小 :
, 这是过滤器 , 滑动窗口 等的大小 ;
③ 卷积结果 : 使用该卷积核得到的卷积结果是
的图像 ,
在
中从左滑到右 , 从上滑到下 , 是
, 也就是
的由来 ;
④ 卷积核个数 : 这里有
个卷积核 , 即对应
种底层纹理特征 ; 每个输入图 与 卷积核 进行卷积后 , 得到一个结果 , 这里得到 6 个卷积结果 ;
⑤ 本层卷积结果 :
个
的图像 ;
池化层
:
① 本层输入 :
个
的图像 ;
② 池化层操作 : 使用
的采样窗口 , 对上述卷积得到的
个图像进行采样 , 将
个
的图像池化成
个
的图像 ;
③ 采样窗口 :
, 相当于把图像数据量缩小了
倍 ;
④ 本层池化结果 :
个
的图像 ;
卷积层
:
① 卷积核 大小 :
的卷积核组成 ;
② 卷积图像大小 : 将
的图像 , 使用
的卷积核 进行卷积 , 得到的结果是
的图像 , 由
计算得来 ;
③ 卷积核个数 :
个 , 每个输入图片 , 卷积后都得到
个图片 ;
④ 特征图组合 全连接 : 上一层
池化层 输出了
个
的图像 , 如果是全连接 , 那么本层需要进行
次卷积 , 得到
个卷积结果 ;
⑤ 特征图组合 部分连接 : 上一层
池化层 输出了
个
的图像 , 可以为不同的输入图像 ( 上一层输入的
张图片 ) , 配置不同的卷积核 ( 本层的
个卷积核 ) 进行卷积计算 , 有多种排列组合方式可供选择 ;
3 . 输入与输出结果 :
① 输入图 :
个
的图像 ;
② 输出图 :
个
的图像 ;
特征组合示例
1 . 特征图组合示例 :
中有
个卷积核 , 分别编号
, 上一层
输出
个图像 , 编号
; 可以使用一个
的矩阵 (
行
列 ) 表示为哪个图像 , 进行哪个卷积操作 ;
① 表格说明 :
到
行 , 表示输出的
个图片 ;
到
列 , 表示本层的
个卷积核 ;
② 表格位置含义 : 第
行 代表是上层
的第
个输入图像 , 第
列 , 表示本层
的第
个卷积核 ;
2 . 表格值含义 :
① 卷积 : 如果 第
行 第
列 值为 1 , 表示 第
个输入图像 需要与 第
个卷积核 进行卷积运算 ;
② 不卷积 : 如果 第
行 第
列 值为 0 , 表示 第
个输入图像 需要与 第
个卷积核 不进行卷积运算 ;
3 . 下面表格示例含义 : 下图中除了第
张图片的 第
个卷积核 的卷积计算不用执行外 , 其它的
个卷积计算都要执行 ;
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
3 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
4 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
5 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
该表中有
个表格位置 , 可以精确的指出哪些卷积操作需要做 , 哪些不需要做 , 可以使用矩阵形式表示出来 , 我就不写了 , Latext 矩阵太麻烦 ;
4 . 特征组合的意义 :
① 减少计算量 : 可以减少参数个数 , 进而降低计算量 ;
② 增加性能 : 不同特征组合 , 有利于指定的特征提取 ;
池化层
输入 : 输入
个
的图像 , 使用
的采样 进行池化 , 得到
个
的图像 ;
池化层
输出 : 输出
个
的图像 ;
1 . 卷积层
操作 :
① 卷积层
输入 : 输入
个
的图像 ;
② 卷积操作 : 使用
个
的卷积核 , 在上述
个图像上进行卷积操作 , 得到
个
的图像 ;
③ 卷积层
输出 : 输出
个
的图像 ;
2 . 卷积计算分析 :
① 卷积核大小 与 图像大小 : 此处卷积核大小 与 图像大小都是
的大小 , 卷积之后 , 只剩下一个值 , 即
像素大小 ;
② 卷积核 与 图像 卷积结果个数 :
个图像 与
个 卷积核进行卷积 , 有
个结果 ;
个图像 与
个 卷积核进行卷积 , 有
个结果 ;
③ 特征选择 : 此处又要进行特征选择 , 并不需要将所有输入图像 , 每个都进行
次卷积 , 只选择其中的
个组合即可 , 因此这里输出
个
的图像 ;
1 . 输入与输出 :
① 本层的输入值 :
个连接的权重 , 乘以每个单元输入值 , 加上每个输入单元的偏置 , 将这
个值累加起来 , 就得到了某个单元的输入 ;
② 本层的输出 : 本层的单个单元的输入 , 传入 sigmod 函数 , 即可得到单元的输出值 ;
2 . 神经元个数 :
① 全连接层 神经元个数 : 全连接层有
个神经元单元 , 每个神经元单元都代表图像的像素点 ;
② 神经元个数由来 : 假设图像的大小为
像素大小 , 每个像素值都作为一个输入 , 即有
个单元 ;
3 . 连接参数 :
① 全连接 : 该层
个神经元 , 与 上一层
卷积层输出的
个值进行全连接 , 即
层与
层有
条连接线 ;
② 权重 : 这里的权重 是上一层
个单元 , 与本层
个单元 , 单条连接的权重 ;
③ 偏置 : 注意这里的偏置是上一层输出单元的参数 , 是
个输出单元的每个单元的偏置参数值 ;
—
1 . 输出层简介 :
① 全连接 : 输出层 与 上一层
是全连接的 , 即
全连接层
个神经元单元 与 输出层的
个神经元的连接 是 全连接 的 ;
② 输出层 神经元单元 个数 : 该层有
个神经元单元 , 分别对应
, 这
个数字 ;
③ 描述总结 : 当前有
张图片 , 每张图片有
像素 , 即
个像素点 ;
2 . 连接的深层次含义 :
① 全连接层单元分析 : 全连接层
有
个单元 , 对应的就是
个像素点 ;
② 输出层单元分析 : 输出层的每个单元 , 都代表一张图片 ;
③ 连接个数分析 : 输出层每个单元 , 都连接
全连接层的所有单元 , 这里每个图片都有
个连接 ,
个图片有 有
个连接 ;
④ 连接 与 像素值对应 : 输出层每个单元 ( 每张图片 ) 都有
个连接 , 这里直接与每个图片的
个像素点对应 ;
⑤ 连接本质 : 连接的权值就是真实像素值 ;
3 . 连接权值描述 :
①
层与输出层的连接权值 : 全连接层
中的第
个单元 是
, 与 输出层 第
个单元 进行连接 , 该连接的权值为
;
②
连接权值 : 该连接权值就是 第
张图片对应的
层 像素点位置 的真实像素值 ;
4 . 输出计算 : 每个单元的输出值使用
标记 , 输出层
个单元 , 第
个单元的输出值为
, 计算公式如下 :
表示输出层第
个单元的输出 ;
表示经过多个 卷积 池化 后的 计算出的像素值 ;
指的是
图片上的对应的真实像素值 ;
取平方 , 是为了获取其误差 , 避免符号干扰 ; 这是误差平方公式 , 整体是误差平方和公式 ;
5 .
输出意义 :
① 像素位置说明 :
表示识别出的像素图片第
个像素的位置 ,
表示第
张图片的第
个像素的位置 ;
② 同一位置像素相减 : 假如这两张图片是同一张图片 , 那么
与
是相同的 , 或者相似的 , 其相减数值很小 , 基本为
;
③ 值越小相似度越大 :
值很小时 , 说明此时该图片与第
张图片及其相似 , 该图片就被识别成
图片 ;
④ 输出结果分析 : 输出的
个
, 哪个值最小 , 就将输入图片分类成该 第
张图片 ;
1 . 先卷积池化 再全连接训练 : 卷积神经网络 一般会进行多层的卷积 池化 操作 , 然后将维度降低到可接受程度以后 , 再将图片的像素值输入到传统神经网络中 , 该网络中各层都是全连接的 , 又叫全连接层 , 然后进行训练 , 找到合适的参数 ;
2 . 卷积 池化作用 : 卷积 和 池化操作 目的是为了提取图片的特征 , 降低输入图像的维度 , 进而减少训练的参数个数 ;
3 . 全连接层本质 : 全连接层 与 输出层 组合 , 就是一个传统的神经网络 , 有输入层 , 隐藏层 , 输出层 , 起到将卷积池化后的图像输入然后分类的作用 , 就是一个分类器 ;
4 . 特征提取性能 : 每次卷积 , 都会 使用 卷积核 提取 底层纹理特征 , 卷积次数越多 , 提取的特征越多 , 学习到的特征就越丰富 , 与之相对的是神经网络变得越来越复杂 ;
卷积神经网络 与 传统神经网络 :
① 训练过程一致 : 卷积神经网络看起来很复杂 , 但其训练过程与传统的神经网络基本一样 , 也是使用反向传播算法 ; 只是加入了 卷积 池化的 步骤 ;
② 向前传播输入 : 将输入图进行多次 卷积 池化操作 , 提取特征 , 将提取到的特征属性输入到全连接层 , 然后就是计算各层输入输出 ;
③ 向后传播误差 : 计算输出值 , 与实际值的误差 , 然后向后将误差传播回去 , 作为修改全连接层中的权值和偏置的依据 ; 使用梯度下降方法更新权值和偏置 ;