目录
一、CNN概述
卷积神经网络(CNN),通过卷积层与池化层的不同叠加方式实现对输入数据的特征提取,利用全连接层进行分类,在图像处理方面有出色表现。卷积神经网络是一种具有局部连接、权值共享等特性的深层前馈神经网络,作为一个静态网络,信息的传递是单向的,网络的输出只依赖于当前的输入,不具备记忆能力。相比于传统机器学习算法,不需要手动添加提取特征,可以通过训练自动提取特征并进行模式分类,降低图像识别的难度。
二、CNN架构
卷积层(Convolution):通过使用正方形卷积核,遍历图片上的每一个像素点,在图片与卷积核重合区域对应的每一个像素值乘对应点的权重求和,加上偏置后,输出图片中的一个像素值。下图为卷积神经网络处理彩色图片。
池化层(Pooling):为了减少特征图像,通过减少网络的参数来减少计算量,并且能够在一定程度上防止过拟合。Max Pooling为最大池化,取卷积核中最大的值进行池化。
全连接层:将卷积输出的二维特征图转化为一维向量,由于全连接层的每一个结点都与上一层的所有结点连接被称为全连接层。
三、CNN in keras
1、导入库
from keras.models import Sequential
from keras.models import layers
2、建立模型
model=model.Sequential() #贯序模型
model.add(layers.Conv2D(32,(3,3),activation='relu') #卷积层
model.add(layers.MaxPooling2D(pool_size=(2,2)) #最大池化
model.add(layers.Flatten()) #全连接层
model.add(layers.Dense(128,activation='relu') #输出层
model.compile(optimizer=sgd,loss='mse') #编译模型
参考资料:李宏毅机器学习