链接:
1. 卷积神经网络详细介绍
2. 手写数字识别
卷积的实现:
- 原像素(由三个矩阵RGB通道构成的,元素均取值0-255)通过与卷积核进行对应位置相乘后相加的运算,形成新的卷积层
卷积价值:
- 通过使用多个卷积核,可以自动生成多种新特征(第一层卷积层可能智能提取一些低级的特征如边缘、线条和角)
- 通过使用多个卷几层,已生成的特征可以进行更复杂的排列组合,生成更深层次的特征。
- 卷积运算的重要特点:通过卷积运算,可以使原信号特征增强,并且降低噪音。
之前图像处理的缺陷及应对:
- 相对于之前的BP神经网络,全连接的方式权值太多,那要很多样本去训练,计算困难。因而采用减少权值的尝试,局部连接,权值共享。
CNN的局部感知结构
- 图像的空间联系局部的像素联系较为紧密,距离较远的像素相关性则较弱
- 因而每个神经元其实不需要对全局图像进行感知,只需要对局部进行感知,然后再更高层将局部信息综合起来就可以得到全局信息。
CNN多卷积核:
- 一个卷积的操作只对应了一种特征,各卷积核的具体权重则通过迭代进行估计。 实际操作中,多少个卷积核就能够对应提取多少种特征。
CNN的基本组件:
- 卷积层(Convolutional layer)(激活函数、卷积运算,可以从原始数据提取不同特征供后续分析,层数越高,特征越全局化)
- 池化层(平均池化、最大化池化)
- 全连接层(在后面的层由于每一层节点个数比较少,所以近乎采取全连接)
池化层:
- 即:汇总/下采样,其作用是减小数据处理量的同时保留有用信息(卷积后数据量暴增)
- 相邻区域的特征是类似的,因此可以考虑选出最能表现相邻区域特征的像素,从而缩减数据量(压缩图像)
- 将特征切成几个区域,取其最大值或平均值,得到新的特征
from keras.models import Sequential
from keras.layers import Dense,Activation
Keras基本操作:模型的设定方式
#方式一:直接传递网络层实例列表
model=Sequential([
Dense(32,input_shape=(784,)), Activation('relu'),
Dense(10), Activation('softmax'),
])
#方式二:使