CNN 主要干了什么
CNN主要实现的就是特征提取,最经典的应用就是从多个图片中提取出有用的信息。这个过程对于人来说是个黑盒的过程,人们并不能很确切的知道里面发生了什么。结果也是非常抽象的,但是却能学习到很好的效果。
一个CNN的结构: 输入→卷积→ReLU→卷积→ReLU→池化→ReLU→卷积→ReLU→池化→全连接
CNN 的训练就是训练Filter的参数 3x3 5x5 的矩阵
每次训练之后,cnn都会更新Filter的参数,filter参数更新后,把图片再跑一边,就能得到新的结果。
Filter的个数就是你想获得的feature的个数。一张图片想提出出来多少个特征就用多少个filter。
学习完成后,filter的参数就固定了。 来一张新的图片,用这个filter做一遍卷积的运算,就能算出来哪个feature更加适合这张图片,也就能判断出这张图片是什么类别。
Filter
Filter(过滤器)也被称为神经元或者核(Kernal) ,过滤器可以被看成是特征标识符( feature identifiers)。这里的特征指的是例如直边缘、原色、曲线之类的东西。想一想所有图像都共有的一些最简单的特征。
卷积层
卷积层就是一个Filter扫过整个图片获得的结果
例子:
在一个长宽为256*256的图片上用3*3的filter进行卷积操作,并输出一个64维的向量
model.add(Convolution2D(64, 3, 3, border_mode='same', input_shape=(3, 256, 256)))
输出为 model.output_shape